From 9b1d7fd2f7c9167d9d7b7aa3115497ab65747877 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 15 Jul 2013 14:38:24 +0200 Subject: simplify meter-type context menu in preparation for adding more meter-types --- gtk2_ardour/meter_patterns.cc | 15 +++++++++++++++ gtk2_ardour/meter_patterns.h | 2 ++ gtk2_ardour/meter_strip.cc | 19 +++++++++++-------- gtk2_ardour/mixer_strip.cc | 19 +++++++++++-------- 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 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 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; -- cgit v1.2.3