diff options
author | Doug McLain <doug@nostar.net> | 2007-12-20 23:25:19 +0000 |
---|---|---|
committer | Doug McLain <doug@nostar.net> | 2007-12-20 23:25:19 +0000 |
commit | b42213bb04031b954eda4f9b39c5f183bfb96ede (patch) | |
tree | ae68422474fb07d4d48486294cbc365cea8fc611 /gtk2_ardour/gain_meter.cc | |
parent | 8c2715ce2c82873ce77319e918b01dbb9e8685b8 (diff) |
Port level meters to trunk
git-svn-id: svn://localhost/ardour2/trunk@2802 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/gain_meter.cc')
-rw-r--r-- | gtk2_ardour/gain_meter.cc | 15 |
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)); } |