Serialization of handles working!
This commit is contained in:
+62
-12
@@ -404,10 +404,30 @@ namespace VISEQ::GRAPH::NODES {
|
||||
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::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){
|
||||
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{
|
||||
{"id", N.id},
|
||||
@@ -421,11 +441,11 @@ namespace VISEQ::GRAPH::NODES {
|
||||
{"midiAftertouch", N.midiAftertouch},
|
||||
{"midiPolyPressure", N.midiPolyPressure},
|
||||
{"midiNoteHandle", noteHandles},
|
||||
/*{"midiCCHandle", N.midiCCHandles},*/
|
||||
/*{"midiPCHandle", N.midiPCHandles},*/
|
||||
/*{"midiPitchBendHandle", N.midiPitchBendHandles},*/
|
||||
/*{"midiAftertouchHandle", N.midiAftertouchHandles},*/
|
||||
/*{"midiPolyPressureHandle", N.midiPolyPressureHandles},*/
|
||||
{"midiCCHandle", CCHandles},
|
||||
{"midiPCHandle", PCHandles},
|
||||
{"midiPitchBendHandle", pitchBendHandles},
|
||||
{"midiAftertouchHandle", aftertouchHandles},
|
||||
{"midiPolyPressureHandle", polyPressureHandles},
|
||||
{"connections",conns}};
|
||||
|
||||
}
|
||||
@@ -443,13 +463,43 @@ namespace VISEQ::GRAPH::NODES {
|
||||
j.at("midiPitchBend").get_to(N.midiPitchBend);
|
||||
j.at("midiAftertouch").get_to(N.midiAftertouch);
|
||||
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);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user