Consistent Automation evaluation:
[ardour.git] / libs / ardour / internal_send.cc
index 4f9306f38e22664eac9fd1d8b9d86369d1bcae28..e7db47ca9d6dc4d79669115013b8175fe761ad6a 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "pbd/error.h"
 #include "pbd/failed_constructor.h"
+#include "pbd/types_convert.h"
 
 #include "ardour/amp.h"
 #include "ardour/audio_buffer.h"
@@ -96,6 +97,12 @@ InternalSend::use_target (boost::shared_ptr<Route> sendto)
        mixbufs.ensure_buffers (_send_to->internal_return()->input_streams(), _session.get_block_size());
        mixbufs.set_count (_send_to->internal_return()->input_streams());
 
+       _meter->configure_io (ChanCount (DataType::AUDIO, pan_outs()), ChanCount (DataType::AUDIO, pan_outs()));
+
+       if (_delayline) {
+               _delayline->configure_io (ChanCount (DataType::AUDIO, pan_outs()), ChanCount (DataType::AUDIO, pan_outs()));
+       }
+
        reset_panner ();
 
         set_name (sendto->name());
@@ -295,12 +302,12 @@ InternalSend::state (bool full)
 
        /* this replaces any existing "type" property */
 
-       node.add_property ("type", "intsend");
+       node.set_property ("type", "intsend");
 
        if (_send_to) {
-               node.add_property ("target", _send_to->id().to_s());
+               node.set_property ("target", _send_to->id());
        }
-       node.add_property ("allow-feedback", _allow_feedback);
+       node.set_property ("allow-feedback", _allow_feedback);
 
        return node;
 }
@@ -314,15 +321,11 @@ InternalSend::get_state()
 int
 InternalSend::set_state (const XMLNode& node, int version)
 {
-       XMLProperty const * prop;
-
        init_gain ();
 
        Send::set_state (node, version);
 
-       if ((prop = node.property ("target")) != 0) {
-
-               _send_to_id = prop->value();
+       if (node.get_property ("target", _send_to_id)) {
 
                /* if we're loading a session, the target route may not have been
                   create yet. make sure we defer till we are sure that it should
@@ -336,9 +339,7 @@ InternalSend::set_state (const XMLNode& node, int version)
                }
        }
 
-       if ((prop = node.property (X_("allow-feedback"))) != 0) {
-               _allow_feedback = string_is_affirmative (prop->value());
-       }
+       node.get_property (X_("allow-feedback"), _allow_feedback);
 
        return 0;
 }