Provided by: libsdl-perl_2.540-5_amd64 bug

NAME

       SDL::Mixer::Channels -- SDL::Mixer channel functions and bindings

CATEGORY

       Mixer

DESCRIPTION

METHODS

   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 are stopped.  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 doesn't 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:

       •   MIX_NO_FADING

       •   MIX_FADING_OUT

       •   MIX_FADING_IN

       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

       See "AUTHORS" in SDL.