27 #include <winpr/wtypes.h>
28 #include <freerdp/freerdp.h>
31 #include "sdl_types.hpp"
44 BOOL keyboard_sync_state();
45 BOOL keyboard_focus_in();
47 BOOL keyboard_handle_event(
const SDL_KeyboardEvent* ev);
49 BOOL keyboard_grab(Uint32 windowID, SDL_bool enable);
50 BOOL mouse_focus(Uint32 windowID);
51 BOOL mouse_grab(Uint32 windowID, SDL_bool enable);
53 static BOOL keyboard_set_indicators(rdpContext* context, UINT16 led_flags);
54 static BOOL keyboard_set_ime_status(rdpContext* context, UINT16 imeId, UINT32 imeState,
57 static uint32_t prefToMask();
58 static uint32_t prefKeyValue(
const std::string& key, uint32_t fallback = SDL_SCANCODE_UNKNOWN);
61 static std::list<std::string> tokenize(
const std::string& data,
62 const std::string& delimiter =
",");
63 static bool extract(
const std::string& token, uint32_t& key, uint32_t& value);
65 uint32_t remapScancode(uint32_t scancode);
66 void remapInitialize();
70 std::map<uint32_t, uint32_t> _remapList;
71 std::atomic<bool> _remapInitialized =
false;
74 uint32_t _hotkeyModmask;
75 uint32_t _hotkeyFullscreen;
76 uint32_t _hotkeyResizable;
78 uint32_t _hotkeyDisconnect;
79 uint32_t _hotkeyMinimize;