fix crash when copy'ing latent plugins
[ardour.git] / libs / ardour / panner.cc
index a182f0b99c32ecfda119bcc3f0906f2a21087170..59e4e2e977952841f98d7d68601899483597f184 100644 (file)
 
 */
 
-#include "ardour/audio_buffer.h"
 #include "ardour/buffer_set.h"
 #include "ardour/debug.h"
 #include "ardour/panner.h"
 #include "ardour/pannable.h"
-#include "ardour/session.h"
-#include "ardour/utils.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace std;
 using namespace ARDOUR;
 
 Panner::Panner (boost::shared_ptr<Pannable> p)
-       : _pannable (p)
+       : _frozen (0)
 {
+       // boost_debug_shared_ptr_mark_interesting (this, "panner");
+       _pannable = p;
 }
 
 Panner::~Panner ()
 {
-       DEBUG_TRACE(PBD::DEBUG::Destruction, string_compose ("panner @ %1 destructor, pannable is %2\n", this, _pannable));
+       DEBUG_TRACE(PBD::DEBUG::Destruction, string_compose ("panner @ %1 destructor, pannable is %2 @ %3\n", this, _pannable, &_pannable));
 }
 
 XMLNode&
@@ -110,7 +109,7 @@ Panner::describe_parameter (Evoral::Parameter p)
 }
 
 string
-Panner::value_as_string (boost::shared_ptr<AutomationControl> ac) const
+Panner::value_as_string (boost::shared_ptr<const AutomationControl> ac) const
 {
        return _pannable->value_as_string (ac);
 }
@@ -120,3 +119,17 @@ Panner::set_state (XMLNode const &, int)
 {
        return 0;
 }
+
+void
+Panner::freeze ()
+{
+       _frozen++;
+}
+
+void
+Panner::thaw ()
+{
+       if (_frozen > 0.0) {
+               _frozen--;
+       }
+}