Make sure CapturingProcessors write a type to their state node so that they can be...
authorCarl Hetherington <carl@carlh.net>
Tue, 1 Mar 2011 18:08:57 +0000 (18:08 +0000)
committerCarl Hetherington <carl@carlh.net>
Tue, 1 Mar 2011 18:08:57 +0000 (18:08 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@9006 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/ardour/capturing_processor.h
libs/ardour/capturing_processor.cc
libs/ardour/route.cc

index 2e2db780915a1b232a75fc743be5f390dc2b541c..b672d1ac0756fc33584b4271b580af3aa2f01e61 100644 (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:
 
index 2fa83ace81de9cb0cca66a54f427a6b0d9b02404..0937f1f377e380965131fe8f434919917eeafac3 100644 (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
index 33e392345406bc2696afe382b2936c68b84eb7aa..4277bea0226a190ac957974e9118acb8416a38a2 100644 (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;