disable follow-edits with external sync #6577

This commit is contained in:
Robin Gareus 2015-10-18 02:01:45 +02:00
parent a5dcccae60
commit f307080808
4 changed files with 6 additions and 6 deletions

View File

@ -2108,7 +2108,7 @@ ARDOUR_UI::toggle_roll (bool with_abort, bool roll_out_of_bounded_mode)
if (affect_transport) {
if (rolling) {
_session->request_stop (with_abort, true);
} else {
} else if (!_session->config.get_external_sync()) {
if (UIConfiguration::instance().get_follow_edits() && ( editor->get_selection().time.front().start == _session->transport_frame() ) ) { //if playhead is exactly at the start of a range, we can assume it was placed there by follow_edits
_session->request_play_range (&editor->get_selection().time, true);
_session->set_requested_return_frame( editor->get_selection().time.front().start ); //force an auto-return here
@ -2286,7 +2286,7 @@ ARDOUR_UI::map_transport_state ()
auto_loop_button.set_active (false);
}
if (UIConfiguration::instance().get_follow_edits()) {
if (UIConfiguration::instance().get_follow_edits() && !_session->config.get_external_sync()) {
/* light up both roll and play-selection if they are joined */
roll_button.set_active (true);
play_selection_button.set_active (true);

View File

@ -4954,7 +4954,7 @@ SelectionDrag::finished (GdkEvent* event, bool movement_occurred)
if (s) {
if (s->get_play_range() && s->transport_rolling()) {
s->request_play_range (&_editor->selection->time, true);
} else {
} else if (!s->config.get_external_sync()) {
if (UIConfiguration::instance().get_follow_edits() && !s->transport_rolling()) {
if (_operation == SelectionEndTrim)
_editor->maybe_locate_with_edit_preroll( _editor->get_selection().time.end_frame());

View File

@ -1138,7 +1138,7 @@ Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemTyp
}
//not rolling, range mode click + join_play_range : locate the PH here
if ( !_drags->active () && _session && !_session->transport_rolling() && ( effective_mouse_mode() == MouseRange ) && UIConfiguration::instance().get_follow_edits() ) {
if ( !_drags->active () && _session && !_session->transport_rolling() && ( effective_mouse_mode() == MouseRange ) && UIConfiguration::instance().get_follow_edits() && !_session->config.get_external_sync() ) {
framepos_t where = canvas_event_sample (event);
snap_to(where);
_session->request_locate (where, false);

View File

@ -2537,7 +2537,7 @@ Editor::get_preroll ()
void
Editor::maybe_locate_with_edit_preroll ( framepos_t location )
{
if ( _session->transport_rolling() || !UIConfiguration::instance().get_follow_edits() || _ignore_follow_edits )
if ( _session->transport_rolling() || !UIConfiguration::instance().get_follow_edits() || _ignore_follow_edits || _session->config.get_external_sync() )
return;
location -= get_preroll();
@ -6097,7 +6097,7 @@ Editor::set_playhead_cursor ()
}
}
if (UIConfiguration::instance().get_follow_edits()) {
if (UIConfiguration::instance().get_follow_edits() && !_session->config.get_external_sync()) {
cancel_time_selection();
}
}