From d9cf6880b6d65665a55aed212503de0820db6f40 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 13 Jan 2014 10:50:22 +0100 Subject: fix output metering for Sends (Aux and External) --- libs/ardour/ardour/send.h | 1 + libs/ardour/send.cc | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) (limited to 'libs') diff --git a/libs/ardour/ardour/send.h b/libs/ardour/ardour/send.h index 1a21d1d050..118110f05a 100644 --- a/libs/ardour/ardour/send.h +++ b/libs/ardour/ardour/send.h @@ -77,6 +77,7 @@ class Send : public Delivery private: /* disallow copy construction */ Send (const Send&); + void panshell_changed (); int set_state_2X (XMLNode const &, int); diff --git a/libs/ardour/send.cc b/libs/ardour/send.cc index e74fd7f8ce..2c3d8f23ae 100644 --- a/libs/ardour/send.cc +++ b/libs/ardour/send.cc @@ -29,6 +29,7 @@ #include "ardour/buffer_set.h" #include "ardour/meter.h" #include "ardour/io.h" +#include "ardour/panner_shell.h" #include "i18n.h" @@ -86,6 +87,10 @@ Send::Send (Session& s, boost::shared_ptr p, boost::shared_ptrgain_control ()); + + if (panner_shell()) { + panner_shell()->Changed.connect_same_thread (*this, boost::bind (&Send::panshell_changed, this)); + } } Send::~Send () @@ -284,7 +289,7 @@ Send::can_support_io_configuration (const ChanCount& in, ChanCount& out) bool Send::configure_io (ChanCount in, ChanCount out) { - if (!_amp->configure_io (in, out) || !_meter->configure_io (in, out)) { + if (!_amp->configure_io (in, out)) { return false; } @@ -292,11 +297,21 @@ Send::configure_io (ChanCount in, ChanCount out) return false; } + if (!_meter->configure_io (ChanCount (DataType::AUDIO, pan_outs()), ChanCount (DataType::AUDIO, pan_outs()))) { + return false; + } + reset_panner (); return true; } +void +Send::panshell_changed () +{ + _meter->configure_io (ChanCount (DataType::AUDIO, pan_outs()), ChanCount (DataType::AUDIO, pan_outs())); +} + bool Send::set_name (const string& new_name) { -- cgit v1.2.3