summaryrefslogtreecommitdiff
path: root/gtk2_ardour/gain_meter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/gain_meter.cc')
-rw-r--r--gtk2_ardour/gain_meter.cc15
1 files changed, 8 insertions, 7 deletions
diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc
index 9b4823c90c..dae51935ec 100644
--- a/gtk2_ardour/gain_meter.cc
+++ b/gtk2_ardour/gain_meter.cc
@@ -77,7 +77,8 @@ GainMeter::GainMeter (boost::shared_ptr<IO> io, Session& s)
// 0.781787 is the value needed for gain to be set to 0.
gain_adjustment (0.781787, 0.0, 1.0, 0.01, 0.1),
gain_automation_style_button (""),
- gain_automation_state_button ("")
+ gain_automation_state_button (""),
+ regular_meter_width(5)
{
if (slider == 0) {
@@ -235,7 +236,7 @@ GainMeter::GainMeter (boost::shared_ptr<IO> io, Session& s)
}
void
-GainMeter::set_width (Width w)
+GainMeter::set_width (Width w, int len)
{
switch (w) {
case Wide:
@@ -247,7 +248,7 @@ GainMeter::set_width (Width w)
}
_width = w;
- setup_meters ();
+ setup_meters (len);
}
Glib::RefPtr<Gdk::Pixmap>
@@ -432,7 +433,7 @@ GainMeter::hide_all_meters ()
}
void
-GainMeter::setup_meters ()
+GainMeter::setup_meters (int len)
{
uint32_t nmeters = _io->n_outputs().n_total();
guint16 width;
@@ -483,11 +484,11 @@ GainMeter::setup_meters ()
}
for (int32_t n = nmeters-1; nmeters && n >= 0 ; --n) {
- if (meters[n].width != width) {
+ if (meters[n].width != width || meters[n].length != len) {
delete meters[n].meter;
- meters[n].meter = new FastMeter ((uint32_t) floor (Config->get_meter_hold()), width, FastMeter::Vertical);
+ meters[n].meter = new FastMeter ((uint32_t) floor (Config->get_meter_hold()), width, FastMeter::Vertical, len);
meters[n].width = width;
-
+ meters[n].length = len;
meters[n].meter->add_events (Gdk::BUTTON_RELEASE_MASK);
meters[n].meter->signal_button_release_event().connect (bind (mem_fun(*this, &GainMeter::meter_button_release), n));
}