X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fport_insert.h;h=0b1b3fbc009e94c7336464757992de519f1b5950;hb=8f8e32881cccf4e5aecbb8f9a7751414ff4e2d78;hp=f4e20a8045f687fce39f84824ddbd2e02eb2aa05;hpb=7b6b75f38ff6b34de3f70e36045498f227c1727d;p=ardour.git diff --git a/libs/ardour/ardour/port_insert.h b/libs/ardour/ardour/port_insert.h index f4e20a8045..0b1b3fbc00 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; @@ -37,39 +39,48 @@ class Session; class IO; class Delivery; class MuteMaster; +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: - PortInsert (Session&, boost::shared_ptr mm); + PortInsert (Session&, 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, nframes_t nframes, bool); + void run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, double speed, pframes_t nframes, bool); - nframes_t signal_latency() const; + void flush_buffers (framecnt_t nframes) { + _out->flush_buffers (nframes); + } + + framecnt_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 (); - uint32_t bit_slot() const { return bitslot; } + void set_pre_fader (bool); + + uint32_t bit_slot() const { return _bitslot; } + + void start_latency_detection (); + void stop_latency_detection (); - void start_latency_detection (); - void stop_latency_detection (); + MTDM* mtdm () const { return _mtdm; } + void set_measured_latency (framecnt_t); + framecnt_t latency () const; - MTDM* mtdm () const { return _mtdm; } - void set_measured_latency (nframes_t); - nframes_t latency() const; + static std::string name_and_id_new_insert (Session&, uint32_t&); private: /* disallow copy construction */ @@ -77,11 +88,12 @@ 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;}; + uint32_t _bitslot; + MTDM* _mtdm; + bool _latency_detect; + framecnt_t _latency_flush_frames; + framecnt_t _measured_latency; +}; } // namespace ARDOUR