Mercurial > ecos
diff packages/services/gfx/mw/current/src/engine/devkbd.c @ 208:e0c0827131d1 ecos
Merge from eCos master repository on 2002-05-20-20:11:54-BST
| author | jlarmour |
|---|---|
| date | Mon, 20 May 2002 22:19:26 +0000 |
| parents | |
| children |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/packages/services/gfx/mw/current/src/engine/devkbd.c @@ -0,0 +1,51 @@ +/* + * Copyright (c) 1999 Greg Haerr <greg@censoft.com> + * + * Device-independent keyboard routines + */ +#include "device.h" + +/* + * Open the keyboard. + */ +int +GdOpenKeyboard(void) +{ + int fd; + + if ((fd = kbddev.Open(&kbddev)) == -1) + return -1; + + /* possible -2 return means no kbd*/ + return fd; +} + +/* + * Close the keyboard. + */ +void +GdCloseKeyboard(void) +{ + kbddev.Close(); +} + +/* + * Return the possible modifiers for the keyboard. + */ +void +GdGetModifierInfo(MWKEYMOD *modifiers, MWKEYMOD *curmodifiers) +{ + kbddev.GetModifierInfo(modifiers, curmodifiers); +} + +/* + * This reads one keystroke from the keyboard, and the current state of + * the mode keys (ALT, SHIFT, CTRL). Returns -1 on error, 0 if no data + * is ready, 1 if keypress, 2 if keyrelease. + * This is a non-blocking call. Returns -2 if ESC pressed. + */ +int +GdReadKeyboard(MWKEY *buf, MWKEYMOD *modifiers, MWSCANCODE *scancode) +{ + return kbddev.Read(buf, modifiers, scancode); +}
