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