ソースを参照

Version 1.0.7

Gary Scavone 12 年 前
コミット
9bbab359f0

+ 4 - 4
RtMidi.cpp

@@ -8,7 +8,7 @@
     RtMidi WWW site: http://music.mcgill.ca/~gary/rtmidi/
 
     RtMidi: realtime MIDI i/o C++ classes
-    Copyright (c) 2003-2006 Gary P. Scavone
+    Copyright (c) 2003-2007 Gary P. Scavone
 
     Permission is hereby granted, free of charge, to any person
     obtaining a copy of this software and associated documentation files
@@ -35,7 +35,7 @@
 */
 /**********************************************************************/
 
-// RtMidi: Version 1.0.6
+// RtMidi: Version 1.0.7
 
 #include "RtMidi.h"
 #include <sstream>
@@ -1923,7 +1923,7 @@ std::string RtMidiIn :: getPortName( unsigned int portNumber )
   }
 
   MIDIINCAPS deviceCaps;
-  MMRESULT result = midiInGetDevCaps( portNumber, &deviceCaps, sizeof(MIDIINCAPS));
+  midiInGetDevCaps( portNumber, &deviceCaps, sizeof(MIDIINCAPS));
 
   // For some reason, we need to copy character by character with
   // UNICODE (thanks to Eduardo Coutinho!).
@@ -1957,7 +1957,7 @@ std::string RtMidiOut :: getPortName( unsigned int portNumber )
   }
 
   MIDIOUTCAPS deviceCaps;
-  MMRESULT result = midiOutGetDevCaps( portNumber, &deviceCaps, sizeof(MIDIOUTCAPS));
+  midiOutGetDevCaps( portNumber, &deviceCaps, sizeof(MIDIOUTCAPS));
 
   // For some reason, we need to copy character by character with
   // UNICODE (thanks to Eduardo Coutinho!).

+ 2 - 2
RtMidi.h

@@ -8,7 +8,7 @@
     RtMidi WWW site: http://music.mcgill.ca/~gary/rtmidi/
 
     RtMidi: realtime MIDI i/o C++ classes
-    Copyright (c) 2003-2006 Gary P. Scavone
+    Copyright (c) 2003-2007 Gary P. Scavone
 
     Permission is hereby granted, free of charge, to any person
     obtaining a copy of this software and associated documentation files
@@ -35,7 +35,7 @@
 */
 /**********************************************************************/
 
-// RtMidi: Version 1.0.6
+// RtMidi: Version 1.0.7
 
 #ifndef RTMIDI_H
 #define RTMIDI_H

+ 8 - 0
config.guess

@@ -54,6 +54,14 @@ case $host in
   AC_SUBST( frameworks, ["-framework CoreMIDI -framework CoreFoundation -framework CoreAudio"] )
   ;;
 
+  *-mingw32*)
+  # Use WinMM library
+  AC_SUBST( midi_api, [-D__WINDOWS_MM__] )
+  # I can't get the following check to work so just manually add the library
+  # AC_CHECK_LIB(winmm, midiInGetNumDevs, , AC_MSG_ERROR(Windows MIDI support requires the winmm library!) )
+  AC_SUBST( LIBS, [-lwinmm] )
+  ;;
+
   *)
   # Default case for unknown realtime systems.
   AC_MSG_ERROR(Unknown system type for MIDI support!)

+ 1 - 1
doc/doxygen/Doxyfile

@@ -4,7 +4,7 @@
 # Project related configuration options
 #---------------------------------------------------------------------------
 PROJECT_NAME           = RtMidi
-PROJECT_NUMBER         = 
+PROJECT_NUMBER         = 1.0.7
 OUTPUT_DIRECTORY       = .
 OUTPUT_LANGUAGE        = English
 USE_WINDOWS_ENCODING   = NO

+ 1 - 1
doc/doxygen/footer.html

@@ -1,7 +1,7 @@
 <HR>
 
 <table><tr><td><img src="../images/mcgill.gif" width=165></td>
-  <td>&copy;2003-2006 Gary P. Scavone, McGill University. All Rights Reserved.<br>
+  <td>&copy;2003-2007 Gary P. Scavone, McGill University. All Rights Reserved.<br>
   Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr>
 </table>
 

