kbd.h
Go to the documentation of this file.00001 00042 #ifndef DRV_KBD_H 00043 #define DRV_KBD_H 00044 00045 #include "hw/kbd_map.h" 00046 00047 #include "cfg/cfg_kbd.h" // CONFIG_KBD_OBSERVER 00048 #include <cfg/compiler.h> 00049 00050 #include <struct/list.h> 00051 00059 #define KBD_POLL_SOFTINT 1 00060 /* \} */ 00061 00065 typedef struct KbdHandler 00066 { 00067 Node link; 00068 keymask_t (*hook)(keymask_t); 00069 int8_t pri; 00070 uint8_t flags; 00071 } KbdHandler; 00072 00073 #define KHF_RAWKEYS BV(0) 00076 void kbd_init(void); 00077 keymask_t kbd_peek(void); 00078 keymask_t kbd_get(void); 00079 keymask_t kbd_get_timeout(mtime_t timeout); 00080 void kbd_addHandler(struct KbdHandler *handler); 00081 void kbd_remHandler(struct KbdHandler *handler); 00082 keymask_t kbd_setRepeatMask(keymask_t mask); 00083 00084 #if CONFIG_KBD_OBSERVER 00085 struct Subject; 00086 00088 extern struct Subject kbd_subject; 00089 00090 enum 00091 { 00092 /* Event for key presses. */ 00093 KBD_EVENT_KEY = 0x100 00094 }; 00095 #endif 00096 00097 #endif /* DRV_KBD_H */
