BeRTOS
kbd.h
Go to the documentation of this file.
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 */