Do MMC on playhead drag more efficiently by not doing an actual locate.
git-svn-id: svn://localhost/ardour2/branches/3.0@7370 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
8216700080
commit
c36132271b
|
@ -2138,8 +2138,7 @@ CursorDrag::motion (GdkEvent* event, bool)
|
||||||
_editor->show_verbose_time_cursor (_cursor->current_frame, 10);
|
_editor->show_verbose_time_cursor (_cursor->current_frame, 10);
|
||||||
|
|
||||||
if (_editor->session() && _item == &_editor->playhead_cursor->canvas_item) {
|
if (_editor->session() && _item == &_editor->playhead_cursor->canvas_item) {
|
||||||
_editor->session()->request_locate (_editor->playhead_cursor->current_frame, false);
|
_editor->session()->send_mmc_locate (_editor->playhead_cursor->current_frame);
|
||||||
_editor->_pending_locate_request = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -788,6 +788,8 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
|
||||||
|
|
||||||
boost::shared_ptr<SessionPlaylists> playlists;
|
boost::shared_ptr<SessionPlaylists> playlists;
|
||||||
|
|
||||||
|
void send_mmc_locate (nframes64_t);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
friend class AudioEngine;
|
friend class AudioEngine;
|
||||||
void set_block_size (nframes_t nframes);
|
void set_block_size (nframes_t nframes);
|
||||||
|
|
|
@ -183,11 +183,9 @@ Session::realtime_stop (bool abort, bool clear_state)
|
||||||
|
|
||||||
// FIXME: where should this really be? [DR]
|
// FIXME: where should this really be? [DR]
|
||||||
//send_full_time_code();
|
//send_full_time_code();
|
||||||
Timecode::Time time;
|
|
||||||
timecode_time_subframes (_transport_frame, time);
|
|
||||||
|
|
||||||
_mmc->send (MIDI::MachineControlCommand (MIDI::MachineControl::cmdStop));
|
_mmc->send (MIDI::MachineControlCommand (MIDI::MachineControl::cmdStop));
|
||||||
_mmc->send (MIDI::MachineControlCommand (time));
|
send_mmc_locate (_transport_frame);
|
||||||
|
|
||||||
if (_transport_speed < 0.0f) {
|
if (_transport_speed < 0.0f) {
|
||||||
todo = (PostTransportWork (todo | PostTransportStop | PostTransportReverse));
|
todo = (PostTransportWork (todo | PostTransportStop | PostTransportReverse));
|
||||||
|
@ -896,9 +894,7 @@ Session::locate (nframes64_t target_frame, bool with_roll, bool with_flush, bool
|
||||||
_send_timecode_update = true;
|
_send_timecode_update = true;
|
||||||
|
|
||||||
if (with_mmc) {
|
if (with_mmc) {
|
||||||
Timecode::Time time;
|
send_mmc_locate (_transport_frame);
|
||||||
timecode_time_subframes (_transport_frame, time);
|
|
||||||
_mmc->send (MIDI::MachineControlCommand (time));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Located (); /* EMIT SIGNAL */
|
Located (); /* EMIT SIGNAL */
|
||||||
|
@ -1568,3 +1564,11 @@ Session::maybe_stop (nframes_t limit)
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Session::send_mmc_locate (nframes64_t t)
|
||||||
|
{
|
||||||
|
Timecode::Time time;
|
||||||
|
timecode_time_subframes (t, time);
|
||||||
|
_mmc->send (MIDI::MachineControlCommand (time));
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user