Fix resetting of peak display and meters

git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3214 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Doug McLain 2008-04-04 15:16:41 +00:00
parent 83bebc0af5
commit c34cc3da46
4 changed files with 15 additions and 21 deletions

View file

@ -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)
{

View file

@ -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*);

View file

@ -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 ()

View file

@ -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*);