summaryrefslogtreecommitdiff
path: root/NT/src/rotor.cpp
diff options
context:
space:
mode:
authorTim Redfern <tim@eclectronics.org>2014-01-19 19:54:38 +0000
committerTim Redfern <tim@eclectronics.org>2014-01-19 19:54:38 +0000
commitce528aa299501ecab63018f91b937766ffbc95be (patch)
tree34972d49d69c5cf926a3974a020e945ff4576a8c /NT/src/rotor.cpp
parent1e01ca3e89beca6870a3112c4513df66dd07dbb1 (diff)
variables writing json
Diffstat (limited to 'NT/src/rotor.cpp')
-rw-r--r--NT/src/rotor.cpp34
1 files changed, 29 insertions, 5 deletions
diff --git a/NT/src/rotor.cpp b/NT/src/rotor.cpp
index d244d49..eeffab9 100644
--- a/NT/src/rotor.cpp
+++ b/NT/src/rotor.cpp
@@ -7,7 +7,29 @@
using namespace std;
using namespace Rotor;
-Json::Value Node::list_json(){
+template <class T>
+Json::Value Variable_type<T>::to_json(){
+ Json::Value json;
+ json["type"]=get_type();
+ json["name"]=name;
+ json["connectable"]=connectable?"yes":"no";
+ json["input"]=connection?connection->id:"";
+ return json;
+}
+
+template <class T>
+Json::Value Variable_array_type<T>::to_json(){
+ Json::Value json;
+ json["type"]=get_type();
+ json["name"]=name;
+ json["connectable"]=connectable?"yes":"no";
+ json["input"]=Json::arrayValue;
+ for (auto& input: values) {
+ json["input"].append(input.connection?input.connection->id:"");
+ }
+ return json;
+}
+Json::Value Node::to_json(){
Json::Value node;
node["type"]=type;
node["type_id"]=type_id;
@@ -20,6 +42,8 @@ Json::Value Node::list_json(){
if (vars.size()){
node["vars"]=Json::arrayValue;
for (auto& var: vars) {
+ node["vars"].append(var.second->to_json());
+/*
string type=var.second->get_type();
Json::Value newvar;
newvar["type"]=var.second->get_type();
@@ -27,15 +51,15 @@ Json::Value Node::list_json(){
newvar["connectable"]=var.second->connectable?"yes":"no";
if (dynamic_cast<Variable_array*>(var.second)){
newvar["input"]=Json::arrayValue;
- for (auto& element: dynamic_cast<Variable_array*>(var.second)->values) {
- Json::Value newvalue;
- newvar["input"].append(newvalue);
+ for (auto& input: dynamic_cast<Variable_array*>(var.second)->values) {
+ newvar["input"].append(input.to_json());
}
}
else {
- newvar["input"]=Json::Value();
+ newvar["input"]=var.second->to_json();
}
node["vars"].append(newvar);
+*/
}
}
/*