| /* |
| * Copyright (c) 2020 Jabil Inc. |
| * Copyright (c) 2023 Nordic Semiconductor |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <SDL.h> |
| #include "input_sdl_touch_bottom.h" |
| |
| static int sdl_filter(void *arg, SDL_Event *event) |
| { |
| struct sdl_input_data *data = arg; |
| |
| switch (event->type) { |
| case SDL_MOUSEBUTTONUP: |
| data->pressed = false; |
| data->just_released = true; |
| break; |
| case SDL_MOUSEBUTTONDOWN: |
| data->pressed = true; |
| break; |
| case SDL_MOUSEMOTION: |
| data->x = event->button.x; |
| data->y = event->button.y; |
| break; |
| default: |
| return 1; |
| } |
| |
| data->callback(data); |
| |
| return 1; |
| } |
| |
| void sdl_input_init_bottom(struct sdl_input_data *data) |
| { |
| SDL_AddEventWatch(sdl_filter, data); |
| } |