summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_ui_dialogs.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/ardour_ui_dialogs.cc')
-rw-r--r--gtk2_ardour/ardour_ui_dialogs.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc
index c0fd97cfd6..f5fc16651a 100644
--- a/gtk2_ardour/ardour_ui_dialogs.cc
+++ b/gtk2_ardour/ardour_ui_dialogs.cc
@@ -43,6 +43,7 @@
#include "keyeditor.h"
#include "location_ui.h"
#include "main_clock.h"
+#include "meter_patterns.h"
#include "midi_tracer.h"
#include "mixer_ui.h"
#include "public_editor.h"
@@ -190,6 +191,26 @@ ARDOUR_UI::set_session (Session *s)
point_zero_something_second_connection = Glib::signal_timeout().connect (sigc::mem_fun(*this, &ARDOUR_UI::every_point_zero_something_seconds), 40);
update_format ();
+
+ if (editor_meter) {
+ meter_box.remove(*editor_meter);
+ delete editor_meter;
+ editor_meter = 0;
+ }
+
+ if (_session && _session->master_out()) {
+ editor_meter = new LevelMeterHBox(_session);
+ editor_meter->set_meter (_session->master_out()->shared_peak_meter().get());
+ editor_meter->clear_meters();
+ editor_meter->set_type (_session->master_out()->meter_type());
+ editor_meter->setup_meters (30, 12, 6);
+ meter_box.pack_start(*editor_meter);
+
+ ArdourMeter::ResetAllPeakDisplays.connect (sigc::mem_fun(*this, &ARDOUR_UI::reset_peak_display));
+ ArdourMeter::ResetRoutePeakDisplays.connect (sigc::mem_fun(*this, &ARDOUR_UI::reset_route_peak_display));
+ ArdourMeter::ResetGroupPeakDisplays.connect (sigc::mem_fun(*this, &ARDOUR_UI::reset_group_peak_display));
+ }
+
}
int
@@ -229,6 +250,12 @@ ARDOUR_UI::unload_session (bool hide_stuff)
point_one_second_connection.disconnect ();
point_zero_something_second_connection.disconnect();
+ if (editor_meter) {
+ meter_box.remove(*editor_meter);
+ delete editor_meter;
+ editor_meter = 0;
+ }
+
ActionManager::set_sensitive (ActionManager::session_sensitive_actions, false);
rec_button.set_sensitive (false);