summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_ui.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/ardour_ui.cc')
-rw-r--r--gtk2_ardour/ardour_ui.cc40
1 files changed, 39 insertions, 1 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 9577444120..6de90c15c2 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -185,6 +185,8 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
, solo_alert_button (_("solo"))
, feedback_alert_button (_("feedback"))
+ , editor_meter(0)
+
, speaker_config_window (X_("speaker-config"), _("Speaker Configuration"))
, theme_manager (X_("theme-manager"), _("Theme Manager"))
, key_editor (X_("key-editor"), _("Key Bindings"))
@@ -1037,6 +1039,9 @@ ARDOUR_UI::every_point_zero_something_seconds ()
// august 2007: actual update frequency: 25Hz (40ms), not 100Hz
SuperRapidScreenUpdate(); /* EMIT_SIGNAL */
+ if (editor_meter) {
+ editor_meter->update_meters();
+ }
return TRUE;
}
@@ -1492,7 +1497,14 @@ ARDOUR_UI::open_session ()
open_session_selector->set_current_folder(Config->get_default_session_parent_dir());
}
- open_session_selector->add_shortcut_folder (Config->get_default_session_parent_dir());
+ string default_session_folder = Config->get_default_session_parent_dir();
+ try {
+ /* add_shortcut_folder throws an exception if the folder being added already has a shortcut */
+ open_session_selector->add_shortcut_folder (default_session_folder);
+ }
+ catch (Glib::Error & e) {
+ std::cerr << "open_session_selector->add_shortcut_folder (" << default_session_folder << ") threw Glib::Error " << e.what() << std::endl;
+ }
FileFilter session_filter;
session_filter.add_pattern ("*.ardour");
@@ -4119,3 +4131,29 @@ ARDOUR_UI::session_format_mismatch (std::string xml_path, std::string backup_pat
msg.run ();
}
+
+
+void
+ARDOUR_UI::reset_peak_display ()
+{
+ if (!_session || !_session->master_out() || !editor_meter) return;
+ editor_meter->clear_meters();
+}
+
+void
+ARDOUR_UI::reset_group_peak_display (RouteGroup* group)
+{
+ if (!_session || !_session->master_out()) return;
+ if (group == _session->master_out()->route_group()) {
+ reset_peak_display ();
+ }
+}
+
+void
+ARDOUR_UI::reset_route_peak_display (Route* route)
+{
+ if (!_session || !_session->master_out()) return;
+ if (_session->master_out().get() == route) {
+ reset_peak_display ();
+ }
+}