Mercurial > sdl-ios-xcode
comparison src/audio/macosx/SDL_coreaudio.c @ 3636:e474a820daeb
Patched to compile.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Mon, 11 Jan 2010 07:33:56 +0000 |
parents | 023aa9699baa |
children | 8a46b3eab813 |
comparison
equal
deleted
inserted
replaced
3635:5ea5e4e6103f | 3636:e474a820daeb |
---|---|
256 AudioBuffer *abuf; | 256 AudioBuffer *abuf; |
257 UInt32 remaining, len; | 257 UInt32 remaining, len; |
258 void *ptr; | 258 void *ptr; |
259 UInt32 i; | 259 UInt32 i; |
260 | 260 |
261 /* Is there ever more than one buffer, and what do you do with it? */ | |
262 if (ioDataList->mNumberBuffers != 1) { | |
263 return noErr; | |
264 } | |
265 | |
266 /* Only do anything if audio is enabled and not paused */ | 261 /* Only do anything if audio is enabled and not paused */ |
267 if (!this->enabled || this->paused) { | 262 if (!this->enabled || this->paused) { |
268 for (i = 0; i < ioData->mNumberBuffers; i++) { | 263 for (i = 0; i < ioData->mNumberBuffers; i++) { |
269 abuf = &ioData->mBuffers[i]; | 264 abuf = &ioData->mBuffers[i]; |
270 SDL_memset(abuf->mData, this->spec.silence, abuf->mDataByteSize); | 265 SDL_memset(abuf->mData, this->spec.silence, abuf->mDataByteSize); |
283 for (i = 0; i < ioData->mNumberBuffers; i++) { | 278 for (i = 0; i < ioData->mNumberBuffers; i++) { |
284 abuf = &ioData->mBuffers[i]; | 279 abuf = &ioData->mBuffers[i]; |
285 remaining = abuf->mDataByteSize; | 280 remaining = abuf->mDataByteSize; |
286 ptr = abuf->mData; | 281 ptr = abuf->mData; |
287 while (remaining > 0) { | 282 while (remaining > 0) { |
288 if (bufferOffset >= bufferSize) { | 283 if (this->hidden->bufferOffset >= this->hidden->bufferSize) { |
289 /* Generate the data */ | 284 /* Generate the data */ |
290 SDL_memset(buffer, this->spec.silence, bufferSize); | 285 SDL_memset(this->hidden->buffer, this->spec.silence, |
286 this->hidden->bufferSize); | |
291 SDL_mutexP(this->mixer_lock); | 287 SDL_mutexP(this->mixer_lock); |
292 (*this->spec.callback)(this->spec.userdata, | 288 (*this->spec.callback)(this->spec.userdata, |
293 buffer, bufferSize); | 289 this->hidden->buffer, this->hidden->bufferSize); |
294 SDL_mutexV(this->mixer_lock); | 290 SDL_mutexV(this->mixer_lock); |
295 bufferOffset = 0; | 291 this->hidden->bufferOffset = 0; |
296 } | 292 } |
297 | 293 |
298 len = bufferSize - bufferOffset; | 294 len = this->hidden->bufferSize - this->hidden->bufferOffset; |
299 if (len > remaining) | 295 if (len > remaining) |
300 len = remaining; | 296 len = remaining; |
301 SDL_memcpy(ptr, (char *)buffer + bufferOffset, len); | 297 SDL_memcpy(ptr, (char *)this->hidden->buffer + |
298 this->hidden->bufferOffset, len); | |
302 ptr = (char *)ptr + len; | 299 ptr = (char *)ptr + len; |
303 remaining -= len; | 300 remaining -= len; |
304 bufferOffset += len; | 301 this->hidden->bufferOffset += len; |
305 } | 302 } |
306 } | 303 } |
307 | 304 |
308 return 0; | 305 return 0; |
309 } | 306 } |