Mercurial > sdl-ios-xcode
annotate docs/html/sdlsemwait.html @ 3880:74e828c64315 SDL-1.2
Fixed bug #292
I might be on crack here.
It looks like SDL_ConvertMono() in src/audio/SDL_audiocvt.c adds the left and
right channels of a stereo stream together, and clamps the new mono channel if
it would overflow.
Shouldn't it be dividing by 2 to average the two sample points instead of
clamping? Otherwise the mono sample point's volume doubles in the conversion.
This would also make the conversion faster, as it replaces two branches per
sample frame with a bitwise shift.
--ryan.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 24 Sep 2006 15:45:37 +0000 |
parents | 355632dca928 |
children |
rev | line source |
---|---|
0 | 1 <HTML |
2 ><HEAD | |
3 ><TITLE | |
4 >SDL_SemWait</TITLE | |
5 ><META | |
6 NAME="GENERATOR" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ |
0 | 8 "><LINK |
9 REL="HOME" | |
10 TITLE="SDL Library Documentation" | |
11 HREF="index.html"><LINK | |
12 REL="UP" | |
13 TITLE="Multi-threaded Programming" | |
14 HREF="thread.html"><LINK | |
15 REL="PREVIOUS" | |
16 TITLE="SDL_DestroySemaphore" | |
17 HREF="sdldestroysemaphore.html"><LINK | |
18 REL="NEXT" | |
19 TITLE="SDL_SemTryWait" | |
20 HREF="sdlsemtrywait.html"></HEAD | |
21 ><BODY | |
22 CLASS="REFENTRY" | |
23 BGCOLOR="#FFF8DC" | |
24 TEXT="#000000" | |
25 LINK="#0000ee" | |
26 VLINK="#551a8b" | |
27 ALINK="#ff0000" | |
28 ><DIV | |
29 CLASS="NAVHEADER" | |
30 ><TABLE | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
31 SUMMARY="Header navigation table" |
0 | 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="sdldestroysemaphore.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
49 ACCESSKEY="P" |
0 | 50 >Prev</A |
51 ></TD | |
52 ><TD | |
53 WIDTH="80%" | |
54 ALIGN="center" | |
55 VALIGN="bottom" | |
56 ></TD | |
57 ><TD | |
58 WIDTH="10%" | |
59 ALIGN="right" | |
60 VALIGN="bottom" | |
61 ><A | |
62 HREF="sdlsemtrywait.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
63 ACCESSKEY="N" |
0 | 64 >Next</A |
65 ></TD | |
66 ></TR | |
67 ></TABLE | |
68 ><HR | |
69 ALIGN="LEFT" | |
70 WIDTH="100%"></DIV | |
71 ><H1 | |
72 ><A | |
73 NAME="SDLSEMWAIT" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
74 ></A |
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
75 >SDL_SemWait</H1 |
0 | 76 ><DIV |
77 CLASS="REFNAMEDIV" | |
78 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
79 NAME="AEN8023" |
0 | 80 ></A |
81 ><H2 | |
82 >Name</H2 | |
83 >SDL_SemWait -- Lock a semaphore and suspend the thread if the semaphore value is zero.</DIV | |
84 ><DIV | |
85 CLASS="REFSYNOPSISDIV" | |
86 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
87 NAME="AEN8026" |
0 | 88 ></A |
89 ><H2 | |
90 >Synopsis</H2 | |
91 ><DIV | |
92 CLASS="FUNCSYNOPSIS" | |
93 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
94 NAME="AEN8027" |
0 | 95 ></A |
96 ><P | |
97 ></P | |
98 ><PRE | |
99 CLASS="FUNCSYNOPSISINFO" | |
100 >#include "SDL.h" | |
101 #include "SDL_thread.h"</PRE | |
102 ><P | |
103 ><CODE | |
104 ><CODE | |
105 CLASS="FUNCDEF" | |
106 >int <B | |
107 CLASS="FSFUNC" | |
108 >SDL_SemWait</B | |
109 ></CODE | |
110 >(SDL_sem *sem);</CODE | |
111 ></P | |
112 ><P | |
113 ></P | |
114 ></DIV | |
115 ></DIV | |
116 ><DIV | |
117 CLASS="REFSECT1" | |
118 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
119 NAME="AEN8033" |
0 | 120 ></A |
121 ><H2 | |
122 >Description</H2 | |
123 ><P | |
124 ><TT | |
125 CLASS="FUNCTION" | |
126 >SDL_SemWait()</TT | |
127 > suspends the calling thread until either | |
128 the semaphore pointed to by <TT | |
129 CLASS="PARAMETER" | |
130 ><I | |
131 >sem</I | |
132 ></TT | |
133 > has a positive value, | |
134 the call is interrupted by a signal or error. If the call is successful it | |
135 will atomically decrement the semaphore value.</P | |
136 ><P | |
137 >After <TT | |
138 CLASS="FUNCTION" | |
139 >SDL_SemWait()</TT | |
140 > is successful, the semaphore | |
141 can be released and its count atomically incremented by a successful call to | |
142 <A | |
143 HREF="sdlsempost.html" | |
144 >SDL_SemPost</A | |
145 >.</P | |
146 ></DIV | |
147 ><DIV | |
148 CLASS="REFSECT1" | |
149 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
150 NAME="AEN8041" |
0 | 151 ></A |
152 ><H2 | |
153 >Return Value</H2 | |
154 ><P | |
155 >Returns <SPAN | |
156 CLASS="RETURNVALUE" | |
157 >0</SPAN | |
158 > if successful or | |
159 <SPAN | |
160 CLASS="RETURNVALUE" | |
161 >-1</SPAN | |
162 > if there was an error (leaving the semaphore unchanged).</P | |
163 ></DIV | |
164 ><DIV | |
165 CLASS="REFSECT1" | |
166 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
167 NAME="AEN8046" |
0 | 168 ></A |
169 ><H2 | |
170 >Examples</H2 | |
171 ><P | |
172 ><PRE | |
173 CLASS="PROGRAMLISTING" | |
174 >if (SDL_SemWait(my_sem) == -1) { | |
175 return WAIT_FAILED; | |
176 } | |
177 | |
178 ... | |
179 | |
180 SDL_SemPost(my_sem);</PRE | |
181 ></P | |
182 ></DIV | |
183 ><DIV | |
184 CLASS="REFSECT1" | |
185 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
186 NAME="AEN8050" |
0 | 187 ></A |
188 ><H2 | |
189 >See Also</H2 | |
190 ><P | |
191 ><A | |
192 HREF="sdlcreatesemaphore.html" | |
193 ><TT | |
194 CLASS="FUNCTION" | |
195 >SDL_CreateSemaphore</TT | |
196 ></A | |
197 >, | |
198 <A | |
199 HREF="sdldestroysemaphore.html" | |
200 ><TT | |
201 CLASS="FUNCTION" | |
202 >SDL_DestroySemaphore</TT | |
203 ></A | |
204 >, | |
205 <A | |
206 HREF="sdlsemtrywait.html" | |
207 ><TT | |
208 CLASS="FUNCTION" | |
209 >SDL_SemTryWait</TT | |
210 ></A | |
211 >, | |
212 <A | |
213 HREF="sdlsemwaittimeout.html" | |
214 ><TT | |
215 CLASS="FUNCTION" | |
216 >SDL_SemWaitTimeout</TT | |
217 ></A | |
218 >, | |
219 <A | |
220 HREF="sdlsempost.html" | |
221 ><TT | |
222 CLASS="FUNCTION" | |
223 >SDL_SemPost</TT | |
224 ></A | |
225 >, | |
226 <A | |
227 HREF="sdlsemvalue.html" | |
228 ><TT | |
229 CLASS="FUNCTION" | |
230 >SDL_SemValue</TT | |
231 ></A | |
232 ></P | |
233 ></DIV | |
234 ><DIV | |
235 CLASS="NAVFOOTER" | |
236 ><HR | |
237 ALIGN="LEFT" | |
238 WIDTH="100%"><TABLE | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
239 SUMMARY="Footer navigation table" |
0 | 240 WIDTH="100%" |
241 BORDER="0" | |
242 CELLPADDING="0" | |
243 CELLSPACING="0" | |
244 ><TR | |
245 ><TD | |
246 WIDTH="33%" | |
247 ALIGN="left" | |
248 VALIGN="top" | |
249 ><A | |
250 HREF="sdldestroysemaphore.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
251 ACCESSKEY="P" |
0 | 252 >Prev</A |
253 ></TD | |
254 ><TD | |
255 WIDTH="34%" | |
256 ALIGN="center" | |
257 VALIGN="top" | |
258 ><A | |
259 HREF="index.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
260 ACCESSKEY="H" |
0 | 261 >Home</A |
262 ></TD | |
263 ><TD | |
264 WIDTH="33%" | |
265 ALIGN="right" | |
266 VALIGN="top" | |
267 ><A | |
268 HREF="sdlsemtrywait.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
269 ACCESSKEY="N" |
0 | 270 >Next</A |
271 ></TD | |
272 ></TR | |
273 ><TR | |
274 ><TD | |
275 WIDTH="33%" | |
276 ALIGN="left" | |
277 VALIGN="top" | |
278 >SDL_DestroySemaphore</TD | |
279 ><TD | |
280 WIDTH="34%" | |
281 ALIGN="center" | |
282 VALIGN="top" | |
283 ><A | |
284 HREF="thread.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
285 ACCESSKEY="U" |
0 | 286 >Up</A |
287 ></TD | |
288 ><TD | |
289 WIDTH="33%" | |
290 ALIGN="right" | |
291 VALIGN="top" | |
292 >SDL_SemTryWait</TD | |
293 ></TR | |
294 ></TABLE | |
295 ></DIV | |
296 ></BODY | |
297 ></HTML | |
298 > |