Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Added deinitialize hook.
Browse files Browse the repository at this point in the history
  • Loading branch information
icculus committed Oct 3, 2006
1 parent 2149666 commit a42a3b2
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/audio/SDL_audio.c
Expand Up @@ -442,6 +442,7 @@ SDL_AudioInit(const char *driver_name)
current_audio.impl.LockAudio = SDL_LockAudio_Default;
current_audio.impl.UnlockAudio = SDL_UnlockAudio_Default;
}

return (0);
}

Expand Down Expand Up @@ -851,9 +852,9 @@ SDL_AudioQuit(void)
for (i = 0; i < SDL_arraysize(open_devices); i++) {
SDL_CloseAudioDevice(i);
}
/* Free the driver data */

/* !!! FIXME! current_audio.free(&current_audio); */
/* Free the driver data */
current_audio.Deinitialize();
SDL_memset(&current_audio, '\0', sizeof (current_audio));
SDL_memset(open_devices, '\0', sizeof (open_devices));
}
Expand Down
1 change: 1 addition & 0 deletions src/audio/SDL_sysaudio.h
Expand Up @@ -43,6 +43,7 @@ typedef struct SDL_AudioDriverImpl
void (*CloseAudio) (_THIS);
void (*LockAudio) (_THIS);
void (*UnlockAudio) (_THIS);
void (*Deinitialize) (void);
} SDL_AudioDriverImpl;

typedef struct SDL_AudioDriver
Expand Down
11 changes: 11 additions & 0 deletions src/audio/macosx/SDL_coreaudio.c
Expand Up @@ -179,6 +179,7 @@ static void COREAUDIO_WaitAudio(_THIS);
static void COREAUDIO_PlayAudio(_THIS);
static Uint8 *COREAUDIO_GetAudioBuf(_THIS);
static void COREAUDIO_CloseAudio(_THIS);
static void COREAUDIO_Deinitialize(void);

/* Audio driver bootstrap functions */

Expand All @@ -201,6 +202,7 @@ COREAUDIO_Init(SDL_AudioDriverImpl *impl)
impl->PlayAudio = COREAUDIO_PlayAudio;
impl->GetAudioBuf = COREAUDIO_GetAudioBuf;
impl->CloseAudio = COREAUDIO_CloseAudio;
impl->Deinitialize = COREAUDIO_Deinitialize;

return 1;
}
Expand All @@ -210,6 +212,15 @@ AudioBootStrap COREAUDIO_bootstrap = {
COREAUDIO_Available, COREAUDIO_Init
};


static void
COREAUDIO_Deinitialize(void)
{
free_device_list(0, &outputDevices, &outputDeviceCount);
free_device_list(1, &inputDevices, &inputDeviceCount);
}


/* The CoreAudio callback */
static OSStatus
outputCallback(void *inRefCon,
Expand Down

0 comments on commit a42a3b2

Please sign in to comment.