/[projet1]/public/pc/emulators/caloric/libs_windows/SDL/docs/html/guideaudioexamples.html
Defence Force logotype

Annotation of /public/pc/emulators/caloric/libs_windows/SDL/docs/html/guideaudioexamples.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 81 - (hide annotations)
Wed May 27 20:33:03 2009 UTC (10 years, 4 months ago) by Jede
File MIME type: text/html
File size: 3795 byte(s)
Ajouts des libs windows
1 Jede 81 <HTML
2     ><HEAD
3     ><TITLE
4     >Audio Examples</TITLE
5     ><META
6     NAME="GENERATOR"
7     CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
8     "><LINK
9     REL="HOME"
10     TITLE="SDL Library Documentation"
11     HREF="index.html"><LINK
12     REL="UP"
13     TITLE="Examples"
14     HREF="guideexamples.html"><LINK
15     REL="PREVIOUS"
16     TITLE="Event Examples"
17     HREF="guideeventexamples.html"><LINK
18     REL="NEXT"
19     TITLE="CDROM Examples"
20     HREF="guidecdromexamples.html"></HEAD
21     ><BODY
22     CLASS="SECT1"
23     BGCOLOR="#FFF8DC"
24     TEXT="#000000"
25     LINK="#0000ee"
26     VLINK="#551a8b"
27     ALINK="#ff0000"
28     ><DIV
29     CLASS="NAVHEADER"
30     ><TABLE
31     SUMMARY="Header navigation table"
32     WIDTH="100%"
33     BORDER="0"
34     CELLPADDING="0"
35     CELLSPACING="0"
36     ><TR
37     ><TH
38     COLSPAN="3"
39     ALIGN="center"
40     >SDL Library Documentation</TH
41     ></TR
42     ><TR
43     ><TD
44     WIDTH="10%"
45     ALIGN="left"
46     VALIGN="bottom"
47     ><A
48     HREF="guideeventexamples.html"
49     ACCESSKEY="P"
50     >Prev</A
51     ></TD
52     ><TD
53     WIDTH="80%"
54     ALIGN="center"
55     VALIGN="bottom"
56     >Chapter 4. Examples</TD
57     ><TD
58     WIDTH="10%"
59     ALIGN="right"
60     VALIGN="bottom"
61     ><A
62     HREF="guidecdromexamples.html"
63     ACCESSKEY="N"
64     >Next</A
65     ></TD
66     ></TR
67     ></TABLE
68     ><HR
69     ALIGN="LEFT"
70     WIDTH="100%"></DIV
71     ><DIV
72     CLASS="SECT1"
73     ><H1
74     CLASS="SECT1"
75     ><A
76     NAME="GUIDEAUDIOEXAMPLES"
77     ></A
78     >Audio Examples</H1
79     ><P
80     ></P
81     ><DIV
82     CLASS="SECT2"
83     ><H2
84     CLASS="SECT2"
85     ><A
86     NAME="AEN382"
87     ></A
88     >Opening the audio device</H2
89     ><P
90     ><PRE
91     CLASS="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
112     CLASS="SECT2"
113     ><H2
114     CLASS="SECT2"
115     ><A
116     NAME="AEN386"
117     ></A
118     >Playing audio</H2
119     ><P
120     ><PRE
121     CLASS="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
165     CLASS="NAVFOOTER"
166     ><HR
167     ALIGN="LEFT"
168     WIDTH="100%"><TABLE
169     SUMMARY="Footer navigation table"
170     WIDTH="100%"
171     BORDER="0"
172     CELLPADDING="0"
173     CELLSPACING="0"
174     ><TR
175     ><TD
176     WIDTH="33%"
177     ALIGN="left"
178     VALIGN="top"
179     ><A
180     HREF="guideeventexamples.html"
181     ACCESSKEY="P"
182     >Prev</A
183     ></TD
184     ><TD
185     WIDTH="34%"
186     ALIGN="center"
187     VALIGN="top"
188     ><A
189     HREF="index.html"
190     ACCESSKEY="H"
191     >Home</A
192     ></TD
193     ><TD
194     WIDTH="33%"
195     ALIGN="right"
196     VALIGN="top"
197     ><A
198     HREF="guidecdromexamples.html"
199     ACCESSKEY="N"
200     >Next</A
201     ></TD
202     ></TR
203     ><TR
204     ><TD
205     WIDTH="33%"
206     ALIGN="left"
207     VALIGN="top"
208     >Event Examples</TD
209     ><TD
210     WIDTH="34%"
211     ALIGN="center"
212     VALIGN="top"
213     ><A
214     HREF="guideexamples.html"
215     ACCESSKEY="U"
216     >Up</A
217     ></TD
218     ><TD
219     WIDTH="33%"
220     ALIGN="right"
221     VALIGN="top"
222     >CDROM Examples</TD
223     ></TR
224     ></TABLE
225     ></DIV
226     ></BODY
227     ></HTML
228     >

  ViewVC Help
Powered by ViewVC 1.1.26