void
Session::spp_start (Parser &, nframes_t /*timestamp*/)
{
- if (Config->get_mmc_control() && (config.get_external_sync() && config.get_sync_source() != MTC)) {
+ if (Config->get_mmc_control() && (!config.get_external_sync() || config.get_sync_source() != JACK)) {
request_transport_speed (1.0);
}
}
void
Session::mmc_deferred_play (MIDI::MachineControl &/*mmc*/)
{
- if (Config->get_mmc_control() && (config.get_external_sync() && (config.get_sync_source() != MTC))) {
+ if (Config->get_mmc_control() && (!config.get_external_sync() || (config.get_sync_source() != JACK))) {
request_transport_speed (1.0);
}
}
*/
if (_send_timecode_update) {
send_full_time_code(nframes);
+ deliver_mmc (MIDI::MachineControl::cmdLocate, _transport_frame);
}
if (!process_can_proceed()) {
} else {
- if (!get_record_enabled() && Config->get_stop_at_session_end() && _transport_frame >= current_end_frame()) {
+ /* if not recording, don't roll forward past end if told to stop there */
+
+ if (!get_record_enabled() && (speed > 0.0 && Config->get_stop_at_session_end() && _transport_frame >= current_end_frame())) {
return;
}