summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_ui_dialogs.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-07-24 22:04:46 +0200
committerRobin Gareus <robin@gareus.org>2013-07-24 22:04:46 +0200
commitb70057f5769bcb52ddd3072282d419d38b829a45 (patch)
treee4f5930194352e0c8e72d113d198db9f9fe92bdd /gtk2_ardour/ardour_ui_dialogs.cc
parent6981e4d68e6f0bcb49a5f1d1518257283dbbaaeb (diff)
add [master] meter to the toolbar
http://tracker.ardour.org/view.php?id=5601
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 8c78d6494d..26cde95444 100644
--- a/gtk2_ardour/ardour_ui_dialogs.cc
+++ b/gtk2_ardour/ardour_ui_dialogs.cc
@@ -39,6 +39,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"
@@ -186,6 +187,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 LevelMeter(_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
@@ -225,6 +246,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);