summaryrefslogtreecommitdiff
path: root/libs/midi++2/miditrace.cc
diff options
context:
space:
mode:
authorTaybin Rutkin <taybin@taybin.com>2005-05-13 20:47:18 +0000
committerTaybin Rutkin <taybin@taybin.com>2005-05-13 20:47:18 +0000
commitd09f6b3016bacbc2871a8946cbb24ad705076509 (patch)
treef27312839c2a772cb2ce068a4f28b2449ad869df /libs/midi++2/miditrace.cc
Initial revision
git-svn-id: svn://localhost/trunk/ardour2@4 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/midi++2/miditrace.cc')
-rw-r--r--libs/midi++2/miditrace.cc64
1 files changed, 64 insertions, 0 deletions
diff --git a/libs/midi++2/miditrace.cc b/libs/midi++2/miditrace.cc
new file mode 100644
index 0000000000..d7c65d9f29
--- /dev/null
+++ b/libs/midi++2/miditrace.cc
@@ -0,0 +1,64 @@
+#include <cstdio>
+#include <fcntl.h>
+
+#include <pbd/error.h>
+#include <pbd/textreceiver.h>
+
+Transmitter error (Transmitter::Error);
+Transmitter info (Transmitter::Info);
+Transmitter warning (Transmitter::Warning);
+Transmitter fatal (Transmitter::Fatal);
+TextReceiver text_receiver ("mmctest");
+
+#include "midi++/port.h"
+#include "midi++/port_request.h"
+#include "midi++/manager.h"
+
+using namespace MIDI;
+
+Port *port;
+PortRequest midi_device;
+
+int
+setup_midi ()
+
+{
+ midi_device.devname = "/dev/snd/midiC0D0";
+ midi_device.tagname = "trident";
+ midi_device.mode = O_RDWR;
+ midi_device.type = Port::ALSA_RawMidi;
+
+ if ((port = MIDI::Manager::instance()->add_port (midi_device)) == 0) {
+ info << "MIDI port is not valid" << endmsg;
+ return -1;
+ }
+
+ return 0;
+}
+
+main (int argc, char *argv[])
+
+{
+ byte buf[1];
+
+ text_receiver.listen_to (error);
+ text_receiver.listen_to (info);
+ text_receiver.listen_to (fatal);
+ text_receiver.listen_to (warning);
+
+ if (setup_midi ()) {
+ exit (1);
+ }
+
+ port->input()->trace (true, &cout);
+
+ while (1) {
+ if (port->read (buf, 1) < 0) {
+ error << "cannot read byte"
+ << endmsg;
+ break;
+ }
+ }
+}
+
+