summaryrefslogtreecommitdiff
path: root/opl/opl_sdl.c
diff options
context:
space:
mode:
authorSimon Howard2009-08-30 12:07:04 +0000
committerSimon Howard2009-08-30 12:07:04 +0000
commit076adeb0aa24e9bdc677435ddb6e444db58d5436 (patch)
tree7f6ddcb1a9f320dcefabc4cd2f6d9338b54f4ae5 /opl/opl_sdl.c
parent4d13a1330013cfcf70c8bc13f6183ea404bbdbe4 (diff)
downloadchocolate-doom-076adeb0aa24e9bdc677435ddb6e444db58d5436.tar.gz
chocolate-doom-076adeb0aa24e9bdc677435ddb6e444db58d5436.tar.bz2
chocolate-doom-076adeb0aa24e9bdc677435ddb6e444db58d5436.zip
Add method to clear all existing callbacks.
Subversion-branch: /branches/opl-branch Subversion-revision: 1642
Diffstat (limited to 'opl/opl_sdl.c')
-rw-r--r--opl/opl_sdl.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/opl/opl_sdl.c b/opl/opl_sdl.c
index b9d83385..ffbe6820 100644
--- a/opl/opl_sdl.c
+++ b/opl/opl_sdl.c
@@ -374,6 +374,13 @@ static void OPL_SDL_SetCallback(unsigned int ms,
SDL_UnlockMutex(callback_queue_mutex);
}
+static void OPL_SDL_ClearCallbacks(void)
+{
+ SDL_LockMutex(callback_queue_mutex);
+ OPL_Queue_Clear(callback_queue);
+ SDL_UnlockMutex(callback_queue_mutex);
+}
+
static void OPL_SDL_Lock(void)
{
SDL_LockMutex(callback_mutex);
@@ -392,6 +399,7 @@ opl_driver_t opl_sdl_driver =
OPL_SDL_PortRead,
OPL_SDL_PortWrite,
OPL_SDL_SetCallback,
+ OPL_SDL_ClearCallbacks,
OPL_SDL_Lock,
OPL_SDL_Unlock
};