summaryrefslogtreecommitdiff
path: root/gtk2_ardour/level_meter.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-05-17 02:08:13 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-05-17 02:08:13 +0000
commit7deb14773baf3ebf191c973665fc0c3069cc39fb (patch)
treebf07175a72ca8c9e97f812914b70e3a4b6843067 /gtk2_ardour/level_meter.cc
parent091bd8a778491dc608d688a22ba1289b1ee5cf35 (diff)
75% (?) of the way towards making mixer strips control bus sends. lots more to do
git-svn-id: svn://localhost/ardour2/branches/3.0@5090 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/level_meter.cc')
-rw-r--r--gtk2_ardour/level_meter.cc18
1 files changed, 12 insertions, 6 deletions
diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc
index 1f6cecb74d..f6d41c3312 100644
--- a/gtk2_ardour/level_meter.cc
+++ b/gtk2_ardour/level_meter.cc
@@ -80,12 +80,14 @@ LevelMeter::~LevelMeter ()
}
void
-LevelMeter::set_meter (PeakMeter& meter)
+LevelMeter::set_meter (PeakMeter* meter)
{
_configuration_connection.disconnect();
- _meter = &meter;
- _configuration_connection = _meter->ConfigurationChanged.connect(
+ _meter = meter;
+ if (_meter) {
+ _configuration_connection = _meter->ConfigurationChanged.connect(
mem_fun(*this, &LevelMeter::configuration_changed));
+ }
}
float
@@ -94,6 +96,10 @@ LevelMeter::update_meters ()
vector<MeterInfo>::iterator i;
uint32_t n;
float peak, mpeak;
+
+ if (!_meter) {
+ return 0.0f;
+ }
for (n = 0, i = meters.begin(); i != meters.end(); ++i, ++n) {
if ((*i).packed) {
@@ -149,8 +155,10 @@ LevelMeter::hide_all_meters ()
void
LevelMeter::setup_meters (int len, int initial_width)
{
+ hide_all_meters ();
+
if (!_meter) {
- return; /* do it later */
+ return; /* do it later or never */
}
int32_t nmidi = _meter->input_streams().n_midi();
@@ -160,8 +168,6 @@ LevelMeter::setup_meters (int len, int initial_width)
guint16 width;
- hide_all_meters ();
-
if (nmeters == 0) {
return;
}