Index: trunk/src/winmm/IRTMidi.cpp
===================================================================
--- trunk/src/winmm/IRTMidi.cpp	(revision 2811)
+++ trunk/src/winmm/IRTMidi.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: IRTMidi.cpp,v 1.5 1999-08-19 18:46:03 phaller Exp $ */
+/* $Id: IRTMidi.cpp,v 1.6 2000-02-17 14:09:29 sandervl Exp $ */
 
 /*******************************************************************************
@@ -27,4 +27,7 @@
 #include <stdio.h>
 #include <malloc.h>
+
+#define DBG_LOCALLOG	DBG_irtmidi
+#include "dbglocal.h"
 
 IRTMidi * IRTMidi::iTheIRTMidiSingleton = NULL;
Index: trunk/src/winmm/auxiliary.cpp
===================================================================
--- trunk/src/winmm/auxiliary.cpp	(revision 2811)
+++ trunk/src/winmm/auxiliary.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: auxiliary.cpp,v 1.2 2000-01-03 10:29:02 sandervl Exp $ */
+/* $Id: auxiliary.cpp,v 1.3 2000-02-17 14:09:30 sandervl Exp $ */
 
 /*
@@ -27,4 +27,7 @@
 #include "winmm.h"
 #include "auxiliary.h"
+
+#define DBG_LOCALLOG	DBG_auxiliary
+#include "dbglocal.h"
 
 ODINDEBUGCHANNEL(WINMM-AUX)
Index: trunk/src/winmm/auxos2.cpp
===================================================================
--- trunk/src/winmm/auxos2.cpp	(revision 2811)
+++ trunk/src/winmm/auxos2.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: auxos2.cpp,v 1.7 1999-12-29 10:44:16 sandervl Exp $ */
+/* $Id: auxos2.cpp,v 1.8 2000-02-17 14:09:30 sandervl Exp $ */
 
 /*
@@ -28,4 +28,7 @@
 
 #include "auxiliary.h"
+
+#define DBG_LOCALLOG	DBG_auxos2
+#include "dbglocal.h"
 
 ULONG auxDeviceId = -1;
Index: trunk/src/winmm/dbglocal.cpp
===================================================================
--- trunk/src/winmm/dbglocal.cpp	(revision 2812)
+++ trunk/src/winmm/dbglocal.cpp	(revision 2812)
@@ -0,0 +1,77 @@
+/* $Id: dbglocal.cpp,v 1.1 2000-02-17 14:10:18 sandervl Exp $ */
+
+/*
+ * debug logging functions for OS/2
+ *
+ *
+ * Copyright 2000 Sander van Leeuwen
+ * Project Odin Software License can be found in LICENSE.TXT
+ */
+#include <os2wrap.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "dbglocal.h"
+
+USHORT DbgEnabled[DBG_MAXFILES];
+char  *DbgFileNames[DBG_MAXFILES] =
+{
+"os2timer",
+"waveout",
+"dwaveout",
+"time",
+"wavein",
+"auxiliary",
+"auxos2",
+"mixer",
+"midi",
+"irtmidi",
+"midistrm",
+"initterm",
+"mci",
+"joy",
+"mmio",
+"driver",
+"playsound",
+"joyos2",
+"resource"
+};
+//******************************************************************************
+//******************************************************************************
+void ParseLogStatus()
+{
+ char *envvar = getenv(DBG_ENVNAME);
+ char *dbgvar;
+ int   i;
+
+    for(i=0;i<DBG_MAXFILES;i++) {
+        DbgEnabled[i] = 1;
+    }
+
+    if(!envvar)
+        return;
+
+    dbgvar = strstr(envvar, "dll");
+    if(dbgvar) {
+        if(*(dbgvar-1) == '-') {
+            for(i=0;i<DBG_MAXFILES;i++) {
+                DbgEnabled[i] = 0;
+            }
+        }
+    }
+    for(i=0;i<DBG_MAXFILES;i++) {
+        dbgvar = strstr(envvar, DbgFileNames[i]);
+        if(dbgvar) {
+            if(*(dbgvar-1) == '-') {
+                    DbgEnabled[i] = 0;
+            }
+            else
+            if(*(dbgvar-1) == '+') {
+                DbgEnabled[i] = 1;
+            }
+        }
+    }
+}
+//******************************************************************************
+//******************************************************************************
+
Index: trunk/src/winmm/dbglocal.h
===================================================================
--- trunk/src/winmm/dbglocal.h	(revision 2812)
+++ trunk/src/winmm/dbglocal.h	(revision 2812)
@@ -0,0 +1,57 @@
+/* $Id: dbglocal.h,v 1.1 2000-02-17 14:10:18 sandervl Exp $ */
+
+/*
+ * debug logging functions for OS/2
+ *
+ * Overrides main dprintf macros
+ *
+ * Copyright 2000 Sander van Leeuwen
+ *
+ * Project Odin Software License can be found in LICENSE.TXT
+ */
+#ifndef __DBGLOCAL_H__
+#define __DBGLOCAL_H__
+
+#ifdef DEBUG
+//Parses environment variable for selective enabling/disabling of logging
+void ParseLogStatus();
+
+#define DBG_ENVNAME        "dbg_winmm"
+
+#define DBG_os2timer        0
+#define DBG_waveout         1
+#define DBG_dwaveout        2
+#define DBG_time            3
+#define DBG_wavein          4
+#define DBG_auxiliary       5
+#define DBG_auxos2          6
+#define DBG_mixer           7
+#define DBG_midi            8
+#define DBG_irtmidi         9
+#define DBG_midistrm        10
+#define DBG_initterm        11
+#define DBG_mci             12
+#define DBG_joy             13
+#define DBG_mmio            14
+#define DBG_driver          15
+#define DBG_playsound       16
+#define DBG_joyos2          17
+#define DBG_resource        18
+#define DBG_MAXFILES        19
+
+extern USHORT DbgEnabled[DBG_MAXFILES];
+
+#ifdef dprintf
+#undef dprintf
+#endif
+
+#define dprintf(a)      if(DbgEnabled[DBG_LOCALLOG] == 1) WriteLog a
+
+#else
+
+#define ParseLogStatus()
+#define DBG_LOCALLOG(a)
+
+#endif //DEBUG
+
+#endif
Index: trunk/src/winmm/driver.cpp
===================================================================
--- trunk/src/winmm/driver.cpp	(revision 2811)
+++ trunk/src/winmm/driver.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: driver.cpp,v 1.4 1999-08-19 18:46:04 phaller Exp $ */
+/* $Id: driver.cpp,v 1.5 2000-02-17 14:09:30 sandervl Exp $ */
 
 /*
@@ -25,4 +25,7 @@
 #include "winmm.h"
 #include "os2timer.h"
+
+#define DBG_LOCALLOG	DBG_driver
+#include "dbglocal.h"
 
 ODINDEBUGCHANNEL(WINMM-DRIVER)
Index: trunk/src/winmm/dwaveout.cpp
===================================================================
--- trunk/src/winmm/dwaveout.cpp	(revision 2811)
+++ trunk/src/winmm/dwaveout.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: dwaveout.cpp,v 1.13 1999-12-31 13:55:51 sandervl Exp $ */
+/* $Id: dwaveout.cpp,v 1.14 2000-02-17 14:09:30 sandervl Exp $ */
 
 /*
@@ -30,4 +30,7 @@
 #include "misc.h"
 #include "dwaveout.h"
+
+#define DBG_LOCALLOG	DBG_dwaveout
+#include "dbglocal.h"
 
 #ifndef min
@@ -588,7 +591,9 @@
                       0);
   if((rc & 0xFFFF) != MCIERR_SUCCESS) {
-    mciError(rc);
-    winrc = FALSE;
-  }
+    	mciError(rc);
+    	winrc = FALSE;
+  }
+  else 	winrc = TRUE;
+
   // Close the device
   mciSendCommand(DeviceId,MCI_CLOSE,MCI_WAIT,(PVOID)&GenericParms,0);
Index: trunk/src/winmm/initterm.cpp
===================================================================
--- trunk/src/winmm/initterm.cpp	(revision 2811)
+++ trunk/src/winmm/initterm.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: initterm.cpp,v 1.8 2000-02-05 02:16:21 sandervl Exp $ */
+/* $Id: initterm.cpp,v 1.9 2000-02-17 14:09:30 sandervl Exp $ */
 
 /*
@@ -39,4 +39,6 @@
 #include "auxiliary.h"
 
+#define DBG_LOCALLOG	DBG_initterm
+#include "dbglocal.h"
 
 extern "C" {
@@ -93,4 +95,6 @@
          _ctordtorInit();
 
+         ParseLogStatus();
+
          CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed  98-03-18 05:28:48*/
 
