mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-17 12:16:30 +01:00
simplify meter-type context menu
in preparation for adding more meter-types
This commit is contained in:
parent
6908ad1053
commit
9b1d7fd2f7
4 changed files with 39 additions and 16 deletions
|
|
@ -54,6 +54,21 @@ namespace ArdourMeter {
|
||||||
static ArdourMeter::TickPatterns ticks_patterns;
|
static ArdourMeter::TickPatterns ticks_patterns;
|
||||||
static ArdourMeter::MetricPatterns metric_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*
|
static cairo_pattern_t*
|
||||||
meter_render_ticks (Gtk::Widget& w, vector<ARDOUR::DataType> types)
|
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);
|
void meter_clear_pattern_cache(int which=7);
|
||||||
|
|
||||||
|
const std::string meter_type_string (ARDOUR::MeterType);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -571,16 +571,19 @@ MeterStrip::popup_level_meter_menu (GdkEventButton* ev)
|
||||||
RadioMenuItem::Group group;
|
RadioMenuItem::Group group;
|
||||||
|
|
||||||
_suspend_menu_callbacks = true;
|
_suspend_menu_callbacks = true;
|
||||||
add_level_meter_item (items, group, _("Peak"), MeterPeak);
|
add_level_meter_item (items, group, ArdourMeter::meter_type_string(MeterPeak), MeterPeak);
|
||||||
add_level_meter_item (items, group, _("RMS + Peak"), MeterKrms);
|
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 (SeparatorElem());
|
||||||
items.push_back (MenuElem (_("Change all in Group to Peak"), sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), MeterPeak)));
|
items.push_back (MenuElem (string_compose(_("Change all in Group to %1"), cmn),
|
||||||
items.push_back (MenuElem (_("Change all in Group to RMS + Peak"), sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), MeterKrms)));
|
sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), cmt)));
|
||||||
items.push_back (MenuElem (_("Change all to Peak"), sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), MeterPeak)));
|
items.push_back (MenuElem (string_compose(_("Change all to %1"), cmn),
|
||||||
items.push_back (MenuElem (_("Change all to RMS + Peak"), sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), MeterKrms)));
|
sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), cmt)));
|
||||||
items.push_back (MenuElem (_("Change same track-type to Peak"), sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), MeterPeak)));
|
items.push_back (MenuElem (string_compose(_("Change same track-type to %1"), cmn),
|
||||||
items.push_back (MenuElem (_("Change same track-type to RMS + Peak"), sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), MeterKrms)));
|
sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), cmt)));
|
||||||
|
|
||||||
m->popup (ev->button, ev->time);
|
m->popup (ev->button, ev->time);
|
||||||
_suspend_menu_callbacks = false;
|
_suspend_menu_callbacks = false;
|
||||||
|
|
|
||||||
|
|
@ -2133,8 +2133,8 @@ MixerStrip::popup_level_meter_menu (GdkEventButton* ev)
|
||||||
RadioMenuItem::Group tgroup;
|
RadioMenuItem::Group tgroup;
|
||||||
items.push_back (SeparatorElem());
|
items.push_back (SeparatorElem());
|
||||||
|
|
||||||
add_level_meter_item_type (items, tgroup, _("Peak"), MeterPeak);
|
add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterPeak), MeterPeak);
|
||||||
add_level_meter_item_type (items, tgroup, _("RMS + Peak"), MeterKrms);
|
add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterKrms), MeterKrms);
|
||||||
|
|
||||||
int _strip_type;
|
int _strip_type;
|
||||||
if (_route->is_master()) {
|
if (_route->is_master()) {
|
||||||
|
|
@ -2152,13 +2152,16 @@ MixerStrip::popup_level_meter_menu (GdkEventButton* ev)
|
||||||
_strip_type = 1;
|
_strip_type = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MeterType cmt = _route->meter_type();
|
||||||
|
const std::string cmn = ArdourMeter::meter_type_string(cmt);
|
||||||
|
|
||||||
items.push_back (SeparatorElem());
|
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 (string_compose(_("Change all in Group to %1"), cmn),
|
||||||
items.push_back (MenuElem (_("Change all in Group to RMS + Peak"), sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), MeterKrms)));
|
sigc::bind (SetMeterTypeMulti, -1, _route->route_group(), cmt)));
|
||||||
items.push_back (MenuElem (_("Change all to Peak"), sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), MeterPeak)));
|
items.push_back (MenuElem (string_compose(_("Change all to %1"), cmn),
|
||||||
items.push_back (MenuElem (_("Change all to RMS + Peak"), sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), MeterKrms)));
|
sigc::bind (SetMeterTypeMulti, 0, _route->route_group(), cmt)));
|
||||||
items.push_back (MenuElem (_("Change same track-type to Peak"), sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), MeterPeak)));
|
items.push_back (MenuElem (string_compose(_("Change same track-type to %1"), cmn),
|
||||||
items.push_back (MenuElem (_("Change same track-type to RMS + Peak"), sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), MeterKrms)));
|
sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), cmt)));
|
||||||
|
|
||||||
m->popup (ev->button, ev->time);
|
m->popup (ev->button, ev->time);
|
||||||
_suspend_menu_callbacks = false;
|
_suspend_menu_callbacks = false;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue