Lines Matching refs:audio
127 SDL_AudioDevice *audio = (SDL_AudioDevice *)audiop; in SDL_RunAudio() local
135 if ( audio->ThreadInit ) { in SDL_RunAudio()
136 audio->ThreadInit(audio); in SDL_RunAudio()
138 audio->threadid = SDL_ThreadID(); in SDL_RunAudio()
141 fill = audio->spec.callback; in SDL_RunAudio()
142 udata = audio->spec.userdata; in SDL_RunAudio()
144 if ( audio->convert.needed ) { in SDL_RunAudio()
145 if ( audio->convert.src_format == AUDIO_U8 ) { in SDL_RunAudio()
150 stream_len = audio->convert.len; in SDL_RunAudio()
152 silence = audio->spec.silence; in SDL_RunAudio()
153 stream_len = audio->spec.size; in SDL_RunAudio()
178 while ( audio->enabled ) { in SDL_RunAudio()
181 if ( audio->convert.needed ) { in SDL_RunAudio()
182 if ( audio->convert.buf ) { in SDL_RunAudio()
183 stream = audio->convert.buf; in SDL_RunAudio()
188 stream = audio->GetAudioBuf(audio); in SDL_RunAudio()
190 stream = audio->fake_stream; in SDL_RunAudio()
196 if ( ! audio->paused ) { in SDL_RunAudio()
197 SDL_mutexP(audio->mixer_lock); in SDL_RunAudio()
199 SDL_mutexV(audio->mixer_lock); in SDL_RunAudio()
203 if ( audio->convert.needed ) { in SDL_RunAudio()
204 SDL_ConvertAudio(&audio->convert); in SDL_RunAudio()
205 stream = audio->GetAudioBuf(audio); in SDL_RunAudio()
207 stream = audio->fake_stream; in SDL_RunAudio()
209 SDL_memcpy(stream, audio->convert.buf, in SDL_RunAudio()
210 audio->convert.len_cvt); in SDL_RunAudio()
214 if ( stream != audio->fake_stream ) { in SDL_RunAudio()
215 audio->PlayAudio(audio); in SDL_RunAudio()
219 if ( stream == audio->fake_stream ) { in SDL_RunAudio()
220 SDL_Delay((audio->spec.samples*1000)/audio->spec.freq); in SDL_RunAudio()
222 audio->WaitAudio(audio); in SDL_RunAudio()
227 if ( audio->WaitDone ) { in SDL_RunAudio()
228 audio->WaitDone(audio); in SDL_RunAudio()
239 static void SDL_LockAudio_Default(SDL_AudioDevice *audio) in SDL_LockAudio_Default() argument
241 if ( audio->thread && (SDL_ThreadID() == audio->threadid) ) { in SDL_LockAudio_Default()
244 SDL_mutexP(audio->mixer_lock); in SDL_LockAudio_Default()
247 static void SDL_UnlockAudio_Default(SDL_AudioDevice *audio) in SDL_UnlockAudio_Default() argument
249 if ( audio->thread && (SDL_ThreadID() == audio->threadid) ) { in SDL_UnlockAudio_Default()
252 SDL_mutexV(audio->mixer_lock); in SDL_UnlockAudio_Default()
302 SDL_AudioDevice *audio; in SDL_AudioInit() local
311 audio = NULL; in SDL_AudioInit()
331 audio = bootstrap[i]->create(0); in SDL_AudioInit()
343 if ( audio == NULL ) { in SDL_AudioInit()
353 audio=bootstrap[i]->create(idx); in SDL_AudioInit()
361 audio = bootstrap[i]->create(idx); in SDL_AudioInit()
362 if ( audio != NULL ) { in SDL_AudioInit()
368 if ( audio == NULL ) { in SDL_AudioInit()
377 current_audio = audio; in SDL_AudioInit()
399 SDL_AudioDevice *audio; in SDL_OpenAudio() local
409 audio = current_audio; in SDL_OpenAudio()
411 if (audio->opened) { in SDL_OpenAudio()
481 audio->mixer_lock = SDL_CreateMutex(); in SDL_OpenAudio()
482 if ( audio->mixer_lock == NULL ) { in SDL_OpenAudio()
493 SDL_memcpy(&audio->spec, desired, sizeof(audio->spec)); in SDL_OpenAudio()
494 audio->convert.needed = 0; in SDL_OpenAudio()
495 audio->enabled = 1; in SDL_OpenAudio()
496 audio->paused = 1; in SDL_OpenAudio()
498 audio->opened = audio->OpenAudio(audio, &audio->spec)+1; in SDL_OpenAudio()
500 if ( ! audio->opened ) { in SDL_OpenAudio()
506 if ( audio->spec.samples != desired->samples ) { in SDL_OpenAudio()
507 desired->samples = audio->spec.samples; in SDL_OpenAudio()
512 audio->fake_stream = SDL_AllocAudioMem(audio->spec.size); in SDL_OpenAudio()
513 if ( audio->fake_stream == NULL ) { in SDL_OpenAudio()
521 SDL_memcpy(obtained, &audio->spec, sizeof(audio->spec)); in SDL_OpenAudio()
522 } else if ( desired->freq != audio->spec.freq || in SDL_OpenAudio()
523 desired->format != audio->spec.format || in SDL_OpenAudio()
524 desired->channels != audio->spec.channels ) { in SDL_OpenAudio()
526 if ( SDL_BuildAudioCVT(&audio->convert, in SDL_OpenAudio()
529 audio->spec.format, audio->spec.channels, in SDL_OpenAudio()
530 audio->spec.freq) < 0 ) { in SDL_OpenAudio()
534 if ( audio->convert.needed ) { in SDL_OpenAudio()
535 audio->convert.len = (int) ( ((double) audio->spec.size) / in SDL_OpenAudio()
536 audio->convert.len_ratio ); in SDL_OpenAudio()
537 audio->convert.buf =(Uint8 *)SDL_AllocAudioMem( in SDL_OpenAudio()
538 audio->convert.len*audio->convert.len_mult); in SDL_OpenAudio()
539 if ( audio->convert.buf == NULL ) { in SDL_OpenAudio()
548 switch (audio->opened) { in SDL_OpenAudio()
553 audio->thread = SDL_CreateThread(SDL_RunAudio, audio, NULL, NULL); in SDL_OpenAudio()
555 audio->thread = SDL_CreateThread(SDL_RunAudio, audio); in SDL_OpenAudio()
557 if ( audio->thread == NULL ) { in SDL_OpenAudio()
574 SDL_AudioDevice *audio = current_audio; in SDL_GetAudioStatus() local
578 if ( audio && audio->enabled ) { in SDL_GetAudioStatus()
579 if ( audio->paused ) { in SDL_GetAudioStatus()
590 SDL_AudioDevice *audio = current_audio; in SDL_PauseAudio() local
592 if ( audio ) { in SDL_PauseAudio()
593 audio->paused = pause_on; in SDL_PauseAudio()
599 SDL_AudioDevice *audio = current_audio; in SDL_LockAudio() local
602 if ( audio && audio->LockAudio ) { in SDL_LockAudio()
603 audio->LockAudio(audio); in SDL_LockAudio()
609 SDL_AudioDevice *audio = current_audio; in SDL_UnlockAudio() local
612 if ( audio && audio->UnlockAudio ) { in SDL_UnlockAudio()
613 audio->UnlockAudio(audio); in SDL_UnlockAudio()
624 SDL_AudioDevice *audio = current_audio; in SDL_AudioQuit() local
626 if ( audio ) { in SDL_AudioQuit()
627 audio->enabled = 0; in SDL_AudioQuit()
628 if ( audio->thread != NULL ) { in SDL_AudioQuit()
629 SDL_WaitThread(audio->thread, NULL); in SDL_AudioQuit()
631 if ( audio->mixer_lock != NULL ) { in SDL_AudioQuit()
632 SDL_DestroyMutex(audio->mixer_lock); in SDL_AudioQuit()
634 if ( audio->fake_stream != NULL ) { in SDL_AudioQuit()
635 SDL_FreeAudioMem(audio->fake_stream); in SDL_AudioQuit()
637 if ( audio->convert.needed ) { in SDL_AudioQuit()
638 SDL_FreeAudioMem(audio->convert.buf); in SDL_AudioQuit()
641 if ( audio->opened ) { in SDL_AudioQuit()
642 audio->CloseAudio(audio); in SDL_AudioQuit()
643 audio->opened = 0; in SDL_AudioQuit()
646 audio->free(audio); in SDL_AudioQuit()