From 135814cf0db708421e784c10a4cf9bbba104e7e1 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 24 Apr 2020 00:25:24 +0200 Subject: Expose pan-link via Send API, emit signal on change --- libs/ardour/ardour/send.h | 4 ++++ libs/ardour/send.cc | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) (limited to 'libs') 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) { -- cgit v1.2.3