X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fsend.h;h=497027866b77128c0ba22feef82e130ee9914043;hb=aaa91db6d9592684258267981e619b44cc2b7c40;hp=54d4cbd7a9bb9206b392661efea6639cf4a279c6;hpb=8b46567e0677eb25c965ed46b80da8808fa33b2b;p=ardour.git diff --git a/libs/ardour/ardour/send.h b/libs/ardour/ardour/send.h index 54d4cbd7a9..497027866b 100644 --- a/libs/ardour/ardour/send.h +++ b/libs/ardour/ardour/send.h @@ -15,7 +15,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id$ */ #ifndef __ardour_send_h__ @@ -28,19 +27,25 @@ #include #include #include -#include -#include +#include namespace ARDOUR { -class Send : public Redirect { +class Send : public IOProcessor +{ public: Send (Session&, Placement); Send (Session&, const XMLNode&); Send (const Send&); - ~Send (); + virtual ~Send (); + + uint32_t bit_slot() const { return bitslot; } + + ChanCount output_streams() const; + ChanCount input_streams () const; + + void run_in_place (BufferSet& bufs, nframes_t start_frame, nframes_t end_frame, nframes_t nframes, nframes_t offset); - void run (vector &bufs, uint32_t nbufs, jack_nframes_t nframes, jack_nframes_t offset); void activate() {} void deactivate () {} @@ -50,14 +55,20 @@ class Send : public Redirect { XMLNode& get_state(void); int set_state(const XMLNode& node); - uint32_t pans_required() const { return expected_inputs; } - void expect_inputs (uint32_t); + uint32_t pans_required() const { return _configured_input.n_audio(); } + void expect_inputs (const ChanCount&); + + bool can_support_io_configuration (const ChanCount& in, ChanCount& out) const; + bool configure_io (ChanCount in, ChanCount out); + + static uint32_t how_many_sends(); private: - bool _metering; - uint32_t expected_inputs; + bool _metering; + ChanCount expected_inputs; + uint32_t bitslot; }; -}; /* namespace ARDOUR */ +} // namespace ARDOUR #endif /* __ardour_send_h__ */