X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pages%2FSDL-Mixer-Channels.html-inc;h=852f8cf947e033f1a316389fa7fe9667c4389df9;hb=a3de848879a5553418ed11fb193c4bf286ca7120;hp=e6c97014fc8b7b61dc16db75f8c8343edb716b9a;hpb=b5d537cc3daf6b56e3b7b33a40aec03c1549c921;p=sdlgit%2FSDL-Site.git diff --git a/pages/SDL-Mixer-Channels.html-inc b/pages/SDL-Mixer-Channels.html-inc index e6c9701..852f8cf 100644 --- a/pages/SDL-Mixer-Channels.html-inc +++ b/pages/SDL-Mixer-Channels.html-inc @@ -21,10 +21,11 @@
  • playing
  • paused
  • fading_channel
  • -
  • get_chunk -
  • +
  • get_chunk
  • +
  • AUTHORS +

  • @@ -48,66 +49,193 @@

    allocate_channels

    +
     my $ret = SDL::Mixer::Channels::allocate_channels( $number_of_channels );
    +
    +
    +

    Dynamically change the number of channels managed by the mixer. If decreasing the number of channels, the upper channels arestopped. +This function returns the new number of allocated channels.

    +

    Example

    +
     use SDL::Mixer::Channels;
    +
    + printf("We got %d channels!\n", SDL::Mixer::Channels::allocate_channels( 8 ) );
    +
    +

    volume

    +
     my $prev_volume = SDL::Mixer::Channels::volume( $channel_number, $volume );
    +
    +
    +

    volume changes the volume of the channel specified in channel by the amount set in volume. The range of volume is from 0 to MIX_MAX_VOLUME +which is 128. Passing -1 to channel will change the volume of all channels. If the specified volume is -1, it will just return the +current volume.

    +

    Returns the previously set volume of the channel.

    play_channel

    +
     my $channel_number = SDL::Mixer::Channels::play_channel( $channel, $chunk, $loops );
    +
    +
    +

    play_channel will play the specified chunk over the specified channel. SDL_mixer will choose a channel for you if you pass -1 for +channel.

    +

    The chunk will be looped loops times, the total number of times played will be loops+1. Passing -1 will loop the chunk infinitely.

    +

    Returns the channel the chunk will be played on, or -1 on error.

    +

    Example:

    +
     use SDL::Mixer;
    + use SDL::Mixer::Channels;
    + use SDL::Mixer::Samples;
    +
    + SDL::init(SDL_INIT_AUDIO);
    + SDL::Mixer::open_audio( 44100, SDL::Constants::AUDIO_S16, 2, 4096 );
    +
    + my $chunk = SDL::Mixer::Samples::load_WAV('sample.wav');
    +
    + SDL::Mixer::Channels::play_channel( -1, $chunk, -1 );
    +
    + SDL::delay(1000);
    + SDL::Mixer::close_audio();
    +
    +

    play_channel_timed

    +
     my $channel = SDL::Mixer::Channels::play_channel_timed( $channel, $chunk, $loops, $ticks );
    +
    +
    +

    Same as play_channel but you can specify the time it will play by $ticks.

    fade_in_channel

    +
     my $channel = SDL::Mixer::Channels::fade_in_channel( $channel, $chunk, $loops, $ms );
    +
    +
    +

    Same as play_channel but you can specify the fade-in time by $ms.

    fade_in_channel_timed

    +
     my $channel = SDL::Mixer::Channels::fade_in_channel_timed( $channel, $chunk, $loops, $ms, $ticks );
    +
    +
    +

    Same as fade_in_channel but you can specify the time how long the chunk will be played by $ticks.

    pause

    +
     SDL::Mixer::Channels::pause( $channel );
    +
    +
    +

    Pauses the given channel or all by passing -1.

    resume

    +
     SDL::Mixer::Channels::resume( $channel );
    +
    +
    +

    Resumes the given channel or all by passing -1.

    halt_channel

    +
     SDL::Mixer::Channels::halt_channel( $channel );
    +
    +
    +

    Stops the given channel or all by passing -1.

    expire_channel

    +
     my $channels = SDL::Mixer::Channels::expire_channel( $channel, $ticks );
    +
    +
    +

    Stops the given channel (or -1 for all) after the time specified by $ticks (in milliseconds).

    +

    Returns the number of affected channels.

    fade_out_channel

    +
     my $fading_channels = SDL::Mixer::Channels::fade_out_channel( $which, $ms );
    +
    +
    +

    fade_out_channel fades out a channel specified in which with a duration specified in ms in milliseconds.

    +

    Returns the the number of channels that will be faded out.

    channel_finished

    +
     SDL::Mixer::Channels::channel_finished( $callback );
    +
    +
    +

    Add your own callback when a channel has finished playing. NULL to disable callback. The callback may be called from the mixer's audio +callback or it could be called as a result of halt_channel, etc. do not call lock_audio from this callback; you will either be inside +the audio callback, or SDL_mixer will explicitly lock the audio before calling your callback.

    +

    Example 1:

    +
     my $callback = sub{ printf("[channel_finished] callback called for channel %d\n", shift); };
    +
    + SDL::Mixer::Channels::channel_finished( $callback );
    +
    +
    +

    Example 2:

    +
     sub callback
    + {
    +     ...
    + }
    +
    + SDL::Mixer::Channels::channel_finished( \&callback );
    +
    +

    playing

    +
     my $playing = SDL::Mixer::Channels::playing( $channel );
    +
    +
    +

    Returns 1 if the given channel is playing sound, otherwise 0. It does'nt check if the channel is paused.

    +

    Note: If you pass -1 you will get the number of playing channels.

    paused

    +
     my $paused = SDL::Mixer::Channels::paused( $channel );
    +
    +
    +

    Returns 1 if the given channel is paused, otherwise 0.

    +

    Note: If you pass -1 you will get the number of paused channels.

    fading_channel

    +
     my $fading_channel = SDL::Mixer::Channels::fading_channel( $channel );
    +
    +
    +

    Returns one of the following for the given channel:

    + + +

    Note: Never pass -1 to this function!

    get_chunk

    +
     my $chunk = SDL::Mixer::Channels::get_chunk( $channel );
    +
    +
    +

    get_chunk gets the most recent sample chunk played on channel. This chunk may be currently playing, or just the last used.

    +

    Note: Never pass -1 to this function!

    + +
    +

    AUTHORS

    Top

    +
    +

    See AUTHORS in SDL.

    \ No newline at end of file