kbd.h
Go to the documentation of this file.00001 00047 #ifndef DRV_KBD_H 00048 #define DRV_KBD_H 00049 00050 #include "hw/kbd_map.h" 00051 00052 #include "cfg/cfg_kbd.h" // CONFIG_KBD_OBSERVER 00053 #include <cfg/compiler.h> 00054 00055 #include <struct/list.h> 00056 00064 #define KBD_POLL_SOFTINT 1 00065 /* \} */ 00066 00070 typedef struct KbdHandler 00071 { 00072 Node link; 00073 keymask_t (*hook)(keymask_t); 00074 int8_t pri; 00075 uint8_t flags; 00076 } KbdHandler; 00077 00078 #define KHF_RAWKEYS BV(0) 00081 void kbd_init(void); 00082 keymask_t kbd_peek(void); 00083 keymask_t kbd_get(void); 00084 keymask_t kbd_get_timeout(mtime_t timeout); 00085 void kbd_addHandler(struct KbdHandler *handler); 00086 void kbd_remHandler(struct KbdHandler *handler); 00087 keymask_t kbd_setRepeatMask(keymask_t mask); 00088 00089 #if CONFIG_KBD_OBSERVER 00090 struct Subject; 00091 00093 extern struct Subject kbd_subject; 00094 00095 enum 00096 { 00097 /* Event for key presses. */ 00098 KBD_EVENT_KEY = 0x100 00099 }; 00100 #endif 00101 00102 #endif /* DRV_KBD_H */
