Subversion Repositories HelenOS

Rev

Rev 2927 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2927 Rev 4343
Line 36... Line 36...
36
 
36
 
37
#ifndef __KEY_BUFFER_H__
37
#ifndef __KEY_BUFFER_H__
38
#define __KEY_BUFFER_H__
38
#define __KEY_BUFFER_H__
39
 
39
 
40
#include <sys/types.h>
40
#include <sys/types.h>
-
 
41
#include <kbd/kbd.h>
41
 
42
 
42
/** Size of buffer for pressed keys */
43
/** Size of buffer for pressed keys */
43
#define KEYBUFFER_SIZE 128 
44
#define KEYBUFFER_SIZE 128 
44
 
45
 
45
typedef struct {
46
typedef struct {
46
    int fifo[KEYBUFFER_SIZE];
47
    kbd_event_t fifo[KEYBUFFER_SIZE];
47
    unsigned long head;
48
    unsigned long head;
48
    unsigned long tail;
49
    unsigned long tail;
49
    unsigned long items;
50
    unsigned long items;
50
} keybuffer_t;
51
} keybuffer_t;
51
 
52
 
52
void keybuffer_free(keybuffer_t *keybuffer);
53
extern void keybuffer_free(keybuffer_t *);
53
void keybuffer_init(keybuffer_t *keybuffer);
54
extern void keybuffer_init(keybuffer_t *);
54
int keybuffer_available(keybuffer_t *keybuffer);
55
extern int keybuffer_available(keybuffer_t *);
55
int keybuffer_empty(keybuffer_t *keybuffer);
56
extern int keybuffer_empty(keybuffer_t *);
-
 
57
extern void keybuffer_push(keybuffer_t *, const kbd_event_t *);
56
void keybuffer_push(keybuffer_t *keybuffer, int key);
58
extern void keybuffer_push0(keybuffer_t *, int c);
57
int keybuffer_pop(keybuffer_t *keybuffer, int *c);
59
extern int keybuffer_pop(keybuffer_t *, kbd_event_t *);
58
 
60
 
59
#endif
61
#endif
60
 
62
 
61
/**
63
/**
62
 * @}
64
 * @}