diff --git a/src/keybindings.h b/src/keybindings.h index d3799a3..2aaa09c 100644 --- a/src/keybindings.h +++ b/src/keybindings.h @@ -8,6 +8,7 @@ #include #include +#include #include #include @@ -55,13 +56,7 @@ struct Action template void serialize(Archive & archive) { - archive(action,source,controller_id); - } - - template - void load(Archive & archive) - { - archive >> action >> source >> controller_id; + archive(CEREAL_NVP(action),CEREAL_NVP(source),CEREAL_NVP(controller_id)); } }; @@ -72,6 +67,11 @@ struct Binding// : public Serializable int type; Binding& operator=(const Binding newBinding); + template + void serialize(Archive & archive) + { + archive(CEREAL_NVP(action),CEREAL_NVP(key),CEREAL_NVP(type)); + } }; class IKeysMap @@ -83,6 +83,13 @@ public: std::vector& data(){return keys;} protected: std::vector keys; + + friend class cereal::access; + template + void serialize(Archive & archive) + { + archive(CEREAL_NVP(keys)); + } }; class Context { diff --git a/src/main.cpp b/src/main.cpp index 2486ff5..224a86a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,6 +2,7 @@ #include #include "input.h" #include +#include using namespace std; @@ -37,8 +38,13 @@ int main() myInput.addContext(context); myInput.setCurrentContext("test"); + std::ifstream is("data.json"); +// std::ofstream os("data.json"); +// cereal::JSONInputArchive input(is); cereal::JSONOutputArchive output(std::cout); + output(myInput.getKeysMap()); +/* while(!myInput.isCloseRequested()) { myInput.updateEvents(); @@ -56,7 +62,7 @@ int main() // } } } - +*/ /* IKeysMap* keymap = new IKeysMap("test", 1);