diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-08-08 19:31:10 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-08-08 19:31:10 -0400 |
commit | 111d35c9c7805b47a806a8f435d19e86ad40c879 (patch) | |
tree | 2931e31cec82b958330bf204077270f240c29037 | |
parent | d90e2b42211ead2a38afd5590e2937992312795e (diff) |
add methods to queue full MTC and SPP messages, now that they are synchronous
-rw-r--r-- | gtk2_ardour/editor_drag.cc | 10 | ||||
-rw-r--r-- | libs/ardour/ardour/session.h | 11 |
2 files changed, 16 insertions, 5 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 3389164f50..9c65892ebd 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -2371,10 +2371,14 @@ CursorDrag::fake_locate (framepos_t t) Session* s = _editor->session (); if (s->timecode_transmission_suspended ()) { framepos_t const f = _editor->playhead_cursor->current_frame; + /* This is asynchronous so it will be sent "now" + */ s->send_mmc_locate (f); - // XXX need to queue full time code and SPP messages somehow - // s->send_full_time_code (f); - // s->send_song_position_pointer (f); + /* These are synchronous and will be sent during the next + process cycle + */ + s->queue_full_time_code (); + s->queue_song_position_pointer (); } show_verbose_cursor_time (t); diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index a47c13046d..c291220874 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -813,8 +813,8 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi boost::shared_ptr<SessionPlaylists> playlists; void send_mmc_locate (framepos_t); - int send_full_time_code (framepos_t, pframes_t nframes); - void send_song_position_pointer (framepos_t); + void queue_full_time_code () { _send_timecode_update = true; } + void queue_song_position_pointer () { /* currently does nothing */ } bool step_editing() const { return (_step_editors > 0); } @@ -1261,6 +1261,13 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi void engine_halted (); void xrun_recovery (); + /* These are synchronous and so can only be called from within the process + * cycle + */ + + int send_full_time_code (framepos_t, pframes_t nframes); + void send_song_position_pointer (framepos_t); + TempoMap *_tempo_map; void tempo_map_changed (const PBD::PropertyChange&); |