summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-02-28 01:27:56 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-02-28 01:27:56 +0000
commit2756e72d0ddc1ba974fc67d0dd92487457b65eeb (patch)
tree1a34e4c66d1a218a74f5dddac755831fbeeebd1d
parent4f460078b8cbfcb1f2d5bb7a3aa3fe5ab8f0bebb (diff)
desensitize auto-return button on slave != None and ignore auto-return in libardour if slave != None
git-svn-id: svn://localhost/ardour2/trunk@1531 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/ardour_ui_options.cc2
-rw-r--r--libs/ardour/session_transport.cc8
2 files changed, 6 insertions, 4 deletions
diff --git a/gtk2_ardour/ardour_ui_options.cc b/gtk2_ardour/ardour_ui_options.cc
index e946916d60..8e87810ac4 100644
--- a/gtk2_ardour/ardour_ui_options.cc
+++ b/gtk2_ardour/ardour_ui_options.cc
@@ -826,11 +826,13 @@ ARDOUR_UI::parameter_changed (const char* parameter_name)
switch (Config->get_slave_source()) {
case None:
ActionManager::get_action ("Transport", "ToggleAutoPlay")->set_sensitive (true);
+ ActionManager::get_action ("Transport", "ToggleAutoReturn")->set_sensitive (true);
break;
default:
/* XXX need to make auto-play is off as well as insensitive */
ActionManager::get_action ("Transport", "ToggleAutoPlay")->set_sensitive (false);
+ ActionManager::get_action ("Transport", "ToggleAutoReturn")->set_sensitive (false);
break;
}
diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc
index cf450bce8f..c0468a63ca 100644
--- a/libs/ardour/session_transport.cc
+++ b/libs/ardour/session_transport.cc
@@ -175,7 +175,7 @@ Session::realtime_stop (bool abort)
waiting_for_sync_offset = true;
}
- transport_sub_state = (Config->get_auto_return() ? AutoReturning : 0);
+ transport_sub_state = ((Config->get_slave_source() == None && Config->get_auto_return()) ? AutoReturning : 0);
}
void
@@ -371,13 +371,13 @@ Session::non_realtime_stop (bool abort, int on_entry, bool& finished)
update_latency_compensation (true, abort);
}
- if (Config->get_auto_return() || (post_transport_work & PostTransportLocate) || synced_to_jack()) {
+ if ((Config->get_slave_source() == None && Config->get_auto_return()) || (post_transport_work & PostTransportLocate) || synced_to_jack()) {
if (pending_locate_flush) {
flush_all_redirects ();
}
-
- if ((Config->get_auto_return() || synced_to_jack()) && !(post_transport_work & PostTransportLocate)) {
+
+ if (((Config->get_slave_source() == None && Config->get_auto_return()) || synced_to_jack()) && !(post_transport_work & PostTransportLocate)) {
_transport_frame = last_stop_frame;