summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-07-15 14:38:24 +0200
committerRobin Gareus <robin@gareus.org>2013-07-15 15:04:32 +0200
commit9b1d7fd2f7c9167d9d7b7aa3115497ab65747877 (patch)
treec5b2e432fbc2205e14891cc1eef85bfd4c4067b6
parent6908ad1053a42bf98bfc576e481424d6a4c073df (diff)
simplify meter-type context menu
in preparation for adding more meter-types
-rw-r--r--gtk2_ardour/meter_patterns.cc15
-rw-r--r--gtk2_ardour/meter_patterns.h2
-rw-r--r--gtk2_ardour/meter_strip.cc19
-rw-r--r--gtk2_ardour/mixer_strip.cc19
4 files changed, 39 insertions, 16 deletions
diff --git a/gtk2_ardour/meter_patterns.cc b/gtk2_ardour/meter_patterns.cc
index cb5209d8ea..80655af7b9 100644
--- a/gtk2_ardour/meter_patterns.cc
+++ b/gtk2_ardour/meter_patterns.cc
@@ -54,6 +54,21 @@ namespace ArdourMeter {
static ArdourMeter::TickPatterns ticks_patterns;
static ArdourMeter::MetricPatterns metric_patterns;
+const std::string
+ArdourMeter::meter_type_string (ARDOUR::MeterType mt)
+{
+ switch (mt) {
+ case MeterPeak:
+ return _("Peak");
+ break;
+ case MeterKrms:
+ return _("RMS + Peak");
+ break;
+ default:
+ return _("???");
+ break;
+ }
+}
static cairo_pattern_t*
meter_render_ticks (Gtk::Widget& w, vector<ARDOUR::DataType> types)
diff --git a/gtk2_ardour/meter_patterns.h b/gtk2_ardour/meter_patterns.h
index 9ac8ce308a..90ef4ec980 100644
--- a/gtk2_ardour/meter_patterns.h
+++ b/gtk2_ardour/meter_patterns.h
@@ -42,6 +42,8 @@ gint meter_expose_metrics (GdkEventExpose *ev, std::vector<ARDOUR::DataType> typ
void meter_clear_pattern_cache(int which=7);
+const std::string meter_type_string (ARDOUR::MeterType);
+
}
#endif
diff --git a/gtk2_ardour/meter_strip.cc b/gtk2_ardour/meter_strip.cc
index c5d32d6680..44144114a4 100644
--- a/gtk2_ardour/meter_strip.cc
+++ b/gtk2_ardour/meter_strip.cc
@@ -571,16 +571,19 @@ MeterStrip::popup_level_meter_menu (GdkEventButton* ev)
RadioMenuItem::Group group;
_suspend_menu_callbacks = true;
- add_level_meter_item (items, group, _("Peak"), MeterPeak);
- add_level_meter_item (items, group, _("RMS + Peak"), MeterKrms);
+ add_level_meter_item (items, group, ArdourMeter::meter_type_string(MeterPeak), MeterPeak);
+ add_level_meter_item (items, group, ArdourMeter::meter_type_string(MeterKrms), MeterKrms);
+
+ MeterType cmt = _route->meter_type();
+ const std::string cmn = ArdourMeter::meter_type_string(cmt);
items.push_back (SeparatorElem());
- items.push_back (MenuElem (_("Change all in Group to Peak"), sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), MeterPeak)));
- items.push_back (MenuElem (_("Change all in Group to RMS + Peak"), sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), MeterKrms)));
- items.push_back (MenuElem (_("Change all to Peak"), sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), MeterPeak)));
- items.push_back (MenuElem (_("Change all to RMS + Peak"), sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), MeterKrms)));
- items.push_back (MenuElem (_("Change same track-type to Peak"), sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), MeterPeak)));
- items.push_back (MenuElem (_("Change same track-type to RMS + Peak"), sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), MeterKrms)));
+ items.push_back (MenuElem (string_compose(_("Change all in Group to %1"), cmn),
+ sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), cmt)));
+ items.push_back (MenuElem (string_compose(_("Change all to %1"), cmn),
+ sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), cmt)));
+ items.push_back (MenuElem (string_compose(_("Change same track-type to %1"), cmn),
+ sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), cmt)));
m->popup (ev->button, ev->time);
_suspend_menu_callbacks = false;
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index cd3185fcbf..6128780cf0 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -2133,8 +2133,8 @@ MixerStrip::popup_level_meter_menu (GdkEventButton* ev)
RadioMenuItem::Group tgroup;
items.push_back (SeparatorElem());
- add_level_meter_item_type (items, tgroup, _("Peak"), MeterPeak);
- add_level_meter_item_type (items, tgroup, _("RMS + Peak"), MeterKrms);
+ add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterPeak), MeterPeak);
+ add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterKrms), MeterKrms);
int _strip_type;
if (_route->is_master()) {
@@ -2152,13 +2152,16 @@ MixerStrip::popup_level_meter_menu (GdkEventButton* ev)
_strip_type = 1;
}
+ MeterType cmt = _route->meter_type();
+ const std::string cmn = ArdourMeter::meter_type_string(cmt);
+
items.push_back (SeparatorElem());
- items.push_back (MenuElem (_("Change all in Group to Peak"), sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), MeterPeak)));
- items.push_back (MenuElem (_("Change all in Group to RMS + Peak"), sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), MeterKrms)));
- items.push_back (MenuElem (_("Change all to Peak"), sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), MeterPeak)));
- items.push_back (MenuElem (_("Change all to RMS + Peak"), sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), MeterKrms)));
- items.push_back (MenuElem (_("Change same track-type to Peak"), sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), MeterPeak)));
- items.push_back (MenuElem (_("Change same track-type to RMS + Peak"), sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), MeterKrms)));
+ items.push_back (MenuElem (string_compose(_("Change all in Group to %1"), cmn),
+ sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), cmt)));
+ items.push_back (MenuElem (string_compose(_("Change all to %1"), cmn),
+ sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), cmt)));
+ items.push_back (MenuElem (string_compose(_("Change same track-type to %1"), cmn),
+ sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), cmt)));
m->popup (ev->button, ev->time);
_suspend_menu_callbacks = false;