X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fslave.h;h=cf8060d029efeb6dd98a4b810fe3b86be2da4425;hb=a3856d44b2add305a8a7296c54818fedd1dffc8c;hp=8c50aea5d3d525a5f11969f135b75cb5b8ec0964;hpb=5792674ca4d02e093b4318d31a117a47ae72ecdf;p=ardour.git diff --git a/libs/ardour/ardour/slave.h b/libs/ardour/ardour/slave.h index 8c50aea5d3..cf8060d029 100644 --- a/libs/ardour/ardour/slave.h +++ b/libs/ardour/ardour/slave.h @@ -24,8 +24,7 @@ #include -#include -#include +#include #include "pbd/signals.h" @@ -184,12 +183,14 @@ class LIBARDOUR_API Slave { class LIBARDOUR_API ISlaveSessionProxy { public: virtual ~ISlaveSessionProxy() {} - virtual TempoMap& tempo_map() const { return *((TempoMap *) 0); } - virtual framecnt_t frame_rate() const { return 0; } - 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 framepos_t frame_time () const { return 0; } + virtual TempoMap& tempo_map() const { return *((TempoMap *) 0); } + virtual framecnt_t frame_rate() const { return 0; } + virtual pframes_t frames_per_cycle() const { return 0; } + 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 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) { (void) with_roll; @@ -205,12 +206,14 @@ class LIBARDOUR_API SlaveSessionProxy : public ISlaveSessionProxy { public: SlaveSessionProxy(Session &s) : session(s) {} - TempoMap& tempo_map() const; - framecnt_t frame_rate() const; - framepos_t audible_frame () const; - framepos_t transport_frame () const; - pframes_t frames_since_cycle_start () const; - framepos_t frame_time () const; + TempoMap& tempo_map() const; + framecnt_t frame_rate() const; + pframes_t frames_per_cycle() const; + framepos_t audible_frame () const; + framepos_t transport_frame () const; + pframes_t frames_since_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); void request_transport_speed (double speed); @@ -234,19 +237,21 @@ struct LIBARDOUR_API SafeTime { 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 ActiveChanged; }; class LIBARDOUR_API MTC_Slave : public TimecodeSlave { @@ -385,6 +390,7 @@ public: 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; @@ -504,7 +510,6 @@ class LIBARDOUR_API Engine_Slave : public Slave private: AudioEngine& engine; - double speed; bool _starting; };