summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-12-17 01:53:33 +0100
committerRobin Gareus <robin@gareus.org>2019-12-17 01:53:33 +0100
commit7fe9fb1f4e127e312a9475cb75c9fa0cab6e5523 (patch)
treec8f23088f403c60c144e52a1c8e17ff8bbfadcfb /gtk2_ardour
parent848831d844b8cdfe71bff611d7c0096361963f0c (diff)
Indicate current Disk-I/O setting
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/processor_box.cc17
-rw-r--r--gtk2_ardour/processor_box.h2
2 files changed, 16 insertions, 3 deletions
diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc
index c1d67cffca..5eb60d2cca 100644
--- a/gtk2_ardour/processor_box.cc
+++ b/gtk2_ardour/processor_box.cc
@@ -40,6 +40,8 @@
#include <gtkmm/messagedialog.h>
+#include "pbd/unwind.h"
+
#include "gtkmm2ext/colors.h"
#include "gtkmm2ext/gtk_ui.h"
#include "gtkmm2ext/menu_elems.h"
@@ -114,6 +116,8 @@ using namespace Gtkmm2ext;
using namespace ArdourWidgets;
ProcessorBox* ProcessorBox::_current_processor_box = 0;
+bool ProcessorBox::_ignore_disk_io_change = false;
+
RefPtr<Action> ProcessorBox::paste_action;
RefPtr<Action> ProcessorBox::cut_action;
RefPtr<Action> ProcessorBox::copy_action;
@@ -2276,6 +2280,10 @@ ProcessorBox::show_processor_menu (int arg)
manage_pins_action->set_sensitive (pi != 0);
if (boost::dynamic_pointer_cast<Track>(_route)) {
disk_io_action->set_sensitive (true);
+ PBD::Unwinder<bool> uw (_ignore_disk_io_change, true);
+ ActionManager::get_toggle_action (X_("ProcessorMenu"), "disk-io-prefader")->set_active (_route->disk_io_point () == DiskIOPreFader);
+ ActionManager::get_toggle_action (X_("ProcessorMenu"), "disk-io-postfader")->set_active (_route->disk_io_point () == DiskIOPostFader);
+ ActionManager::get_toggle_action (X_("ProcessorMenu"), "disk-io-custom")->set_active (_route->disk_io_point () == DiskIOCustom);
} else {
disk_io_action->set_sensitive (false);
}
@@ -3841,9 +3849,9 @@ ProcessorBox::register_actions ()
/* Disk IO stuff */
disk_io_action = ActionManager::register_action (processor_box_actions, X_("disk-io-menu"), _("Disk I/O ..."));
- ActionManager::register_action (processor_box_actions, X_("disk-io-prefader"), _("Pre-Fader."), sigc::bind (sigc::ptr_fun (ProcessorBox::rb_set_disk_io_position), DiskIOPreFader));
- ActionManager::register_action (processor_box_actions, X_("disk-io-postfader"), _("Post-Fader."), sigc::bind (sigc::ptr_fun (ProcessorBox::rb_set_disk_io_position), DiskIOPostFader));
- ActionManager::register_action (processor_box_actions, X_("disk-io-custom"), _("Custom."), sigc::bind (sigc::ptr_fun (ProcessorBox::rb_set_disk_io_position), DiskIOCustom));
+ ActionManager::register_toggle_action (processor_box_actions, X_("disk-io-prefader"), _("Pre-Fader"), sigc::bind (sigc::ptr_fun (ProcessorBox::rb_set_disk_io_position), DiskIOPreFader));
+ ActionManager::register_toggle_action (processor_box_actions, X_("disk-io-postfader"), _("Post-Fader"), sigc::bind (sigc::ptr_fun (ProcessorBox::rb_set_disk_io_position), DiskIOPostFader));
+ ActionManager::register_toggle_action (processor_box_actions, X_("disk-io-custom"), _("Custom"), sigc::bind (sigc::ptr_fun (ProcessorBox::rb_set_disk_io_position), DiskIOCustom));
/* show editors */
edit_action = ActionManager::register_action (
@@ -3882,6 +3890,9 @@ ProcessorBox::rb_set_disk_io_position (DiskIOPoint diop)
if (_current_processor_box == 0) {
return;
}
+ if (_ignore_disk_io_change) {
+ return;
+ }
_current_processor_box->set_disk_io_position (diop);
}
diff --git a/gtk2_ardour/processor_box.h b/gtk2_ardour/processor_box.h
index 5389a404ce..4b49dbe67f 100644
--- a/gtk2_ardour/processor_box.h
+++ b/gtk2_ardour/processor_box.h
@@ -628,6 +628,8 @@ private:
XMLNode* entry_gui_object_state (ProcessorEntry *);
PBD::ScopedConnection amp_config_connection;
+
+ static bool _ignore_disk_io_change;
};
#endif /* __ardour_gtk_processor_box__ */