summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-03-01 18:08:57 +0000
committerCarl Hetherington <carl@carlh.net>2011-03-01 18:08:57 +0000
commitcda09a0878eec8e553b3800fe2decd0c110e487b (patch)
treebe7155a06a6357d3d2d555627e94c51052d2ad4f /libs/ardour
parent35ea41228023b3070ad2b12feca79e6d2fcfc4db (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
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/capturing_processor.h1
-rw-r--r--libs/ardour/capturing_processor.cc12
-rw-r--r--libs/ardour/route.cc2
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;