summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-08-24 22:07:53 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-08-24 22:07:53 +0000
commitbe85889464470e66e33f6f09f3cf1a64ef3c5063 (patch)
tree937d3c0975cbbfe1f721d2451e66984f8d460493 /libs/ardour
parentda392b880dfe5e5dd450f2ecb2ef4d7afaf52932 (diff)
fix load+save of plugin parameter automation
git-svn-id: svn://localhost/ardour2/branches/3.0@7678 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/automatable.cc2
-rw-r--r--libs/ardour/automation_list.cc11
-rw-r--r--libs/ardour/plugin_insert.cc23
-rw-r--r--libs/ardour/processor.cc3
4 files changed, 10 insertions, 29 deletions
diff --git a/libs/ardour/automatable.cc b/libs/ardour/automatable.cc
index 68c42ba7b5..0c28eb95e0 100644
--- a/libs/ardour/automatable.cc
+++ b/libs/ardour/automatable.cc
@@ -253,7 +253,7 @@ Automatable::set_automation_state (const XMLNode& node, Evoral::Parameter legacy
if (param.type() == NullAutomation) {
warning << "Automation has null type" << endl;
continue;
- }
+ }
boost::shared_ptr<AutomationList> al (new AutomationList(**niter, param));
diff --git a/libs/ardour/automation_list.cc b/libs/ardour/automation_list.cc
index 53fdb233c6..c8f5d18aec 100644
--- a/libs/ardour/automation_list.cc
+++ b/libs/ardour/automation_list.cc
@@ -41,13 +41,12 @@ PBD::Signal1<void,AutomationList *> AutomationList::AutomationListCreated;
static void dumpit (const AutomationList& al, string prefix = "")
{
cerr << prefix << &al << endl;
- for (AutomationList::const_iterator i = al.const_begin(); i != al.const_end(); ++i) {
+ for (AutomationList::const_iterator i = al.begin(); i != al.end(); ++i) {
cerr << prefix << '\t' << (*i)->when << ',' << (*i)->value << endl;
}
cerr << "\n";
}
#endif
-
AutomationList::AutomationList (Evoral::Parameter id)
: ControlList(id)
{
@@ -364,7 +363,7 @@ AutomationList::deserialize_events (const XMLNode& node)
}
thaw ();
-
+
return 0;
}
@@ -465,19 +464,19 @@ AutomationList::set_state (const XMLNode& node, int version)
_state = Off;
}
- if ((prop = node.property (X_("min_yval"))) != 0) {
+ if ((prop = node.property (X_("min-yval"))) != 0) {
_min_yval = atof (prop->value ().c_str());
} else {
_min_yval = FLT_MIN;
}
- if ((prop = node.property (X_("max_yval"))) != 0) {
+ if ((prop = node.property (X_("max-yval"))) != 0) {
_max_yval = atof (prop->value ().c_str());
} else {
_max_yval = FLT_MAX;
}
- if ((prop = node.property (X_("max_xval"))) != 0) {
+ if ((prop = node.property (X_("max-xval"))) != 0) {
_max_xval = atof (prop->value ().c_str());
} else {
_max_xval = 0; // means "no limit ;
diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc
index a0deec6807..108a7e03aa 100644
--- a/libs/ardour/plugin_insert.cc
+++ b/libs/ardour/plugin_insert.cc
@@ -684,25 +684,6 @@ PluginInsert::state (bool full)
node.add_property("count", string_compose("%1", _plugins.size()));
node.add_child_nocopy (_plugins[0]->get_state());
- /* add port automation state */
- XMLNode *autonode = new XMLNode(port_automation_node_name);
- set<Evoral::Parameter> automatable = _plugins[0]->automatable();
-
- for (set<Evoral::Parameter>::iterator x = automatable.begin(); x != automatable.end(); ++x) {
-
- /*XMLNode* child = new XMLNode("port");
- snprintf(buf, sizeof(buf), "%" PRIu32, *x);
- child->add_property("number", string(buf));
-
- child->add_child_nocopy (automation_list (*x).state (full));
- autonode->add_child_nocopy (*child);
- */
- AutomationList* list = dynamic_cast<AutomationList*>(control(*x)->list().get());
- autonode->add_child_nocopy (list->state (full));
- }
-
- node.add_child_nocopy (*autonode);
-
return node;
}
@@ -816,11 +797,11 @@ PluginInsert::set_state(const XMLNode& node, int version)
}
}
- set_parameter_state_2X (node, version);
+ // set_parameter_state_2X (node, version);
} else {
- set_parameter_state (node, version);
+ // set_parameter_state (node, version);
}
// The name of the PluginInsert comes from the plugin, nothing else
diff --git a/libs/ardour/processor.cc b/libs/ardour/processor.cc
index 0bea376fc9..555dff5092 100644
--- a/libs/ardour/processor.cc
+++ b/libs/ardour/processor.cc
@@ -115,10 +115,11 @@ Processor::state (bool full_state)
stringstream sstr;
for (set<Evoral::Parameter>::iterator x = _visible_controls.begin();
x != _visible_controls.end(); ++x) {
+
if (x != _visible_controls.begin()) {
sstr << ' ';
}
- sstr << *x;
+ sstr << (*x).id();
}
automation.add_property ("visible", sstr.str());