nRF Connect SDK API 3.3.99
Loading...
Searching...
No Matches
keys_state.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2025 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
6
7#ifndef _KEYS_STATE_H_
8#define _KEYS_STATE_H_
9
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21#include <stdbool.h>
22#include <stddef.h>
23#include <stdint.h>
24
25#define KEYS_MAX_CNT CONFIG_DESKTOP_KEYS_STATE_KEY_CNT_MAX
26
28struct active_key {
29 uint16_t id;
30 uint16_t press_cnt;
31};
32
34struct keys_state {
36 uint8_t cnt;
37 uint8_t cnt_max;
38};
39
51void keys_state_init(struct keys_state *ks, uint8_t key_cnt_max);
52
68int keys_state_key_update(struct keys_state *ks, uint16_t key_id, bool pressed, bool *ks_changed);
69
78
94size_t keys_state_keys_get(const struct keys_state *ks, uint16_t *res, size_t res_size);
95
96#ifdef __cplusplus
97}
98#endif
99
104#endif /*_KEYS_STATE_H_ */
size_t keys_state_keys_get(const struct keys_state *ks, uint16_t *res, size_t res_size)
Get keys state.
void keys_state_init(struct keys_state *ks, uint8_t key_cnt_max)
Initialize a keys state object.
void keys_state_clear(struct keys_state *ks)
Clear keys state.
int keys_state_key_update(struct keys_state *ks, uint16_t key_id, bool pressed, bool *ks_changed)
Notify keys state about a key press/release.
#define KEYS_MAX_CNT
Definition keys_state.h:25
uint16_t id
Definition keys_state.h:29
uint16_t press_cnt
Definition keys_state.h:30
Structure used to track an active key.
Definition keys_state.h:28
struct active_key keys[CONFIG_DESKTOP_KEYS_STATE_KEY_CNT_MAX]
Definition keys_state.h:35
uint8_t cnt_max
Definition keys_state.h:37
uint8_t cnt
Definition keys_state.h:36
Keys state structure.
Definition keys_state.h:34