summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/ardour_ui.cc1
-rw-r--r--gtk2_ardour/ardour_ui.h1
-rw-r--r--gtk2_ardour/ardour_ui2.cc8
-rw-r--r--gtk2_ardour/ardour_ui_options.cc39
4 files changed, 21 insertions, 28 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 7f24b1e677..46510112b7 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -264,7 +264,6 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
, video_timeline(0)
, global_actions (X_("global"))
, ignore_dual_punch (false)
- , ignore_session_monitoring (false)
, main_window_visibility (0)
, editor (0)
, mixer (0)
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h
index c375bf89e2..5686d8c978 100644
--- a/gtk2_ardour/ardour_ui.h
+++ b/gtk2_ardour/ardour_ui.h
@@ -392,7 +392,6 @@ protected:
bool ignore_dual_punch;
void toggle_punch_in ();
void toggle_punch_out ();
- bool ignore_session_monitoring;
void toggle_session_monitoring_in ();
void toggle_session_monitoring_disk ();
void show_loop_punch_ruler_and_disallow_hide ();
diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc
index 8dde2b7304..cf17cf61b1 100644
--- a/gtk2_ardour/ardour_ui2.cc
+++ b/gtk2_ardour/ardour_ui2.cc
@@ -428,8 +428,8 @@ ARDOUR_UI::setup_transport ()
punch_out_button.set_name ("punch button");
layered_button.set_name (("layered button"));
- monitor_in_button.set_name ("punch button"); // XXX
- monitor_disk_button.set_name ("punch button"); // XXX
+ monitor_in_button.set_name ("monitor button");
+ monitor_disk_button.set_name ("monitor button");
auto_input_button.set_name ("transport option button");
click_button.set_name ("transport button");
@@ -466,8 +466,8 @@ ARDOUR_UI::setup_transport ()
Gtkmm2ext::UI::instance()->set_tip (punch_in_button, _("Start recording at auto-punch start"));
Gtkmm2ext::UI::instance()->set_tip (punch_out_button, _("Stop recording at auto-punch end"));
- Gtkmm2ext::UI::instance()->set_tip (monitor_in_button, _("Force all implicit monitoed tracks to monitor input"));
- Gtkmm2ext::UI::instance()->set_tip (monitor_disk_button, _("Force all implicit monitored tracks to disk-monitoring"));
+ Gtkmm2ext::UI::instance()->set_tip (monitor_in_button, _("Force all implicitly monitoed tracks to monitor input"));
+ Gtkmm2ext::UI::instance()->set_tip (monitor_disk_button, _("Force all implicitly monitored tracks to disk-monitoring"));
/* setup icons */
diff --git a/gtk2_ardour/ardour_ui_options.cc b/gtk2_ardour/ardour_ui_options.cc
index 0c31bf4de1..a2853ff5cd 100644
--- a/gtk2_ardour/ardour_ui_options.cc
+++ b/gtk2_ardour/ardour_ui_options.cc
@@ -132,9 +132,6 @@ ARDOUR_UI::toggle_click ()
void
ARDOUR_UI::toggle_session_monitoring_in ()
{
- if (ignore_session_monitoring) {
- return;
- }
Glib::RefPtr<Action> act = ActionManager::get_action (X_("Transport"), X_("SessionMonitorIn"));
if (!act) {
return;
@@ -143,15 +140,15 @@ ARDOUR_UI::toggle_session_monitoring_in ()
if (!tact) {
return;
}
+
+ if (tact->get_active() && _session->config.get_session_monitoring () == MonitorInput) {
+ return;
+ }
+ if (!tact->get_active() && _session->config.get_session_monitoring () != MonitorInput) {
+ return;
+ }
+
if (tact->get_active()) {
- Glib::RefPtr<Action> dact = ActionManager::get_action (X_("Transport"), X_("SessionMonitorDisk"));
- if (dact) {
- Glib::RefPtr<ToggleAction> tdact = Glib::RefPtr<ToggleAction>::cast_dynamic(dact);
- if (tdact) {
- PBD::Unwinder<bool> (ignore_session_monitoring, true);
- tdact->set_active (false);
- }
- }
_session->config.set_session_monitoring (MonitorInput);
} else {
_session->config.set_session_monitoring (MonitorAuto);
@@ -161,9 +158,6 @@ ARDOUR_UI::toggle_session_monitoring_in ()
void
ARDOUR_UI::toggle_session_monitoring_disk ()
{
- if (ignore_session_monitoring) {
- return;
- }
Glib::RefPtr<Action> act = ActionManager::get_action (X_("Transport"), X_("SessionMonitorDisk"));
if (!act) {
return;
@@ -172,15 +166,14 @@ ARDOUR_UI::toggle_session_monitoring_disk ()
if (!tact) {
return;
}
+ if (tact->get_active() && _session->config.get_session_monitoring () == MonitorDisk) {
+ return;
+ }
+ if (!tact->get_active() && _session->config.get_session_monitoring () != MonitorDisk) {
+ return;
+ }
+
if (tact->get_active()) {
- Glib::RefPtr<Action> iact = ActionManager::get_action (X_("Transport"), X_("SessionMonitorIn"));
- if (iact) {
- Glib::RefPtr<ToggleAction> tiact = Glib::RefPtr<ToggleAction>::cast_dynamic(iact);
- if (tiact) {
- PBD::Unwinder<bool> (ignore_session_monitoring, true);
- tiact->set_active (false);
- }
- }
_session->config.set_session_monitoring (MonitorDisk);
} else {
_session->config.set_session_monitoring (MonitorAuto);
@@ -409,9 +402,11 @@ ARDOUR_UI::parameter_changed (std::string p)
switch (_session->config.get_session_monitoring ()) {
case MonitorDisk:
tdact->set_active (true);
+ tiact->set_active (false);
break;
case MonitorInput:
tiact->set_active (true);
+ tdact->set_active (false);
break;
default:
tdact->set_active (false);