summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-11-27 17:39:38 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-11-27 17:39:38 +0000
commit2bd721d1ccb35a095d7e2b35f069abc14b79ed30 (patch)
treec72468f48f3afd70d4b8c340441e0dce497c4904
parent28791ac5e6c96f6bace1587557409b3b12cf5b23 (diff)
save controls state in PluginInsert state nodes (needed to restore MIDI bindings, not done yet)
git-svn-id: svn://localhost/ardour2/branches/3.0@8108 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--libs/ardour/plugin_insert.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc
index 85e96411c2..6786f7a4f6 100644
--- a/libs/ardour/plugin_insert.cc
+++ b/libs/ardour/plugin_insert.cc
@@ -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;
}