The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

=pod

=head1 NAME

SDL::Mixer::Samples - functions for loading sound samples

=head1 CATEGORY

Mixer

=head1 METHODS

=head2 get_num_chunk_decoders

 my $num_decoders = SDL::Mixer::Samples::get_num_chunk_decoders();

Returns the number of available decoders.

=head2 get_chunk_decoder

 my $decoder = SDL::Mixer::Samples::get_chunk_decoder( $num_decoder );

Returns the decoder for the given id.

=head2 load_WAV

 my $mix_chunk = SDL::Mixer::Samples::load_WAV( $file );

C<load_WAV> reads a file and passes it to L<SDL::Mixer::Samples::load_WAV_RW>. SO this is a quick way to load a file into a chunk.

Example:

 my $chunk = SDL::Mixer::Samples::load_WAV('sample.wav');
 
 SDL::Mixer::Channels::play_channel(-1, $chunk, -1);
 SDL::delay(2000);

=head2 load_WAV_RW

 my $mix_chunk = SDL::Mixer::Samples::load_WAV_RW( $rwops, $free );

C<load_WAV_RW> is a macro that loads a sound sample from a a block of memory. It supports WAVE-, MOD-, MIDI-, OGG- and MP3 files (sometimes 
depends on compilation options). It accepts two arguments, the first being a RWops object from which to read and the second being a flag to 
free the source memory after loading is complete or not.

Returns a Mix_Chunk containing the whole sample on success, or C<undef> on error.

B<Note>: Do not reuse the RWops-object for another call to this function!

Example:

 my $rwops = SDL::RWOps->new_file('sample.wav', 'r');
 
 my $chunk = SDL::Mixer::Samples::load_WAV_RW($rwops, 0);
 
 SDL::Mixer::Channels::play_channel(-1, $chunk, -1);
 SDL::delay(2000);

=head2 quick_load_WAV

 SDL::Mixer::Samples::quick_load_WAV( $buf );

to be documented.

=head2 quick_load_RAW

 SDL::Mixer::Samples::quick_load_RAW( $buf, $len );

to be documented.

=head2 volume_chunk

 my $volume_before = SDL::Mixer::Samples::volume_chunk( $chunk, $new_volume );

C<volume_chunk> let you set and get the volume of a chunk. When a chunk is created is volume is C<MIX_MAX_VOLUME> (C<128>).

If you pass C<-1> as C<$new_volume> you just get its volume without changing it.

=head1 AUTHORS

See L<SDL/AUTHORS>.

=cut