actionmap: Implement key translations
[openblackhole/openblackhole-enigma2.git] / lib / actions / action.h
index cdc854f..871311b 100644 (file)
@@ -6,6 +6,7 @@
 #include <lib/python/python.h>
 #include <string>
 #include <map>
+#include <vector>
 
 class eWidget;
 
@@ -29,6 +30,8 @@ public:
        void unbindAction(const std::string &context, SWIG_PYOBJECT(ePyObject) function);
 
        void bindKey(const std::string &domain, const std::string &device, int key, int flags, const std::string &context, const std::string &action);
+       void bindTranslation(const std::string &domain, const std::string &device, int keyin, int keyout, int toggle);
+       void bindToggle(const std::string &domain, const std::string &device, int togglekey);
        void unbindKeyDomain(const std::string &domain);
 
        void keyPressed(const std::string &device, int key, int flags);
@@ -55,6 +58,21 @@ private:
 
        std::multimap<int, eActionBinding> m_bindings;
 
+       struct eTranslationBinding
+       {
+               int m_keyin;
+               int m_keyout;
+               int m_toggle;
+               std::string m_domain;
+       };
+       struct eDeviceBinding
+       {
+               int m_togglekey;
+               int m_toggle;
+               std::vector<eTranslationBinding> m_translations;
+       };
+       std::map <std::string, eDeviceBinding> m_rcDevices;
+
        friend struct compare_string_keybind_native;
        struct eNativeKeyBinding
        {