summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2012-11-11 20:43:53 +0000
committerRobin Gareus <robin@gareus.org>2012-11-11 20:43:53 +0000
commit8872844a60311c060f6a3f352c5972e2676157cd (patch)
tree6f88932f329e224272e35ebc5df9810b7ee1a696 /libs/ardour
parent44680aa1bb6c42d261e4b6424d5d76fd42f26624 (diff)
add slave and generator Timecode offset (no UI yet)
So far only LTC slave, LTC generator and MTC slave. MTC generator remains to be done. git-svn-id: svn://localhost/ardour2/branches/3.0@13441 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/session_configuration_vars.h4
-rw-r--r--libs/ardour/ltc_slave.cc4
-rw-r--r--libs/ardour/mtc_slave.cc4
-rw-r--r--libs/ardour/session_ltc.cc6
4 files changed, 11 insertions, 7 deletions
diff --git a/libs/ardour/ardour/session_configuration_vars.h b/libs/ardour/ardour/session_configuration_vars.h
index 911c9366fe..1bfc254921 100644
--- a/libs/ardour/ardour/session_configuration_vars.h
+++ b/libs/ardour/ardour/session_configuration_vars.h
@@ -53,6 +53,10 @@ CONFIG_VARIABLE (bool, external_sync, "external-sync", false)
CONFIG_VARIABLE (InsertMergePolicy, insert_merge_policy, "insert-merge-policy", InsertMergeRelax)
CONFIG_VARIABLE (framecnt_t, timecode_offset, "timecode-offset", 0)
CONFIG_VARIABLE (bool, timecode_offset_negative, "timecode-offset-negative", true)
+CONFIG_VARIABLE (framecnt_t, slave_timecode_offset, "slave-timecode-offset", 0)
+CONFIG_VARIABLE (bool, slave_timecode_offset_negative, "slave-timecode-offset-negative", true)
+CONFIG_VARIABLE (framecnt_t, timecode_generator_offset, "timecode-generator-offset", 0)
+CONFIG_VARIABLE (bool, timecode_generator_offset_negative, "timecode-generator-offset-negative", true)
CONFIG_VARIABLE (bool, glue_new_markers_to_bars_and_beats, "glue-new-markers-to-bars-and-beats", false)
CONFIG_VARIABLE (bool, midi_copy_is_fork, "midi-copy-is-fork", false)
CONFIG_VARIABLE (bool, glue_new_regions_to_bars_and_beats, "glue-new-regions-to-bars-and-beats", false)
diff --git a/libs/ardour/ltc_slave.cc b/libs/ardour/ltc_slave.cc
index b5fbe1c01e..5aae276457 100644
--- a/libs/ardour/ltc_slave.cc
+++ b/libs/ardour/ltc_slave.cc
@@ -331,10 +331,10 @@ LTC_Slave::process_ltc(framepos_t const now)
/* map LTC timecode to session TC setting */
framepos_t ltc_frame; ///< audio-frame corresponding to LTC frame
- Timecode::timecode_to_sample (timecode, ltc_frame, false, false,
+ Timecode::timecode_to_sample (timecode, ltc_frame, true, false,
double(session.frame_rate()),
session.config.get_subframes_per_frame(),
- session.config.get_timecode_offset_negative(), session.config.get_timecode_offset()
+ session.config.get_slave_timecode_offset_negative(), session.config.get_slave_timecode_offset()
);
framepos_t cur_timestamp = frame.off_end + 1;
diff --git a/libs/ardour/mtc_slave.cc b/libs/ardour/mtc_slave.cc
index d46b0dc7d7..5a3b9b07f4 100644
--- a/libs/ardour/mtc_slave.cc
+++ b/libs/ardour/mtc_slave.cc
@@ -387,10 +387,10 @@ MTC_Slave::update_mtc_time (const byte *msg, bool was_full, framepos_t now)
quarter_frame_duration = (double(session.frame_rate()) / (double) timecode.rate / 4.0);
- Timecode::timecode_to_sample (timecode, mtc_frame, false, false,
+ Timecode::timecode_to_sample (timecode, mtc_frame, true, false,
double(session.frame_rate()),
session.config.get_subframes_per_frame(),
- session.config.get_timecode_offset_negative(), session.config.get_timecode_offset()
+ session.config.get_slave_timecode_offset_negative(), session.config.get_slave_timecode_offset()
);
DEBUG_TRACE (DEBUG::MTC, string_compose ("MTC at %1 TC %2 = mtc_frame %3 (from full message ? %4) tc-ratio %5\n",
diff --git a/libs/ardour/session_ltc.cc b/libs/ardour/session_ltc.cc
index 0f7f280ef8..25ba783fc7 100644
--- a/libs/ardour/session_ltc.cc
+++ b/libs/ardour/session_ltc.cc
@@ -135,7 +135,7 @@ Session::ltc_tx_recalculate_position()
Timecode::timecode_to_sample (a3tc, ltc_enc_pos, true, false,
(double)frame_rate(),
config.get_subframes_per_frame(),
- config.get_timecode_offset_negative(), config.get_timecode_offset()
+ config.get_timecode_generator_offset_negative(), config.get_timecode_generator_offset()
);
restarting = false;
}
@@ -365,14 +365,14 @@ Session::ltc_tx_send_time_code_for_cycle (framepos_t start_frame, framepos_t end
timecode_drop_frames(),
(double)frame_rate(),
config.get_subframes_per_frame(),
- config.get_timecode_offset_negative(), config.get_timecode_offset()
+ config.get_timecode_generator_offset_negative(), config.get_timecode_generator_offset()
);
/* convert timecode back to sample-position */
Timecode::timecode_to_sample (tc_start, tc_sample_start, true, false,
(double)frame_rate(),
config.get_subframes_per_frame(),
- config.get_timecode_offset_negative(), config.get_timecode_offset()
+ config.get_timecode_generator_offset_negative(), config.get_timecode_generator_offset()
);
/* difference between current frame and TC frame in samples */