diff options
Diffstat (limited to 'libs/ardour/mtc_slave.cc')
-rw-r--r-- | libs/ardour/mtc_slave.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libs/ardour/mtc_slave.cc b/libs/ardour/mtc_slave.cc index c4af3f9bc7..797ba5244a 100644 --- a/libs/ardour/mtc_slave.cc +++ b/libs/ardour/mtc_slave.cc @@ -33,6 +33,7 @@ #include "ardour/midi_port.h" #include "ardour/session.h" #include "ardour/transport_master.h" +#include "ardour/transport_master_manager.h" #include "pbd/i18n.h" @@ -429,9 +430,12 @@ MTC_TransportMaster::update_mtc_time (const MIDI::byte *msg, bool was_full, samp if (was_full || outside_window (mtc_frame)) { DEBUG_TRACE (DEBUG::MTC, string_compose ("update_mtc_time: full TC %1 or outside window %2 MTC %3\n", was_full, outside_window (mtc_frame), mtc_frame)); - _session->set_requested_return_sample (-1); - _session->request_transport_speed (0, TRS_MTC); - _session->request_locate (mtc_frame, MustStop, TRS_MTC); + boost::shared_ptr<TransportMaster> c = TransportMasterManager::instance().current(); + if (c && c.get() == this) { + _session->set_requested_return_sample (-1); + _session->request_transport_speed (0, TRS_MTC); + _session->request_locate (mtc_frame, MustStop, TRS_MTC); + } update_mtc_status (MIDI::MTC_Stopped); reset (false); reset_window (mtc_frame); |