summaryrefslogtreecommitdiff
path: root/gtk2_ardour/level_meter.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/level_meter.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/level_meter.cc')
-rw-r--r--gtk2_ardour/level_meter.cc33
1 files changed, 32 insertions, 1 deletions
diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc
index 04bfdb8fd6..7a32b473f3 100644
--- a/gtk2_ardour/level_meter.cc
+++ b/gtk2_ardour/level_meter.cc
@@ -133,6 +133,10 @@ LevelMeter::parameter_changed (string p)
(*i).meter->set_hold_count ((uint32_t) floor(Config->get_meter_hold()));
}
}
+ else if (p == "meter-line-up-level") {
+ color_changed = true;
+ setup_meters (meter_length, regular_meter_width, thin_meter_width);
+ }
}
void
@@ -188,7 +192,7 @@ LevelMeter::setup_meters (int len, int initial_width, int thin_width)
for (int32_t n = nmeters-1; nmeters && n >= 0 ; --n) {
uint32_t c[10];
- float stp[4] = {55.0, 77.5, 92.5, 100.0};
+ float stp[4];
if (n < nmidi) {
c[0] = ARDOUR_UI::config()->canvasvar_MidiMeterColor0.get();
c[1] = ARDOUR_UI::config()->canvasvar_MidiMeterColor1.get();
@@ -205,6 +209,33 @@ LevelMeter::setup_meters (int len, int initial_width, int thin_width)
stp[2] = 115.0 * 100.0 / 128.0;
stp[3] = 115.0 * 112.0 / 128.0;
} else {
+ switch (Config->get_meter_line_up_level()) {
+ case MeteringLineUp24:
+ stp[0] = 42.0;
+ stp[1] = 77.5;
+ stp[2] = 92.5;
+ stp[3] = 100.0;
+ break;
+ case MeteringLineUp20:
+ stp[0] = 50.0;
+ stp[1] = 77.5;
+ stp[2] = 92.5;
+ stp[3] = 100.0;
+ break;
+ default:
+ case MeteringLineUp18:
+ stp[0] = 55.0;
+ stp[1] = 77.5;
+ stp[2] = 92.5;
+ stp[3] = 100.0;
+ break;
+ case MeteringLineUp15:
+ stp[0] = 62.5;
+ stp[1] = 77.5;
+ stp[2] = 92.5;
+ stp[3] = 100.0;
+ break;
+ }
c[0] = ARDOUR_UI::config()->canvasvar_MeterColor0.get();
c[1] = ARDOUR_UI::config()->canvasvar_MeterColor1.get();
c[2] = ARDOUR_UI::config()->canvasvar_MeterColor2.get();