diff options
| author | Tim Redfern <tim@eclectronics.org> | 2013-09-09 10:17:58 +0100 |
|---|---|---|
| committer | Tim Redfern <tim@eclectronics.org> | 2013-09-09 10:17:58 +0100 |
| commit | 7a8504a5f76b28e2ea6d4d9b4658cfe56b49fb57 (patch) | |
| tree | 333eb02f7d1c6cdbfe966e679232ba7a1dfc7f27 | |
| parent | 131b0c7a1951abaf0fe6e58250c9d74306bc5518 (diff) | |
loading json from patchbay
| -rw-r--r-- | rotord/src/graph.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/rotord/src/graph.cpp b/rotord/src/graph.cpp index 313df2a..ed8c188 100644 --- a/rotord/src/graph.cpp +++ b/rotord/src/graph.cpp @@ -280,7 +280,7 @@ bool Graph::parseJson(string &data,string &media_path){ nodes.clear(); check_audio(root["audio"].asString(),media_path); init(root["ID"].asString(),root["description"].asString()); - Json::Value jnodes = root["nodes"]; + Json::Value jnodes = root["nodeDefinitions"]; for ( int i = 0; i < jnodes.size(); ++i ) { //cerr<<"json found node: "<<jnodes[i]["type"].asString()<<endl; map<string,string> settings; @@ -348,7 +348,10 @@ bool Graph::parseJson(string &data,string &media_path){ if (nodes[nodeID]->parameters.find(parameter)!=nodes[nodeID]->parameters.end()) { float val=jnodes[i]["parameters"][l]["value"].asFloat(); - nodes[nodeID]->parameters.find(parameter)->second->value=val; + if (val!=nodes[nodeID]->parameters.find(parameter)->second->value){ + nodes[nodeID]->parameters.find(parameter)->second->value=val; + cerr << "Rotor: set parameter '"<<parameter<<"' of "<<nodeID<<" to "<<val<<endl; + } string fromID=jnodes[i]["parameters"][l]["from"].asString(); if (nodes.find(fromID)!=nodes.end()) { if (!nodes[nodeID]->parameters[parameter]->connect(nodes[fromID])){ @@ -367,6 +370,10 @@ bool Graph::parseJson(string &data,string &media_path){ string attribute=jnodes[i]["attributes"][m]["name"].asString(); if (nodes[nodeID]->attributes.find(attribute)!=nodes[nodeID]->attributes.end()) { string val=jnodes[i]["attributes"][m]["value"].asString(); + if (val!=nodes[nodeID]->attributes.find(attribute)->second->value){ + nodes[nodeID]->attributes.find(attribute)->second->value=val; + cerr << "Rotor: set attribute '"<<attribute<<"' of "<<nodeID<<" to "<<val<<endl; + } nodes[nodeID]->attributes.find(attribute)->second->value=val; } else cerr << "Rotor: cannot find attribute '" << attribute << "' of "<<settings["type"]<<" "<< nodeID << endl; |