Index: trunk/src/winmm/joy.cpp
===================================================================
--- trunk/src/winmm/joy.cpp	(revision 2811)
+++ trunk/src/winmm/joy.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: joy.cpp,v 1.6 1999-08-19 18:46:04 phaller Exp $ */
+/* $Id: joy.cpp,v 1.7 2000-02-17 14:09:30 sandervl Exp $ */
 /*
  * Odin Joystick apis
@@ -25,4 +25,7 @@
 #include "os2timer.h"
 #include "joyos2.h"
+
+#define DBG_LOCALLOG	DBG_joy
+#include "dbglocal.h"
 
 ODINDEBUGCHANNEL(WINMM-JOY)
Index: trunk/src/winmm/joyos2.cpp
===================================================================
--- trunk/src/winmm/joyos2.cpp	(revision 2811)
+++ trunk/src/winmm/joyos2.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: joyos2.cpp,v 1.3 1999-08-19 18:46:04 phaller Exp $ */
+/* $Id: joyos2.cpp,v 1.4 2000-02-17 14:09:30 sandervl Exp $ */
 /*
  * OS/2 Joystick apis
@@ -20,4 +20,6 @@
 #include "joyos2.h"
 
+#define DBG_LOCALLOG	DBG_joyos2
+#include "dbglocal.h"
 
 #define GAMEPDDNAME     "GAME$"
Index: trunk/src/winmm/makefile
===================================================================
--- trunk/src/winmm/makefile	(revision 2811)
+++ trunk/src/winmm/makefile	(revision 2812)
@@ -1,3 +1,3 @@
-# $Id: makefile,v 1.15 2000-02-09 23:47:05 bird Exp $
+# $Id: makefile,v 1.16 2000-02-17 14:09:30 sandervl Exp $
 
 #
@@ -25,5 +25,5 @@
         wavein.obj auxiliary.obj auxos2.obj mixer.obj \
         midi.obj irtmidi.obj midistrm.obj initterm.obj mci.obj joy.obj \
-        mmio.obj driver.obj playsound.obj joyos2.obj resource.obj
+        mmio.obj driver.obj playsound.obj joyos2.obj resource.obj dbglocal.obj
 
 
Index: trunk/src/winmm/mci.cpp
===================================================================
--- trunk/src/winmm/mci.cpp	(revision 2811)
+++ trunk/src/winmm/mci.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: mci.cpp,v 1.4 1999-08-19 18:46:04 phaller Exp $ */
+/* $Id: mci.cpp,v 1.5 2000-02-17 14:09:31 sandervl Exp $ */
 
 /*
@@ -26,4 +26,7 @@
 
 #include "winmm.h"
+
+#define DBG_LOCALLOG	DBG_mci
+#include "dbglocal.h"
 
 ODINDEBUGCHANNEL(WINMM-MCI)
Index: trunk/src/winmm/midi.cpp
===================================================================
--- trunk/src/winmm/midi.cpp	(revision 2811)
+++ trunk/src/winmm/midi.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: midi.cpp,v 1.7 1999-09-23 09:35:25 sandervl Exp $ */
+/* $Id: midi.cpp,v 1.8 2000-02-17 14:09:31 sandervl Exp $ */
 
 /*
@@ -27,4 +27,7 @@
 #include <winos2def.h>
 #include <wprocess.h>
+
+#define DBG_LOCALLOG	DBG_midi
+#include "dbglocal.h"
 
 ODINDEBUGCHANNEL(WINMM-MIDI)
Index: trunk/src/winmm/midistrm.cpp
===================================================================
--- trunk/src/winmm/midistrm.cpp	(revision 2811)
+++ trunk/src/winmm/midistrm.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: midistrm.cpp,v 1.4 1999-08-19 18:46:04 phaller Exp $ */
+/* $Id: midistrm.cpp,v 1.5 2000-02-17 14:09:31 sandervl Exp $ */
 
 /*
@@ -24,4 +24,7 @@
 #include <string.h>
 #include <unicode.h>
+
+#define DBG_LOCALLOG	DBG_midistrm
+#include "dbglocal.h"
 
 
Index: trunk/src/winmm/mixer.cpp
===================================================================
--- trunk/src/winmm/mixer.cpp	(revision 2811)
+++ trunk/src/winmm/mixer.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: mixer.cpp,v 1.4 1999-08-19 18:46:04 phaller Exp $ */
+/* $Id: mixer.cpp,v 1.5 2000-02-17 14:09:31 sandervl Exp $ */
 
 /*
@@ -19,4 +19,7 @@
 #include <odinwrap.h>
 #include <misc.h>
+
+#define DBG_LOCALLOG	DBG_mixer
+#include "dbglocal.h"
 
 
Index: trunk/src/winmm/mmio.cpp
===================================================================
--- trunk/src/winmm/mmio.cpp	(revision 2811)
+++ trunk/src/winmm/mmio.cpp	(revision 2812)
@@ -23,4 +23,7 @@
 #include "mmsystem.h"
 #include "debugtools.h"
+
+#define DBG_LOCALLOG	DBG_mmio
+#include "dbglocal.h"
 
 ODINDEBUGCHANNEL(WINMM-MMIO)
Index: trunk/src/winmm/os2timer.cpp
===================================================================
--- trunk/src/winmm/os2timer.cpp	(revision 2811)
+++ trunk/src/winmm/os2timer.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: os2timer.cpp,v 1.13 1999-12-29 08:33:56 phaller Exp $ */
+/* $Id: os2timer.cpp,v 1.14 2000-02-17 14:09:32 sandervl Exp $ */
 
 /*
@@ -28,4 +28,6 @@
 #include "os2timer.h"
 
+#define DBG_LOCALLOG	DBG_os2timer
+#include "dbglocal.h"
 
 
Index: trunk/src/winmm/playsound.cpp
===================================================================
--- trunk/src/winmm/playsound.cpp	(revision 2811)
+++ trunk/src/winmm/playsound.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: playsound.cpp,v 1.4 1999-08-19 18:46:05 phaller Exp $ */
+/* $Id: playsound.cpp,v 1.5 2000-02-17 14:09:32 sandervl Exp $ */
 
 /*
@@ -16,8 +16,14 @@
  ****************************************************************************/
 
