simplify meter-type context menu

in preparation for adding more meter-types
This commit is contained in:
Robin Gareus 2013-07-15 14:38:24 +02:00
parent 6908ad1053
commit 9b1d7fd2f7
4 changed files with 39 additions and 16 deletions

View File

@ -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)

View File

@ -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

View File

@ -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;

View File

@ -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;