From 7a8504a5f76b28e2ea6d4d9b4658cfe56b49fb57 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Mon, 9 Sep 2013 10:17:58 +0100 Subject: loading json from patchbay --- rotord/src/graph.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'rotord/src/graph.cpp') 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: "< 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 '"<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 '"<attributes.find(attribute)->second->value=val; } else cerr << "Rotor: cannot find attribute '" << attribute << "' of "<