OSDN Git Service

2006-12-21 Keishi Suenaga <skeishi@yahoo.co.jp>
authorKeishi Suenaga <s_keishi@mutt.freemail.ne.jp>
Thu, 21 Dec 2006 09:33:46 +0000 (09:33 +0000)
committerKeishi Suenaga <s_keishi@mutt.freemail.ne.jp>
Thu, 21 Dec 2006 09:33:46 +0000 (09:33 +0000)
C++ dependency is removed.
* configure.in: remove AC_PROG_CXX,
                always link winsock32 for midi_a.c
* windrv/timiditydrv.cpp: removed
* windrv/timiditydrv.c: added
* windrv/Makefile_am: remove C++ dependency

ChangeLog
configure.in
windrv/Makefile.am
windrv/timiditydrv.c [moved from windrv/timiditydrv.cpp with 89% similarity, mode: 0644]

index d5d99d2..fbfc1cd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,19 +1,28 @@
-2006-12-20  Keishi Suenaga <skeishi@yahoo.co.jp>\r
-\r
-       * timidity/midi_a.c: windows compilers support.\r
-       * timidity/effect.c: remove duplicate definitions.\r
-\r
-2006-12-18  Keishi Suenaga <skeishi@yahoo.co.jp>\r
-\r
-       * timidity/midi_a.c:  u_int8_t  must be uint8_t.\r
-       * timidity/flac_a.c:  fix for mingw.\r
-\r
-2006-12-18  Keishi Suenaga <skeishi@yahoo.co.jp>\r
-\r
-       * autoconf/ogg.m4: from libogg-1.1.3.tar.gz\r
+2006-12-21  Keishi Suenaga <skeishi@yahoo.co.jp>
+
+       C++ dependency is removed.
+       * configure.in: remove AC_PROG_CXX,
+                       always link winsock32 for midi_a.c
+       * windrv/timiditydrv.cpp: removed
+       * windrv/timiditydrv.c: added
+       * windrv/Makefile_am: remove C++ dependency
+
+2006-12-20  Keishi Suenaga <skeishi@yahoo.co.jp>
+
+       * timidity/midi_a.c: windows compilers support.
+       * timidity/effect.c: remove duplicate definitions.
+
+2006-12-18  Keishi Suenaga <skeishi@yahoo.co.jp>
+
+       * timidity/midi_a.c:  u_int8_t  must be uint8_t.
+       * timidity/flac_a.c:  fix for mingw.
+
+2006-12-18  Keishi Suenaga <skeishi@yahoo.co.jp>
+
+       * autoconf/ogg.m4: from libogg-1.1.3.tar.gz
        * autoconf/vorbis.m4: from libvorbis-1.1.2.tar.gz
        * timidity/portaudio_a.c: bug fix
-\r
+
 2006-12-14  Stas Sergeev <stsp@aknet.ru>
 
        * interface/server_c.c: extend midi protocol.
index 0e25a97..5efd1a7 100644 (file)
@@ -57,7 +57,6 @@ AM_INIT_AUTOMAKE([gnu dist-bzip2])
 AC_CONFIG_SRCDIR([timidity/timidity.c])
 AC_CONFIG_HEADERS([config.h interface.h])
 AM_MAINTAINER_MODE
-AC_PROG_CXX
 
 SHELL=${CONFIG_SHELL-"/bin/sh"}
 WISH=${WISH-"wish"}
@@ -606,20 +605,18 @@ if test "x$MSYS" = xyes ; then
     W32READDIR=yes
     ;;
   esac
