X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fport_insert.h;h=f4e20a8045f687fce39f84824ddbd2e02eb2aa05;hb=f25d9b122046d9ccf81108afc2fb466a32f9cbcc;hp=3283415e6d67188d813d1e5dc33089578934bcee;hpb=8713667ec1a6cc9ba56c07f763e5a422cc47fbef;p=ardour.git diff --git a/libs/ardour/ardour/port_insert.h b/libs/ardour/ardour/port_insert.h index 3283415e6d..f4e20a8045 100644 --- a/libs/ardour/ardour/port_insert.h +++ b/libs/ardour/ardour/port_insert.h @@ -24,12 +24,12 @@ #include #include -#include #include "ardour/ardour.h" #include "ardour/io_processor.h" #include "ardour/types.h" class XMLNode; +class MTDM; namespace ARDOUR { @@ -44,14 +44,13 @@ class PortInsert : public IOProcessor { public: PortInsert (Session&, boost::shared_ptr mm); - PortInsert (Session&, boost::shared_ptr mm, const XMLNode&); ~PortInsert (); XMLNode& state(bool full); XMLNode& get_state(void); int set_state (const XMLNode&, int version); - void run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nframes_t nframes); + void run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, nframes_t nframes, bool); nframes_t signal_latency() const; @@ -60,8 +59,18 @@ class PortInsert : public IOProcessor bool can_support_io_configuration (const ChanCount& in, ChanCount& out) const; bool configure_io (ChanCount in, ChanCount out); + void activate (); + void deactivate (); + uint32_t bit_slot() const { return bitslot; } + void start_latency_detection (); + void stop_latency_detection (); + + MTDM* mtdm () const { return _mtdm; } + void set_measured_latency (nframes_t); + nframes_t latency() const; + private: /* disallow copy construction */ PortInsert (const PortInsert&); @@ -69,7 +78,10 @@ class PortInsert : public IOProcessor boost::shared_ptr _out; uint32_t bitslot; -}; + MTDM* _mtdm; + bool _latency_detect; + nframes_t _latency_flush_frames; + nframes_t _measured_latency;}; } // namespace ARDOUR