1 #include <midi++/port.h>
3 #include <ardour/route.h>
4 #include <ardour/session.h>
6 #include "generic_midi_control_protocol.h"
8 using namespace ARDOUR;
12 GenericMidiControlProtocol::GenericMidiControlProtocol (Session& s)
13 : ControlProtocol (s, _("GenericMIDI"))
15 _port = s.midi_port();
16 s.MIDI_PortChanged.connect (mem_fun (*this, &GenericMidiControlProtocol::port_change));
20 GenericMidiControlProtocol::~GenericMidiControlProtocol ()
25 GenericMidiControlProtocol::set_active (bool yn)
27 /* start delivery/outbound thread */
32 GenericMidiControlProtocol::port_change ()
34 _port = session->midi_port ();
38 GenericMidiControlProtocol::set_port (MIDI::Port* p)
44 GenericMidiControlProtocol::send_route_feedback (list<Route*>& routes)
48 const int32_t bufsize = 16 * 1024;
49 MIDI::byte buf[bufsize];
50 int32_t bsize = bufsize;
51 MIDI::byte* end = buf;
53 for (list<Route*>::iterator r = routes.begin(); r != routes.end(); ++r) {
54 end = (*r)->write_midi_feedback (end, bsize);
62 //_port->write (buf, (int32_t) (end - buf));
63 //cerr << "MIDI feedback: wrote " << (int32_t) (end - buf) << " to midi port\n";