diff options
author | Carl Hetherington <carl@carlh.net> | 2011-03-01 18:08:57 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2011-03-01 18:08:57 +0000 |
commit | cda09a0878eec8e553b3800fe2decd0c110e487b (patch) | |
tree | be7155a06a6357d3d2d555627e94c51052d2ad4f | |
parent | 35ea41228023b3070ad2b12feca79e6d2fcfc4db (diff) |
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
-rw-r--r-- | libs/ardour/ardour/capturing_processor.h | 1 | ||||
-rw-r--r-- | libs/ardour/capturing_processor.cc | 12 | ||||
-rw-r--r-- | libs/ardour/route.cc | 2 |
3 files changed, 13 insertions, 2 deletions
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; |