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 @@
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 ) ); + +
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.
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(); + +
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
.
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
.
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
.
SDL::Mixer::Channels::pause( $channel ); + ++
Pauses the given channel or all by passing -1
.
SDL::Mixer::Channels::resume( $channel ); + ++
Resumes the given channel or all by passing -1
.
SDL::Mixer::Channels::halt_channel( $channel ); + ++
Stops the given channel or all by passing -1
.
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.
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.
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 ); + +
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.
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.
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!
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!
See AUTHORS in SDL.