Tweak transmission of MMC on locate. Should fix #3121.

git-svn-id: svn://localhost/ardour2/branches/3.0@7314 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2010-06-28 17:25:40 +00:00
parent cd1aaff197
commit 89b686f937
4 changed files with 8 additions and 4 deletions

View File

@ -1168,7 +1168,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
void overwrite_some_buffers (Track *);
void flush_all_inserts ();
int micro_locate (nframes_t distance);
void locate (nframes64_t, bool with_roll, bool with_flush, bool with_loop=false, bool force=false);
void locate (nframes64_t, bool with_roll, bool with_flush, bool with_loop=false, bool force=false, bool with_mmc=true);
void start_locate (nframes64_t, bool with_roll, bool with_flush, bool with_loop=false, bool force=false);
void force_locate (nframes64_t frame, bool with_roll = false);
void set_track_speed (Track *, double speed);

View File

@ -224,6 +224,6 @@ Session::finalize_audio_export ()
if (post_export_sync) {
config.set_external_sync (true);
} else {
locate (post_export_position, false, false, false);
locate (post_export_position, false, false, false, false, false);
}
}

View File

@ -268,7 +268,6 @@ Session::process_with_events (nframes_t nframes)
*/
if (_send_timecode_update) {
send_full_time_code(nframes);
deliver_mmc (MIDI::MachineControl::cmdLocate, _transport_frame);
}
if (!process_can_proceed()) {

View File

@ -769,8 +769,9 @@ Session::micro_locate (nframes_t distance)
return 0;
}
/** @param with_mmc true to send a MMC locate command when the locate is done */
void
Session::locate (nframes64_t target_frame, bool with_roll, bool with_flush, bool with_loop, bool force)
Session::locate (nframes64_t target_frame, bool with_roll, bool with_flush, bool with_loop, bool force, bool with_mmc)
{
if (actively_recording() && !with_loop) {
return;
@ -892,6 +893,10 @@ Session::locate (nframes64_t target_frame, bool with_roll, bool with_flush, bool
_send_timecode_update = true;
if (with_mmc) {
deliver_mmc (MIDI::MachineControl::cmdLocate, _transport_frame);
}
Located (); /* EMIT SIGNAL */
}