diff options
Diffstat (limited to 'src/common/emu_window.h')
-rw-r--r-- | src/common/emu_window.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/common/emu_window.h b/src/common/emu_window.h index 5e2c33d7a..90fbd9335 100644 --- a/src/common/emu_window.h +++ b/src/common/emu_window.h @@ -7,6 +7,9 @@ #include "common/common.h" #include "common/scm_rev.h" +#include "common/key_map.h" +#include "core/hle/service/hid.h" + // Abstraction class used to provide an interface between emulation code and the frontend (e.g. SDL, // QGLWidget, GLFW, etc...) class EmuWindow @@ -32,6 +35,22 @@ public: /// Releases (dunno if this is the "right" word) the GLFW context from the caller thread virtual void DoneCurrent() = 0; + static void KeyPressed(KeyMap::CitraKey key) { + HID_User::PADState mapped_key = KeyMap::Get3DSKey(key); + + if (mapped_key.hex != HID_User::PAD_NONE.hex) { + HID_User::PADButtonPress(mapped_key); + } + } + + static void KeyReleased(KeyMap::CitraKey key) { + HID_User::PADState mapped_key = KeyMap::Get3DSKey(key); + + if (mapped_key.hex != HID_User::PAD_NONE.hex) { + HID_User::PADButtonRelease(mapped_key); + } + } + Config GetConfig() const { return m_config; } |