+ 15 - 13
doc/doxygen/tutorial.txt

@@ -17,7 +17,7 @@ MIDI input and output functionality are separated into two classes, RtMidiIn and
 
 \section download Download
 
-Latest Release (9 March 2006): <A href="http://music.mcgill.ca/~gary/rtmidi/release/rtmidi-1.0.6.tar.gz">Version 1.0.6</A>
+Latest Release (7 December 2007): <A href="http://music.mcgill.ca/~gary/rtmidi/release/rtmidi-1.0.7.tar.gz">Version 1.0.7</A>
 
 \section start Getting Started
 
@@ -58,7 +58,7 @@ RtMidi uses a C++ exception handler called RtError, which is declared and define
 A programmer may wish to query the available MIDI ports before deciding which to use.  The following example outlines how this can be done.
 
 \code
-// midiinfo.cpp
+// midiprobe.cpp
 
 #include <iostream>
 #include "RtMidi.h"
@@ -72,9 +72,9 @@ int main()
   try {
     midiin = new RtMidiIn();
   }
-  catch (RtError &error) {
+  catch ( RtError &error ) {
     error.printMessage();
-    exit(EXIT_FAILURE);
+    exit( EXIT_FAILURE );
   }
 
   // Check inputs.
@@ -85,7 +85,7 @@ int main()
     try {
       portName = midiin->getPortName(i);
     }
-    catch (RtError &error) {
+    catch ( RtError &error ) {
       error.printMessage();
       goto cleanup;
     }
@@ -96,9 +96,9 @@ int main()
   try {
     midiout = new RtMidiOut();
   }
-  catch (RtError &error) {
+  catch ( RtError &error ) {
     error.printMessage();
-    exit(EXIT_FAILURE);
+    exit( EXIT_FAILURE );
   }
 
   // Check outputs.
@@ -330,21 +330,21 @@ In order to compile RtMidi for a specific OS and API, it is necessary to supply
   <TD>ALSA Sequencer</TD>
   <TD>__LINUX_ALSASEQ__</TD>
   <TD><TT>asound, pthread</TT></TD>
-  <TD><TT>g++ -Wall -D__LINUX_ALSASEQ__ -o midiinfo midiinfo.cpp RtMidi.cpp -lasound -lpthread</TT></TD>
+  <TD><TT>g++ -Wall -D__LINUX_ALSASEQ__ -o midiprobe midiprobe.cpp RtMidi.cpp -lasound -lpthread</TT></TD>
 </TR>
 <TR>
   <TD>Macintosh OS X</TD>
   <TD>CoreMidi</TD>
   <TD>__MACOSX_CORE__</TD>
   <TD><TT>CoreMidi, CoreAudio, CoreFoundation</TT></TD>
-  <TD><TT>g++ -Wall -D__MACOSX_CORE__ -o midiinfo midiinfo.cpp RtMidi.cpp -framework CoreMidi -framework CoreAudio -framework CoreFoundation</TT></TD>
+  <TD><TT>g++ -Wall -D__MACOSX_CORE__ -o midiprobe midiprobe.cpp RtMidi.cpp -framework CoreMidi -framework CoreAudio -framework CoreFoundation</TT></TD>
 </TR>
 <TR>
   <TD>Irix</TD>
   <TD>MD</TD>
   <TD>__IRIX_MD__</TD>
   <TD><TT>md, pthread</TT></TD>
-  <TD><TT>CC -Wall -D__IRIX_MD__ -o midiinfo midiinfo.cpp RtMidi.cpp -laudio -lpthread</TT></TD>
+  <TD><TT>CC -Wall -D__IRIX_MD__ -o midiprobe midiprobe.cpp RtMidi.cpp -laudio -lpthread</TT></TD>
 </TR>
 <TR>
   <TD>Windows</TD>
@@ -356,11 +356,11 @@ In order to compile RtMidi for a specific OS and API, it is necessary to supply
 </TABLE>
 <P>
 
-The example compiler statements above could be used to compile the <TT>probe.cpp</TT> example file, assuming that <TT>midiinfo.cpp</TT>, <TT>RtMidi.h</TT>, <tt>RtError.h</tt>, and <TT>RtMidi.cpp</TT> all exist in the same directory.
+The example compiler statements above could be used to compile the <TT>midiprobe.cpp</TT> example file, assuming that <TT>midiprobe.cpp</TT>, <TT>RtMidi.h</TT>, <tt>RtError.h</tt>, and <TT>RtMidi.cpp</TT> all exist in the same directory.
 
 \section debug Debugging
 
-If you are having problems getting RtMidi to run on your system, try passing the preprocessor definition <TT>__RTMIDI_DEBUG__</TT> to the compiler (or uncomment the definition at the bottom of RtMidi.h).  A variety of warning messages will be displayed which may help in determining the problem.  Also try using the programs included in the <tt>test</tt> directory.  The program <tt>midiinfo</tt> displays the queried capabilities of all MIDI ports found.
+If you are having problems getting RtMidi to run on your system, try passing the preprocessor definition <TT>__RTMIDI_DEBUG__</TT> to the compiler (or uncomment the definition at the bottom of RtMidi.h).  A variety of warning messages will be displayed which may help in determining the problem.  Also try using the programs included in the <tt>test</tt> directory.  The program <tt>midiprobe</tt> displays the queried capabilities of all MIDI ports found.
 
 \section apinotes API Notes
 
@@ -382,6 +382,8 @@ The Irix version of RtMidi was written and tested on an SGI Indy running Irix ve
 
 The Windows Multimedia library MIDI calls used in RtMidi do not make use of streaming functionality.  RtMidi was originally developed with Visual C++ version 6.0.
 
+The \c configure script provides support for the MinGW compiler.
+
 \section acknowledge Acknowledgements
 
 Many thanks to the following people for providing bug fixes:
@@ -394,7 +396,7 @@ Many thanks to the following people for providing bug fixes:
 \section license License
 
     RtMidi: realtime MIDI i/o C++ classes<BR>
-    Copyright (c) 2003-2006 Gary P. Scavone
+    Copyright (c) 2003-2007 Gary P. Scavone
 
     Permission is hereby granted, free of charge, to any person
     obtaining a copy of this software and associated documentation files

+ 5 - 1
doc/release.txt

@@ -1,6 +1,10 @@
 RtMidi - a set of C++ classes that provides a common API for realtime MIDI input/output across Linux (ALSA), SGI, Macintosh OS X (CoreMidi), and Windows (Multimedia) operating systems.
 
-By Gary P. Scavone, 2003-2006.
+By Gary P. Scavone, 2003-2007.
+
+v1.0.7: (7 December 2007)
+- configure and Makefile changes for MinGW
+- renamed midiinfo.cpp to midiprobe.cpp and updated VC++ project/workspace
 
 v1.0.6: (9 March 2006)
 - bug fix for timestamp problem in ALSA  (thanks to Pedro Lopez-Cabanillas)

+ 7 - 6
tests/Makefile.in

@@ -1,9 +1,10 @@
+### Do not edit -- Generated by 'configure --with-whatever' from Makefile.in
 ### RtMidi tests Makefile - for various flavors of unix
 
-PROGRAMS = midiinfo midiout qmidiin cmidiin sysextest
+PROGRAMS = midiprobe midiout qmidiin cmidiin sysextest
 RM = /bin/rm
-SRC_PATH = ../
-INCLUDE = ../
+SRC_PATH = ..
+INCLUDE = ..
 OBJECT_PATH = @object_path@
 vpath %.o $(OBJECT_PATH)
 
@@ -22,8 +23,8 @@ LIBRARY += @frameworks@
 
 all : $(PROGRAMS)
 
-midiinfo : midiinfo.cpp $(OBJECTS)
-	$(CC) $(CFLAGS) $(DEFS) -o midiinfo midiinfo.cpp $(OBJECT_PATH)/RtMidi.o $(LIBRARY)
+midiprobe : midiprobe.cpp $(OBJECTS)
+	$(CC) $(CFLAGS) $(DEFS) -o midiprobe midiprobe.cpp $(OBJECT_PATH)/RtMidi.o $(LIBRARY)
 
 midiout : midiout.cpp $(OBJECTS)
 	$(CC) $(CFLAGS) $(DEFS) -o midiout midiout.cpp $(OBJECT_PATH)/RtMidi.o $(LIBRARY)
@@ -39,7 +40,7 @@ sysextest : sysextest.cpp $(OBJECTS)
 
 clean : 
 	-rm $(OBJECT_PATH)/*.o
-	-rm $(PROGRAMS)
+	-rm $(PROGRAMS) *.exe
 	-rm -f *~
 
 strip : 

+ 16 - 4
tests/RtMidi.dsw

@@ -3,7 +3,7 @@ Microsoft Developer Studio Workspace File, Format Version 6.00
 
 ###############################################################################
 
-Project: "cmidiin"=.\cmidiin.dsp - Package Owner=<4>
+Project: "cmidiin"=".\cmidiin.dsp" - Package Owner=<4>
 
 Package=<5>
 {{{
@@ -15,7 +15,7 @@ Package=<4>
 
 ###############################################################################
 
-Project: "midiinfo"=.\midiinfo.dsp - Package Owner=<4>
+Project: "midiout"=".\midiout.dsp" - Package Owner=<4>
 
 Package=<5>
 {{{
@@ -27,7 +27,7 @@ Package=<4>
 
 ###############################################################################
 
-Project: "midiout"=.\midiout.dsp - Package Owner=<4>
+Project: "midiprobe"=".\midiprobe.dsp" - Package Owner=<4>
 
 Package=<5>
 {{{
@@ -39,7 +39,19 @@ Package=<4>
 
 ###############################################################################
 
-Project: "qmidiin"=.\qmidiin.dsp - Package Owner=<4>
+Project: "qmidiin"=".\qmidiin.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "sysextest"=".\sysextest.dsp" - Package Owner=<4>
 
 Package=<5>
 {{{

+ 6 - 6
tests/cmidiin.cpp

@@ -10,12 +10,12 @@
 #include <iostream>
 #include "RtMidi.h"
 
-void usage(void) {
+void usage( void ) {
   // Error function in case of incorrect command-line
   // argument specifications.
   std::cout << "\nuseage: cmidiin <port>\n";
   std::cout << "    where port = the device to use (default = 0).\n\n";
-  exit(0);
+  exit( 0 );
 }
 
 void mycallback( double deltatime, std::vector< unsigned char > *message, void *userData )
@@ -27,7 +27,7 @@ void mycallback( double deltatime, std::vector< unsigned char > *message, void *
     std::cout << "stamp = " << deltatime << '\n';
 }
 
-int main(int argc, char *argv[])
+int main( int argc, char *argv[] )
 {
   RtMidiIn *midiin = 0;
 
@@ -38,9 +38,9 @@ int main(int argc, char *argv[])
   try {
     midiin = new RtMidiIn();
   }
-  catch (RtError &error) {
+  catch ( RtError &error ) {
     error.printMessage();
-    exit(EXIT_FAILURE);
+    exit( EXIT_FAILURE );
   }
 
   // Check available ports vs. specified.
@@ -56,7 +56,7 @@ int main(int argc, char *argv[])
   try {
     midiin->openPort( port );
   }
-  catch (RtError &error) {
+  catch ( RtError &error ) {
     error.printMessage();
     goto cleanup;
   }

+ 0 - 33
tests/cmidiin.plg

@@ -1,33 +0,0 @@
-<html>
-<body>
-<pre>
-<h1>Build Log</h1>
-<h3>
---------------------Configuration: cmidiin - Win32 Release--------------------
-</h3>
-<h3>Command Lines</h3>
-Creating temporary file "c:\windows\TEMP\RSP5012.TMP" with contents
-[
-/nologo /ML /W3 /GX /O2 /I "../" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_MM__" /Fp"Release/cmidiin.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c 
-"C:\gary\rtmidi\RtMidi.cpp"
-]
-Creating command line "cl.exe @c:\windows\TEMP\RSP5012.TMP" 
-Creating temporary file "c:\windows\TEMP\RSP5013.TMP" with contents
-[
-kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:console /incremental:no /pdb:"cmidiin.pdb" /machine:I386 /out:"cmidiin.exe" 
-.\Release\RtMidi.obj
-.\Release\cmidiin.obj
-]
-Creating command line "link.exe @c:\windows\TEMP\RSP5013.TMP"
-<h3>Output Window</h3>
-Compiling...
-RtMidi.cpp
-Linking...
-
-
-
-<h3>Results</h3>
-cmidiin.exe - 0 error(s), 0 warning(s)
-</pre>
-</body>
-</html>

+ 0 - 25
tests/midiinfo.plg

@@ -1,25 +0,0 @@
-<html>
-<body>
-<pre>
-<h1>Build Log</h1>
-<h3>
---------------------Configuration: midiinfo - Win32 Release--------------------
-</h3>
-<h3>Command Lines</h3>
-Creating temporary file "c:\windows\TEMP\RSP51B0.TMP" with contents
-[
-kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:console /incremental:no /pdb:"midiinfo.pdb" /machine:I386 /out:"midiinfo.exe" 
-.\Release\midiinfo.obj
-.\Release\RtMidi.obj
-]
-Creating command line "link.exe @c:\windows\TEMP\RSP51B0.TMP"
-<h3>Output Window</h3>
-Linking...
-
-
-
-<h3>Results</h3>
-midiinfo.exe - 0 error(s), 0 warning(s)
-</pre>
-</body>
-</html>

+ 4 - 4
tests/midiout.cpp

@@ -23,7 +23,7 @@
 // It returns false if there are no ports available.
 bool chooseMidiPort( RtMidiOut *rtmidi );
 
-int main(int argc, char *argv[])
+int main( int argc, char *argv[] )
 {
   RtMidiOut *midiout = 0;
   std::vector<unsigned char> message;
@@ -32,16 +32,16 @@ int main(int argc, char *argv[])
   try {
     midiout = new RtMidiOut();
   }
-  catch (RtError &error) {
+  catch ( RtError &error ) {
     error.printMessage();
-    exit(EXIT_FAILURE);
+    exit( EXIT_FAILURE );
   }
 
   // Call function to select port.
   try {
     if ( chooseMidiPort( midiout ) == false ) goto cleanup;
   }
-  catch (RtError &error) {
+  catch ( RtError &error ) {
     error.printMessage();
     goto cleanup;
   }

+ 0 - 33
tests/midiout.plg

@@ -1,33 +0,0 @@
-<html>
-<body>
-<pre>
-<h1>Build Log</h1>
-<h3>
---------------------Configuration: midiout - Win32 Release--------------------
-</h3>
-<h3>Command Lines</h3>
-Creating temporary file "c:\windows\TEMP\RSP5250.TMP" with contents
-[
-/nologo /ML /W3 /GX /O2 /I "../" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_MM__" /Fp"Release/midiout.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c 
-"C:\gary\rtmidi\tests\midiout.cpp"
-]
-Creating command line "cl.exe @c:\windows\TEMP\RSP5250.TMP" 
-Creating temporary file "c:\windows\TEMP\RSP5251.TMP" with contents
-[
-kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:console /incremental:no /pdb:"midiout.pdb" /machine:I386 /out:"midiout.exe" 
-.\Release\RtMidi.obj
-.\Release\midiout.obj
-]
-Creating command line "link.exe @c:\windows\TEMP\RSP5251.TMP"
-<h3>Output Window</h3>
-Compiling...
-midiout.cpp
-Linking...
-
-
-
-<h3>Results</h3>
-midiout.exe - 0 error(s), 0 warning(s)
-</pre>
-</body>
-</html>

+ 7 - 7
tests/midiinfo.cpp → tests/midiprobe.cpp

@@ -1,4 +1,4 @@
-// midiinfo.cpp
+// midiprobe.cpp
 //
 // Simple program to check MIDI inputs and outputs.
 //
@@ -16,9 +16,9 @@ int main()
   try {
     midiin = new RtMidiIn();
   }
-  catch (RtError &error) {
+  catch ( RtError &error ) {
     error.printMessage();
-    exit(EXIT_FAILURE);
+    exit( EXIT_FAILURE );
   }
 
   // Check inputs.
@@ -30,7 +30,7 @@ int main()
     try {
       portName = midiin->getPortName(i);
     }
-    catch (RtError &error) {
+    catch ( RtError &error ) {
       error.printMessage();
       goto cleanup;
     }
@@ -41,9 +41,9 @@ int main()
   try {
     midiout = new RtMidiOut();
   }
-  catch (RtError &error) {
+  catch ( RtError &error ) {
     error.printMessage();
-    exit(EXIT_FAILURE);
+    exit( EXIT_FAILURE );
   }
 
   // Check outputs.
@@ -53,7 +53,7 @@ int main()
     try {
       portName = midiout->getPortName(i);
     }
-    catch (RtError &error) {
+    catch ( RtError &error ) {
       error.printMessage();
       goto cleanup;
     }

+ 19 - 19
tests/midiinfo.dsp → tests/midiprobe.dsp

@@ -1,24 +1,24 @@
-# Microsoft Developer Studio Project File - Name="midiinfo" - Package Owner=<4>
+# Microsoft Developer Studio Project File - Name="midiprobe" - Package Owner=<4>
 # Microsoft Developer Studio Generated Build File, Format Version 6.00
 # ** DO NOT EDIT **
 
 # TARGTYPE "Win32 (x86) Console Application" 0x0103
 
-CFG=midiinfo - Win32 Debug
+CFG=midiprobe - Win32 Debug
 !MESSAGE This is not a valid makefile. To build this project using NMAKE,
 !MESSAGE use the Export Makefile command and run
 !MESSAGE 
-!MESSAGE NMAKE /f "midiinfo.mak".
+!MESSAGE NMAKE /f "midiprobe.mak".
 !MESSAGE 
 !MESSAGE You can specify a configuration when running NMAKE
 !MESSAGE by defining the macro CFG on the command line. For example:
 !MESSAGE 
-!MESSAGE NMAKE /f "midiinfo.mak" CFG="midiinfo - Win32 Debug"
+!MESSAGE NMAKE /f "midiprobe.mak" CFG="midiprobe - Win32 Debug"
 !MESSAGE 
 !MESSAGE Possible choices for configuration are:
 !MESSAGE 
-!MESSAGE "midiinfo - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "midiinfo - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE "midiprobe - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "midiprobe - Win32 Debug" (based on "Win32 (x86) Console Application")
 !MESSAGE 
 
 # Begin Project
@@ -28,12 +28,12 @@ CFG=midiinfo - Win32 Debug
 CPP=cl.exe
 RSC=rc.exe
 
-!IF  "$(CFG)" == "midiinfo - Win32 Release"
+!IF  "$(CFG)" == "midiprobe - Win32 Release"
 
 # PROP BASE Use_MFC 0
 # PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Output_Dir "midiprobe___Win32_Release"
+# PROP BASE Intermediate_Dir "midiprobe___Win32_Release"
 # PROP BASE Target_Dir ""
 # PROP Use_MFC 0
 # PROP Use_Debug_Libraries 0
@@ -49,15 +49,15 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:console /machine:I386
 
-!ELSEIF  "$(CFG)" == "midiinfo - Win32 Debug"
+!ELSEIF  "$(CFG)" == "midiprobe - Win32 Debug"
 
 # PROP BASE Use_MFC 0
 # PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Output_Dir "midiprobe___Win32_Debug"
+# PROP BASE Intermediate_Dir "midiprobe___Win32_Debug"
 # PROP BASE Target_Dir ""
 # PROP Use_MFC 0
 # PROP Use_Debug_Libraries 1
@@ -65,29 +65,29 @@ LINK32=link.exe
 # PROP Intermediate_Dir "Debug"
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_MM__" /YX /FD /GZ /c
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ  /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_MM__" /YX /FD /GZ  /c
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
 # ADD RSC /l 0x409 /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
 
 !ENDIF 
 
 # Begin Target
 
-# Name "midiinfo - Win32 Release"
-# Name "midiinfo - Win32 Debug"
+# Name "midiprobe - Win32 Release"
+# Name "midiprobe - Win32 Debug"
 # Begin Group "Source Files"
 
 # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
 # Begin Source File
 
-SOURCE=.\midiinfo.cpp
+SOURCE=.\midiprobe.cpp
 # End Source File
 # Begin Source File
 

+ 7 - 7
tests/qmidiin.cpp

@@ -21,17 +21,17 @@
 #endif
 
 bool done;
-static void finish(int ignore){ done = true; }
+static void finish( int ignore ){ done = true; }
 
-void usage(void) {
+void usage( void ) {
   // Error function in case of incorrect command-line
   // argument specifications.
   std::cout << "\nusage: qmidiin <port>\n";
   std::cout << "    where port = the device to use (default = 0).\n\n";
-  exit(0);
+  exit( 0 );
 }
 
-int main(int argc, char *argv[])
+int main( int argc, char *argv[] )
 {
   RtMidiIn *midiin = 0;
   std::vector<unsigned char> message;
@@ -45,9 +45,9 @@ int main(int argc, char *argv[])
   try {
     midiin = new RtMidiIn();
   }
-  catch (RtError &error) {
+  catch ( RtError &error ) {
     error.printMessage();
-    exit(EXIT_FAILURE);
+    exit( EXIT_FAILURE );
   }
 
   // Check available ports vs. specified.
@@ -63,7 +63,7 @@ int main(int argc, char *argv[])
   try {
     midiin->openPort( port );
   }
-  catch (RtError &error) {
+  catch ( RtError &error ) {
     error.printMessage();
     goto cleanup;
   }

+ 0 - 25
tests/qmidiin.plg

@@ -1,25 +0,0 @@
-<html>
-<body>
-<pre>
-<h1>Build Log</h1>
-<h3>
---------------------Configuration: qmidiin - Win32 Release--------------------
-</h3>
-<h3>Command Lines</h3>
-Creating temporary file "c:\windows\TEMP\RSP5122.TMP" with contents
-[
-kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:console /incremental:no /pdb:"qmidiin.pdb" /machine:I386 /out:"qmidiin.exe" 
-.\Release\qmidiin.obj
-.\Release\RtMidi.obj
-]
-Creating command line "link.exe @c:\windows\TEMP\RSP5122.TMP"
-<h3>Output Window</h3>
-Linking...
-
-
-
-<h3>Results</h3>
-qmidiin.exe - 0 error(s), 0 warning(s)
-</pre>
-</body>
-</html>

+ 5 - 5
tests/sysextest.cpp

@@ -9,10 +9,10 @@
 #include <iostream>
 #include "RtMidi.h"
 
-void usage(void) {
+void usage( void ) {
   std::cout << "\nuseage: sysextest N\n";
   std::cout << "    where N = length of sysex message to send / receive.\n\n";
-  exit(0);
+  exit( 0 );
 }
 
 // Platform-dependent sleep routines.
@@ -29,7 +29,7 @@ void usage(void) {
 // It returns false if there are no ports available.
 bool chooseMidiPort( RtMidi *rtmidi );
 
-int main(int argc, char *argv[])
+int main( int argc, char *argv[] )
 {
   RtMidiOut *midiout = 0;
   RtMidiIn *midiin = 0;
@@ -46,7 +46,7 @@ int main(int argc, char *argv[])
     midiout = new RtMidiOut();
     midiin = new RtMidiIn();
   }
-  catch (RtError &error) {
+  catch ( RtError &error ) {
     error.printMessage();
     goto cleanup;
   }
@@ -59,7 +59,7 @@ int main(int argc, char *argv[])
     if ( chooseMidiPort( midiin ) == false ) goto cleanup;
     if ( chooseMidiPort( midiout ) == false ) goto cleanup;
   }
-  catch (RtError &error) {
+  catch ( RtError &error ) {
     error.printMessage();
     goto cleanup;
   }

+ 114 - 0
tests/sysextest.dsp

@@ -0,0 +1,114 @@
+# Microsoft Developer Studio Project File - Name="sysextest" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=sysextest - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "sysextest.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "sysextest.mak" CFG="sysextest - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "sysextest - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "sysextest - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "sysextest - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "sysextest___Win32_Release"
+# PROP BASE Intermediate_Dir "sysextest___Win32_Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "../" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_MM__" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:console /machine:I386
+
+!ELSEIF  "$(CFG)" == "sysextest - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "sysextest___Win32_Debug"
+# PROP BASE Intermediate_Dir "sysextest___Win32_Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ  /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_MM__" /YX /FD /GZ  /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "sysextest - Win32 Release"
+# Name "sysextest - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\RtMidi.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\sysextest.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=..\RtError.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\RtMidi.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project