2017-12-14 18:38:44 +08:00
|
|
|
#ifndef CONVERT_H
|
|
|
|
#define CONVERT_H
|
|
|
|
|
2019-03-03 06:52:22 +08:00
|
|
|
#include <stdbool.h>
|
2017-12-14 18:38:44 +08:00
|
|
|
#include <SDL2/SDL_events.h>
|
2019-03-03 06:52:22 +08:00
|
|
|
|
2019-05-31 20:55:11 +08:00
|
|
|
#include "control_msg.h"
|
2017-12-14 18:38:44 +08:00
|
|
|
|
2018-01-22 23:50:08 +08:00
|
|
|
struct complete_mouse_motion_event {
|
|
|
|
SDL_MouseMotionEvent *mouse_motion_event;
|
|
|
|
struct size screen_size;
|
|
|
|
};
|
|
|
|
|
2017-12-14 18:38:44 +08:00
|
|
|
struct complete_mouse_wheel_event {
|
|
|
|
SDL_MouseWheelEvent *mouse_wheel_event;
|
2018-01-22 23:50:08 +08:00
|
|
|
struct point position;
|
2017-12-14 18:38:44 +08:00
|
|
|
};
|
|
|
|
|
2019-03-03 06:52:22 +08:00
|
|
|
bool
|
2019-03-03 03:09:56 +08:00
|
|
|
input_key_from_sdl_to_android(const SDL_KeyboardEvent *from,
|
2019-05-31 20:55:11 +08:00
|
|
|
struct control_msg *to);
|
2019-03-03 03:09:56 +08:00
|
|
|
|
2019-03-03 06:52:22 +08:00
|
|
|
bool
|
2019-03-03 03:09:56 +08:00
|
|
|
mouse_button_from_sdl_to_android(const SDL_MouseButtonEvent *from,
|
|
|
|
struct size screen_size,
|
2019-05-31 20:55:11 +08:00
|
|
|
struct control_msg *to);
|
2019-03-03 03:09:56 +08:00
|
|
|
|
|
|
|
// the video size may be different from the real device size, so we need the
|
|
|
|
// size to which the absolute position apply, to scale it accordingly
|
2019-03-03 06:52:22 +08:00
|
|
|
bool
|
2019-03-03 03:09:56 +08:00
|
|
|
mouse_motion_from_sdl_to_android(const SDL_MouseMotionEvent *from,
|
|
|
|
struct size screen_size,
|
2019-05-31 20:55:11 +08:00
|
|
|
struct control_msg *to);
|
2018-01-22 23:50:08 +08:00
|
|
|
|
|
|
|
// on Android, a scroll event requires the current mouse position
|
2019-03-03 06:52:22 +08:00
|
|
|
bool
|
2019-03-03 03:09:56 +08:00
|
|
|
mouse_wheel_from_sdl_to_android(const SDL_MouseWheelEvent *from,
|
|
|
|
struct position position,
|
2019-05-31 20:55:11 +08:00
|
|
|
struct control_msg *to);
|
2017-12-14 18:38:44 +08:00
|
|
|
|
|
|
|
#endif
|