foxygit / doom Log in
commit 073e710f685a10c2084f6c04fbc4fe7c87530d93
Author:     Simon Howard <fraggle@gmail.com>
AuthorDate: Sat Oct 3 22:43:07 2009 +0000
Commit:     Simon Howard <fraggle@gmail.com>
CommitDate: Sat Oct 3 22:43:07 2009 +0000

    Use Mix_HookMusic rather than Mix_SetPostMix for OPL emulation, to avoid
    conflict with PC speaker emulation.

    Subversion-branch: /branches/opl-branch
    Subversion-revision: 1706
---
 opl/opl_sdl.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/opl/opl_sdl.c b/opl/opl_sdl.c
index 40430546..4a2e1ff8 100644
--- a/opl/opl_sdl.c
+++ b/opl/opl_sdl.c
@@ -160,8 +160,8 @@ static void FillBuffer(int16_t *buffer, unsigned int nsamples)

     for (i=0; i<nsamples; ++i)
     {
-        buffer[i * 2] += mix_buffer[i] / 2;
-        buffer[i * 2 + 1] += mix_buffer[i] / 2;
+        buffer[i * 2] = mix_buffer[i];
+        buffer[i * 2 + 1] = mix_buffer[i];
     }
 }

@@ -225,7 +225,7 @@ static void OPL_Mix_Callback(void *udata,

 static void OPL_SDL_Shutdown(void)
 {
-    Mix_SetPostMix(NULL, NULL);
+    Mix_HookMusic(NULL, NULL);

     if (sdl_was_initialized)
     {
@@ -356,7 +356,7 @@ static int OPL_SDL_Init(unsigned int port_base)
     callback_queue_mutex = SDL_CreateMutex();

     // TODO: This should be music callback? or-?
-    Mix_SetPostMix(OPL_Mix_Callback, NULL);
+    Mix_HookMusic(OPL_Mix_Callback, NULL);

     return 1;
 }