#include <pbd/stateful.h>
#include <ardour/ardour.h>
#include <ardour/audioengine.h>
-#include <ardour/io.h>
-#include <ardour/redirect.h>
+#include <ardour/io_processor.h>
namespace ARDOUR {
-class Send : public Redirect
+class Send : public IOProcessor
{
public:
Send (Session&, Placement);
uint32_t bit_slot() const { return bitslot; }
- void run (BufferSet& bufs, nframes_t start_frame, nframes_t end_frame, nframes_t nframes, nframes_t offset);
+ 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 activate() {}
void deactivate () {}
XMLNode& get_state(void);
int set_state(const XMLNode& node);
- uint32_t pans_required() const { return _expected_inputs.n_audio(); }
+ 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;
- ChanCount _expected_inputs;
- uint32_t bitslot;
+ ChanCount expected_inputs;
+ uint32_t bitslot;
};
} // namespace ARDOUR