summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug McLain <doug@nostar.net>2008-04-04 15:16:41 +0000
committerDoug McLain <doug@nostar.net>2008-04-04 15:16:41 +0000
commitc34cc3da46b204badb2f87a478ab5707f120f6eb (patch)
treee5234ff84d98fa117c0e369e50314cd19143eaf3
parent83bebc0af54dae691d2441a75b57615ddba4ed3f (diff)
Fix resetting of peak display and meters
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3214 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/gain_meter.cc20
-rw-r--r--gtk2_ardour/gain_meter.h1
-rw-r--r--gtk2_ardour/level_meter.cc14
-rw-r--r--gtk2_ardour/level_meter.h1
4 files changed, 15 insertions, 21 deletions
diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc
index 845b07c90c..685fab5ed8 100644
--- a/gtk2_ardour/gain_meter.cc
+++ b/gtk2_ardour/gain_meter.cc
@@ -387,6 +387,7 @@ GainMeter::reset_peak_display ()
r->reset_max_peak_meters();
}
+ level_meter->clear_meters();
max_peak = -INFINITY;
peak_display.set_label (_("-Inf"));
peak_display.set_name ("MixerStripPeakDisplay");
@@ -403,25 +404,6 @@ GainMeter::reset_group_peak_display (RouteGroup* group)
}
}
-gint
-GainMeter::meter_button_release (GdkEventButton* ev, uint32_t which)
-{
- switch (ev->button) {
- case 1:
- level_meter->clear_meters();
- max_peak = minus_infinity();
- peak_display.set_label (_("-inf"));
- peak_display.set_name ("MixerStripPeakDisplay");
- break;
-
- case 3:
- // popup_meter_menu (ev);
- break;
- };
-
- return TRUE;
-}
-
void
GainMeter::popup_meter_menu (GdkEventButton *ev)
{
diff --git a/gtk2_ardour/gain_meter.h b/gtk2_ardour/gain_meter.h
index f6c5f30854..239d165d14 100644
--- a/gtk2_ardour/gain_meter.h
+++ b/gtk2_ardour/gain_meter.h
@@ -142,7 +142,6 @@ class GainMeter : public Gtk::VBox
void hide_all_meters ();
gint meter_button_press (GdkEventButton*, uint32_t);
- gint meter_button_release (GdkEventButton*, uint32_t);
bool peak_button_release (GdkEventButton*);
bool gain_key_press (GdkEventKey*);
diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc
index 166e1877b9..601f4c45dc 100644
--- a/gtk2_ardour/level_meter.cc
+++ b/gtk2_ardour/level_meter.cc
@@ -196,6 +196,7 @@ LevelMeter::setup_meters (int len, int initial_width)
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, &LevelMeter::meter_button_release), n));
}
pack_end (*meters[n].meter, false, false);
@@ -204,13 +205,24 @@ LevelMeter::setup_meters (int len, int initial_width)
}
show();
color_changed = false;
-}
+}
+
+gint
+LevelMeter::meter_button_release (GdkEventButton* ev, uint32_t which)
+{
+ if (ev->button == 1) {
+ clear_meters();
+ }
+ return true;
+}
+
void LevelMeter::clear_meters ()
{
for (vector<MeterInfo>::iterator i = meters.begin(); i < meters.end(); i++) {
(*i).meter->clear();
}
+ max_peak = minus_infinity();
}
void LevelMeter::hide_meters ()
diff --git a/gtk2_ardour/level_meter.h b/gtk2_ardour/level_meter.h
index 60aeb18632..ce0aa125cb 100644
--- a/gtk2_ardour/level_meter.h
+++ b/gtk2_ardour/level_meter.h
@@ -95,6 +95,7 @@ class LevelMeter : public Gtk::HBox
float max_peak;
void hide_all_meters ();
+ gint meter_button_release (GdkEventButton*, uint32_t);
void parameter_changed (const char*);