X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fsurfaces%2Fcontrol_protocol%2Fcontrol_protocol.cc;h=6ac673925a52d347f7fe1700197e20135cc52dde;hb=fcbf359dd6123ca55d89f859e41149d6e3f39975;hp=e0eb57fc87836038572492fb97ea0554aeecb043;hpb=ae2e8c67657daccb2cdafc3ddfeb7d9df126ed8f;p=ardour.git diff --git a/libs/surfaces/control_protocol/control_protocol.cc b/libs/surfaces/control_protocol/control_protocol.cc index e0eb57fc87..6ac673925a 100644 --- a/libs/surfaces/control_protocol/control_protocol.cc +++ b/libs/surfaces/control_protocol/control_protocol.cc @@ -53,6 +53,8 @@ PBD::Signal0 ControlProtocol::ClearRouteSelection; PBD::Signal0 ControlProtocol::StepTracksDown; PBD::Signal0 ControlProtocol::StepTracksUp; +const std::string ControlProtocol::state_node_name ("Protocol"); + ControlProtocol::ControlProtocol (Session& s, string str) : BasicUI (s) , _name (str) @@ -64,6 +66,13 @@ ControlProtocol::~ControlProtocol () { } +int +ControlProtocol::set_active (bool yn) +{ + _active = yn; + return 0; +} + void ControlProtocol::next_track (uint32_t initial_id) { @@ -272,7 +281,7 @@ ControlProtocol::route_get_peak_input_power (uint32_t table_index, uint32_t whic return 0.0f; } - return r->peak_meter().peak_power (which_input); + return r->peak_meter().meter_level (which_input, MeterPeak); } @@ -356,5 +365,28 @@ ControlProtocol:: route_get_name (uint32_t table_index) list > ControlProtocol::bundles () { - return list > (); + return list > (); +} + +XMLNode& +ControlProtocol::get_state () +{ + XMLNode* node = new XMLNode (state_node_name); + + node->add_property ("name", _name); + node->add_property ("feedback", get_feedback() ? "yes" : "no"); + + return *node; +} + +int +ControlProtocol::set_state (XMLNode const & node, int /* version */) +{ + const XMLProperty* prop; + + if ((prop = node.property ("feedback")) != 0) { + set_feedback (string_is_affirmative (prop->value())); + } + + return 0; }