#include <glibmm/threads.h>
-#include <jack/jack.h>
#include <ltc.h>
#include "pbd/signals.h"
virtual framepos_t audible_frame () const { return 0; }
virtual framepos_t transport_frame () const { return 0; }
virtual pframes_t frames_since_cycle_start () const { return 0; }
- virtual pframes_t sample_time_at_cycle_start() const { return 0; }
+ virtual framepos_t sample_time_at_cycle_start() const { return 0; }
virtual framepos_t frame_time () const { return 0; }
virtual void request_locate (framepos_t /*frame*/, bool with_roll = false) {
framepos_t audible_frame () const;
framepos_t transport_frame () const;
pframes_t frames_since_cycle_start () const;
- pframes_t sample_time_at_cycle_start() const;
+ framepos_t sample_time_at_cycle_start() const;
framepos_t frame_time () const;
void request_locate (framepos_t frame, bool with_roll = false);
class LIBARDOUR_API TimecodeSlave : public Slave {
public:
- TimecodeSlave () {}
+ TimecodeSlave () {}
- virtual Timecode::TimecodeFormat apparent_timecode_format() const = 0;
+ virtual Timecode::TimecodeFormat apparent_timecode_format() const = 0;
- /* this is intended to be used by a UI and polled from a timeout. it should
- return a string describing the current position of the TC source. it
- should NOT do any computation, but should use a cached value
- of the TC source position.
- */
- virtual std::string approximate_current_position() const = 0;
+ /* this is intended to be used by a UI and polled from a timeout. it should
+ return a string describing the current position of the TC source. it
+ should NOT do any computation, but should use a cached value
+ of the TC source position.
+ */
+ virtual std::string approximate_current_position() const = 0;
- framepos_t timecode_offset;
- bool timecode_negative_offset;
+ framepos_t timecode_offset;
+ bool timecode_negative_offset;
+
+ PBD::Signal1<void, bool> ActiveChanged;
};
class LIBARDOUR_API MTC_Slave : public TimecodeSlave {
int ltc_detect_fps_cnt;
int ltc_detect_fps_max;
bool printed_timecode_warning;
+ bool sync_lock_broken;
Timecode::TimecodeFormat ltc_timecode;
Timecode::TimecodeFormat a3e_timecode;
private:
AudioEngine& engine;
- double speed;
bool _starting;
};