/* * Copyright (c) 2022, Basalte bv * Copyright (c) 2023 Nordic Semiconductor * * SPDX-License-Identifier: Apache-2.0 */ #include #include "gpio_emul_sdl_bottom.h" static int sdl_filter_bottom(void *arg, SDL_Event *event) { struct gpio_sdl_data *data = arg; /* Only handle keyboard events */ switch (event->type) { case SDL_KEYDOWN: case SDL_KEYUP: break; default: return 1; } data->event_scan_code = event->key.keysym.scancode; data->key_down = event->type == SDL_KEYDOWN; return data->callback(arg); } void gpio_sdl_init_bottom(struct gpio_sdl_data *data) { SDL_AddEventWatch(sdl_filter_bottom, (void *)data); }