summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-08-08 19:31:10 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-08-08 19:31:10 -0400
commit111d35c9c7805b47a806a8f435d19e86ad40c879 (patch)
tree2931e31cec82b958330bf204077270f240c29037
parentd90e2b42211ead2a38afd5590e2937992312795e (diff)
add methods to queue full MTC and SPP messages, now that they are synchronous
-rw-r--r--gtk2_ardour/editor_drag.cc10
-rw-r--r--libs/ardour/ardour/session.h11
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&);