diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-06-02 21:41:35 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-06-02 21:41:35 +0000 |
commit | 449aab3c465bbbf66d221fac3d7ea559f1720357 (patch) | |
tree | 6843cc40c88250a132acac701271f1504cd2df04 /libs/midi++2/mmctest.cc | |
parent | 9c0d7d72d70082a54f823cd44c0ccda5da64bb6f (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.cc | 112 |
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; + } + } +} + + |