Serialization of handles working!

This commit is contained in:
Sebastian
2024-12-20 01:57:28 +01:00
parent c3543cffce
commit 6aef199984
+62 -12
View File
@@ -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);
} }
}; };