diff options
Diffstat (limited to 'opl/opl_sdl.c')
-rw-r--r-- | opl/opl_sdl.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/opl/opl_sdl.c b/opl/opl_sdl.c index a0d9d74e..2b8f5174 100644 --- a/opl/opl_sdl.c +++ b/opl/opl_sdl.c @@ -37,9 +37,12 @@ #include "opl.h" #include "opl_internal.h" +#include "opl_queue.h" + // TODO: #define opl_sample_rate 22050 +static opl_callback_queue_t *callback_queue; static FM_OPL *opl_emulator = NULL; static int sdl_was_initialised = 0; static int mixing_freq, mixing_channels; @@ -65,6 +68,7 @@ static void OPL_SDL_Shutdown(void) { Mix_CloseAudio(); SDL_QuitSubSystem(SDL_INIT_AUDIO); + OPL_Queue_Destroy(callback_queue); sdl_was_initialised = 0; } @@ -82,6 +86,8 @@ static int OPL_SDL_Init(unsigned int port_base) if (!SDLIsInitialised()) { + callback_queue = OPL_Queue_Create(); + if (SDL_Init(SDL_INIT_AUDIO) < 0) { fprintf(stderr, "Unable to set up sound.\n"); @@ -161,12 +167,29 @@ static void OPL_SDL_PortWrite(opl_port_t port, unsigned int value) } } +static void OPL_SDL_SetCallback(unsigned int ms, + opl_callback_t callback, + void *data) +{ +} + +static void OPL_SDL_Lock(void) +{ +} + +static void OPL_SDL_Unlock(void) +{ +} + opl_driver_t opl_sdl_driver = { "SDL", OPL_SDL_Init, OPL_SDL_Shutdown, OPL_SDL_PortRead, - OPL_SDL_PortWrite + OPL_SDL_PortWrite, + OPL_SDL_SetCallback, + OPL_SDL_Lock, + OPL_SDL_Unlock }; |