From 2756e72d0ddc1ba974fc67d0dd92487457b65eeb Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 28 Feb 2007 01:27:56 +0000 Subject: 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 --- gtk2_ardour/ardour_ui_options.cc | 2 ++ 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; -- cgit v1.2.3