summaryrefslogtreecommitdiff
path: root/libs/ardour/ltc_slave.cc
AgeCommit message (Collapse)Author
2020-05-13Set timecode format from active master onlyRobin Gareus
2020-05-12Consolidate delta-string format, avoid markupRobin Gareus
2020-05-11Slave delta display tweaksRobin Gareus
* use left-aligned sign symbol with "sample" unit. When the delta value jitters in decimal places (e.g. MTC) it's otherwise no possible to discern + vs -. * Use white text by default (not green)
2020-05-11Fix TCM requiring port-reconnect when engine restartsRobin Gareus
An engine restart sends dis-connect messages for the reverse port-mapping (after making the connection): Connect: system:midi_capture_41a56f90 -> ardour:MTC in Connect: system:capture_1 -> ardour:LTC in DisConnect: ardour:MTC in -> system:midi_capture_41a56f90 DisConnect: ardour:LTC in -> system:capture_1 This lead to TransportMaster being marked as inactive. This is likely an issue that should be fixed elsewhere, but in case of JACK, we likely do not have control over this.
2020-05-10LTC: sync-lock is only relevant when clock is syncedRobin Gareus
2020-05-09Update LTC reader port latency on connection changeRobin Gareus
This mechanism adds infrastructure that can later also be used for MTC and MIDIClock. PS. The LTC Generator port's latency is queried after the port is created, and later kept in sync via LatencyUpdated signal.
2020-05-08LTC Slave: subscribe to LatencyUpdated signalRobin Gareus
This uses a recently introduce Signal instead of the generic GraphReordered, which was used in the past since it usually happened after the latency was changed.
2020-05-07make LTC transport master safe against the absence of a sessionPaul Davis
For example, when opening a new one, there will momentarily be no session
2020-04-24fix parentheses around expression that prevented port flags from being set ↵Paul Davis
for ltc slave
2020-03-23extend fixed-width improvements to master delta to LTCPaul Davis
2019-11-15fix crash with -D slave caused by too-early use of a transport master's ↵Paul Davis
_port member
2019-09-17add finite state machine to control/manage transport statePaul Davis
2019-09-17manually correct cherry-pick of cdbabe40ed4ePaul Davis
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-03-04Make it compile againRobin Gareus
ISO C++ forbids applying 'sizeof' to an expression of function type
2019-03-03remove debug outputPaul Davis
2019-03-03do not initialize LTC timecode rate from session FPSPaul Davis
2019-03-03audioengine skip should trigger full LTC_Slave::reset(), not just feed ↵Paul Davis
silence to the decoder
2019-03-03LTC_Slave: count frames since resetPaul Davis
2019-03-03debug trace output tweaks (including avoiding stderr/stdout issues)Paul Davis
2019-03-03LTC_Slave::reset() should change _current.speed back to zeroPaul Davis
2019-03-03NO-OP: brace positionPaul Davis
2019-03-03NO-OP: brace positionPaul Davis
2019-03-03expand scope of LTC_Slave::reset() to include more object statePaul Davis
2019-03-03fix semantics of LTC_Slave::locked() - we must have detected FPS to be ↵Paul Davis
considered locked
2019-03-03fix initialization orderPaul Davis
2019-03-03rename LTC_Slave::prev_sample to prev_frame, correcting s/frame/sample/ changesPaul Davis
2019-03-03remove ill-conceived use-session-timecode-format optionPaul Davis
2019-02-26enhanced debug trace outputPaul Davis
2019-02-06do not use green for "OK" deltas in transport master dialog and drop delta ↵Paul Davis
character
2019-02-06use correct value for silent sample count delivered to LTC decoderPaul Davis
2019-02-04reset "current" in LTC transport master when necessaryPaul Davis
2019-02-04correctly initialize LTC transport master port latency (reversed boolean error)Paul Davis
2019-02-04NOOP: whitespace in function callPaul Davis
2019-02-04fully initialize all LTC transport master membersPaul Davis
at least the ones that can be done via initialization statements
2019-01-25new approach to handling Transport Masters when engine is restartedPaul Davis
Trust that ::reset() works for all transport masters, and call it when engine is stopped. This way the transport masters are ready to be called again as soon as the engine restarts.
2018-10-04add new ::update_interval() method for transport masters, and use in shared ↵Paul Davis
::speed_and_position() implementation
2018-09-27consolidate all transport masters on a SafeTime object that is a member of ↵Paul Davis
the TransportMaster base class. This seems to have broken some aspects of chasing/locking
2018-09-22Remove some namespace ambiguityJohn Emmas
There are a couple of places where we're using both MIDI namespace as well as ARDOUR namespace (both of which declare 'pframes_t)
2018-09-18new transport slave/master implementation, libs/ editionPaul Davis
2017-09-29Update Timecode Generator/Slave alignmentRobin Gareus
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode and video in order to keep the legible
2017-09-18attempt fix for LTC slave when locatingPaul Davis
2017-07-26Fix initial sync to LTC with small buffersizesRobin Gareus
Ardour follow_slave() does nothing (not even seek) if the slave is not locked. The LTC-slave assumes it's locked if LTC is stable for 5 continuous process-calls. If the difference of Ardour's transport-position to the LTC-timecode is large (> 2sec), the slave reset itself (assuming drift, seek don't vari- speed). A LTC-slave does reset does reset the locked counter. Hence: If initially Ardour's transport differs > 2 sec and the buffersize is small (many process-callbacks), the slave kept resetting itself never informing Ardour that it locked to the external TC, and Ardour never issued a seek.
2016-12-08Clarify "frames" (video, timecode) vs "samples" (audio)Robin Gareus
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2015-07-23avoid llabs ambiguityRobin Gareus
(old gcc has a built-in)
2015-07-15-Wabsolute-value fixRobin Gareus
2015-06-29(re)implement Yevgeny's LTC branch changes in the context of ↵Paul Davis
ardour-merge-from-tracks (just the libs/* section)
2015-01-12LTC: don’t flag “no lock” until delta was at zero at least least once.Robin Gareus