Move input event helpers
Input events helpers to convert from SDL events to scrcpy events were implemented in input_manager. To reuse them for OTG mode, move them to input_events.h. PR #2974 <https://github.com/Genymobile/scrcpy/pull/2974>
This commit is contained in:
parent
1a03206e36
commit
36aaf70279
2 changed files with 72 additions and 72 deletions
|
@ -377,4 +377,76 @@ struct sc_touch_event {
|
||||||
float pressure;
|
float pressure;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static inline uint16_t
|
||||||
|
sc_mods_state_from_sdl(uint16_t mods_state) {
|
||||||
|
return mods_state;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline enum sc_keycode
|
||||||
|
sc_keycode_from_sdl(SDL_Keycode keycode) {
|
||||||
|
return (enum sc_keycode) keycode;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline enum sc_scancode
|
||||||
|
sc_scancode_from_sdl(SDL_Scancode scancode) {
|
||||||
|
return (enum sc_scancode) scancode;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline enum sc_action
|
||||||
|
sc_action_from_sdl_keyboard_type(uint32_t type) {
|
||||||
|
assert(type == SDL_KEYDOWN || type == SDL_KEYUP);
|
||||||
|
if (type == SDL_KEYDOWN) {
|
||||||
|
return SC_ACTION_DOWN;
|
||||||
|
}
|
||||||
|
return SC_ACTION_UP;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline enum sc_action
|
||||||
|
sc_action_from_sdl_mousebutton_type(uint32_t type) {
|
||||||
|
assert(type == SDL_MOUSEBUTTONDOWN || type == SDL_MOUSEBUTTONUP);
|
||||||
|
if (type == SDL_MOUSEBUTTONDOWN) {
|
||||||
|
return SC_ACTION_DOWN;
|
||||||
|
}
|
||||||
|
return SC_ACTION_UP;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline enum sc_touch_action
|
||||||
|
sc_touch_action_from_sdl(uint32_t type) {
|
||||||
|
assert(type == SDL_FINGERMOTION || type == SDL_FINGERDOWN ||
|
||||||
|
type == SDL_FINGERUP);
|
||||||
|
if (type == SDL_FINGERMOTION) {
|
||||||
|
return SC_TOUCH_ACTION_MOVE;
|
||||||
|
}
|
||||||
|
if (type == SDL_FINGERDOWN) {
|
||||||
|
return SC_TOUCH_ACTION_DOWN;
|
||||||
|
}
|
||||||
|
return SC_TOUCH_ACTION_UP;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline enum sc_mouse_button
|
||||||
|
sc_mouse_button_from_sdl(uint8_t button) {
|
||||||
|
if (button >= SDL_BUTTON_LEFT && button <= SDL_BUTTON_X2) {
|
||||||
|
// SC_MOUSE_BUTTON_* constants are initialized from SDL_BUTTON(index)
|
||||||
|
return SDL_BUTTON(button);
|
||||||
|
}
|
||||||
|
|
||||||
|
return SC_MOUSE_BUTTON_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint8_t
|
||||||
|
sc_mouse_buttons_state_from_sdl(uint32_t buttons_state,
|
||||||
|
bool forward_all_clicks) {
|
||||||
|
assert(buttons_state < 0x100); // fits in uint8_t
|
||||||
|
|
||||||
|
uint8_t mask = SC_MOUSE_BUTTON_LEFT;
|
||||||
|
if (forward_all_clicks) {
|
||||||
|
mask |= SC_MOUSE_BUTTON_RIGHT
|
||||||
|
| SC_MOUSE_BUTTON_MIDDLE
|
||||||
|
| SC_MOUSE_BUTTON_X1
|
||||||
|
| SC_MOUSE_BUTTON_X2;
|
||||||
|
}
|
||||||
|
|
||||||
|
return buttons_state & mask;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -7,78 +7,6 @@
|
||||||
#include "screen.h"
|
#include "screen.h"
|
||||||
#include "util/log.h"
|
#include "util/log.h"
|
||||||
|
|
||||||
static inline uint16_t
|
|
||||||
sc_mods_state_from_sdl(uint16_t mods_state) {
|
|
||||||
return mods_state;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline enum sc_keycode
|
|
||||||
sc_keycode_from_sdl(SDL_Keycode keycode) {
|
|
||||||
return (enum sc_keycode) keycode;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline enum sc_scancode
|
|
||||||
sc_scancode_from_sdl(SDL_Scancode scancode) {
|
|
||||||
return (enum sc_scancode) scancode;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline enum sc_action
|
|
||||||
sc_action_from_sdl_keyboard_type(uint32_t type) {
|
|
||||||
assert(type == SDL_KEYDOWN || type == SDL_KEYUP);
|
|
||||||
if (type == SDL_KEYDOWN) {
|
|
||||||
return SC_ACTION_DOWN;
|
|
||||||
}
|
|
||||||
return SC_ACTION_UP;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline enum sc_action
|
|
||||||
sc_action_from_sdl_mousebutton_type(uint32_t type) {
|
|
||||||
assert(type == SDL_MOUSEBUTTONDOWN || type == SDL_MOUSEBUTTONUP);
|
|
||||||
if (type == SDL_MOUSEBUTTONDOWN) {
|
|
||||||
return SC_ACTION_DOWN;
|
|
||||||
}
|
|
||||||
return SC_ACTION_UP;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline enum sc_touch_action
|
|
||||||
sc_touch_action_from_sdl(uint32_t type) {
|
|
||||||
assert(type == SDL_FINGERMOTION || type == SDL_FINGERDOWN ||
|
|
||||||
type == SDL_FINGERUP);
|
|
||||||
if (type == SDL_FINGERMOTION) {
|
|
||||||
return SC_TOUCH_ACTION_MOVE;
|
|
||||||
}
|
|
||||||
if (type == SDL_FINGERDOWN) {
|
|
||||||
return SC_TOUCH_ACTION_DOWN;
|
|
||||||
}
|
|
||||||
return SC_TOUCH_ACTION_UP;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline enum sc_mouse_button
|
|
||||||
sc_mouse_button_from_sdl(uint8_t button) {
|
|
||||||
if (button >= SDL_BUTTON_LEFT && button <= SDL_BUTTON_X2) {
|
|
||||||
// SC_MOUSE_BUTTON_* constants are initialized from SDL_BUTTON(index)
|
|
||||||
return SDL_BUTTON(button);
|
|
||||||
}
|
|
||||||
|
|
||||||
return SC_MOUSE_BUTTON_UNKNOWN;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline uint8_t
|
|
||||||
sc_mouse_buttons_state_from_sdl(uint32_t buttons_state,
|
|
||||||
bool forward_all_clicks) {
|
|
||||||
assert(buttons_state < 0x100); // fits in uint8_t
|
|
||||||
|
|
||||||
uint8_t mask = SC_MOUSE_BUTTON_LEFT;
|
|
||||||
if (forward_all_clicks) {
|
|
||||||
mask |= SC_MOUSE_BUTTON_RIGHT
|
|
||||||
| SC_MOUSE_BUTTON_MIDDLE
|
|
||||||
| SC_MOUSE_BUTTON_X1
|
|
||||||
| SC_MOUSE_BUTTON_X2;
|
|
||||||
}
|
|
||||||
|
|
||||||
return buttons_state & mask;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define SC_SDL_SHORTCUT_MODS_MASK (KMOD_CTRL | KMOD_ALT | KMOD_GUI)
|
#define SC_SDL_SHORTCUT_MODS_MASK (KMOD_CTRL | KMOD_ALT | KMOD_GUI)
|
||||||
|
|
||||||
static inline uint16_t
|
static inline uint16_t
|
||||||
|
|
Loading…
Reference in a new issue