make boost shared_ptr debugging a little easier to turn on/off
[ardour.git] / libs / ardour / panner_shell.cc
index de0780cdba5396d795ca0683350083c307f6a147..afc34c358a29410d5d30ede10c1a3b86841ff0af 100644 (file)
@@ -21,7 +21,6 @@
 
 #include <cmath>
 #include <cerrno>
-#include <fstream>
 #include <cstdlib>
 #include <string>
 #include <cstdio>
@@ -33,7 +32,6 @@
 #include <glibmm.h>
 
 #include "pbd/cartesian.h"
-#include "pbd/boost_debug.h"
 #include "pbd/convert.h"
 #include "pbd/error.h"
 #include "pbd/failed_constructor.h"
 
 #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"
 
@@ -74,7 +74,7 @@ PannerShell::PannerShell (string name, Session& s, boost::shared_ptr<Pannable> 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;
@@ -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 */