diff --git a/libs/ardour/ardour/send.h b/libs/ardour/ardour/send.h index fe66053c02..1957c19a50 100644 --- a/libs/ardour/ardour/send.h +++ b/libs/ardour/ardour/send.h @@ -84,6 +84,10 @@ public: void set_remove_on_disconnect (bool b) { _remove_on_disconnect = b; } bool remove_on_disconnect () const { return _remove_on_disconnect; } + bool has_panner () const; + bool panner_linked_to_route () const; + void set_panner_linked_to_route (bool); + uint32_t pans_required() const { return _configured_input.n_audio(); } void run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_sample, double speed, pframes_t nframes, bool); diff --git a/libs/ardour/send.cc b/libs/ardour/send.cc index d96bc2db58..283e8d3259 100644 --- a/libs/ardour/send.cc +++ b/libs/ardour/send.cc @@ -433,6 +433,30 @@ Send::set_state_2X (const XMLNode& node, int /* version */) return 0; } +bool +Send::has_panner () const +{ + /* see InternalSend::run() and Delivery::run */ + if (_panshell && role () != Listen && _panshell->panner()) { + return true; // !_panshell->bypassed () + } + return false; +} + +bool +Send::panner_linked_to_route () const +{ + return _panshell ? _panshell->is_linked_to_route() : false; +} + +void +Send::set_panner_linked_to_route (bool onoff) { + if (_panshell) { + _panshell->set_linked_to_route (onoff); + PropertyChanged (PBD::PropertyChange ()); /* EMIT SIGNAL */ + } +} + bool Send::can_support_io_configuration (const ChanCount& in, ChanCount& out) {