don't double-load NestedSource nodes, which are listed both forthe parent/root region...
[ardour2.git] / libs / surfaces / generic_midi / interface.cc
bloba62ca2a34baf61ef4bfc21c3421de4fd759f4658
1 #include <pbd/failed_constructor.h>
3 #include "control_protocol/control_protocol.h"
4 #include "generic_midi_control_protocol.h"
6 using namespace ARDOUR;
8 ControlProtocol*
9 new_generic_midi_protocol (ControlProtocolDescriptor* /*descriptor*/, Session* s)
11 GenericMidiControlProtocol* gmcp;
13 try {
14 gmcp = new GenericMidiControlProtocol (*s);
15 } catch (failed_constructor& err) {
16 return 0;
19 if (gmcp->set_active (true)) {
20 delete gmcp;
21 return 0;
24 return gmcp;
27 void
28 delete_generic_midi_protocol (ControlProtocolDescriptor* /*descriptor*/, ControlProtocol* cp)
30 delete cp;
33 bool
34 probe_generic_midi_protocol (ControlProtocolDescriptor* /*descriptor*/)
36 return GenericMidiControlProtocol::probe ();
39 static ControlProtocolDescriptor generic_midi_descriptor = {
40 name : "Generic MIDI",
41 id : "uri://ardour.org/surfaces/generic_midi:0",
42 ptr : 0,
43 module : 0,
44 mandatory : 0,
45 supports_feedback : true,
46 probe : probe_generic_midi_protocol,
47 initialize : new_generic_midi_protocol,
48 destroy : delete_generic_midi_protocol
52 extern "C" {
53 ControlProtocolDescriptor*
54 protocol_descriptor () {
55 return &generic_midi_descriptor;