BeRTOS
|
00001 00052 #ifndef DRV_KBD_H 00053 #define DRV_KBD_H 00054 00055 #include "hw/kbd_map.h" 00056 00057 #include "cfg/cfg_kbd.h" // CONFIG_KBD_OBSERVER 00058 #include <cfg/compiler.h> 00059 00060 #include <struct/list.h> 00061 00069 #define KBD_POLL_SOFTINT 1 00070 /* \} */ 00071 00075 typedef struct KbdHandler 00076 { 00077 Node link; 00078 keymask_t (*hook)(keymask_t); 00079 int8_t pri; 00080 uint8_t flags; 00081 } KbdHandler; 00082 00083 #define KHF_RAWKEYS BV(0) 00086 void kbd_init(void); 00087 keymask_t kbd_peek(void); 00088 keymask_t kbd_get(void); 00089 keymask_t kbd_get_timeout(mtime_t timeout); 00090 void kbd_addHandler(struct KbdHandler *handler); 00091 void kbd_remHandler(struct KbdHandler *handler); 00092 keymask_t kbd_setRepeatMask(keymask_t mask); 00093 00094 #if CONFIG_KBD_OBSERVER 00095 struct Subject; 00096 00098 extern struct Subject kbd_subject; 00099 00100 enum 00101 { 00102 /* Event for key presses. */ 00103 KBD_EVENT_KEY = 0x100 00104 }; 00105 #endif 00106 //defgroup kbd 00108 #endif /* DRV_KBD_H */