GFXprim
2D bitmap graphics library with emphasis on speed and correctness
Loading...
Searching...
No Matches
gp_ev_feedback.h
1// SPDX-License-Identifier: LGPL-2.1-or-later
2/*
3 * Copyright (C) 2009-2022 Cyril Hrubis <metan@ucw.cz>
4 */
5
6/*
7
8 Implements input device feedback, mostly keyboard leds but can include force
9 feedback in joysticks as well.
10
11 */
12
13#ifndef INPUT_GP_EV_FEEDBACK_H
14#define INPUT_GP_EV_FEEDBACK_H
15
16#include <stdint.h>
17#include <input/gp_types.h>
18
24enum gp_ev_feedback_val_leds {
25 GP_KBD_LED_NUM_LOCK = 0x01,
26 GP_KBD_LED_CAPS_LOCK = 0x02,
27 GP_KBD_LED_SCROLL_LOCK = 0x04,
28 GP_KBD_LED_COMPOSE = 0x08,
29 GP_KBD_LED_KANA = 0x10,
30};
31
37enum gp_ev_feedback_op_type {
38 GP_EV_LEDS_ON, /* Turns on leds in the val mask */
39 GP_EV_LEDS_OFF, /* Turns off leds in the val mask */
40 GP_EV_LEDS_GET, /* Returns leds status in the val field */
41};
42
43struct gp_ev_feedback_op {
44 uint8_t op;
45 uint8_t val;
46};
47
48struct gp_ev_feedback {
49 int (*set_get)(gp_ev_feedback *self, gp_ev_feedback_op *op);
50 gp_ev_feedback *next;
51};
52
59void gp_ev_feedback_set_all(gp_ev_feedback *root, gp_ev_feedback_op *op);
60
67void gp_ev_feedback_register(gp_ev_feedback **root, gp_ev_feedback *self);
68
75void gp_ev_feedback_unregister(gp_ev_feedback **root, gp_ev_feedback *self);
76
77#endif /* INPUT_GP_EV_FEEDBACK_H */