X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fpanner_shell.cc;h=6c3ae0021cf1c80da7b118e445109ecb01c9a315;hb=b3ef0a9e8d4a5ed9042c0e61d5437ad99c664247;hp=a4a9342816375ac7ea8b8e34d9ef8c7c366fc8bc;hpb=e5e12acc5698090f2c0c614385e457cc0b46fbb0;p=ardour.git diff --git a/libs/ardour/panner_shell.cc b/libs/ardour/panner_shell.cc index a4a9342816..6c3ae0021c 100644 --- a/libs/ardour/panner_shell.cc +++ b/libs/ardour/panner_shell.cc @@ -21,7 +21,6 @@ #include #include -#include #include #include #include @@ -33,7 +32,6 @@ #include #include "pbd/cartesian.h" -#include "pbd/boost_debug.h" #include "pbd/convert.h" #include "pbd/error.h" #include "pbd/failed_constructor.h" @@ -44,16 +42,18 @@ #include "ardour/audio_buffer.h" #include "ardour/audioengine.h" +#include "ardour/boost_debug.h" #include "ardour/buffer_set.h" #include "ardour/debug.h" #include "ardour/pannable.h" #include "ardour/panner.h" #include "ardour/panner_manager.h" #include "ardour/panner_shell.h" +#include "ardour/profile.h" #include "ardour/session.h" #include "ardour/speakers.h" -#include "i18n.h" +#include "pbd/i18n.h" #include "pbd/mathfix.h" @@ -74,7 +74,7 @@ PannerShell::PannerShell (string name, Session& s, boost::shared_ptr p { if (is_send) { _pannable_internal.reset(new Pannable (s)); - if (Config->get_link_send_and_route_panner()) { + if (Config->get_link_send_and_route_panner() && !ARDOUR::Profile->get_mixbus()) { _panlinked = true; } else { _panlinked = false; @@ -120,7 +120,7 @@ PannerShell::configure_io (ChanCount in, ChanCount out) PannerInfo* pi = PannerManager::instance().select_panner (in, out, _user_selected_panner_uri); if (!pi) { fatal << _("No panner found: check that panners are being discovered correctly during startup.") << endmsg; - /*NOTREACHED*/ + abort(); /*NOTREACHED*/ } DEBUG_TRACE (DEBUG::Panning, string_compose (_("select panner: %1\n"), pi->descriptor.name.c_str())); @@ -171,15 +171,17 @@ PannerShell::set_state (const XMLNode& node, int version) { XMLNodeList nlist = node.children (); XMLNodeConstIterator niter; - const XMLProperty *prop; - LocaleGuard lg (X_("POSIX")); + XMLProperty const * prop; + LocaleGuard lg; if ((prop = node.property (X_("bypassed"))) != 0) { set_bypassed (string_is_affirmative (prop->value ())); } if ((prop = node.property (X_("linked-to-route"))) != 0) { - _panlinked = string_is_affirmative (prop->value ()); + if (!ARDOUR::Profile->get_mixbus()) { + _panlinked = string_is_affirmative (prop->value ()); + } } if ((prop = node.property (X_("user-panner"))) != 0) { @@ -187,7 +189,7 @@ PannerShell::set_state (const XMLNode& node, int version) } _panner.reset (); - + for (niter = nlist.begin(); niter != nlist.end(); ++niter) { if ((*niter)->name() == X_("Panner")) { @@ -284,13 +286,13 @@ PannerShell::distribute_no_automation (BufferSet& inbufs, BufferSet& outbufs, pf AudioBuffer& dst = outbufs.get_audio(0); - if (gain_coeff == 0.0f) { + if (gain_coeff == GAIN_COEFF_ZERO) { /* gain was zero, so make it silent */ dst.silence (nframes); - } else if (gain_coeff == 1.0f){ + } else if (gain_coeff == GAIN_COEFF_UNITY){ /* mix all input buffers into the output */ @@ -385,14 +387,7 @@ PannerShell::run (BufferSet& inbufs, BufferSet& outbufs, framepos_t start_frame, if (!(as & Play || ((as & Touch) && !_panner->touching()))) { - // Speed quietning - gain_t gain_coeff = 1.0; - - if (fabsf(_session.transport_speed()) > 1.5f && Config->get_quieten_at_speed ()) { - gain_coeff = speed_quietning; - } - - distribute_no_automation (inbufs, outbufs, nframes, gain_coeff); + distribute_no_automation (inbufs, outbufs, nframes, 1.0); } else { @@ -413,7 +408,7 @@ PannerShell::set_bypassed (bool yn) if (yn == _bypassed) { return; } - + _bypassed = yn; _session.set_dirty (); Changed (); /* EMIT SIGNAL */