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 */