27#include <winpr/wtypes.h>
28#include <freerdp/freerdp.h>
29#include <freerdp/locale/keyboard.h>
32#include "sdl_types.hpp"
47 BOOL keyboard_sync_state();
48 BOOL keyboard_focus_in();
50 BOOL keyboard_handle_event(
const SDL_KeyboardEvent* ev);
52 BOOL keyboard_grab(Uint32 windowID,
bool enable);
53 BOOL mouse_focus(Uint32 windowID);
54 BOOL mouse_grab(Uint32 windowID,
bool enable);
56 static BOOL keyboard_set_indicators(rdpContext* context, UINT16 led_flags);
57 static BOOL keyboard_set_ime_status(rdpContext* context, UINT16 imeId, UINT32 imeState,
60 static uint32_t prefToMask();
61 static uint32_t prefKeyValue(
const std::string& key, uint32_t fallback = SDL_SCANCODE_UNKNOWN);
64 static std::list<std::string> tokenize(
const std::string& data,
65 const std::string& delimiter =
",");
66 static bool extract(
const std::string& token, uint32_t& key, uint32_t& value);
68 UINT32 scancode_to_rdp(Uint32 scancode);
74 uint32_t _hotkeyModmask;
75 uint32_t _hotkeyFullscreen;
76 uint32_t _hotkeyResizable;
78 uint32_t _hotkeyDisconnect;
79 uint32_t _hotkeyMinimize;
80 FREERDP_REMAP_TABLE* _remapTable =
nullptr;