- add_level_meter_item (items, group, _("Input"), MeterInput);
- add_level_meter_item (items, group, _("Pre-fader"), MeterPreFader);
- add_level_meter_item (items, group, _("Post-fader"), MeterPostFader);
- add_level_meter_item (items, group, _("Output"), MeterOutput);
- add_level_meter_item (items, group, _("Custom"), MeterCustom);
+ _suspend_menu_callbacks = true;
+ add_level_meter_item_point (items, group, _("Input"), MeterInput);
+ add_level_meter_item_point (items, group, _("Pre-fader"), MeterPreFader);
+ add_level_meter_item_point (items, group, _("Post-fader"), MeterPostFader);
+ add_level_meter_item_point (items, group, _("Output"), MeterOutput);
+ add_level_meter_item_point (items, group, _("Custom"), MeterCustom);
+
+ RadioMenuItem::Group tgroup;
+ items.push_back (SeparatorElem());
+
+ 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);
+ add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterIEC1DIN), MeterIEC1DIN);
+ add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterIEC1NOR), MeterIEC1NOR);
+ add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterIEC2BBC), MeterIEC2BBC);
+ add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterIEC2EBU), MeterIEC2EBU);
+ add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterK20), MeterK20);
+ add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterK14), MeterK14);
+ add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterVU), MeterVU);
+
+ int _strip_type;
+ if (_route->is_master()) {
+ _strip_type = 4;
+ }
+ else if (boost::dynamic_pointer_cast<AudioTrack>(_route) == 0
+ && boost::dynamic_pointer_cast<MidiTrack>(_route) == 0) {
+ /* non-master bus */
+ _strip_type = 3;
+ }
+ else if (boost::dynamic_pointer_cast<MidiTrack>(_route)) {
+ _strip_type = 2;
+ }
+ else {
+ _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 (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)));