Workaround for vector_shared_ptr_templated serialization mess.
This commit is contained in:
+7
-2
@@ -6,7 +6,6 @@
|
|||||||
#include "node-handle.h"
|
#include "node-handle.h"
|
||||||
#include "node.h"
|
#include "node.h"
|
||||||
#include "raylib.h"
|
#include "raylib.h"
|
||||||
#include "raymath.h"
|
|
||||||
#include "state.h"
|
#include "state.h"
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
@@ -404,6 +403,12 @@ namespace VISEQ::GRAPH::NODES {
|
|||||||
friend void to_json(json& j, const MidiNode& N){
|
friend void to_json(json& j, const MidiNode& N){
|
||||||
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::ranges::transform(N.midiNoteHandles.begin(), N.midiNoteHandles.end(), std::back_inserter(noteHandles), [](std::shared_ptr<NodeHandle<int>> n){ return n->position;});
|
||||||
|
for(auto i : N.midiNoteHandles){
|
||||||
|
noteHandles.insert(std::make_pair(i->name, i->position));
|
||||||
|
}
|
||||||
|
|
||||||
j = json{
|
j = json{
|
||||||
{"id", N.id},
|
{"id", N.id},
|
||||||
{"position", N.position},
|
{"position", N.position},
|
||||||
@@ -415,7 +420,7 @@ namespace VISEQ::GRAPH::NODES {
|
|||||||
{"midiPitchBend", N.midiPitchBend},
|
{"midiPitchBend", N.midiPitchBend},
|
||||||
{"midiAftertouch", N.midiAftertouch},
|
{"midiAftertouch", N.midiAftertouch},
|
||||||
{"midiPolyPressure", N.midiPolyPressure},
|
{"midiPolyPressure", N.midiPolyPressure},
|
||||||
//{"midiNoteHandle", N.midiNoteHandles},
|
{"midiNoteHandle", noteHandles},
|
||||||
/*{"midiCCHandle", N.midiCCHandles},*/
|
/*{"midiCCHandle", N.midiCCHandles},*/
|
||||||
/*{"midiPCHandle", N.midiPCHandles},*/
|
/*{"midiPCHandle", N.midiPCHandles},*/
|
||||||
/*{"midiPitchBendHandle", N.midiPitchBendHandles},*/
|
/*{"midiPitchBendHandle", N.midiPitchBendHandles},*/
|
||||||
|
|||||||
+1
-1
@@ -131,6 +131,6 @@ namespace VISEQ::GRAPH::NODES{
|
|||||||
/*friend void to_json(json& j, const NodeHandle<T>& N){*/
|
/*friend void to_json(json& j, const NodeHandle<T>& N){*/
|
||||||
/* j = json{{"position",N.position}};*/
|
/* j = json{{"position",N.position}};*/
|
||||||
/*}*/
|
/*}*/
|
||||||
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(NodeHandle<T>, position, name);
|
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(NodeHandle, position, name);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-26
@@ -35,31 +35,11 @@ namespace nlohmann {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**/
|
|
||||||
/*template <typename T>*/
|
/*template <typename T>*/
|
||||||
/*struct adl_serializer<std::shared_ptr<NODES::NodeHandle<T>>> {*/
|
/*struct adl_serializer<std::shared_ptr<T>> {*/
|
||||||
/* template< typename J> */
|
/* template <typename J>*/
|
||||||
/* static void to_json(J& j, const std::shared_ptr<NODES::NodeHandle<T>>& opt) {*/
|
/* static void to_json(J& j, const std::shared_ptr<T>& opt) {*/
|
||||||
/* if (opt) {*/
|
|
||||||
/* j = *opt;*/
|
|
||||||
/* } else {*/
|
|
||||||
/* j = nullptr;*/
|
|
||||||
/* }*/
|
|
||||||
/* }*/
|
|
||||||
/* template< typename J>*/
|
|
||||||
/* static void from_json(const J& j, std::shared_ptr<NODES::NodeHandle<T>>& opt) {*/
|
|
||||||
/* if (j.is_null()) {*/
|
|
||||||
/* opt = nullptr;*/
|
|
||||||
/* } else {*/
|
|
||||||
/* opt.reset(new NODES::NodeHandle<T>(j.template get<NODES::NodeHandle<T>>()));*/
|
|
||||||
/* }*/
|
|
||||||
/* }*/
|
|
||||||
/*};*/
|
|
||||||
|
|
||||||
/*template <template<typename> class S, typename T>*/
|
|
||||||
/*struct adl_serializer<std::shared_ptr<S<T>>> {*/
|
|
||||||
/* static void to_json(json& j, const std::shared_ptr<S<T>>& opt) {*/
|
|
||||||
/* if (opt) {*/
|
/* if (opt) {*/
|
||||||
/* j = *opt;*/
|
/* j = *opt;*/
|
||||||
/* } else {*/
|
/* } else {*/
|
||||||
@@ -67,11 +47,12 @@ namespace nlohmann {
|
|||||||
/* }*/
|
/* }*/
|
||||||
/* }*/
|
/* }*/
|
||||||
/**/
|
/**/
|
||||||
/* static void from_json(const json& j, std::shared_ptr<S<T>>& opt) {*/
|
/* template <typename J>*/
|
||||||
|
/* static void from_json(const J& j, std::shared_ptr<T>& opt) {*/
|
||||||
/* if (j.is_null()) {*/
|
/* if (j.is_null()) {*/
|
||||||
/* opt = nullptr;*/
|
/* opt = nullptr;*/
|
||||||
/* } else {*/
|
/* } else {*/
|
||||||
/* opt.reset(new S<T>(j.get<S<T>>()));*/
|
/* opt.reset(new T(j.template get<T>()));*/
|
||||||
/* }*/
|
/* }*/
|
||||||
/* }*/
|
/* }*/
|
||||||
/*};*/
|
/*};*/
|
||||||
|
|||||||
Reference in New Issue
Block a user