add node sanitation for ardour

This commit is contained in:
Nikolaus Gullotta 2019-04-02 15:09:49 -05:00 committed by Nikolaus Gullotta
parent e140a12bf5
commit c66e006fff
No known key found for this signature in database
GPG key ID: 565F60578092AA31
2 changed files with 15 additions and 1 deletions

View file

@ -73,6 +73,7 @@ class MixerSnapshot
private:
ARDOUR::Session* _session;
XMLNode& sanitize_node(XMLNode&);
void reassign_masters(boost::shared_ptr<ARDOUR::Slavable>, XMLNode);
void load_from_session(std::string);
void load_from_session(XMLNode&);

View file

@ -254,7 +254,7 @@ void MixerSnapshot::recall()
if(route) {
XMLNode& bfr = route->get_state();
route->set_state(state.node, PBD::Stateful::loading_state_version);
route->set_state(sanitize_node(state.node), PBD::Stateful::loading_state_version);
reassign_masters(route, state.node);
_session->add_command(new MementoCommand<Route>((*route), &bfr, &route->get_state()));
}
@ -406,6 +406,19 @@ void MixerSnapshot::load_from_session(string path)
load_from_session(*(root));
}
XMLNode& MixerSnapshot::sanitize_node(XMLNode& node)
{
#ifndef MIXBUS
const string proc[] = {"PRE", "EQ", "Comp", "POST"};
const string name = "Processor";
const string prop = "name";
for(int i = 0; i <= 3; i++)
node.remove_node_and_delete(name, prop, proc[i]);
#endif
return node;
}
void MixerSnapshot::load_from_session(XMLNode& node)
{
clear();