X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fsend.h;h=17343bff96d6916bb00acea91b0a495a5779b0a7;hb=c96ec968c7bb4b1d7c358f522a49b0685c022920;hp=9b30dcf792800c136818e5841e590cac541e882e;hpb=9aacefc17010a889222425f97b99050171165038;p=ardour.git diff --git a/libs/ardour/ardour/send.h b/libs/ardour/ardour/send.h index 9b30dcf792..17343bff96 100644 --- a/libs/ardour/ardour/send.h +++ b/libs/ardour/ardour/send.h @@ -26,6 +26,7 @@ #include "ardour/ardour.h" #include "ardour/delivery.h" +#include "ardour/delayline.h" namespace ARDOUR { @@ -35,7 +36,7 @@ class Amp; class LIBARDOUR_API Send : public Delivery { public: - Send (Session&, boost::shared_ptr pannable, boost::shared_ptr, Delivery::Role r = Delivery::Send); + Send (Session&, boost::shared_ptr pannable, boost::shared_ptr, Delivery::Role r = Delivery::Send, bool ignore_bitslot = false); virtual ~Send (); uint32_t bit_slot() const { return _bitslot; } @@ -59,6 +60,12 @@ class LIBARDOUR_API Send : public Delivery bool can_support_io_configuration (const ChanCount& in, ChanCount& out); bool configure_io (ChanCount in, ChanCount out); + /* latency compensation */ + void set_delay_in (framecnt_t); + void set_delay_out (framecnt_t); + framecnt_t get_delay_in () const { return _delay_in; } + framecnt_t get_delay_out () const { return _delay_out; } + void activate (); void deactivate (); @@ -67,12 +74,13 @@ class LIBARDOUR_API Send : public Delivery std::string value_as_string (boost::shared_ptr) const; static uint32_t how_many_sends(); - static std::string name_and_id_new_send (Session&, Delivery::Role r, uint32_t&); + static std::string name_and_id_new_send (Session&, Delivery::Role r, uint32_t&, bool); protected: bool _metering; boost::shared_ptr _amp; boost::shared_ptr _meter; + boost::shared_ptr _delayline; private: /* disallow copy construction */ @@ -82,6 +90,9 @@ class LIBARDOUR_API Send : public Delivery int set_state_2X (XMLNode const &, int); uint32_t _bitslot; + + framecnt_t _delay_in; + framecnt_t _delay_out; }; } // namespace ARDOUR