diff --git a/libs/ardour/ardour/capturing_processor.h b/libs/ardour/ardour/capturing_processor.h index 2e2db78091..b672d1ac07 100644 --- a/libs/ardour/ardour/capturing_processor.h +++ b/libs/ardour/ardour/capturing_processor.h @@ -39,6 +39,7 @@ class CapturingProcessor : public Processor void run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, pframes_t nframes, bool result_required); bool configure_io (ChanCount in, ChanCount out); bool can_support_io_configuration (const ChanCount& in, ChanCount& out) const; + virtual XMLNode& state (bool); private: diff --git a/libs/ardour/capturing_processor.cc b/libs/ardour/capturing_processor.cc index 2fa83ace81..0937f1f377 100644 --- a/libs/ardour/capturing_processor.cc +++ b/libs/ardour/capturing_processor.cc @@ -25,8 +25,8 @@ namespace ARDOUR { CapturingProcessor::CapturingProcessor (Session & session) - : Processor (session, X_("capture point")) - , block_size (session.engine().frames_per_cycle()) + : Processor (session, X_("capture point")) + , block_size (session.engine().frames_per_cycle()) { realloc_buffers (); } @@ -72,4 +72,12 @@ CapturingProcessor::realloc_buffers() capture_buffers.ensure_buffers (_configured_input, block_size); } +XMLNode & +CapturingProcessor::state (bool full) +{ + XMLNode& node = Processor::state (full); + + node.add_property (X_("type"), X_("capture")); +} + } // namespace ARDOUR diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 33e3923454..4277bea022 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -2348,6 +2348,8 @@ Route::set_processor_state (const XMLNode& node) must_configure = true; } _monitor_control->set_state (**niter, Stateful::current_state_version); + } else if (prop->value() == "capture") { + _capturing_processor.reset (new CapturingProcessor (_session)); } else { ProcessorList::iterator o;