summaryrefslogtreecommitdiff
path: root/code/fe310/eos/eve/eve_kbd.h
blob: 471142114bc47cab46ef2db468ab04733328cbcc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdint.h>

typedef void (*eve_kbd_input_handler_t) (void *, int);

typedef struct EVEKbd {
    int16_t x;
    int16_t y;
    uint16_t w;
    uint16_t h;
    uint32_t mem_addr;
    uint16_t mem_size;
    uint8_t key_count;
    uint8_t key_down;
    uint8_t key_modifier;
    uint8_t key_modifier_sticky;
    uint8_t key_modifier_lock;
    char active;
    eve_kbd_input_handler_t putc;
    void *param;
} EVEKbd;

void eve_kbd_init(EVEKbd *kbd, uint32_t mem_addr, uint32_t *mem_next);
void eve_kbd_set_handler(EVEKbd *kbd, eve_kbd_input_handler_t putc, void *param);
int eve_kbd_touch(EVEKbd *kbd, uint8_t tag0, int touch_idx);
uint8_t eve_kbd_draw(EVEKbd *kbd);