X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fgain_meter.cc;h=02c3967f1614495a937e59b1dc25f4cb6011894f;hb=6038ef44f9786b4b981760dcbcfd467ec8faf108;hp=9a4ed70084b72bd2cf1b03e92f2e1055cce5d50a;hpb=eb1e423b7521d4c277c11a884113f40e7406ade8;p=ardour.git diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc index 9a4ed70084..02c3967f16 100644 --- a/gtk2_ardour/gain_meter.cc +++ b/gtk2_ardour/gain_meter.cc @@ -262,6 +262,8 @@ GainMeterBase::set_controls (boost::shared_ptr r, sigc::bind (sigc::mem_fun (*this, &GainMeterBase::set_gain_astate), (AutoState) ARDOUR::Write))); gain_astate_menu.items().push_back (MenuElem (_("Touch"), sigc::bind (sigc::mem_fun (*this, &GainMeterBase::set_gain_astate), (AutoState) ARDOUR::Touch))); + gain_astate_menu.items().push_back (MenuElem (_("Latch"), + sigc::bind (sigc::mem_fun (*this, &GainMeterBase::set_gain_astate), (AutoState) ARDOUR::Latch))); connections.push_back (gain_automation_state_button.signal_button_press_event().connect (sigc::mem_fun(*this, &GainMeterBase::gain_automation_state_button_event), false)); connections.push_back (ChangeGainAutomationState.connect (sigc::mem_fun(*this, &GainMeterBase::set_gain_astate))); @@ -292,7 +294,12 @@ GainMeterBase::set_gain_astate (AutoState as) ChangeGainAutomationState (as); return; } - _amp->set_parameter_automation_state (Evoral::Parameter (GainAutomation), as); + if (_amp) { + _amp->set_parameter_automation_state (Evoral::Parameter (GainAutomation), as); + } else if (_control) { + _control->set_automation_state (as); + _session->set_dirty (); + } } void @@ -732,7 +739,7 @@ GainMeterBase::amp_start_touch () void GainMeterBase::amp_stop_touch () { - _control->stop_touch (false, _control->session().transport_frame()); + _control->stop_touch (_control->session().transport_frame()); effective_gain_display (); } @@ -777,16 +784,19 @@ GainMeterBase::_astate_string (AutoState state, bool shrt) switch (state) { case ARDOUR::Off: - sstr = (shrt ? "M" : _("M")); + sstr = (shrt ? "M" : S_("Manual|M")); break; case Play: - sstr = (shrt ? "P" : _("P")); + sstr = (shrt ? "P" : S_("Play|P")); break; case Touch: - sstr = (shrt ? "T" : _("T")); + sstr = (shrt ? "T" : S_("Trim|T")); + break; + case Latch: + sstr = (shrt ? "L" : S_("Latch|L")); break; case Write: - sstr = (shrt ? "W" : _("W")); + sstr = (shrt ? "W" : S_("Write|W")); break; }