c6c59c658992ec49e5f793074ed968ba184dddb6
[ardour.git] / libs / surfaces / generic_midi / interface.cc
1 #include <control_protocol/control_protocol.h>
2 #include "generic_midi_control_protocol.h"
3
4 using namespace ARDOUR;
5
6 ControlProtocol*
7 new_generic_midi_protocol (ControlProtocolDescriptor* descriptor, Session* s)
8 {
9         GenericMidiControlProtocol* gmcp =  new GenericMidiControlProtocol (*s);
10         
11         if (gmcp->set_active (true)) {
12                 delete gmcp;
13                 return 0;
14         }
15
16         return gmcp;
17 }
18
19 void
20 delete_generic_midi_protocol (ControlProtocolDescriptor* descriptor, ControlProtocol* cp)
21 {
22         delete cp;
23 }
24
25 bool
26 probe_generic_midi_protocol (ControlProtocolDescriptor* descriptor)
27 {
28         return GenericMidiControlProtocol::probe ();
29 }
30
31 static ControlProtocolDescriptor generic_midi_descriptor = {
32         name : "Generic MIDI",
33         id : "uri://ardour.org/surfaces/generic_midi:0",
34         ptr : 0,
35         module : 0,
36         mandatory : 0,
37         probe : probe_generic_midi_protocol,
38         initialize : new_generic_midi_protocol,
39         destroy : delete_generic_midi_protocol
40 };
41         
42
43 extern "C" {
44 ControlProtocolDescriptor* 
45 protocol_descriptor () {
46         return &generic_midi_descriptor;
47 }
48 }
49