X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fsend.cc;h=33b4277d93b4129d9df927d99c8ffb5444d2f710;hb=afc0e2db6c91a5b5345f2c0cbd403a4cc0afc6c8;hp=63b78dd34709bc3ce8a68516cfc6d2af491090db;hpb=b85b4d9e54caef0585d308ef3bffee21d0e5ae56;p=ardour.git diff --git a/libs/ardour/send.cc b/libs/ardour/send.cc index 63b78dd347..33b4277d93 100644 --- a/libs/ardour/send.cc +++ b/libs/ardour/send.cc @@ -71,7 +71,7 @@ Send::deactivate () } void -Send::run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, nframes_t nframes, bool) +Send::run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, pframes_t nframes, bool) { if (_output->n_ports() == ChanCount::ZERO) { _meter->reset (); @@ -133,6 +133,8 @@ Send::state (bool full) snprintf (buf, sizeof (buf), "%" PRIu32, _bitslot); node.add_property ("bitslot", buf); + node.add_child_nocopy (_amp->state (full)); + return node; } @@ -143,8 +145,6 @@ Send::set_state (const XMLNode& node, int version) return set_state_2X (node, version); } - XMLNodeList nlist = node.children(); - XMLNodeIterator niter; const XMLProperty* prop; Delivery::set_state (node, version); @@ -161,7 +161,12 @@ Send::set_state (const XMLNode& node, int version) _session.mark_send_id (_bitslot); } - /* XXX need to load automation state & data for amp */ + XMLNodeList nlist = node.children(); + for (XMLNodeIterator i = nlist.begin(); i != nlist.end(); ++i) { + if ((*i)->name() == X_("Processor")) { + _amp->set_state (**i, version); + } + } return 0; } @@ -212,6 +217,7 @@ Send::can_support_io_configuration (const ChanCount& in, ChanCount& out) const return true; } +/** Caller must hold process lock */ bool Send::configure_io (ChanCount in, ChanCount out) { @@ -219,10 +225,6 @@ Send::configure_io (ChanCount in, ChanCount out) return false; } - if (_output) { - _output->ensure_io (out, false, 0); - } - if (!Processor::configure_io (in, out)) { return false; }