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));
+ RedrawMetrics.connect (sigc::mem_fun(*this, &GainMeterBase::redraw_metrics));
UI::instance()->theme_changed.connect (sigc::mem_fun(*this, &GainMeterBase::on_theme_changed));
ColorsChanged.connect (sigc::bind(sigc::mem_fun (*this, &GainMeterBase::color_handler), false));
}
}
+void
+GainMeterBase::set_type (MeterType t)
+{
+ level_meter->set_type(t);
+}
+
void
GainMeter::setup_meters (int len)
{
GainMeterBase::setup_meters (len);
}
+void
+GainMeter::set_type (MeterType t)
+{
+ GainMeterBase::set_type (t);
+}
+
bool
GainMeterBase::gain_key_press (GdkEventKey* ev)
{
snprintf (buf, sizeof(buf), "%.1f", mpeak);
peak_display.set_label (buf);
}
-
- if (mpeak >= 0.0f) {
- peak_display.set_name ("MixerStripPeakDisplayPeak");
- }
+ }
+ if (mpeak >= Config->get_meter_peak()) {
+ peak_display.set_name ("MixerStripPeakDisplayPeak");
}
}
void GainMeterBase::color_handler(bool dpi)
{
- meter_clear_pattern_cache();
setup_meters();
- meter_metric_area.queue_draw ();
- meter_ticks1_area.queue_draw ();
- meter_ticks2_area.queue_draw ();
}
void
void
GainMeterBase::on_theme_changed()
{
- meter_clear_pattern_cache();
+}
+
+void
+GainMeterBase::redraw_metrics()
+{
meter_metric_area.queue_draw ();
meter_ticks1_area.queue_draw ();
meter_ticks2_area.queue_draw ();
_meter->ConfigurationChanged.connect (
model_connections, invalidator (*this), boost::bind (&GainMeter::meter_configuration_changed, this, _1), gui_context()
);
+ _meter->TypeChanged.connect (
+ model_connections, invalidator (*this), boost::bind (&GainMeter::meter_type_changed, this, _1), gui_context()
+ );
meter_configuration_changed (_meter->input_streams ());
}
set_meter_strip_name ("AudioMidiTrackMetricsInactive");
}
}
-
- meter_clear_pattern_cache();
- meter_metric_area.queue_draw ();
- meter_ticks1_area.queue_draw ();
- meter_ticks2_area.queue_draw ();
+ meter_clear_pattern_cache(); // XXX only once
}
+void
+GainMeter::meter_type_changed (MeterType t)
+{
+ _route->set_meter_type(t);
+}