Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Re-added MacOS X audio locking
  • Loading branch information
slouken committed Apr 13, 2002
1 parent 31e9038 commit 362d5d9
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions src/audio/macrom/SDL_romaudio.c
Expand Up @@ -91,6 +91,10 @@ static SDL_AudioDevice *Audio_CreateDevice(int devindex)
this->UnlockAudio = Mac_UnlockAudio;
this->free = Audio_DeleteDevice;

#ifdef MACOSX /* MacOS X uses threaded audio, so normal thread code is okay */
this->LockAudio = NULL;
this->UnlockAudio = NULL;
#endif
return this;
}

Expand All @@ -100,7 +104,7 @@ AudioBootStrap SNDMGR_bootstrap = {
};

#if defined(TARGET_API_MAC_CARBON) || defined(USE_RYANS_SOUNDCODE)
/* FIXME: Does this work correctly on MacOS X as well? */
/* This works correctly on MacOS X */

#pragma options align=power

Expand All @@ -115,19 +119,23 @@ static volatile Uint32 fill_me = 0;
static void mix_buffer(SDL_AudioDevice *audio, UInt8 *buffer)
{
if ( ! audio->paused ) {
#ifdef MACOSX
SDL_mutexP(audio->mixer_lock);
#endif
if ( audio->convert.needed ) {
audio->spec.callback(audio->spec.userdata,
audio->spec.callback(audio->spec.userdata,
(Uint8 *)audio->convert.buf,audio->convert.len);
SDL_ConvertAudio(&audio->convert);
#if 0
SDL_ConvertAudio(&audio->convert);
if ( audio->convert.len_cvt != audio->spec.size ) {
/* Uh oh... probably crashes here; */
/* Uh oh... probably crashes here */;
}
#endif
memcpy(buffer, audio->convert.buf, audio->convert.len_cvt);
} else {
audio->spec.callback(audio->spec.userdata, buffer, audio->spec.size);
}
#ifdef MACOSX
SDL_mutexV(audio->mixer_lock);
#endif
}

DecrementAtomic((SInt32 *) &need_to_mix);
Expand Down

0 comments on commit 362d5d9

Please sign in to comment.