-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.
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"}
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
include $(top_srcdir)/common.makefile.in
-AM_CXXFLAGS = $(CFLAGS)
+AM_FLAGS = $(CFLAGS)
INCLUDES = \
-I$(top_srcdir) \
libtimiditydrv_a_SOURCES = \
timiditydrv.idl \
- timiditydrv.cpp \
+ timiditydrv.c \
timiwp_timidity.h \
timiwp_timidity.c \
timiditydrv.def \
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
@:
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
#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
#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"
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);
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;
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;
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;
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;
myCaps2W->ProductGuid = CLSID_tim_synth;
myCaps2W->NameGuid = CLSID_tim_synth;
return MMSYSERR_NOERROR;
-#endif
default:
return MMSYSERR_ERROR;