+#define  INCL_BASE
+#define  INCL_OS2MM
 #include <os2wrap.h>       //Odin32 OS/2 api wrappers
 #include <odinwrap.h>
-#include "win32type.h"
-#include "misc.h"
+#include <win32type.h>
+#include <winconst.h>
+#include <misc.h>
+
+#define DBG_LOCALLOG	DBG_playsound
+#include "dbglocal.h"
 
 ODINDEBUGCHANNEL(WINMM-PLAYSOUND)
@@ -44,4 +50,12 @@
 {
   dprintf(("WINMM:PlaySoundA not implemented\n"));
+  if((fdwSound & (SND_SYNC_W|SND_ASYNC_W)) == (SND_SYNC_W|SND_ASYNC_W)) {
+//	SetLastError(ERROR_INVALID_PARAMETER_W);
+	return FALSE;
+  }
+//  if(fdwSound & (SND_MEMORY_W|SND_ALIAS_W|SND_FILENAME_W|SND_RESOURCE_W) == (SND_SYNC_W|SND_ASYNC_W)) {
+//	SetLastError(ERROR_INVALID_PARAMETER_W);
+//	return FALSE;
+//  }
   return(FALSE);
 }
Index: trunk/src/winmm/time.cpp
===================================================================
--- trunk/src/winmm/time.cpp	(revision 2811)
+++ trunk/src/winmm/time.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: time.cpp,v 1.8 1999-12-29 08:33:56 phaller Exp $ */
+/* $Id: time.cpp,v 1.9 2000-02-17 14:09:32 sandervl Exp $ */
 
 /*
@@ -22,4 +22,7 @@
 #include "time.h"
 
+#define DBG_LOCALLOG	DBG_time
+#include "dbglocal.h"
+
 ODINDEBUGCHANNEL(WINMM-TIME)
 
Index: trunk/src/winmm/wavein.cpp
===================================================================
--- trunk/src/winmm/wavein.cpp	(revision 2811)
+++ trunk/src/winmm/wavein.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: wavein.cpp,v 1.4 1999-08-19 18:46:05 phaller Exp $ */
+/* $Id: wavein.cpp,v 1.5 2000-02-17 14:09:32 sandervl Exp $ */
 
 /*
@@ -25,4 +25,7 @@
 
 #include "winmm.h"
+
+#define DBG_LOCALLOG	DBG_wavein
+#include "dbglocal.h"
 
 
Index: trunk/src/winmm/waveout.cpp
===================================================================
--- trunk/src/winmm/waveout.cpp	(revision 2811)
+++ trunk/src/winmm/waveout.cpp	(revision 2812)
@@ -1,3 +1,3 @@
-/* $Id: waveout.cpp,v 1.9 1999-12-31 13:55:51 sandervl Exp $ */
+/* $Id: waveout.cpp,v 1.10 2000-02-17 14:09:33 sandervl Exp $ */
 //#undef DEBUG
 /*
@@ -28,4 +28,7 @@
 #include "misc.h"
 #include "winmm.h"
+
+#define DBG_LOCALLOG	DBG_waveout
+#include "dbglocal.h"
 
 ODINDEBUGCHANNEL(WINMM-WAVEOUT)
@@ -386,5 +389,6 @@
   }
   else
-    return(MMSYSERR_INVALHANDLE);
+      return MMSYSERR_NOERROR;
+//    return(MMSYSERR_INVALHANDLE);
 }
 
@@ -399,5 +403,6 @@
   }
   else
-    return(MMSYSERR_INVALHANDLE);
+      return MMSYSERR_NOERROR;
+//    return(MMSYSERR_INVALHANDLE);
 }
 