-  if test "x$enable_network" = "xyes"; then
-       if test "x$VCPP" = xyes || test "x$BORLANDC" = xyes || test "x$WATCOM_C" = xyes || test "x$DMC" = xyes; then
-      EXTRALIBS="$EXTRALIBS  wsock32.lib"
-      EXTRADEFS="$EXTRADEFS -DWINSOCK" 
-    else
-      AC_CHECK_FUNC(socket,,
-       WAPI_CHECK_LIB(wsock32,WSAStartup,
-            [#include <winsock.h>],
-            [WSAStartup(0,0);],
-         [ EXTRALIBS="$EXTRALIBS -lwsock32"
-          EXTRADEFS="$EXTRADEFS -DWINSOCK" ]
-       )
-      )
-    fi
+  if test "x$VCPP" = xyes || test "x$BORLANDC" = xyes || test "x$WATCOM_C" = xyes || test "x$DMC" = xyes; then
+    EXTRALIBS="$EXTRALIBS  wsock32.lib"
+    EXTRADEFS="$EXTRADEFS -DWINSOCK" 
+  else
+    AC_CHECK_FUNC(socket,,
+     WAPI_CHECK_LIB(wsock32,WSAStartup,
+          [#include <winsock.h>],
+          [WSAStartup(0,0);],
+       [ EXTRALIBS="$EXTRALIBS -lwsock32"
+        EXTRADEFS="$EXTRADEFS -DWINSOCK" ]
+     )
+    )
   fi
 fi
 
index cdb2398..4b143bf 100755 (executable)
@@ -18,7 +18,7 @@
 
 include $(top_srcdir)/common.makefile.in
 
-AM_CXXFLAGS = $(CFLAGS)
+AM_FLAGS = $(CFLAGS)
 
 INCLUDES = \
        -I$(top_srcdir) \
@@ -36,7 +36,7 @@ endif
 
 libtimiditydrv_a_SOURCES = \
        timiditydrv.idl \
-       timiditydrv.cpp \
+       timiditydrv.c \
        timiwp_timidity.h \
        timiwp_timidity.c \
        timiditydrv.def \
@@ -100,7 +100,7 @@ endif
 
 DRV_LIBS =  \
        kernel32.lib winspool.lib comdlg32.lib advapi32.lib oleaut32.lib \
-       uuid.lib odbc32.lib wsock32.lib user32.lib shell32.lib winmm.lib
+       uuid.lib odbc32.lib wsock32.lib user32.lib shell32.lib winmm.lib wsock32.lib
 #      kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib \
 #      advapi32.lib shell32.lib ole32.lib oleaut32.lib odbc32.lib odbccp32.lib \
 #      ksguid.lib ksuser.lib
@@ -210,17 +210,17 @@ objs: $(libtimiditydrv_a_OBJECTS) $(libtimiditydrv_a_DEPENDENCIES)
        @:
 
 if MINGWGCC
-timiditydrv.o: timiditydrv.cpp timiditydrv.h
+timiditydrv.o: timiditydrv.c timiditydrv.h
         source='$<' object='$@' libtool=no \
         depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \
-        $(CXXDEPMODE) $(depcomp) \
-        $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+        $(DEPMODE) $(depcomp) \
+        $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 else
-timiditydrv.obj: timiditydrv.cpp timiditydrv.h
+timiditydrv.obj: timiditydrv.c timiditydrv.h
         source='$<' object='$@' libtool=no \
         depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \
-        $(CXXDEPMODE) $(depcomp) \
-        $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+        $(DEPMODE) $(depcomp) \
+        $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 endif
 #     MINGWGCC
 
old mode 100755 (executable)
new mode 100644 (file)
similarity index 89%
rename from windrv/timiditydrv.cpp
rename to windrv/timiditydrv.c
index 143d9be..37f87be
 
 #include <process.h>
 #if __DMC__
-extern "C" 
 unsigned long _beginthreadex( void *security, unsigned stack_size,
                unsigned ( __stdcall *start_address )( void * ), void *arglist,
                unsigned initflag, unsigned *thrdaddr );
-extern "C" 
 void _endthreadex( unsigned retval );
 #endif
 
@@ -45,19 +43,55 @@ void _endthreadex( unsigned retval );
 #include "timiditydrv.h"
 
 #include "mmddk.h"  
-/* Use XP SDK's mmsystem.h. mingw's lacks some definitions */
-#include "mmsystem.h" //From SDK (Digital mars can't use SDK's mmsystem.h)
+
+#include <mmsystem.h>
+
+// some compilers' mmsystem.h lacks MIDIOUTCAPS2 definitions,
+// so followings are imported from wine's mmsystem.h
+#if !( defined(_MSC_VER) || \
+       ( defined(__POCC__) && (__POCC__ >= 450) ) || \
+       ( defined(__BORLANDC__) && (__BORLANDC__ >= 0x582) ) )
+       
+typedef struct tagMIDIOUTCAPS2A {
+    WORD       wMid;
+    WORD       wPid;
+    MMVERSION  vDriverVersion;
+    CHAR       szPname[MAXPNAMELEN];
+    WORD       wTechnology;
+    WORD       wVoices;
+    WORD       wNotes;
+    WORD       wChannelMask;
+    DWORD      dwSupport;
+    GUID       ManufacturerGuid;
+    GUID       ProductGuid;
+    GUID       NameGuid;
+} MIDIOUTCAPS2A, *LPMIDIOUTCAPS2A;
+
+typedef struct tagMIDIOUTCAPS2W {
+    WORD       wMid;
+    WORD       wPid;
+    MMVERSION  vDriverVersion;
+    WCHAR      szPname[MAXPNAMELEN];
+    WORD       wTechnology;
+    WORD       wVoices;
+    WORD       wNotes;
+    WORD       wChannelMask;
+    DWORD      dwSupport;
+    GUID       ManufacturerGuid;
+    GUID       ProductGuid;
+    GUID       NameGuid;
+} MIDIOUTCAPS2W, *LPMIDIOUTCAPS2W;
+#endif
 
 #if defined(__MINGW32__) || defined(__WATCOMC__)
 #define __IID_DEFINED__ 1
 #endif
 #include "timiditydrv_i.c"
-#include "mmreg.h"     //Fom SDK
 
-extern "C" {
+//#include "mmreg.h"   //Fom SDK for MM_UNMAPPED & MM_PID_UNMAPPED
+
 #include "config.h"
 #include "sysdep.h"
-}
 
 #include "timiwp_timidity.h"
 
@@ -73,7 +107,6 @@ static volatile int stop_rtthread = 0;
 static HANDLE hCalcThread = NULL;
 static HANDLE hRtsynThread = NULL;
 
-extern "C" 
 BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved ){
        if (fdwReason == DLL_PROCESS_ATTACH){
                DisableThreadLibraryCalls(hinstDLL);
@@ -135,21 +168,16 @@ STDAPI_(LONG) DriverProc(DWORD dwDriverId, HDRVR hdrvr, UINT msg, LONG lParam1,
 HRESULT modGetCaps(PVOID capsPtr, DWORD capsSize) {
        MIDIOUTCAPSA * myCapsA;
        MIDIOUTCAPSW * myCapsW;
-#ifndef __DMC__
        MIDIOUTCAPS2A * myCaps2A;
        MIDIOUTCAPS2W * myCaps2W;
-#endif
-
        CHAR synthName[] = "Timidity++ Driver\0";
        WCHAR synthNameW[] = L"Timidity++ Driver\0";
-
-
        
        switch (capsSize) {
        case (sizeof(MIDIOUTCAPSA)):
                myCapsA = (MIDIOUTCAPSA *)capsPtr;
-               myCapsA->wMid = MM_UNMAPPED;
-               myCapsA->wPid = MM_MPU401_MIDIOUT;
+               myCapsA->wMid = 0xffff; //MM_UNMAPPED
+               myCapsA->wPid = 0xffff; //MM_PID_UNMAPPED
                memcpy(myCapsA->szPname, synthName, sizeof(synthName));
                myCapsA->wTechnology = MOD_MIDIPORT;
                myCapsA->vDriverVersion = 0x0090;
@@ -162,8 +190,8 @@ HRESULT modGetCaps(PVOID capsPtr, DWORD capsSize) {
                break;
        case (sizeof(MIDIOUTCAPSW)):
                myCapsW = (MIDIOUTCAPSW *)capsPtr;
-               myCapsW->wMid = MM_UNMAPPED;
-               myCapsW->wPid = MM_MPU401_MIDIOUT;
+               myCapsW->wMid = 0xffff;
+               myCapsW->wPid = 0xffff;
                memcpy(myCapsW->szPname, synthNameW, sizeof(synthNameW));
                myCapsW->wTechnology = MOD_MIDIPORT;
                myCapsW->vDriverVersion = 0x0090;
@@ -174,11 +202,11 @@ HRESULT modGetCaps(PVOID capsPtr, DWORD capsSize) {
                return MMSYSERR_NOERROR;
 
                break;
-#ifndef __DMC__
+
        case (sizeof(MIDIOUTCAPS2A)):
                myCaps2A = (MIDIOUTCAPS2A *)capsPtr;
-               myCaps2A->wMid = MM_UNMAPPED;
-               myCaps2A->wPid = MM_MPU401_MIDIOUT;
+               myCaps2A->wMid = 0xffff;
+               myCaps2A->wPid = 0xffff;
                memcpy(myCaps2A->szPname, synthName, sizeof(synthName));
                myCaps2A->wTechnology = MOD_MIDIPORT;
                myCaps2A->vDriverVersion = 0x0090;
@@ -193,8 +221,8 @@ HRESULT modGetCaps(PVOID capsPtr, DWORD capsSize) {
 
        case (sizeof(MIDIOUTCAPS2W)):
                myCaps2W = (MIDIOUTCAPS2W *)capsPtr;
-               myCaps2W->wMid = MM_UNMAPPED;
-               myCaps2W->wPid = MM_MPU401_MIDIOUT;
+               myCaps2W->wMid = 0xffff;
+               myCaps2W->wPid = 0xffff;
                memcpy(myCaps2W->szPname, synthNameW, sizeof(synthNameW));
                myCaps2W->wTechnology = MOD_MIDIPORT;
                myCaps2W->vDriverVersion = 0x0090;
@@ -206,7 +234,6 @@ HRESULT modGetCaps(PVOID capsPtr, DWORD capsSize) {
                myCaps2W->ProductGuid = CLSID_tim_synth;
                myCaps2W->NameGuid = CLSID_tim_synth;
                return MMSYSERR_NOERROR;
-#endif
 
        default:
                return MMSYSERR_ERROR;