diff options
author | Taybin Rutkin <taybin@taybin.com> | 2005-05-13 20:47:18 +0000 |
---|---|---|
committer | Taybin Rutkin <taybin@taybin.com> | 2005-05-13 20:47:18 +0000 |
commit | d09f6b3016bacbc2871a8946cbb24ad705076509 (patch) | |
tree | f27312839c2a772cb2ce068a4f28b2449ad869df /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.cc | 64 |
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; + } + } +} + + |