docs done for SDL::Mixer::Music
Tobias Leich [Wed, 3 Mar 2010 12:45:25 +0000 (13:45 +0100)]
pages/SDL-Mixer-Music.html-inc
pages/documentation.html-inc

index 7d3f9a9..12c72a6 100644 (file)
@@ -4,13 +4,8 @@
 
 <ul><li><a href="#NAME">NAME</a></li>
 <li><a href="#CATEGORY">CATEGORY</a></li>
-<li><a href="#DESCRIPTION">DESCRIPTION</a></li>
 <li><a href="#METHODS">METHODS</a>
-<ul><li><a href="#PerlMixMusicHook">PerlMixMusicHook</a></li>
-<li><a href="#mix_audio">mix_audio</a></li>
-<li><a href="#load_WAV">load_WAV</a></li>
-<li><a href="#load_MUS">load_MUS</a></li>
-<li><a href="#free_music">free_music</a></li>
+<ul><li><a href="#load_MUS">load_MUS</a></li>
 <li><a href="#hook_music">hook_music</a></li>
 <li><a href="#hook_music_finished">hook_music_finished</a></li>
 <li><a href="#get_music_hook_data">get_music_hook_data</a></li>
 <li><a href="#rewind_music">rewind_music</a></li>
 <li><a href="#set_music_position">set_music_position</a></li>
 <li><a href="#paused_music">paused_music</a></li>
-<li><a href="#playing_music">playing_music</a>
-</li>
+<li><a href="#playing_music">playing_music</a></li>
 </ul>
 </li>
+<li><a href="#AUTHOR">AUTHOR</a>
+</li>
 </ul><hr />
 <!-- INDEX END -->
 
 <h1 id="NAME">NAME</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="NAME_CONTENT">
-<p>SDL::Mixer::Music -- SDL_Mixer music functions and bindings</p>
+<p>SDL::Mixer::Music - functions for music</p>
 
 </div>
 <h1 id="CATEGORY">CATEGORY</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <p>Mixer</p>
 
 </div>
-<h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
-<div id="DESCRIPTION_CONTENT">
-
-</div>
 <h1 id="METHODS">METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="METHODS_CONTENT">
 
 </div>
-<h2 id="PerlMixMusicHook">PerlMixMusicHook</h2>
-<div id="PerlMixMusicHook_CONTENT">
-
-</div>
-<h2 id="mix_audio">mix_audio</h2>
-<div id="mix_audio_CONTENT">
-<p>Same as SDL::Audio::mix()</p>
-
-</div>
-<h2 id="load_WAV">load_WAV</h2>
-<div id="load_WAV_CONTENT">
-<p>has to be implemented</p>
-
-</div>
 <h2 id="load_MUS">load_MUS</h2>
 <div id="load_MUS_CONTENT">
 <pre> my $music = SDL::Mixer::Music::load_MUS( $file );
 <p><code>load_MUS</code> loads a music file into a <code>SDL::Music::MixMusic</code> structure. This can be passed to <a href="http://search.cpan.org/perldoc?play_music">play_music</a>.</p>
 
 </div>
-<h2 id="free_music">free_music</h2>
-<div id="free_music_CONTENT">
-
-</div>
 <h2 id="hook_music">hook_music</h2>
 <div id="hook_music_CONTENT">
