X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fport_insert.h;h=e96779c63e65f984362147d4e8eaf2052a3d0924;hb=c656aaab3c0c66ea0cde210950af341a3d71c559;hp=f42294b2b474fa6c7306f456d8c17934e9196936;hpb=d46acb86eaa3a94fb2dc673964271ecfe0f004dd;p=ardour.git diff --git a/libs/ardour/ardour/port_insert.h b/libs/ardour/ardour/port_insert.h index f42294b2b4..e96779c63e 100644 --- a/libs/ardour/ardour/port_insert.h +++ b/libs/ardour/ardour/port_insert.h @@ -26,6 +26,8 @@ #include "ardour/ardour.h" #include "ardour/io_processor.h" +#include "ardour/delivery.h" +#include "ardour/libardour_visibility.h" #include "ardour/types.h" class XMLNode; @@ -41,43 +43,46 @@ class Pannable; /** Port inserts: send output to a Jack port, pick up input at a Jack port */ -class PortInsert : public IOProcessor +class LIBARDOUR_API PortInsert : public IOProcessor { - public: +public: PortInsert (Session&, boost::shared_ptr, boost::shared_ptr mm); - PortInsert (Session&, const std::string&, uint32_t bitslot, - boost::shared_ptr, boost::shared_ptr mm); ~PortInsert (); - XMLNode& state(bool full); - XMLNode& get_state(void); int set_state (const XMLNode&, int version); - void run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, pframes_t nframes, bool); + void run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_sample, double speed, pframes_t nframes, bool); - framecnt_t signal_latency () const; + void flush_buffers (samplecnt_t nframes) { + _out->flush_buffers (nframes); + } + + samplecnt_t signal_latency () const; bool set_name (const std::string& name); - bool can_support_io_configuration (const ChanCount& in, ChanCount& out) const; + bool can_support_io_configuration (const ChanCount& in, ChanCount& out); bool configure_io (ChanCount in, ChanCount out); void activate (); void deactivate (); + void set_pre_fader (bool); + uint32_t bit_slot() const { return _bitslot; } void start_latency_detection (); void stop_latency_detection (); MTDM* mtdm () const { return _mtdm; } - void set_measured_latency (framecnt_t); - framecnt_t latency () const; + void set_measured_latency (samplecnt_t); + samplecnt_t latency () const; - static void make_unique (XMLNode &); static std::string name_and_id_new_insert (Session&, uint32_t&); - private: +protected: + XMLNode& state (); +private: /* disallow copy construction */ PortInsert (const PortInsert&); @@ -86,8 +91,8 @@ class PortInsert : public IOProcessor uint32_t _bitslot; MTDM* _mtdm; bool _latency_detect; - framecnt_t _latency_flush_frames; - framecnt_t _measured_latency; + samplecnt_t _latency_flush_samples; + samplecnt_t _measured_latency; }; } // namespace ARDOUR