diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2007-02-28 01:27:56 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2007-02-28 01:27:56 +0000 |
commit | 2756e72d0ddc1ba974fc67d0dd92487457b65eeb (patch) | |
tree | 1a34e4c66d1a218a74f5dddac755831fbeeebd1d | |
parent | 4f460078b8cbfcb1f2d5bb7a3aa3fe5ab8f0bebb (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.cc | 2 | ||||
-rw-r--r-- | libs/ardour/session_transport.cc | 8 |
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; |