| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | 
							- //*****************************************//
 
- //  cmidiin.cpp
 
- //  by Gary Scavone, 2003-2004.
 
- //
 
- //  Simple program to test MIDI input and
 
- //  use of a user callback function.
 
- //
 
- //*****************************************//
 
- #include <iostream>
 
- #include "RtMidi.h"
 
- 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);
 
- }
 
- void mycallback( double deltatime, std::vector< unsigned char > *message, void *userData )
 
- {
 
-   unsigned int nBytes = message->size();
 
-   for ( unsigned int i=0; i<nBytes; i++ )
 
-     std::cout << "Byte " << i << " = " << (int)message->at(i) << ", ";
 
-   if ( nBytes > 0 )
 
-     std::cout << "stamp = " << deltatime << '\n';
 
- }
 
- int main(int argc, char *argv[])
 
- {
 
-   RtMidiIn *midiin = 0;
 
-   // Minimal command-line check.
 
-   if ( argc > 2 ) usage();
 
-   // RtMidiIn constructor
 
-   try {
 
-     midiin = new RtMidiIn();
 
-   }
 
-   catch (RtError &error) {
 
-     error.printMessage();
 
-     exit(EXIT_FAILURE);
 
-   }
 
-   // Check available ports vs. specified.
 
-   unsigned int port = 0;
 
-   unsigned int nPorts = midiin->getPortCount();
 
-   if ( argc == 2 ) port = (unsigned int) atoi( argv[1] );
 
-   if ( port >= nPorts ) {
 
-     delete midiin;
 
-     std::cout << "Invalid port specifier!\n";
 
-     usage();
 
-   }
 
-   try {
 
-     midiin->openPort( port );
 
-   }
 
-   catch (RtError &error) {
 
-     error.printMessage();
 
-     goto cleanup;
 
-   }
 
-   // Set our callback function.  This should be done immediately after
 
-   // opening the port to avoid having incoming messages written to the
 
-   // queue instead of sent to the callback function.
 
-   midiin->setCallback( &mycallback );
 
-   // Don't ignore sysex, timing, or active sensing messages.
 
-   midiin->ignoreTypes( false, false, false );
 
-   std::cout << "\nReading MIDI input ... press <enter> to quit.\n";
 
-   char input;
 
-   std::cin.get(input);
 
-   // Clean up
 
-  cleanup:
 
-   delete midiin;
 
-   return 0;
 
- }
 
 
  |