gain_display.signal_key_press_event().connect (sigc::mem_fun(*this, &GainMeterBase::gain_key_press), false);
ResetAllPeakDisplays.connect (sigc::mem_fun(*this, &GainMeterBase::reset_peak_display));
+ ResetRoutePeakDisplays.connect (sigc::mem_fun(*this, &GainMeterBase::reset_route_peak_display));
ResetGroupPeakDisplays.connect (sigc::mem_fun(*this, &GainMeterBase::reset_group_peak_display));
UI::instance()->theme_changed.connect (sigc::mem_fun(*this, &GainMeterBase::on_theme_changed));
ResetGroupPeakDisplays (_route->route_group());
}
} else {
- reset_peak_display ();
+ ResetRoutePeakDisplays (_route.get());
}
return true;
peak_display.set_name ("MixerStripPeakDisplay");
}
+void
+GainMeterBase::reset_route_peak_display (Route* route)
+{
+ if (_route && _route.get() == route) {
+ reset_peak_display ();
+ }
+}
+
void
GainMeterBase::reset_group_peak_display (RouteGroup* group)
{
void parameter_changed (const char*);
void reset_peak_display ();
+ void reset_route_peak_display (ARDOUR::Route*);
void reset_group_peak_display (ARDOUR::RouteGroup*);
void on_theme_changed ();
static const int max_pattern_metric_size = 1026;
sigc::signal<void> ResetAllPeakDisplays;
+sigc::signal<void,ARDOUR::Route*> ResetRoutePeakDisplays;
sigc::signal<void,ARDOUR::RouteGroup*> ResetGroupPeakDisplays;
cairo_pattern_t*
#include <sigc++/signal.h>
extern sigc::signal<void> ResetAllPeakDisplays;
+extern sigc::signal<void,ARDOUR::Route*> ResetRoutePeakDisplays;
extern sigc::signal<void,ARDOUR::RouteGroup*> ResetGroupPeakDisplays;
cairo_pattern_t* meter_render_ticks (Gtk::Widget& w, std::vector<ARDOUR::DataType> types);
);
ResetAllPeakDisplays.connect (sigc::mem_fun(*this, &MeterStrip::reset_peak_display));
+ ResetRoutePeakDisplays.connect (sigc::mem_fun(*this, &MeterStrip::reset_route_peak_display));
ResetGroupPeakDisplays.connect (sigc::mem_fun(*this, &MeterStrip::reset_group_peak_display));
meter_configuration_changed (_route->shared_peak_meter()->input_streams ());
return meter_expose_ticks(ev, _types, &meter_ticks2_area);
}
+void
+MeterStrip::reset_route_peak_display (Route* route)
+{
+ if (_route && _route.get() == route) {
+ reset_peak_display ();
+ }
+}
+
void
MeterStrip::reset_group_peak_display (RouteGroup* group)
{
- /* UNUSED -- need connection w/mixer || other meters */
if (_route && group == _route->route_group()) {
reset_peak_display ();
}
ResetGroupPeakDisplays (_route->route_group());
}
} else {
- reset_peak_display ();
+ ResetRoutePeakDisplays (_route.get());
}
return true;
}
static PBD::Signal0<void> MetricChanged;
void reset_peak_display ();
+ void reset_route_peak_display (ARDOUR::Route*);
void reset_group_peak_display (ARDOUR::RouteGroup*);
void set_metric_mode (int);