+<pre> SDL::Mixer::Music::hook_music( $callback, $position );
+
+ or
+
+ SDL::Mixer::Music::hook_music( &amp;callback, $position );
+
+</pre>
+<p>This sets up a custom music player function, so you can pass your own audio stream data into the SDL::Mixer.
+The function will be called with <code>position</code> passed into the first parameter when the <code>callback</code> is called.
+The audio stream buffer has to be filled with length bytes of music (2nd parameter).
+The music player will then be called automatically when the mixer needs it. Music playing will start as soon as this is called. 
+All the music playing and stopping functions have no effect on music after this. Pause and resume will work. 
+Using a custom music player and the internal music player is not possible, the custom music player takes priority. </p>
+<p>To stop the custom music player call <code>hook_music()</code> without arguments.</p>
+<p><strong>Note</strong>: NEVER call <code>SDL::Mixer</code> functions, nor <a href="/SDL-Audio::lock.html">SDL::Audio::lock</a>, from a callback function.</p>
+<p><strong>Note</strong>: At program termination also call <code>SDL::Mixer::Music::hook_music()</code> to stop this callback.</p>
+<p>Example:</p>
+<pre> my $callback = sub
+ {
+     my $position = shift; # position (first time its 0, on each call $length is added)
+     my $length   = shift; # length of bytes we have to put in stream
+     my @stream   = '';
+
+     printf(&quot;position=%8d, stream length=%6d\n&quot;, $position, $length);
+
+     for(my $i = 0; $i &lt; $length; $i++)
+     {
+         push(@stream, (($i + $position) &amp; 0xFF));
+     }
+
+     return @stream;
+ };
+
+ SDL::Mixer::Music::hook_music( $callback, 0 );
+
+</pre>
 
 </div>
 <h2 id="hook_music_finished">hook_music_finished</h2>
 <div id="hook_music_finished_CONTENT">
+<pre> SDL::Mixer::Music::hook_music_finished( $callback );
+
+</pre>
+<p>This callback is called when music called by e.g. <a href="http://search.cpan.org/perldoc?play_music">play_music</a> or <a href="http://search.cpan.org/perldoc?fade_in_music">fade_in_music</a> stops naturally. This happens when the music is over or is 
+fading out.</p>
+<p><strong>Note</strong>: If you play music via <a href="http://search.cpan.org/perldoc?hook_music">hook_music</a>, this callback will never be called.</p>
+<p>Example:</p>
+<pre> my $music_is_playing = 0;
+ my @music            = qw(first.mp3 next.mp3 other.mp3 last.mp3);
+ my $callback         = sub{ $music_is_playing = 0; };
+ SDL::Mixer::Music::hook_music_finished( $callback );
+
+ foreach my $this_song ( @music )
+ {
+     SDL::Mixer::Music::play_music( $this_song, 0 );
+     $music_is_playing = 1;
+
+     SDL::delay( 100 ) while( $music_is_playing );
+ }
+
+ SDL::Mixer::Music::hook_music_finished(); # cleanup
+
+</pre>
 
 </div>
 <h2 id="get_music_hook_data">get_music_hook_data</h2>
 <div id="get_music_hook_data_CONTENT">
+<pre> my $position = SDL::Mixer::Music::get_music_hook_data();
+
+</pre>
+<p>Returns the <code>position</code> (first) parameter that will be passed to <a href="http://search.cpan.org/perldoc?hook_music">hook_music</a>'s callback.</p>
 
 </div>
 <h2 id="play_music">play_music</h2>
@@ -139,6 +176,18 @@ Passing -1 to <code>$loops</code> will loop the music infinitely. </p>
 </div>
 <h2 id="volume_music">volume_music</h2>
 <div id="volume_music_CONTENT">
+<pre> my $volume_before = SDL::Mixer::Music::volume_music( $new_volume );
+
+</pre>
+<p><code>volume_music</code> set the volume in <code>$new_volume</code> and returns the volume that was set before.
+Passing <code>-1</code> as argument causes only to return the current volume.</p>
+<p>Volume is between <code>0</code> (silence) and <code>MIX_MAX_VOLUME = 128</code>.</p>
+<p>Example:</p>
+<pre> # set the music volume to 1/2 maximum, and then check it
+ printf( &quot;volume was    : %d\n&quot;, SDL::Mixer::Music::volume_music( MIX_MAX_VOLUME / 2 ) );
+ printf( &quot;volume is now : %d\n&quot;, SDL::Mixer::Music::volume_music( -1 ) );
+
+</pre>
 
 </div>
 <h2 id="halt_music">halt_music</h2>
