summaryrefslogtreecommitdiff
path: root/libs/midi++2/mmctest.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-06-02 21:41:35 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-06-02 21:41:35 +0000
commit449aab3c465bbbf66d221fac3d7ea559f1720357 (patch)
tree6843cc40c88250a132acac701271f1504cd2df04 /libs/midi++2/mmctest.cc
parent9c0d7d72d70082a54f823cd44c0ccda5da64bb6f (diff)
rollback to 3428, before the mysterious removal of libs/* at 3431/3432
git-svn-id: svn://localhost/ardour2/branches/3.0@3435 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/midi++2/mmctest.cc')
-rw-r--r--libs/midi++2/mmctest.cc112
1 files changed, 112 insertions, 0 deletions
diff --git a/libs/midi++2/mmctest.cc b/libs/midi++2/mmctest.cc
new file mode 100644
index 0000000000..062f6e8d32
--- /dev/null
+++ b/libs/midi++2/mmctest.cc
@@ -0,0 +1,112 @@
+#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++/manager.h"
+#include "midi++/mmc.h"
+
+using namespace MIDI;
+using namespace PBD;
+
+Port *port;
+PortRequest midi_device;
+Parser *parser;
+MachineControl *mmc;
+MachineControl::CommandSignature cs;
+MachineControl::ResponseSignature rs;
+
+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;
+ }
+
+ mmc = new MachineControl (*port, 0.0, cs, rs);
+
+ return 0;
+}
+
+void
+do_deferred_play (MachineControl &mmc)
+
+{
+ cout << "Deferred Play" << endl;
+}
+
+void
+do_stop (MachineControl &mmc)
+
+{
+ cout << "Stop" << endl;
+}
+
+void
+do_ffwd (MachineControl &mmc)
+
+{
+ cout << "Fast Forward" << endl;
+}
+
+void
+do_rewind (MachineControl &mmc)
+
+{
+ cout << "Rewind" << endl;
+}
+
+void
+do_record_status (MachineControl &mmc, size_t track, bool enabled)
+
+{
+ cout << "Track " << track + 1 << (enabled ? " enabled" : " disabled")
+ << endl;
+}
+
+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);
+ }
+
+
+ mmc->DeferredPlay.connect (mem_fun (do_deferred_play));
+ mmc->FastForward.connect (mem_fun (do_ffwd));
+ mmc->Rewind.connect (mem_fun (do_rewind));
+ mmc->Stop.connect (mem_fun (do_stop));
+ mmc->TrackRecordStatusChange.connect (mem_fun (do_record_status));
+
+ while (1) {
+ if (port->read (buf, 1) < 0) {
+ error << "cannot read byte"
+ << endmsg;
+ break;
+ }
+ }
+}
+
+