X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=drv%2Fkbd.c;h=f54ebf91f06ebf9a2b66f334d950fdcaa1961805;hb=33d48af0258dd55e1d2b51a4ae2f87401dcb00e9;hp=6f51f4c8c7f062469da47f4d274b94f460c6d9f2;hpb=bcf38f772b397e7a8ba781a69aacb9380e54b32a;p=bertos.git diff --git a/drv/kbd.c b/drv/kbd.c old mode 100755 new mode 100644 index 6f51f4c8..f54ebf91 --- a/drv/kbd.c +++ b/drv/kbd.c @@ -1,9 +1,34 @@ /** * \file * * * \version $Id$ @@ -15,34 +40,6 @@ * \brief Keyboard driver (implementation) */ -/*#* - *#* $Log$ - *#* Revision 1.8 2006/07/19 12:56:25 bernie - *#* Convert to new Doxygen style. - *#* - *#* Revision 1.7 2006/06/03 13:57:36 bernie - *#* Make keyboard repeat mask run-time configurable. - *#* - *#* Revision 1.6 2006/03/20 17:50:17 bernie - *#* Add FreeRTOS and Observers support. - *#* - *#* Revision 1.5 2006/02/27 22:39:45 bernie - *#* Misc build and doc fixes from project_grl. - *#* - *#* Revision 1.4 2006/02/24 00:27:14 bernie - *#* Use new naming convention for list macros. - *#* - *#* Revision 1.3 2006/02/17 21:15:42 bernie - *#* Add MOD_CHECK() checks. - *#* - *#* Revision 1.2 2006/02/10 12:36:20 bernie - *#* Add preliminary FreeRTOS support; Enforce CONFIG_* definitions. - *#* - *#* Revision 1.1 2005/06/27 21:28:45 bernie - *#* Import generic keyboard driver. - *#* - *#*/ - #include #include @@ -62,6 +59,9 @@ #if !defined(CONFIG_KBD_OBSERVER) || (CONFIG_KBD_OBSERVER != 0 && CONFIG_KBD_OBSERVER != 1) #error CONFIG_KBD_OBSERVER must be defined to either 0 or 1 #endif +#if !defined(CONFIG_KBD_LONGPRESS) || (CONFIG_KBD_LONGPRESS != 0 && CONFIG_KBD_LONGPRESS != 1) + #error CONFIG_KBD_LONGPRESS must be defined to either 0 or 1 +#endif #if CONFIG_KBD_BEEP #include @@ -97,7 +97,8 @@ static List kbd_handlers; /**< Cooked keyboard handlers */ static KbdHandler kbd_defHandler; /**< The default keyboard handler */ static KbdHandler kbd_debHandler; /**< The debounce keyboard handler */ static KbdHandler kbd_rptHandler; /**< Auto-repeat keyboard handler */ -#ifdef K_LNG_MASK + +#if CONFIG_KBD_LONGPRESS static KbdHandler kbd_lngHandler; /**< Long pression keys handler */ #endif @@ -174,6 +175,8 @@ static portTASK_FUNCTION(kbd_task, arg) * is returned only after the time specified with KBD_REPAT_DELAY to * avoid too fast keyboard repeat. * + * \note Calls \c schedule() internally. + * * \note This function is \b not interrupt safe! * * \return The mask of depressed keys or 0 if no keys are depressed. @@ -183,7 +186,7 @@ keymask_t kbd_peek(void) { keymask_t key = 0; -// FIXME +// FIXME: make it optional /* Let other tasks run for a while */ extern void schedule(void); schedule(); @@ -332,7 +335,7 @@ static keymask_t kbd_debHandlerFunc(keymask_t key) return new_key; } -#ifdef K_LNG_MASK +#if CONFIG_KBD_LONGPRESS /** * Handle long pression keys. */ @@ -451,7 +454,7 @@ void kbd_init(void) kbd_debHandler.flags = KHF_RAWKEYS; kbd_addHandler(&kbd_debHandler); - #ifdef K_LNG_MASK + #if CONFIG_KBD_LONGPRESS /* Add long pression keyboard handler */ kbd_lngHandler.hook = kbd_lngHandlerFunc; kbd_lngHandler.pri = 90; /* high priority */ @@ -479,7 +482,7 @@ void kbd_init(void) MOD_CHECK(timer); /* Add kbd handler to soft timers list */ - event_initSoftInt(&kbd_timer.expire, kbd_softint, 0); + event_initSoftInt(&kbd_timer.expire, kbd_softint, NULL); timer_setDelay(&kbd_timer, ms_to_ticks(KBD_CHECK_INTERVAL)); timer_add(&kbd_timer);