summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/audioengine.h2
-rw-r--r--libs/ardour/ardour/rc_configuration_vars.h2
-rw-r--r--libs/ardour/ardour/session.h21
3 files changed, 25 insertions, 0 deletions
diff --git a/libs/ardour/ardour/audioengine.h b/libs/ardour/ardour/audioengine.h
index 49e3c15457..a908cf0bc1 100644
--- a/libs/ardour/ardour/audioengine.h
+++ b/libs/ardour/ardour/audioengine.h
@@ -261,6 +261,7 @@ _ the regular process() call to session->process() is not made.
int create_process_thread (boost::function<void()>, pthread_t*, size_t stacksize);
boost::shared_ptr<Port> ltc_input_port() const { return _ltc_input; }
+ boost::shared_ptr<Port> ltc_output_port() const { return _ltc_output; }
private:
static AudioEngine* _instance;
@@ -292,6 +293,7 @@ private:
ProcessThread* _main_thread;
boost::shared_ptr<Port> _ltc_input;
+ boost::shared_ptr<Port> _ltc_output;
void reconnect_ltc ();
SerializedRCUManager<Ports> ports;
diff --git a/libs/ardour/ardour/rc_configuration_vars.h b/libs/ardour/ardour/rc_configuration_vars.h
index 9432b7230f..b05b90fa14 100644
--- a/libs/ardour/ardour/rc_configuration_vars.h
+++ b/libs/ardour/ardour/rc_configuration_vars.h
@@ -52,6 +52,8 @@ CONFIG_VARIABLE (bool, timecode_sync_frame_rate, "timecode-sync-frame-rate", tru
CONFIG_VARIABLE (bool, timecode_source_is_synced, "timecode-source-is-synced", true)
CONFIG_VARIABLE (SyncSource, sync_source, "sync-source", JACK)
CONFIG_VARIABLE (std::string, ltc_source_port, "ltc-source-port", "system:capture_1")
+CONFIG_VARIABLE (bool, send_ltc, "send-ltc", false)
+CONFIG_VARIABLE (std::string, ltc_output_port, "ltc-sink-port", "")
/* control surfaces */
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index df04971e02..c9389f60b1 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -64,6 +64,10 @@
#include <jack/session.h>
#endif
+#ifdef HAVE_LTC
+#include <ltc.h>
+#endif
+
class XMLTree;
class XMLNode;
struct _AEffect;
@@ -1178,6 +1182,23 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
int send_midi_time_code_for_cycle (framepos_t, framepos_t, pframes_t nframes);
+#ifdef HAVE_LTC
+ LTCEncoder* ltc_encoder;
+ ltcsnd_sample_t* ltc_enc_buf;
+
+ Timecode::TimecodeFormat ltc_enc_tcformat;
+ framepos_t ltc_enc_pos;
+ int32_t ltc_buf_off;
+ int32_t ltc_buf_len;
+ int32_t ltc_enc_byte;
+ double ltc_speed;
+
+ void ltc_tx_initialize();
+ void ltc_tx_cleanup();
+ void ltc_tx_reset();
+ int ltc_tx_send_time_code_for_cycle (framepos_t, framepos_t, double, double, pframes_t nframes);
+#endif
+
void reset_record_status ();
int no_roll (pframes_t nframes);