save controls state in PluginInsert state nodes (needed to restore MIDI bindings...
authorPaul Davis <paul@linuxaudiosystems.com>
Sat, 27 Nov 2010 17:39:38 +0000 (17:39 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Sat, 27 Nov 2010 17:39:38 +0000 (17:39 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@8108 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/plugin_insert.cc

index 85e96411c28fb35b8442d365a433e25c00ecb9e7..6786f7a4f67aa377badd8b7c957c3796517e4822 100644 (file)
@@ -198,7 +198,7 @@ PluginInsert::set_automatable ()
                        param.set_range (desc.lower, desc.upper, _plugins.front()->default_value(i->id()), desc.toggled);
                        can_automate (param);
                        boost::shared_ptr<AutomationList> list(new AutomationList(param));
-                       add_control (boost::shared_ptr<AutomationControl>(new PluginControl(this, param, list)));
+                        add_control (boost::shared_ptr<AutomationControl> (new PluginControl(this, param, list)));
                }
        }
 }
@@ -685,6 +685,13 @@ PluginInsert::state (bool full)
        node.add_property("count", string_compose("%1", _plugins.size()));
        node.add_child_nocopy (_plugins[0]->get_state());
 
+       for (Controls::iterator c = controls().begin(); c != controls().end(); ++c) {
+                boost::shared_ptr<AutomationControl> ac = boost::dynamic_pointer_cast<AutomationControl> ((*c).second);
+                if (ac) {
+                        node.add_child_nocopy (ac->get_state());
+                }
+        }
+
        return node;
 }