@@ -214,4 +263,9 @@ Does not go in reverse... negative values do nothing. </p>
                <p>Returns <code>1</code> if the music is playing sound, otherwise <code>0</code>. It does'nt check if the music is paused.</p>
 
 </div>
+<h1 id="AUTHOR">AUTHOR</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="AUTHOR_CONTENT">
+               <p>Tobias Leich [FROGGS]</p>
+
+</div>
 </div>
\ No newline at end of file
index f9b8820..f4eaf0d 100644 (file)
@@ -1,2 +1,2 @@
 <div class="pod">
-<h1>Documentation (latest development branch)</h1><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Core</strong></td></tr><tr><td><img src="assets/SDL_thumb.png" alt="thumb" /></td><td><a href="SDL.html">SDL</a></td><td>- Simple DirectMedia Layer for Perl</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Time.html">SDL::Time</a></td><td>- a SDL perl extension for managing timers.</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Audio</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Audio.html">SDL::Audio</a></td><td>- SDL Bindings for Audio</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-AudioCVT.html">SDL::AudioCVT</a></td><td>- Audio Conversion Structure</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-AudioSpec.html">SDL::AudioSpec</a></td><td>- SDL Bindings for structure SDL::AudioSpec</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">CDROM</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-CDROM.html">SDL::CDROM</a></td><td>- SDL Bindings for the CDROM device</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-CD.html">SDL::CD</a></td><td>- SDL Bindings for structure SDL_CD</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-CDTrack.html">SDL::CDTrack</a></td><td>- SDL Bindings for structure SDL_CDTrack</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Events</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Events.html">SDL::Events</a></td><td>- Bindings to the Events Category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Event.html">SDL::Event</a></td><td>- General event structure</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Joystick</strong></td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Joystick.html">SDL::Joystick</a></td><td>- SDL Bindings for the Joystick device</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Mouse</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Mouse.html">SDL::Mouse</a></td><td>- SDL Bindings for the Mouse device</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Cursor.html">SDL::Cursor</a></td><td>- Mouse cursor structure</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Version.html">SDL::Version</a></td><td>- SDL Bindings for structure SDL_Version</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Video</strong></td></tr><tr><td><img src="assets/Video_thumb.png" alt="thumb" /></td><td><a href="SDL-Video.html">SDL::Video</a></td><td>- Bindings to the video category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Color.html">SDL::Color</a></td><td>- Format independent color description</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Overlay.html">SDL::Overlay</a></td><td>- YUV Video overlay</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Palette.html">SDL::Palette</a></td><td>- Color palette for 8-bit pixel formats </td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-PixelFormat.html">SDL::PixelFormat</a></td><td>- Stores surface format information</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Rect.html">SDL::Rect</a></td><td>- Defines a rectangular area</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Surface.html">SDL::Surface</a></td><td>- Graphic surface structure.</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-VideoInfo.html">SDL::VideoInfo</a></td><td>- Video Target Information </td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Cookbook</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Cookbook.html">SDL::Cookbook</a></td><td></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Cookbook-PDL.html">SDL::Cookbook::PDL</a></td><td></td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Extension</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-App.html">SDL::App</a></td><td>- a SDL perl extension</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">GFX</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-Framerate.html">SDL::GFX::Framerate</a></td><td>- framerate calculating functions</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-Primitives.html">SDL::GFX::Primitives</a></td><td>- basic drawing functions</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-FPSManager.html">SDL::GFX::FPSManager</a></td><td>- data structure used by SDL::GFX::Framerate</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Image</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Image.html">SDL::Image</a></td><td>- Bindings for the SDL_Image library</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Mixer</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer.html">SDL::Mixer</a></td><td>- Sound and music functions</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Channels.html">SDL::Mixer::Channels</a></td><td>- SDL::Mixer channel functions and bindings</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Effects.html">SDL::Mixer::Effects</a></td><td>- SDL_Mixer sound effect functions and bindings</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Groups.html">SDL::Mixer::Groups</a></td><td>- SDL_Mixer groups functions and bindings</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Music.html">SDL::Mixer::Music</a></td><td>- SDL_Mixer music functions and bindings</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Samples.html">SDL::Mixer::Samples</a></td><td>- functions for loading sound samples</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-MixChunk.html">SDL::Mixer::MixChunk</a></td><td>- SDL Bindings for structure SDL_MixChunk</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-MixMusic.html">SDL::Mixer::MixMusic</a></td><td>- SDL Bindings for structure SDL_MixMusic</td></tr><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">TODO</strong></td></tr><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Core</strong></td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">MultiThread</strong></td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-MultiThread.html">SDL::MultiThread</a></td><td>- Bindings to the MultiThread category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-RWOps.html">SDL::RWOps</a></td><td>- SDL Bindings to SDL_RWOPs</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">GFX</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-BlitFunc.html">SDL::GFX::BlitFunc</a></td><td>- blitting functions</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-ImageFilter.html">SDL::GFX::ImageFilter</a></td><td>- image filtering functions</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-Rotozoom.html">SDL::GFX::Rotozoom</a></td><td>- rotation and zooming functions for surfaces</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Tutorials</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial.html">SDL::Tutorial</a></td><td>- introduction to Perl SDL</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Animation.html">SDL::Tutorial::Animation</a></td><td></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Images.html">SDL::Tutorial::Images</a></td><td></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-LunarLander.html">SDL::Tutorial::LunarLander</a></td><td>- a small tutorial on Perl SDL</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Pong.html">SDL::Tutorial::Pong</a></td><td>- Get started pong</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Tetris.html">SDL::Tutorial::Tetris</a></td><td>- Let's Make Tetris</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">UNCATEGORIZED</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Font.html">SDL::Font</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Game-Palette.html">SDL::Game::Palette</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-MPEG.html">SDL::MPEG</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Music.html">SDL::Music</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-OpenGL.html">SDL::OpenGL</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-SFont.html">SDL::SFont</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-SMPEG.html">SDL::SMPEG</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Sound.html">SDL::Sound</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-TTFont.html">SDL::TTFont</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Tool-Font.html">SDL::Tool::Font</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Tool-Graphic.html">SDL::Tool::Graphic</a></td><td></td></tr></table></div>
+<h1>Documentation (latest development branch)</h1><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Core</strong></td></tr><tr><td><img src="assets/SDL_thumb.png" alt="thumb" /></td><td><a href="SDL.html">SDL</a></td><td>- Simple DirectMedia Layer for Perl</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Time.html">SDL::Time</a></td><td>- a SDL perl extension for managing timers.</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Audio</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Audio.html">SDL::Audio</a></td><td>- SDL Bindings for Audio</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-AudioCVT.html">SDL::AudioCVT</a></td><td>- Audio Conversion Structure</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-AudioSpec.html">SDL::AudioSpec</a></td><td>- SDL Bindings for structure SDL::AudioSpec</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">CDROM</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-CDROM.html">SDL::CDROM</a></td><td>- SDL Bindings for the CDROM device</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-CD.html">SDL::CD</a></td><td>- SDL Bindings for structure SDL_CD</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-CDTrack.html">SDL::CDTrack</a></td><td>- SDL Bindings for structure SDL_CDTrack</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Events</strong></td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Events.html">SDL::Events</a></td><td>- Bindings to the Events Category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Event.html">SDL::Event</a></td><td>- General event structure</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Joystick</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Joystick.html">SDL::Joystick</a></td><td>- SDL Bindings for the Joystick device</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Mouse</strong></td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Mouse.html">SDL::Mouse</a></td><td>- SDL Bindings for the Mouse device</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Cursor.html">SDL::Cursor</a></td><td>- Mouse cursor structure</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Version.html">SDL::Version</a></td><td>- SDL Bindings for structure SDL_Version</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Video</strong></td></tr><tr><td><img src="assets/Video_thumb.png" alt="thumb" /></td><td><a href="SDL-Video.html">SDL::Video</a></td><td>- Bindings to the video category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Color.html">SDL::Color</a></td><td>- Format independent color description</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Overlay.html">SDL::Overlay</a></td><td>- YUV Video overlay</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Palette.html">SDL::Palette</a></td><td>- Color palette for 8-bit pixel formats </td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-PixelFormat.html">SDL::PixelFormat</a></td><td>- Stores surface format information</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Rect.html">SDL::Rect</a></td><td>- Defines a rectangular area</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Surface.html">SDL::Surface</a></td><td>- Graphic surface structure.</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-VideoInfo.html">SDL::VideoInfo</a></td><td>- Video Target Information </td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Cookbook</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Cookbook.html">SDL::Cookbook</a></td><td></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Cookbook-PDL.html">SDL::Cookbook::PDL</a></td><td></td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Extension</strong></td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-App.html">SDL::App</a></td><td>- a SDL perl extension</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">GFX</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-Framerate.html">SDL::GFX::Framerate</a></td><td>- framerate calculating functions</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-Primitives.html">SDL::GFX::Primitives</a></td><td>- basic drawing functions</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-FPSManager.html">SDL::GFX::FPSManager</a></td><td>- data structure used by SDL::GFX::Framerate</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Image</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Image.html">SDL::Image</a></td><td>- Bindings for the SDL_Image library</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Mixer</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer.html">SDL::Mixer</a></td><td>- Sound and music functions</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Channels.html">SDL::Mixer::Channels</a></td><td>- SDL::Mixer channel functions and bindings</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Effects.html">SDL::Mixer::Effects</a></td><td>- SDL_Mixer sound effect functions and bindings</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Groups.html">SDL::Mixer::Groups</a></td><td>- SDL_Mixer groups functions and bindings</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Music.html">SDL::Mixer::Music</a></td><td>- functions for music</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Samples.html">SDL::Mixer::Samples</a></td><td>- functions for loading sound samples</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-MixChunk.html">SDL::Mixer::MixChunk</a></td><td>- SDL Bindings for structure SDL_MixChunk</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-MixMusic.html">SDL::Mixer::MixMusic</a></td><td>- SDL Bindings for structure SDL_MixMusic</td></tr><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">TODO</strong></td></tr><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Core</strong></td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">MultiThread</strong></td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-MultiThread.html">SDL::MultiThread</a></td><td>- Bindings to the MultiThread category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-RWOps.html">SDL::RWOps</a></td><td>- SDL Bindings to SDL_RWOPs</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">GFX</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-BlitFunc.html">SDL::GFX::BlitFunc</a></td><td>- blitting functions</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-ImageFilter.html">SDL::GFX::ImageFilter</a></td><td>- image filtering functions</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-Rotozoom.html">SDL::GFX::Rotozoom</a></td><td>- rotation and zooming functions for surfaces</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Tutorials</strong></td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial.html">SDL::Tutorial</a></td><td>- introduction to Perl SDL</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Animation.html">SDL::Tutorial::Animation</a></td><td></td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Images.html">SDL::Tutorial::Images</a></td><td></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-LunarLander.html">SDL::Tutorial::LunarLander</a></td><td>- a small tutorial on Perl SDL</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Pong.html">SDL::Tutorial::Pong</a></td><td>- Get started pong</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Tetris.html">SDL::Tutorial::Tetris</a></td><td>- Let's Make Tetris</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">UNCATEGORIZED</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Font.html">SDL::Font</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Game-Palette.html">SDL::Game::Palette</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-MPEG.html">SDL::MPEG</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Music.html">SDL::Music</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-OpenGL.html">SDL::OpenGL</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-SFont.html">SDL::SFont</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-SMPEG.html">SDL::SMPEG</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Sound.html">SDL::Sound</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-TTFont.html">SDL::TTFont</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Tool-Font.html">SDL::Tool::Font</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Tool-Graphic.html">SDL::Tool::Graphic</a></td><td></td></tr></table></div>