Serialization of handles working!
This commit is contained in:
+62
-12
@@ -404,10 +404,30 @@ namespace VISEQ::GRAPH::NODES {
|
|||||||
std::vector<int> conns;
|
std::vector<int> conns;
|
||||||
std::ranges::transform(N.connections.begin(), N.connections.end(), std::back_inserter(conns), [](VISEQ::GRAPH::EDGES::SPTR_Edge e){ return e->id;});
|
std::ranges::transform(N.connections.begin(), N.connections.end(), std::back_inserter(conns), [](VISEQ::GRAPH::EDGES::SPTR_Edge e){ return e->id;});
|
||||||
std::map<std::string, Vec2Df> noteHandles;
|
std::map<std::string, Vec2Df> noteHandles;
|
||||||
//std::ranges::transform(N.midiNoteHandles.begin(), N.midiNoteHandles.end(), std::back_inserter(noteHandles), [](std::shared_ptr<NodeHandle<int>> n){ return n->position;});
|
std::map<std::string, Vec2Df> CCHandles;
|
||||||
|
std::map<std::string, Vec2Df> PCHandles;
|
||||||
|
std::map<std::string, Vec2Df> pitchBendHandles;
|
||||||
|
std::map<std::string, Vec2Df> aftertouchHandles;
|
||||||
|
std::map<std::string, Vec2Df> polyPressureHandles;
|
||||||
|
|
||||||
for(auto i : N.midiNoteHandles){
|
for(auto i : N.midiNoteHandles){
|
||||||
noteHandles.insert(std::make_pair(i->name, i->position));
|
noteHandles.insert(std::make_pair(i->name, i->position));
|
||||||
}
|
}
|
||||||
|
for(auto i : N.midiCCHandles){
|
||||||
|
CCHandles.insert(std::make_pair(i->name, i->position));
|
||||||
|
}
|
||||||
|
for(auto i : N.midiPCHandles){
|
||||||
|
PCHandles.insert(std::make_pair(i->name, i->position));
|
||||||
|
}
|
||||||
|
for(auto i : N.midiPitchBendHandles){
|
||||||
|
pitchBendHandles.insert(std::make_pair(i->name, i->position));
|
||||||
|
}
|
||||||
|
for(auto i : N.midiAftertouchHandles){
|
||||||
|
pitchBendHandles.insert(std::make_pair(i->name, i->position));
|
||||||
|
}
|
||||||
|
for(auto i : N.midiPolyPressureHandles){
|
||||||
|
polyPressureHandles.insert(std::make_pair(i->name, i->position));
|
||||||
|
}
|
||||||
|
|
||||||
j = json{
|
j = json{
|
||||||
{"id", N.id},
|
{"id", N.id},
|
||||||
@@ -421,11 +441,11 @@ namespace VISEQ::GRAPH::NODES {
|
|||||||
{"midiAftertouch", N.midiAftertouch},
|
{"midiAftertouch", N.midiAftertouch},
|
||||||
{"midiPolyPressure", N.midiPolyPressure},
|
{"midiPolyPressure", N.midiPolyPressure},
|
||||||
{"midiNoteHandle", noteHandles},
|
{"midiNoteHandle", noteHandles},
|
||||||
/*{"midiCCHandle", N.midiCCHandles},*/
|
{"midiCCHandle", CCHandles},
|
||||||
/*{"midiPCHandle", N.midiPCHandles},*/
|
{"midiPCHandle", PCHandles},
|
||||||
/*{"midiPitchBendHandle", N.midiPitchBendHandles},*/
|
{"midiPitchBendHandle", pitchBendHandles},
|
||||||
/*{"midiAftertouchHandle", N.midiAftertouchHandles},*/
|
{"midiAftertouchHandle", aftertouchHandles},
|
||||||
/*{"midiPolyPressureHandle", N.midiPolyPressureHandles},*/
|
{"midiPolyPressureHandle", polyPressureHandles},
|
||||||
{"connections",conns}};
|
{"connections",conns}};
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -443,13 +463,43 @@ namespace VISEQ::GRAPH::NODES {
|
|||||||
j.at("midiPitchBend").get_to(N.midiPitchBend);
|
j.at("midiPitchBend").get_to(N.midiPitchBend);
|
||||||
j.at("midiAftertouch").get_to(N.midiAftertouch);
|
j.at("midiAftertouch").get_to(N.midiAftertouch);
|
||||||
j.at("midiPolyPressure").get_to(N.midiPolyPressure);
|
j.at("midiPolyPressure").get_to(N.midiPolyPressure);
|
||||||
/*j.at("midiNoteHandle").get_to(N.midiNoteHandles);*/
|
|
||||||
/*j.at("midiCCHandle").get_to(N.midiCCHandles);*/
|
|
||||||
/*j.at("midiPCHandle").get_to(N.midiPCHandles);*/
|
|
||||||
/*j.at("midiPitchBendHandle").get_to(N.midiPitchBendHandles);*/
|
|
||||||
/*j.at("midiAftertouchHandle").get_to(N.midiAftertouchHandles);*/
|
|
||||||
/*j.at("midiPolyPressureHandle").get_to(N.midiPolyPressureHandles);*/
|
|
||||||
|
|
||||||
|
std::map<std::string, Vec2Df> noteHandles;
|
||||||
|
std::map<std::string, Vec2Df> CCHandles;
|
||||||
|
std::map<std::string, Vec2Df> PCHandles;
|
||||||
|
std::map<std::string, Vec2Df> pitchBendHandles;
|
||||||
|
std::map<std::string, Vec2Df> aftertouchHandles;
|
||||||
|
std::map<std::string, Vec2Df> polyPressureHandles;
|
||||||
|
|
||||||
|
j.at("midiNoteHandle").get_to(noteHandles);
|
||||||
|
j.at("midiCCHandle").get_to(CCHandles);
|
||||||
|
j.at("midiPCHandle").get_to(PCHandles);
|
||||||
|
j.at("midiPitchBendHandle").get_to(pitchBendHandles);
|
||||||
|
j.at("midiAftertouchHandle").get_to(aftertouchHandles);
|
||||||
|
j.at("midiPolyPressureHandle").get_to(polyPressureHandles);
|
||||||
|
|
||||||
|
N.midiNoteHandles[0]->position = noteHandles["NOTE"];
|
||||||
|
N.midiNoteHandles[1]->position = noteHandles["CHANNEL"];
|
||||||
|
N.midiNoteHandles[2]->position = noteHandles["GATE"];
|
||||||
|
N.midiNoteHandles[3]->position = noteHandles["VELOCITY"];
|
||||||
|
|
||||||
|
N.midiCCHandles[0]->position = CCHandles["CONTROL"];
|
||||||
|
N.midiCCHandles[1]->position = CCHandles["CHANNEL"];
|
||||||
|
N.midiCCHandles[2]->position = CCHandles["VALUE"];
|
||||||
|
|
||||||
|
N.midiPCHandles[0]->position = PCHandles["PROGRAM"];
|
||||||
|
N.midiPCHandles[1]->position = PCHandles["CHANNEL"];
|
||||||
|
N.midiPCHandles[2]->position = PCHandles["VALUE"];
|
||||||
|
|
||||||
|
N.midiPitchBendHandles[0]->position = pitchBendHandles["CHANNEL"];
|
||||||
|
N.midiPitchBendHandles[1]->position = pitchBendHandles["VALUE"];
|
||||||
|
|
||||||
|
N.midiAftertouchHandles[0]->position = aftertouchHandles["CHANNEL"];
|
||||||
|
N.midiAftertouchHandles[1]->position = aftertouchHandles["VALUE"];
|
||||||
|
|
||||||
|
N.midiPolyPressureHandles[0]->position = polyPressureHandles["CHANNEL"];
|
||||||
|
N.midiPolyPressureHandles[1]->position = polyPressureHandles["VALUE"];
|
||||||
|
N.midiPolyPressureHandles[2]->position = polyPressureHandles["NOTE"];
|
||||||
//j.at("connections").get_to(N.connections);
|
//j.at("connections").get_to(N.connections);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user