simplify meter-type context menu
in preparation for adding more meter-types
This commit is contained in:
parent
6908ad1053
commit
9b1d7fd2f7
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue