summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-10-31 15:55:46 +0100
committerRobin Gareus <robin@gareus.org>2019-10-31 16:12:27 +0100
commitab298f035ae32532a48af315426b07fe8e1f12be (patch)
treeeb6bf36189d9492a417b650b5ebc8062cf6445da /gtk2_ardour
parent3cae11936f2cbd636eb5251ddd1abfb98da231ff (diff)
Consolidate automation and meter-point strings
This also properly selects texts in dropdown-menus on the mixer-strip, panner and plugin-controls, gain-meters.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/gain_meter.cc66
-rw-r--r--gtk2_ardour/gain_meter.h1
-rw-r--r--gtk2_ardour/generic_pluginui.cc42
-rw-r--r--gtk2_ardour/mixer_strip.cc21
-rw-r--r--gtk2_ardour/panner_ui.cc49
-rw-r--r--gtk2_ardour/panner_ui.h4
6 files changed, 60 insertions, 123 deletions
diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc
index f3d9669274..6c6b3c13f8 100644
--- a/gtk2_ardour/gain_meter.cc
+++ b/gtk2_ardour/gain_meter.cc
@@ -182,21 +182,22 @@ GainMeterBase::GainMeterBase (Session* s, bool horizontal, int fader_length, int
meter_point_menu.set_reserve_toggle_size(false);
meter_point_menu.items().clear ();
- meter_point_menu.items().push_back (MenuElem(_("Input"),
+ meter_point_menu.items().push_back (MenuElem(meterpt_string(MeterInput),
sigc::bind (sigc::mem_fun (*this,
&GainMeterBase::meter_point_clicked), (MeterPoint) MeterInput)));
- meter_point_menu.items().push_back (MenuElem(_("Pre Fader"),
+ meter_point_menu.items().push_back (MenuElem(meterpt_string(MeterPreFader),
sigc::bind (sigc::mem_fun (*this,
&GainMeterBase::meter_point_clicked), (MeterPoint) MeterPreFader)));
- meter_point_menu.items().push_back (MenuElem(_("Post Fader"),
+ meter_point_menu.items().push_back (MenuElem(meterpt_string (MeterPostFader),
sigc::bind (sigc::mem_fun (*this,
&GainMeterBase::meter_point_clicked), (MeterPoint) MeterPostFader)));
- meter_point_menu.items().push_back (MenuElem(_("Output"),
+ meter_point_menu.items().push_back (MenuElem(meterpt_string (MeterOutput),
sigc::bind (sigc::mem_fun (*this,
&GainMeterBase::meter_point_clicked), (MeterPoint) MeterOutput)));
- meter_point_menu.items().push_back (MenuElem(_("Custom"),
+ meter_point_menu.items().push_back (MenuElem(meterpt_string (MeterCustom),
sigc::bind (sigc::mem_fun (*this,
&GainMeterBase::meter_point_clicked), (MeterPoint) MeterCustom)));
+
meter_point_button.signal_button_press_event().connect (sigc::mem_fun (*this, &GainMeter::meter_press), false);
gain_adjustment.signal_value_changed().connect (sigc::mem_fun(*this, &GainMeterBase::fader_moved));
@@ -263,15 +264,15 @@ GainMeterBase::set_controls (boost::shared_ptr<Route> r,
gain_astate_menu.items().clear ();
- gain_astate_menu.items().push_back (MenuElem (S_("Automation|Manual"),
+ gain_astate_menu.items().push_back (MenuElem (astate_string (ARDOUR::Off),
sigc::bind (sigc::mem_fun (*this, &GainMeterBase::set_gain_astate), (AutoState) ARDOUR::Off)));
- gain_astate_menu.items().push_back (MenuElem (_("Play"),
+ gain_astate_menu.items().push_back (MenuElem (astate_string (ARDOUR::Play),
sigc::bind (sigc::mem_fun (*this, &GainMeterBase::set_gain_astate), (AutoState) ARDOUR::Play)));
- gain_astate_menu.items().push_back (MenuElem (_("Write"),
+ gain_astate_menu.items().push_back (MenuElem (astate_string (ARDOUR::Write),
sigc::bind (sigc::mem_fun (*this, &GainMeterBase::set_gain_astate), (AutoState) ARDOUR::Write)));
- gain_astate_menu.items().push_back (MenuElem (_("Touch"),
+ gain_astate_menu.items().push_back (MenuElem (astate_string (ARDOUR::Touch),
sigc::bind (sigc::mem_fun (*this, &GainMeterBase::set_gain_astate), (AutoState) ARDOUR::Touch)));
- gain_astate_menu.items().push_back (MenuElem (_("Latch"),
+ gain_astate_menu.items().push_back (MenuElem (astate_string (ARDOUR::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));
@@ -682,7 +683,8 @@ GainMeterBase::meter_press(GdkEventButton* ev)
}
Gtkmm2ext::anchored_menu_popup(&meter_point_menu,
&meter_point_button,
- "", 1, ev->time);
+ meterpt_string (_route->meter_point()),
+ 1, ev->time);
break;
default:
break;
@@ -752,7 +754,8 @@ GainMeterBase::gain_automation_state_button_event (GdkEventButton *ev)
gain_astate_propagate = Keyboard::modifier_state_contains (ev->state, Keyboard::ModifierMask (Keyboard::PrimaryModifier | Keyboard::TertiaryModifier));
Gtkmm2ext::anchored_menu_popup(&gain_astate_menu,
&gain_automation_state_button,
- "", 1, ev->time);
+ astate_string(_control->alist()->automation_state()),
+ 1, ev->time);
break;
default:
break;
@@ -781,38 +784,49 @@ GainMeterBase::_astate_string (AutoState state, bool shrt)
switch (state) {
case ARDOUR::Off:
- sstr = (shrt ? "M" : S_("Manual|M"));
+ sstr = shrt ? S_("Manual|M") : S_("Automation|Manual");
break;
case Play:
- sstr = (shrt ? "P" : S_("Play|P"));
+ sstr = shrt ? S_("Play|P") : _("Play");
break;
case Touch:
- sstr = (shrt ? "T" : S_("Trim|T"));
+ sstr = shrt ? S_("Trim|T") : _("Write");
break;
case Latch:
- sstr = (shrt ? "L" : S_("Latch|L"));
+ sstr = shrt ? S_("Latch|L") : _("Touch");
break;
case Write:
- sstr = (shrt ? "W" : S_("Write|W"));
+ sstr = shrt ? S_("Write|W"): _("Latch");
break;
}
return sstr;
}
+string
+GainMeterBase::meterpt_string (MeterPoint mp)
+{
+ switch (mp) {
+ case MeterInput:
+ return _("Input");
+ case MeterPreFader:
+ return _("Pre Fader");
+ case MeterPostFader:
+ return _("Post Fader");
+ case MeterOutput:
+ return _("Output");
+ case MeterCustom:
+ return _("Custom");
+ }
+ assert (0);
+ return _("Custom"); // make gcc happy
+}
+
void
GainMeterBase::gain_automation_state_changed ()
{
ENSURE_GUI_THREAD (*this, &GainMeterBase::gain_automation_state_changed);
-
- switch (_width) {
- case Wide:
- gain_automation_state_button.set_text (astate_string(_control->alist()->automation_state()));
- break;
- case Narrow:
- gain_automation_state_button.set_text (short_astate_string(_control->alist()->automation_state()));
- break;
- }
+ gain_automation_state_button.set_text (short_astate_string(_control->alist()->automation_state()));
const bool automation_watch_required = (_control->alist()->automation_state() != ARDOUR::Off);
diff --git a/gtk2_ardour/gain_meter.h b/gtk2_ardour/gain_meter.h
index 85b7166da1..2ae9a2ee44 100644
--- a/gtk2_ardour/gain_meter.h
+++ b/gtk2_ardour/gain_meter.h
@@ -107,6 +107,7 @@ public:
*/
PBD::Signal1<bool, GdkEventButton *> LevelMeterButtonPress;
+ static std::string meterpt_string (ARDOUR::MeterPoint);
static std::string astate_string (ARDOUR::AutoState);
static std::string short_astate_string (ARDOUR::AutoState);
static std::string _astate_string (ARDOUR::AutoState, bool);
diff --git a/gtk2_ardour/generic_pluginui.cc b/gtk2_ardour/generic_pluginui.cc
index e3b52a8d0d..e18cdfd889 100644
--- a/gtk2_ardour/generic_pluginui.cc
+++ b/gtk2_ardour/generic_pluginui.cc
@@ -876,30 +876,9 @@ GenericPluginUI::automation_state_changed (ControlUI* cui)
cui->automate_button.set_active((state != ARDOUR::Off));
if (cui->short_autostate) {
- cui->automate_button.set_text (
- GainMeterBase::astate_string (state));
- return;
- }
-
- switch (state & (ARDOUR::Off|Play|Touch|Write|Latch)) {
- case ARDOUR::Off:
- cui->automate_button.set_text (S_("Automation|Manual"));
- break;
- case Play:
- cui->automate_button.set_text (_("Play"));
- break;
- case Write:
- cui->automate_button.set_text (_("Write"));
- break;
- case Touch:
- cui->automate_button.set_text (_("Touch"));
- break;
- case Latch:
- cui->automate_button.set_text (_("Latch"));
- break;
- default:
- cui->automate_button.set_text (_("???"));
- break;
+ cui->automate_button.set_text (GainMeterBase::short_astate_string (state));
+ } else {
+ cui->automate_button.set_text (GainMeterBase::astate_string (state));
}
}
@@ -1215,19 +1194,20 @@ GenericPluginUI::astate_button_event (GdkEventButton* ev, ControlUI* cui)
MenuList& items (automation_menu->items());
items.clear ();
- items.push_back (MenuElem (S_("Automation|Manual"),
+ items.push_back (MenuElem (GainMeterBase::astate_string (ARDOUR::Off),
sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::set_automation_state), (AutoState) ARDOUR::Off, cui)));
- items.push_back (MenuElem (_("Play"),
+ items.push_back (MenuElem (GainMeterBase::astate_string (Play),
sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::set_automation_state), (AutoState) Play, cui)));
- items.push_back (MenuElem (_("Write"),
+ items.push_back (MenuElem (GainMeterBase::astate_string (Write),
sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::set_automation_state), (AutoState) Write, cui)));
- items.push_back (MenuElem (_("Touch"),
+ items.push_back (MenuElem (GainMeterBase::astate_string (Touch),
sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::set_automation_state), (AutoState) Touch, cui)));
- items.push_back (MenuElem (_("Latch"),
+ items.push_back (MenuElem (GainMeterBase::astate_string (Latch),
sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::set_automation_state), (AutoState) Latch, cui)));
- anchored_menu_popup(automation_menu, &cui->automate_button, cui->automate_button.get_text(),
- 1, ev->time);
+ anchored_menu_popup (automation_menu, &cui->automate_button,
+ GainMeterBase::astate_string (insert->get_parameter_automation_state (cui->parameter())),
+ 1, ev->time);
return true;
}
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index 27769d9169..79848f7466 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -782,6 +782,12 @@ MixerStrip::set_width_enum (Width w, void* owner)
const float scale = std::max(1.f, UIConfiguration::instance().get_ui_scale());
+ gpm.gain_automation_state_button.set_text (GainMeterBase::short_astate_string (gain_automation->automation_state()));
+
+ if (_route->panner()) {
+ ((Gtk::Label*)panners.pan_automation_state_button.get_child())->set_text (GainMeterBase::short_astate_string (_route->panner()->automation_state()));
+ }
+
switch (w) {
case Wide:
@@ -789,14 +795,6 @@ MixerStrip::set_width_enum (Width w, void* owner)
show_sends_button->set_text (_("Aux"));
}
- gpm.gain_automation_state_button.set_text (
- gpm.astate_string(gain_automation->automation_state()));
-
- if (_route->panner()) {
- ((Gtk::Label*)panners.pan_automation_state_button.get_child())->set_text (
- panners.astate_string(_route->panner()->automation_state()));
- }
-
{
// panners expect an even number of horiz. pixels
int width = rintf (max (110.f * scale, gpm.get_gm_width() + 10.f * scale)) + 1;
@@ -811,15 +809,8 @@ MixerStrip::set_width_enum (Width w, void* owner)
show_sends_button->set_text (_("Snd"));
}
- gpm.gain_automation_state_button.set_text (
- gpm.short_astate_string(gain_automation->automation_state()));
gain_meter().setup_meters (); // recalc meter width
- if (_route->panner()) {
- ((Gtk::Label*)panners.pan_automation_state_button.get_child())->set_text (
- panners.short_astate_string(_route->panner()->automation_state()));
- }
-
{
// panners expect an even number of horiz. pixels
int width = rintf (max (60.f * scale, gpm.get_gm_width() + 10.f * scale)) + 1;
diff --git a/gtk2_ardour/panner_ui.cc b/gtk2_ardour/panner_ui.cc
index 79aba88397..7b434a448c 100644
--- a/gtk2_ardour/panner_ui.cc
+++ b/gtk2_ardour/panner_ui.cc
@@ -37,6 +37,7 @@
#include "widgets/tooltips.h"
+#include "gain_meter.h"
#include "panner_ui.h"
#include "panner2d.h"
#include "gui_thread.h"
@@ -526,15 +527,7 @@ void
PannerUI::pan_automation_state_changed ()
{
boost::shared_ptr<Pannable> pannable (_panner->pannable());
-
- switch (_width) {
- case Wide:
- pan_automation_state_button.set_label (astate_string(pannable->automation_state()));
- break;
- case Narrow:
- pan_automation_state_button.set_label (short_astate_string(pannable->automation_state()));
- break;
- }
+ pan_automation_state_button.set_label (GainMeterBase::short_astate_string(pannable->automation_state()));
bool x = (pannable->automation_state() != ARDOUR::Off);
@@ -547,44 +540,6 @@ PannerUI::pan_automation_state_changed ()
update_pan_sensitive ();
}
-string
-PannerUI::astate_string (AutoState state)
-{
- return _astate_string (state, false);
-}
-
-string
-PannerUI::short_astate_string (AutoState state)
-{
- return _astate_string (state, true);
-}
-
-string
-PannerUI::_astate_string (AutoState state, bool shrt)
-{
- string sstr;
-
- switch (state) {
- case ARDOUR::Off:
- sstr = (shrt ? "M" : S_("Manual|M"));
- break;
- case Play:
- sstr = (shrt ? "P" : S_("Play|P"));
- break;
- case Touch:
- sstr = (shrt ? "T" : S_("Touch|T"));
- break;
- case Latch:
- sstr = (shrt ? "L" : S_("Latch|L"));
- break;
- case Write:
- sstr = (shrt ? "W" : S_("Write|W"));
- break;
- }
-
- return sstr;
-}
-
void
PannerUI::show_width ()
{
diff --git a/gtk2_ardour/panner_ui.h b/gtk2_ardour/panner_ui.h
index 1e83f33872..bd5c8cb5f1 100644
--- a/gtk2_ardour/panner_ui.h
+++ b/gtk2_ardour/panner_ui.h
@@ -144,10 +144,6 @@ private:
void pan_automation_state_changed();
gint pan_automation_state_button_event (GdkEventButton *);
- std::string astate_string (ARDOUR::AutoState);
- std::string short_astate_string (ARDOUR::AutoState);
- std::string _astate_string (ARDOUR::AutoState, bool);
-
void start_touch (boost::weak_ptr<ARDOUR::AutomationControl>);
void stop_touch (boost::weak_ptr<ARDOUR::AutomationControl>);