diff --git a/libs/ardour/ardour/control_protocol_manager.h b/libs/ardour/ardour/control_protocol_manager.h index 1eee1e77bc..2ef375cecd 100644 --- a/libs/ardour/ardour/control_protocol_manager.h +++ b/libs/ardour/ardour/control_protocol_manager.h @@ -48,12 +48,13 @@ class LIBARDOUR_API ControlProtocolInfo { std::string name; std::string path; bool requested; - bool mandatory; - bool supports_feedback; XMLNode* state; - ControlProtocolInfo() : descriptor (0), protocol (0), requested(false), - mandatory(false), supports_feedback(false), state (0) + ControlProtocolInfo() + : descriptor (0) + , protocol (0) + , requested(false) + , state (0) {} ~ControlProtocolInfo(); @@ -69,7 +70,6 @@ class LIBARDOUR_API ControlProtocolManager : public PBD::Stateful, public ARDOUR void set_session (Session*); void discover_control_protocols (); void foreach_known_protocol (boost::function); - void load_mandatory_protocols (); void midi_connectivity_established (); void drop_protocols (); diff --git a/libs/ardour/control_protocol_manager.cc b/libs/ardour/control_protocol_manager.cc index 6676e829c7..0d2ecab683 100644 --- a/libs/ardour/control_protocol_manager.cc +++ b/libs/ardour/control_protocol_manager.cc @@ -100,7 +100,7 @@ ControlProtocolManager::set_session (Session* s) Glib::Threads::RWLock::ReaderLock lm (protocols_lock); for (list::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) { - if ((*i)->requested || (*i)->mandatory) { + if ((*i)->requested) { (void) activate (**i); } } @@ -262,10 +262,6 @@ ControlProtocolManager::teardown (ControlProtocolInfo& cpi, bool lock_required) return 0; } - if (cpi.mandatory) { - return 0; - } - /* save current state */ delete cpi.state; @@ -306,24 +302,6 @@ ControlProtocolManager::teardown (ControlProtocolInfo& cpi, bool lock_required) return 0; } -void -ControlProtocolManager::load_mandatory_protocols () -{ - if (_session == 0) { - return; - } - - Glib::Threads::RWLock::ReaderLock lm (protocols_lock); - - for (list::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) { - if ((*i)->mandatory && ((*i)->protocol == 0)) { - DEBUG_TRACE (DEBUG::ControlProtocols, - string_compose (_("Instantiating mandatory control protocol %1"), (*i)->name)); - instantiate (**i); - } - } -} - struct ControlProtocolOrderByName { bool operator() (ControlProtocolInfo* const & a, ControlProtocolInfo* const & b) const { @@ -406,8 +384,6 @@ ControlProtocolManager::control_protocol_discover (string path) cpi->path = path; cpi->protocol = 0; cpi->requested = false; - cpi->mandatory = descriptor->mandatory; - cpi->supports_feedback = descriptor->supports_feedback; cpi->state = 0; control_protocol_info.push_back (cpi); diff --git a/libs/ctrl-interface/control_protocol/control_protocol/control_protocol.h b/libs/ctrl-interface/control_protocol/control_protocol/control_protocol.h index 02150feef1..75c53505eb 100644 --- a/libs/ctrl-interface/control_protocol/control_protocol/control_protocol.h +++ b/libs/ctrl-interface/control_protocol/control_protocol/control_protocol.h @@ -173,10 +173,7 @@ class ControlProtocolDescriptor public: const char* name; /* descriptive */ const char* id; /* unique and version-specific */ - void* ptr; /* protocol can store a value here */ void* module; /* not for public access */ - int mandatory; /* if non-zero, always load and do not make optional */ - bool supports_feedback; /* if true, protocol has toggleable feedback mechanism */ bool (*probe) (ControlProtocolDescriptor*); ControlProtocol* (*initialize) (ControlProtocolDescriptor*, Session*); void (*destroy) (ControlProtocolDescriptor*, ControlProtocol*); diff --git a/libs/surfaces/cc121/cc121_interface.cc b/libs/surfaces/cc121/cc121_interface.cc index d80b666d3c..83b49d46c8 100644 --- a/libs/surfaces/cc121/cc121_interface.cc +++ b/libs/surfaces/cc121/cc121_interface.cc @@ -59,10 +59,7 @@ probe_cc121_midi_protocol (ControlProtocolDescriptor* /*descriptor*/) static ControlProtocolDescriptor cc121_midi_descriptor = { /*name : */ "Steinberg CC121", /*id : */ "uri://ardour.org/surfaces/cc121:0", - /*ptr : */ 0, /*module : */ 0, - /*mandatory : */ 0, - /*supports_feedback : */ true, /*probe : */ probe_cc121_midi_protocol, /*initialize : */ new_cc121_midi_protocol, /*destroy : */ delete_cc121_midi_protocol, diff --git a/libs/surfaces/contourdesign/interface.cc b/libs/surfaces/contourdesign/interface.cc index 0734cdc9c6..196574f11c 100644 --- a/libs/surfaces/contourdesign/interface.cc +++ b/libs/surfaces/contourdesign/interface.cc @@ -52,10 +52,7 @@ probe_contourdesign_protocol (ControlProtocolDescriptor*) static ControlProtocolDescriptor contourdesign_descriptor = { /* name : */ "ContourDesign", /* id : */ "uri://ardour.org/surfaces/contourdesign:0", - /* ptr : */ 0, /* module : */ 0, - /* mandatory : */ 0, - /* supports_feedback : */ false, /* probe : */ probe_contourdesign_protocol, /* initialize : */ new_contourdesign_protocol, /* destroy : */ delete_contourdesign_protocol, diff --git a/libs/surfaces/faderport/faderport_interface.cc b/libs/surfaces/faderport/faderport_interface.cc index d537b7328a..3f66a9a9b5 100644 --- a/libs/surfaces/faderport/faderport_interface.cc +++ b/libs/surfaces/faderport/faderport_interface.cc @@ -59,10 +59,7 @@ probe_faderport_midi_protocol (ControlProtocolDescriptor* /*descriptor*/) static ControlProtocolDescriptor faderport_midi_descriptor = { /*name : */ "PreSonus FaderPort", /*id : */ "uri://ardour.org/surfaces/faderport:0", - /*ptr : */ 0, /*module : */ 0, - /*mandatory : */ 0, - /*supports_feedback : */ true, /*probe : */ probe_faderport_midi_protocol, /*initialize : */ new_faderport_midi_protocol, /*destroy : */ delete_faderport_midi_protocol, diff --git a/libs/surfaces/faderport8/faderport16_interface.cc b/libs/surfaces/faderport8/faderport16_interface.cc index 57d34d140e..c927c25f1a 100644 --- a/libs/surfaces/faderport8/faderport16_interface.cc +++ b/libs/surfaces/faderport8/faderport16_interface.cc @@ -58,10 +58,7 @@ probe_faderport16_midi_protocol (ControlProtocolDescriptor* /*descriptor*/) static ControlProtocolDescriptor faderport16_midi_descriptor = { /*name : */ "PreSonus FaderPort16", /*id : */ "uri://ardour.org/surfaces/faderport16:0", - /*ptr : */ 0, /*module : */ 0, - /*mandatory : */ 0, - /*supports_feedback : */ true, /*probe : */ probe_faderport16_midi_protocol, /*initialize : */ new_faderport16_midi_protocol, /*destroy : */ delete_faderport16_midi_protocol, diff --git a/libs/surfaces/faderport8/faderport2_interface.cc b/libs/surfaces/faderport8/faderport2_interface.cc index 20fed9a566..245d23c2b8 100644 --- a/libs/surfaces/faderport8/faderport2_interface.cc +++ b/libs/surfaces/faderport8/faderport2_interface.cc @@ -58,10 +58,7 @@ probe_faderport2_midi_protocol (ControlProtocolDescriptor* /*descriptor*/) static ControlProtocolDescriptor faderport2_midi_descriptor = { /*name : */ "PreSonus FaderPort2", /*id : */ "uri://ardour.org/surfaces/faderport2:0", - /*ptr : */ 0, /*module : */ 0, - /*mandatory : */ 0, - /*supports_feedback : */ true, /*probe : */ probe_faderport2_midi_protocol, /*initialize : */ new_faderport2_midi_protocol, /*destroy : */ delete_faderport2_midi_protocol, diff --git a/libs/surfaces/faderport8/faderport8_interface.cc b/libs/surfaces/faderport8/faderport8_interface.cc index b09e2e1d7b..349e8885b6 100644 --- a/libs/surfaces/faderport8/faderport8_interface.cc +++ b/libs/surfaces/faderport8/faderport8_interface.cc @@ -58,10 +58,7 @@ probe_faderport8_midi_protocol (ControlProtocolDescriptor* /*descriptor*/) static ControlProtocolDescriptor faderport8_midi_descriptor = { /*name : */ "PreSonus FaderPort8", /*id : */ "uri://ardour.org/surfaces/faderport8:0", - /*ptr : */ 0, /*module : */ 0, - /*mandatory : */ 0, - /*supports_feedback : */ true, /*probe : */ probe_faderport8_midi_protocol, /*initialize : */ new_faderport8_midi_protocol, /*destroy : */ delete_faderport8_midi_protocol, diff --git a/libs/surfaces/frontier/tranzport/interface.cc b/libs/surfaces/frontier/tranzport/interface.cc index fa87dd2f65..b76c113b8a 100644 --- a/libs/surfaces/frontier/tranzport/interface.cc +++ b/libs/surfaces/frontier/tranzport/interface.cc @@ -50,10 +50,7 @@ probe_tranzport_protocol (ControlProtocolDescriptor* descriptor) static ControlProtocolDescriptor tranzport_descriptor = { name : "Tranzport", id : "uri://ardour.org/surfaces/tranzport:0", - ptr : 0, module : 0, - mandatory : 0, - supports_feedback : false, probe : probe_tranzport_protocol, initialize : new_tranzport_protocol, destroy : delete_tranzport_protocol diff --git a/libs/surfaces/generic_midi/interface.cc b/libs/surfaces/generic_midi/interface.cc index cc8ba76ba5..9c15e4bce0 100644 --- a/libs/surfaces/generic_midi/interface.cc +++ b/libs/surfaces/generic_midi/interface.cc @@ -59,10 +59,7 @@ probe_generic_midi_protocol (ControlProtocolDescriptor* /*descriptor*/) static ControlProtocolDescriptor generic_midi_descriptor = { /*name : */ "Generic MIDI", /*id : */ "uri://ardour.org/surfaces/generic_midi:0", - /*ptr : */ 0, /*module : */ 0, - /*mandatory : */ 0, - /*supports_feedback : */ true, /*probe : */ probe_generic_midi_protocol, /*initialize : */ new_generic_midi_protocol, /*destroy : */ delete_generic_midi_protocol, diff --git a/libs/surfaces/launch_control_xl/interface.cc b/libs/surfaces/launch_control_xl/interface.cc index 8fcc074c4a..3ccfe665cd 100644 --- a/libs/surfaces/launch_control_xl/interface.cc +++ b/libs/surfaces/launch_control_xl/interface.cc @@ -77,14 +77,7 @@ probe_launch_control_xl (ControlProtocolDescriptor*) static ControlProtocolDescriptor launch_control_xl_descriptor = { /*name : */ "Novation Launch Control XL", /*id : */ "uri://ardour.org/surfaces/launch_control_xl:0", - /*ptr : */ 0, /*module : */ 0, - /*mandatory : */ 0, - // actually, the surface does support feedback, but all this - // flag does is show a submenu on the UI, which is useless for the mackie - // because feedback is always on. In any case, who'd want to use the - // mcu without the motorised sliders doing their thing? - /*supports_feedback : */ true, /*probe : */ probe_launch_control_xl, /*initialize : */ new_launch_control_xl, /*destroy : */ delete_launch_control_xl, diff --git a/libs/surfaces/mackie/interface.cc b/libs/surfaces/mackie/interface.cc index 5a5ff0dfef..9e347de334 100644 --- a/libs/surfaces/mackie/interface.cc +++ b/libs/surfaces/mackie/interface.cc @@ -81,14 +81,7 @@ probe_mackie_protocol (ControlProtocolDescriptor*) static ControlProtocolDescriptor mackie_descriptor = { /*name : */ "Mackie", /*id : */ "uri://ardour.org/surfaces/mackie:0", - /*ptr : */ 0, /*module : */ 0, - /*mandatory : */ 0, - // actually, the surface does support feedback, but all this - // flag does is show a submenu on the UI, which is useless for the mackie - // because feedback is always on. In any case, who'd want to use the - // mcu without the motorised sliders doing their thing? - /*supports_feedback : */ false, /*probe : */ probe_mackie_protocol, /*initialize : */ new_mackie_protocol, /*destroy : */ delete_mackie_protocol, diff --git a/libs/surfaces/maschine2/interface.cc b/libs/surfaces/maschine2/interface.cc index a189f0d432..c414996977 100644 --- a/libs/surfaces/maschine2/interface.cc +++ b/libs/surfaces/maschine2/interface.cc @@ -60,10 +60,7 @@ probe_maschine2 (ControlProtocolDescriptor*) static ControlProtocolDescriptor maschine2_descriptor = { /*name : */ "NI Maschine2", /*id : */ "uri://ardour.org/surfaces/maschine2:0", - /*ptr : */ 0, /*module : */ 0, - /*mandatory : */ 0, - /*supports_feedback : */ false, /*probe : */ probe_maschine2, /*initialize : */ new_maschine2, /*destroy : */ delete_maschine2, diff --git a/libs/surfaces/osc/interface.cc b/libs/surfaces/osc/interface.cc index 06f16b11d9..6bc777452d 100644 --- a/libs/surfaces/osc/interface.cc +++ b/libs/surfaces/osc/interface.cc @@ -49,10 +49,7 @@ probe_osc_protocol (ControlProtocolDescriptor* /*descriptor*/) static ControlProtocolDescriptor osc_descriptor = { /*name : */ "Open Sound Control (OSC)", /*id : */ "uri://ardour.org/surfaces/osc:0", - /*ptr : */ 0, /*module : */ 0, - /*mandatory : */ 0, - /*supports_feedback : */ true, /*probe : */ probe_osc_protocol, /*initialize : */ new_osc_protocol, /*destroy : */ delete_osc_protocol, diff --git a/libs/surfaces/push2/interface.cc b/libs/surfaces/push2/interface.cc index 7db4d21e73..b48f7736a3 100644 --- a/libs/surfaces/push2/interface.cc +++ b/libs/surfaces/push2/interface.cc @@ -75,14 +75,7 @@ probe_push2 (ControlProtocolDescriptor*) static ControlProtocolDescriptor push2_descriptor = { /*name : */ "Ableton Push 2", /*id : */ "uri://ardour.org/surfaces/push2:0", - /*ptr : */ 0, /*module : */ 0, - /*mandatory : */ 0, - // actually, the surface does support feedback, but all this - // flag does is show a submenu on the UI, which is useless for the mackie - // because feedback is always on. In any case, who'd want to use the - // mcu without the motorised sliders doing their thing? - /*supports_feedback : */ false, /*probe : */ probe_push2, /*initialize : */ new_push2, /*destroy : */ delete_push2, diff --git a/libs/surfaces/tranzport/interface.cc b/libs/surfaces/tranzport/interface.cc index 514cfbe4fb..ba7b710c47 100644 --- a/libs/surfaces/tranzport/interface.cc +++ b/libs/surfaces/tranzport/interface.cc @@ -52,10 +52,7 @@ probe_tranzport_protocol (ControlProtocolDescriptor* descriptor) static ControlProtocolDescriptor tranzport_descriptor = { name : "Tranzport", id : "uri://ardour.org/surfaces/tranzport:0", - ptr : 0, module : 0, - mandatory : 0, - supports_feedback : false, probe : probe_tranzport_protocol, initialize : new_tranzport_protocol, destroy : delete_tranzport_protocol diff --git a/libs/surfaces/us2400/interface.cc b/libs/surfaces/us2400/interface.cc index 9ded15ae19..bfa8ed227d 100644 --- a/libs/surfaces/us2400/interface.cc +++ b/libs/surfaces/us2400/interface.cc @@ -78,14 +78,7 @@ probe_us2400_protocol (ControlProtocolDescriptor*) static ControlProtocolDescriptor us2400_descriptor = { /*name : */ "Tascam US-2400", /*id : */ "uri://ardour.org/surfaces/us2400:0", - /*ptr : */ 0, /*module : */ 0, - /*mandatory : */ 0, - // actually, the surface does support feedback, but all this - // flag does is show a submenu on the UI, which is useless for the mackie - // because feedback is always on. In any case, who'd want to use the - // mcu without the motorised sliders doing their thing? - /*supports_feedback : */ false, /*probe : */ probe_us2400_protocol, /*initialize : */ new_us2400_protocol, /*destroy : */ delete_us2400_protocol, diff --git a/libs/surfaces/websockets/interface.cc b/libs/surfaces/websockets/interface.cc index f39c60e47a..804cff42cd 100644 --- a/libs/surfaces/websockets/interface.cc +++ b/libs/surfaces/websockets/interface.cc @@ -52,10 +52,7 @@ probe_ardour_websockets_protocol (ControlProtocolDescriptor* /*descriptor*/) static ControlProtocolDescriptor ardour_websockets_descriptor = { /*name : */ surface_name, /*id : */ surface_id, - /*ptr : */ 0, /*module : */ 0, - /*mandatory : */ 0, - /*supports_feedback : */ true, /*probe : */ probe_ardour_websockets_protocol, /*initialize : */ new_ardour_websockets_protocol, /*destroy : */ delete_ardour_websockets_protocol, diff --git a/libs/surfaces/wiimote/interface.cc b/libs/surfaces/wiimote/interface.cc index 245c6b5432..efb236b4e9 100644 --- a/libs/surfaces/wiimote/interface.cc +++ b/libs/surfaces/wiimote/interface.cc @@ -50,10 +50,7 @@ probe_wiimote_protocol (ControlProtocolDescriptor*) static ControlProtocolDescriptor wiimote_descriptor = { name : "Wiimote", id : "uri://ardour.org/surfaces/wiimote:0", - ptr : 0, module : 0, - mandatory : 0, - supports_feedback : false, probe : probe_wiimote_protocol, initialize : new_wiimote_protocol, destroy : delete_wiimote_protocol,