3 <h3 id="TOP">Index</h3>
5 <ul><li><a href="#NAME">NAME</a></li>
6 <li><a href="#CATEGORY">CATEGORY</a></li>
7 <li><a href="#CONSTANTS">CONSTANTS</a></li>
8 <li><a href="#DESCRIPTION">DESCRIPTION</a></li>
9 <li><a href="#METHODS">METHODS</a>
10 <ul><li><a href="#init">init</a></li>
11 <li><a href="#quit">quit</a></li>
12 <li><a href="#linked_version">linked_version</a></li>
13 <li><a href="#open_audio">open_audio</a></li>
14 <li><a href="#close_audio">close_audio</a></li>
15 <li><a href="#query_spec">query_spec</a></li>
18 <li><a href="#SEE_ALSO">SEE ALSO</a></li>
19 <li><a href="#AUTHORS">AUTHORS</a>
24 <h1 id="NAME">NAME</h1><p><a href="#TOP" class="toplink">Top</a></p>
25 <div id="NAME_CONTENT">
26 <p>SDL::Mixer - Sound and music functions</p>
29 <h1 id="CATEGORY">CATEGORY</h1><p><a href="#TOP" class="toplink">Top</a></p>
30 <div id="CATEGORY_CONTENT">
34 <h1 id="CONSTANTS">CONSTANTS</h1><p><a href="#TOP" class="toplink">Top</a></p>
35 <div id="CONSTANTS_CONTENT">
36 <p>The constants are exported by default. You can avoid this by doing:</p>
37 <pre> use SDL::Mixer ();
40 <p>and access them directly:</p>
41 <pre> SDL::Mixer::MIX_DEFAULT_FREQUENCY;
44 <p>or by choosing the export tags below:</p>
45 <p>Export tag: ':init'</p>
52 <p>Export tag: ':defaults'</p>
61 <p>Export tag: ':fading'</p>
67 <p>Export tag: ':type'</p>
79 <p>Export tag: ':format'</p>
92 <p>Export tag: ':status'</p>
93 <pre> SDL_AUDIO_STOPPED
100 <h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
101 <div id="DESCRIPTION_CONTENT">
102 <p>SDL::Mixer allows you to enable sound, alter music volume settings, and lets you play, pause and resume, as well as fading the sound and music
106 <h1 id="METHODS">METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p>
107 <div id="METHODS_CONTENT">
110 <h2 id="init">init</h2>
111 <div id="init_CONTENT">
112 <pre> my $init_flags = SDL::Mixer::init( $flags );
115 <p>Loads dynamic libraries and prepares them for use. Flags should be one or more flags from init flags OR'd together.
116 It returns the flags successfully initialized, or 0 on failure.</p>
118 <pre> use SDL::Mixer;
120 my $init_flags = SDL::Mixer::init( MIX_INIT_MP3 | MIX_INIT_MOD | MIX_INIT_FLAC | MIX_INIT_OGG );
122 print("We have MP3 support!\n") if $init_flags & MIX_INIT_MP3;
123 print("We have MOD support!\n") if $init_flags & MIX_INIT_MOD;
124 print("We have FLAC support!\n") if $init_flags & MIX_INIT_FLAC;
125 print("We have OGG support!\n") if $init_flags & MIX_INIT_OGG;
130 <li>MIX_INIT_MP3 </li>
131 <li>MIX_INIT_MOD </li>
132 <li>MIX_INIT_FLAC </li>
133 <li>MIX_INIT_OGG</li>
136 <p><strong>Note</strong>: Only available for SDL_mixer >= 1.2.10</p>
139 <h2 id="quit">quit</h2>
140 <div id="quit_CONTENT">
141 <pre> SDL::Mixer::quit();
144 <p>This function unloads the liraries previously loaded with <a href="#init">init()</a>.</p>
145 <p><strong>Note</strong>: Only available for SDL_mixer >= 1.2.10</p>
148 <h2 id="linked_version">linked_version</h2>
149 <div id="linked_version_CONTENT">
150 <pre> $version = SDL::Mixer::linked_version();
153 <p><code>linked_version</code> gives you the major-, minor-, and patchlevel for SDL_mixer. This way you can check if e.g. <a href="#init">init()</a> and <a href="#quit">quit()</a>
156 <pre> use SDL::Mixer;
159 my $version = SDL::Mixer::linked_version();
161 printf("%d.%d.%d\n", $version->major, $version->minor, $version->patch); # prints "1.2.8" for me
166 <h2 id="open_audio">open_audio</h2>
167 <div id="open_audio_CONTENT">
168 <pre> my $audio_opened = SDL::Mixer::open_audio( $frequency, $format, $channels, $chunksize );
171 <p><code>open_audio</code> will initialize SDL_mixer if it is not yet initialized, see note. SDL_mixer may not be able to provide the exact specifications
172 your provided, however it will automatically translate between the expected format and the real one. You can retrieve the real format using
173 <a href="http://search.cpan.org/perldoc?query_spec">query_spec</a>. </p>
174 <p>Returns 0 on success, -1 on error.</p>
175 <p><strong>Note</strong>: You must not use <code>AUDIO_S16</code>, <code>AUDIO_U16</code>, <code>AUDIO_S16LSB</code>, or <code>AUDIO_U16LSB.</code> They are not portable, and SDL will not return an
176 error code when they fail. The result will be a horrible staticy noise. You can usually use <code>AUDIO_S16SYS</code>, though not always. Future versions
177 of SDL should take this parameter only as a hint, then read back the value that the OS (for example, OSS or ALSA) has chosen to use in case the
178 desired audio type is not supported. </p>
179 <p><strong>Note</strong>: When already initialized, this function will not re-initialize SDL_mixer, nor fail. It will merely increment the number of times
180 <a href="/SDL-Mixer.html#close_audio">SDL::Mixer::close_audio</a> must be called to actually get it to uninitialize. This serves as a very simplistic method for multiple application
181 components to use SDL_mixer without necessitating a great deal of inter-component awareness. Be warned however that in such a situation, the
182 latest components to initialize SDL_mixer will probably not get the SDL_mixer settings they're expecting. </p>
187 printf("Error initializing SDL_mixer: %s\n", SDL::get_error()) unless SDL::Mixer::open_audio(44100, AUDIO_S16, 2, 1024) == 0;
192 <h2 id="close_audio">close_audio</h2>
193 <div id="close_audio_CONTENT">
194 <pre> SDL::Mixer::close_audio();
197 <p>Close the mixer and halting all playing audio. This function does not return anything.</p>
200 <h2 id="query_spec">query_spec</h2>
201 <div id="query_spec_CONTENT">
202 <pre> my @query_spec = @{ SDL::Mixer::query_spec() };
205 <p>Find out what the actual audio device parameters are.
206 This function returns 1 as first array element (status) if the audio has been opened, 0 otherwise.</p>
208 <pre> use SDL::Mixer;
210 my ($status, $freq, $format, $channels) = @{ SDL::Mixer::query_spec() };
212 printf("%s, %s, %s, %s\n", $status, $freq, $format, $channels);
217 <h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
218 <div id="SEE_ALSO_CONTENT">
219 <p><a href="http://search.cpan.org/perldoc?perl">perl</a>, <a href="SDL-Mixer-Channels.html">SDL::Mixer::Channels</a>, <a href="SDL-Mixer-Effects.html">SDL::Mixer::Effects</a>, <a href="SDL-Mixer-Groups.html">SDL::Mixer::Groups</a>, <a href="SDL-Mixer-Music.html">SDL::Mixer::Music</a>.</p>
222 <h1 id="AUTHORS">AUTHORS</h1><p><a href="#TOP" class="toplink">Top</a></p>
223 <div id="AUTHORS_CONTENT">
224 <p>See <a href="/SDL.html#AUTHORS">/SDL.html#AUTHORS</a>.</p>