Make sure CapturingProcessors write a type to their state node so that they can be reloaded without a crash.

git-svn-id: svn://localhost/ardour2/branches/3.0@9006 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2011-03-01 18:08:57 +00:00
parent 35ea412280
commit cda09a0878
3 changed files with 13 additions and 2 deletions

View File

@ -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:

View File

@ -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

View File

@ -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;