tune the preloads a bit
[sdl_omap.git] / docs / html / guideaudioexamples.html
CommitLineData
e14743d1 1<HTML
2><HEAD
3><TITLE
4>Audio Examples</TITLE
5><META
6NAME="GENERATOR"
7CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
8"><LINK
9REL="HOME"
10TITLE="SDL Library Documentation"
11HREF="index.html"><LINK
12REL="UP"
13TITLE="Examples"
14HREF="guideexamples.html"><LINK
15REL="PREVIOUS"
16TITLE="Event Examples"
17HREF="guideeventexamples.html"><LINK
18REL="NEXT"
19TITLE="CDROM Examples"
20HREF="guidecdromexamples.html"></HEAD
21><BODY
22CLASS="SECT1"
23BGCOLOR="#FFF8DC"
24TEXT="#000000"
25LINK="#0000ee"
26VLINK="#551a8b"
27ALINK="#ff0000"
28><DIV
29CLASS="NAVHEADER"
30><TABLE
31SUMMARY="Header navigation table"
32WIDTH="100%"
33BORDER="0"
34CELLPADDING="0"
35CELLSPACING="0"
36><TR
37><TH
38COLSPAN="3"
39ALIGN="center"
40>SDL Library Documentation</TH
41></TR
42><TR
43><TD
44WIDTH="10%"
45ALIGN="left"
46VALIGN="bottom"
47><A
48HREF="guideeventexamples.html"
49ACCESSKEY="P"
50>Prev</A
51></TD
52><TD
53WIDTH="80%"
54ALIGN="center"
55VALIGN="bottom"
56>Chapter 4. Examples</TD
57><TD
58WIDTH="10%"
59ALIGN="right"
60VALIGN="bottom"
61><A
62HREF="guidecdromexamples.html"
63ACCESSKEY="N"
64>Next</A
65></TD
66></TR
67></TABLE
68><HR
69ALIGN="LEFT"
70WIDTH="100%"></DIV
71><DIV
72CLASS="SECT1"
73><H1
74CLASS="SECT1"
75><A
76NAME="GUIDEAUDIOEXAMPLES"
77></A
78>Audio Examples</H1
79><P
80></P
81><DIV
82CLASS="SECT2"
83><H2
84CLASS="SECT2"
85><A
86NAME="AEN382"
87></A
88>Opening the audio device</H2
89><P
90><PRE
91CLASS="PROGRAMLISTING"
92> SDL_AudioSpec wanted;
93 extern void fill_audio(void *udata, Uint8 *stream, int len);
94
95 /* Set the audio format */
96 wanted.freq = 22050;
97 wanted.format = AUDIO_S16;
98 wanted.channels = 2; /* 1 = mono, 2 = stereo */
99 wanted.samples = 1024; /* Good low-latency value for callback */
100 wanted.callback = fill_audio;
101 wanted.userdata = NULL;
102
103 /* Open the audio device, forcing the desired format */
104 if ( SDL_OpenAudio(&#38;wanted, NULL) &#60; 0 ) {
105 fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError());
106 return(-1);
107 }
108 return(0);</PRE
109></P
110></DIV
111><DIV
112CLASS="SECT2"
113><H2
114CLASS="SECT2"
115><A
116NAME="AEN386"
117></A
118>Playing audio</H2
119><P
120><PRE
121CLASS="PROGRAMLISTING"
122> static Uint8 *audio_chunk;
123 static Uint32 audio_len;
124 static Uint8 *audio_pos;
125
126 /* The audio function callback takes the following parameters:
127 stream: A pointer to the audio buffer to be filled
128 len: The length (in bytes) of the audio buffer
129 */
130 void fill_audio(void *udata, Uint8 *stream, int len)
131 {
132 /* Only play if we have data left */
133 if ( audio_len == 0 )
134 return;
135
136 /* Mix as much data as possible */
137 len = ( len &#62; audio_len ? audio_len : len );
138 SDL_MixAudio(stream, audio_pos, len, SDL_MIX_MAXVOLUME);
139 audio_pos += len;
140 audio_len -= len;
141 }
142
143 /* Load the audio data ... */
144
145 ;;;;;
146
147 audio_pos = audio_chunk;
148
149 /* Let the callback function play the audio chunk */
150 SDL_PauseAudio(0);
151
152 /* Do some processing */
153
154 ;;;;;
155
156 /* Wait for sound to complete */
157 while ( audio_len &#62; 0 ) {
158 SDL_Delay(100); /* Sleep 1/10 second */
159 }
160 SDL_CloseAudio();</PRE
161></P
162></DIV
163></DIV
164><DIV
165CLASS="NAVFOOTER"
166><HR
167ALIGN="LEFT"
168WIDTH="100%"><TABLE
169SUMMARY="Footer navigation table"
170WIDTH="100%"
171BORDER="0"
172CELLPADDING="0"
173CELLSPACING="0"
174><TR
175><TD
176WIDTH="33%"
177ALIGN="left"
178VALIGN="top"
179><A
180HREF="guideeventexamples.html"
181ACCESSKEY="P"
182>Prev</A
183></TD
184><TD
185WIDTH="34%"
186ALIGN="center"
187VALIGN="top"
188><A
189HREF="index.html"
190ACCESSKEY="H"
191>Home</A
192></TD
193><TD
194WIDTH="33%"
195ALIGN="right"
196VALIGN="top"
197><A
198HREF="guidecdromexamples.html"
199ACCESSKEY="N"
200>Next</A
201></TD
202></TR
203><TR
204><TD
205WIDTH="33%"
206ALIGN="left"
207VALIGN="top"
208>Event Examples</TD
209><TD
210WIDTH="34%"
211ALIGN="center"
212VALIGN="top"
213><A
214HREF="guideexamples.html"
215ACCESSKEY="U"
216>Up</A
217></TD
218><TD
219WIDTH="33%"
220ALIGN="right"
221VALIGN="top"
222>CDROM Examples</TD
223></TR
224></TABLE
225></DIV
226></BODY
227></HTML
228>