summaryrefslogtreecommitdiff
path: root/gtk2_ardour/meter_strip.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-07-05 22:18:04 +0200
committerRobin Gareus <robin@gareus.org>2013-07-10 15:27:11 +0200
commit62d5585e34d410c9c5feb7cf7b4742360c2187b0 (patch)
tree3ca7125166d46d2205187867a8f499aa009fcda8 /gtk2_ardour/meter_strip.cc
parent09be35c5cbfc218f9a83842e10f41db14ba4abea (diff)
prepare meter configuration..
- rework metric/tick image cache invalidation - flush cache - send signal to queue redraws (TODO) selectively flush cache // cache per size, style - add four common line up levels
Diffstat (limited to 'gtk2_ardour/meter_strip.cc')
-rw-r--r--gtk2_ardour/meter_strip.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/gtk2_ardour/meter_strip.cc b/gtk2_ardour/meter_strip.cc
index 011bbe554e..faaa07b566 100644
--- a/gtk2_ardour/meter_strip.cc
+++ b/gtk2_ardour/meter_strip.cc
@@ -71,6 +71,7 @@ MeterStrip::MeterStrip (int metricmode)
set_size_request_to_display_given_text (meter_metric_area, "-8888", 1, 0);
meter_metric_area.signal_expose_event().connect (
sigc::mem_fun(*this, &MeterStrip::meter_metrics_expose));
+ RedrawMetrics.connect (sigc::mem_fun(*this, &MeterStrip::redraw_metrics));
meterbox.pack_start(meter_metric_area, true, false);
@@ -174,6 +175,7 @@ MeterStrip::MeterStrip (Session* sess, boost::shared_ptr<ARDOUR::Route> rt)
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));
+ RedrawMetrics.connect (sigc::mem_fun(*this, &MeterStrip::redraw_metrics));
meter_configuration_changed (_route->shared_peak_meter()->input_streams ());
@@ -249,8 +251,6 @@ MeterStrip::fast_update ()
void
MeterStrip::on_theme_changed()
{
- meter_clear_pattern_cache();
-
if (level_meter && _route) {
int meter_width = 6;
if (_route->shared_peak_meter()->input_streams().n_total() == 1) {
@@ -258,9 +258,6 @@ MeterStrip::on_theme_changed()
}
level_meter->setup_meters (220, meter_width, 6);
}
- meter_metric_area.queue_draw();
- meter_ticks1_area.queue_draw();
- meter_ticks2_area.queue_draw();
}
void
@@ -412,3 +409,11 @@ MeterStrip::peak_button_release (GdkEventButton* ev)
}
return true;
}
+
+void
+MeterStrip::redraw_metrics ()
+{
+ meter_metric_area.queue_draw();
+ meter_ticks1_area.queue_draw();
+ meter_ticks2_area.queue_draw();
+}