do not send MMC DeferredPlay or Stop commands if slaving to MTC when transport starts...
authorPaul Davis <paul@linuxaudiosystems.com>
Sun, 30 Jan 2011 04:51:28 +0000 (04:51 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Sun, 30 Jan 2011 04:51:28 +0000 (04:51 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@8617 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/session_transport.cc

index 30c5c4b27ce07986c3d8688a85c9cc5d59fb102a..de94db6f07cd853cdd1c9145516ce1623e16bf42 100644 (file)
@@ -578,8 +578,11 @@ Session::non_realtime_stop (bool abort, int on_entry, bool& finished)
        have_looped = false;
 
        send_full_time_code (_transport_frame);
-       MIDI::Manager::instance()->mmc()->send (MIDI::MachineControlCommand (MIDI::MachineControl::cmdStop));
-       send_mmc_locate (_transport_frame);
+
+        if (!dynamic_cast<MTC_Slave*>(_slave)) {
+                MIDI::Manager::instance()->mmc()->send (MIDI::MachineControlCommand (MIDI::MachineControl::cmdStop));
+                send_mmc_locate (_transport_frame);
+        }
 
        if ((ptw & PostTransportLocate) && get_record_enabled()) {
                /* capture start has been changed, so save pending state */
@@ -1147,9 +1150,11 @@ Session::start_transport ()
                 (*i)->automation_snapshot (_transport_frame, true);
        }
 
-       Timecode::Time time;
-       timecode_time_subframes (_transport_frame, time);
-       MIDI::Manager::instance()->mmc()->send (MIDI::MachineControlCommand (MIDI::MachineControl::cmdDeferredPlay));
+        Timecode::Time time;
+        timecode_time_subframes (_transport_frame, time);
+        if (!dynamic_cast<MTC_Slave*>(_slave)) {
+                MIDI::Manager::instance()->mmc()->send (MIDI::MachineControlCommand (MIDI::MachineControl::cmdDeferredPlay));
+        }
 
        TransportStateChange (); /* EMIT SIGNAL */
 }