2021-12-21 22:25:59 +00:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
2023-05-13 16:10:33 +03:00
|
|
|
#ifndef LABWC_KEY_STATE_H
|
|
|
|
|
#define LABWC_KEY_STATE_H
|
2021-12-21 22:25:59 +00:00
|
|
|
|
2023-11-04 01:23:43 -04:00
|
|
|
#include <stdbool.h>
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
2022-09-20 20:46:39 +01:00
|
|
|
/*
|
|
|
|
|
* All keycodes in these functions are (Linux) libinput evdev scancodes which is
|
|
|
|
|
* what 'wlr_keyboard' uses (e.g. 'seat->keyboard_group->keyboard->keycodes').
|
|
|
|
|
* Note: These keycodes are different to XKB scancodes by a value of 8.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* key_state_pressed_sent_keycodes - generate array of pressed+sent keys
|
|
|
|
|
* Note: The array is generated by subtracting any bound keys from _all_ pressed
|
|
|
|
|
* keys (because bound keys were not forwarded to clients).
|
|
|
|
|
*/
|
|
|
|
|
uint32_t *key_state_pressed_sent_keycodes(void);
|
|
|
|
|
int key_state_nr_pressed_sent_keycodes(void);
|
|
|
|
|
|
2024-12-23 00:05:22 +09:00
|
|
|
void key_state_set_pressed(uint32_t keycode, bool is_pressed);
|
2023-11-04 01:23:43 -04:00
|
|
|
void key_state_store_pressed_key_as_bound(uint32_t keycode);
|
2021-12-21 22:25:59 +00:00
|
|
|
bool key_state_corresponding_press_event_was_bound(uint32_t keycode);
|
2022-07-11 17:05:08 +01:00
|
|
|
void key_state_bound_key_remove(uint32_t keycode);
|
2023-09-30 09:19:59 +01:00
|
|
|
int key_state_nr_bound_keys(void);
|
2021-12-21 22:25:59 +00:00
|
|
|
|
2023-05-13 16:10:33 +03:00
|
|
|
#endif /* LABWC_KEY_STATE_H */
|