*/
-#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 "pbd/stacktrace.h"
+#include "i18n.h"
using namespace std;
using namespace ARDOUR;
Panner::Panner (boost::shared_ptr<Pannable> p)
- : _pannable (p)
- , _bypassed (false)
+ : _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));
-}
-
-void
-Panner::set_bypassed (bool yn)
-{
- if (yn != _bypassed) {
- _bypassed = yn;
- StateChanged ();
- }
-}
-
-int
-Panner::set_state (const XMLNode& node, int version)
-{
- const XMLProperty* prop;
- XMLNodeConstIterator iter;
-
- if ((prop = node.property (X_("bypassed"))) != 0) {
- set_bypassed (string_is_affirmative (prop->value()));
- }
-
- return 0;
+ DEBUG_TRACE(PBD::DEBUG::Destruction, string_compose ("panner @ %1 destructor, pannable is %2 @ %3\n", this, _pannable, &_pannable));
}
XMLNode&
Panner::get_state ()
{
- XMLNode* node = new XMLNode (X_("Panner"));
-
- node->add_property (X_("bypassed"), (bypassed() ? "yes" : "no"));
-
- return *node;
+ return *(new XMLNode (X_("Panner")));
}
void
Panner::distribute (BufferSet& ibufs, BufferSet& obufs, gain_t gain_coeff, pframes_t nframes)
{
- uint32_t which = 0;
+ uint32_t which = 0;
for (BufferSet::audio_iterator src = ibufs.audio_begin(); src != ibufs.audio_end(); ++src, ++which) {
distribute_one (*src, obufs, gain_coeff, nframes, which);
- }
+ }
}
void
Panner::distribute_automated (BufferSet& ibufs, BufferSet& obufs,
framepos_t start, framepos_t end, pframes_t nframes, pan_t** buffers)
{
- uint32_t which = 0;
+ uint32_t which = 0;
for (BufferSet::audio_iterator src = ibufs.audio_begin(); src != ibufs.audio_end(); ++src, ++which) {
distribute_one_automated (*src, obufs, start, end, nframes, buffers, which);
- }
+ }
}
void
Panner::set_automation_style (AutoStyle style)
{
- _pannable->set_automation_style (style);
+ _pannable->set_automation_style (style);
}
void
Panner::set_automation_state (AutoState state)
{
- _pannable->set_automation_state (state);
+ _pannable->set_automation_state (state);
}
AutoState
Panner::automation_state () const
{
- return _pannable->automation_state();
+ return _pannable->automation_state();
}
AutoStyle
Panner::automation_style () const
{
- return _pannable->automation_style ();
+ return _pannable->automation_style ();
}
bool
Panner::touching () const
{
- return _pannable->touching ();
+ return _pannable->touching ();
}
-set<Evoral::Parameter>
+set<Evoral::Parameter>
Panner::what_can_be_automated() const
{
- return _pannable->what_can_be_automated ();
+ return _pannable->what_can_be_automated ();
}
string
Panner::describe_parameter (Evoral::Parameter p)
{
- return _pannable->describe_parameter (p);
+ return _pannable->describe_parameter (p);
}
-string
+string
Panner::value_as_string (boost::shared_ptr<AutomationControl> ac) const
{
- return _pannable->value_as_string (ac);
+ return _pannable->value_as_string (ac);
+}
+
+int
+Panner::set_state (XMLNode const &, int)
+{
+ return 0;
+}
+
+void
+Panner::freeze ()
+{
+ _frozen++;
+}
+
+void
+Panner::thaw ()
+{
+ if (_frozen > 0.0) {
+ _frozen--;
+ }
}