REVISION
Definition in file KBD_main.c.
#include "../MESSAGE/message.h"
#include "../GENERIC/generic.h"
#include "../SYSTEM/sys_cpld.h"
#include "../SYSTEM/sys_main.h"
#include "../SYSTEM/sys_assert.h"
#include "../SYSTEM/sys_hiddenfeature.h"
#include "../USB/usb.h"
#include "../TIMER/timer.h"
#include "keyboard.h"
#include "keyboard_assert.h"
Include dependency graph for KBD_main.c:

Go to the source code of this file.
Defines | |
| #define | mKBDMSG_send(q, msg) {KBD_msgFilter(msg);if( KEY_NOKEY != ((msg)->d1) ) MSG_send(q, msg, 0);} |
| Define to do skip keyboard filter. | |
Functions | |
| void | KBD_main (void) |
| Function serves as the keyboard scan handle. | |
| BOOL | KBD_isKeyDown (KEY_ID id) |
| This function tells if the specified key has been pressed down. | |
| void | KBD_msgFilter (st_MSG *msg) |
| Function serves as the default keyboard message filter. | |
|
|
Define to do skip keyboard filter. NOTE: Current all key messages are filtered, in case this is not the case in the future, this definition needs to be enabled, and it is up to the application to do filter respectively. Definition at line 48 of file KBD_main.c. Referenced by KBD_main(). |
|
|
This function tells if the specified key has been pressed down.
Definition at line 206 of file KBD_main.c. Referenced by KBD_msgFilter(), SYS_gotoDiagnosis(), SYS_kickoff(), UI_MSF_main(), UI_PSF_null(), and UI_PSF_sleep(). 00207 {
00208 return( (readKeys()&(1<<id))? TRUE : FALSE);
00209 }
|
|
|
Function serves as the default keyboard message filter.
Definition at line 220 of file KBD_main.c. References KBD_isKeyDown(), KDOWN, KUP, st_SYSPARAM::sleepCount, st_SYSPARAM::sleepTimer, and SRTC_UPDT. 00221 {
00222 MSG_ID id = msg->id;
00223 MSG_DATA d1 = msg->d1;
00224 MSG_DATA dout = KEY_NOKEY;
00225 MSG_DATA d2 = msg->d2;
00226
00227 if(id != KBD_MSG_ID) return;
00228 switch(d1)
00229 {
00230 case KLOCK_DN:
00231 dout = KEY_LOCK;
00232 if(KBD_isKeyDown(KDOWN))
00233 {
00234 SYS_HF_batteryEnable();
00235 }
00236 else if(KBD_isKeyDown(KUP))
00237 {
00238 sysParam.sleepCount = sysParam.sleepTimer;
00239 mMSG_send(sysMsgQ, SYS_MSG_ID, SRTC_UPDT, DONTCARE, SYS_FOREVER);
00240 SYS_HF_sleepTimerEnable();
00241 }
00242 break;
00243
00244 case KLOCK_UP:
00245 dout = KEY_UNLOCK;
00246 if(KBD_isKeyDown(KDOWN))
00247 {
00248 SYS_HF_batteryDisable();
00249 SYS_HF_sleepTimerDisable();
00250 mMSG_send(sysMsgQ, SYS_MSG_ID, SRTC_UPDT, DONTCARE, SYS_FOREVER);
00251 }
00252 break;
00253
00254 case KUP_DN:
00255 if(d2 == KUP_HOLD_TIME) dout = KEY_HUP;
00256 else if( (d2>KUP_HOLD_TIME)&&((d2&0x07)==0) )
00257 dout = KEY_RUP;
00258 break;
00259
00260 case KUP_UP:
00261 if(d2 < KUP_HOLD_TIME) dout = KEY_UP;
00262 break;
00263
00264 case KDOWN_DN:
00265 if(d2 == KDOWN_HOLD_TIME) dout = KEY_HDOWN;
00266 else if( (d2>KDOWN_HOLD_TIME)&&((d2&0x07)==0) )
00267 dout = KEY_RDOWN;
00268 break;
00269
00270 case KDOWN_UP:
00271 if(d2 < KDOWN_HOLD_TIME) dout = KEY_DOWN;
00272 break;
00273
00274 case KPLAY_DN:
00275 if(d2 == KPLAY_PRESS_TIME) dout = KEY_PPLAY;
00276 if(d2 == KPLAY_HOLD_TIME) dout = KEY_HPLAY;
00277 break;
00278
00279 case KPLAY_UP:
00280 if(d2 < KPLAY_HOLD_TIME) dout = KEY_PLAY;
00281 break;
00282
00283 case KHISI_DN:
00284 if(d2 == KHISI_HOLD_TIME) dout = KEY_HHISI;
00285 break;
00286
00287 case KHISI_UP:
00288 if(d2 < KHISI_HOLD_TIME) dout = KEY_HISI;
00289 break;
00290
00291 case KBACK_DN:
00292 if(d2 == KBACK_HOLD_TIME) dout = KEY_HBACK;
00293 break;
00294
00295 case KBACK_UP:
00296 if(d2 < KBACK_HOLD_TIME) dout = KEY_BACK;
00297 break;
00298
00299 case KSELECT_DN:
00300 if(d2 == KSELECT_HOLD_TIME) dout = KEY_HSELECT;
00301 break;
00302
00303 case KSELECT_UP:
00304 if(d2 < KSELECT_HOLD_TIME) dout = KEY_SELECT;
00305 break;
00306
00307 case KPRESET1_DN:
00308 if(d2 == KPRESET1_HOLD_TIME) dout = KEY_HPRESET1;
00309 break;
00310
00311 case KPRESET1_UP:
00312 if(d2 < KPRESET1_HOLD_TIME) dout = KEY_PRESET1;
00313 break;
00314
00315 case KPRESET2_DN:
00316 if(d2 == KPRESET2_HOLD_TIME) dout = KEY_HPRESET2;
00317 break;
00318
00319 case KPRESET2_UP:
00320 if(d2 < KPRESET2_HOLD_TIME) dout = KEY_PRESET2;
00321 break;
00322
00323 case KPRESET3_DN:
00324 if(d2 == KPRESET3_HOLD_TIME) dout = KEY_HPRESET3;
00325 break;
00326
00327 case KPRESET3_UP:
00328 if(d2 < KPRESET3_HOLD_TIME) dout = KEY_PRESET3;
00329 break;
00330
00331 case KPRESET4_DN:
00332 if(d2 == KPRESET4_HOLD_TIME) dout = KEY_HPRESET4;
00333 break;
00334
00335 case KPRESET4_UP:
00336 if(d2 < KPRESET4_HOLD_TIME) dout = KEY_PRESET4;
00337 break;
00338
00339 case KPRESET5_DN:
00340 if(d2 == KPRESET5_HOLD_TIME) dout = KEY_HPRESET5;
00341 break;
00342
00343 case KPRESET5_UP:
00344 if(d2 < KPRESET5_HOLD_TIME) dout = KEY_PRESET5;
00345 break;
00346
00347 case KFORWARD_DN:
00348 if(d2 == KFORWARD_HOLD_TIME) dout = KEY_HFORWARD;
00349 else if( (d2>KFORWARD_HOLD_TIME)&&((d2&0x07)==0) )
00350 dout = KEY_RFORWARD;
00351 break;
00352
00353 case KFORWARD_UP:
00354 if(d2 < KFORWARD_HOLD_TIME) dout = KEY_FORWARD;
00355 break;
00356
00357 case KREWIND_DN:
00358 if(d2 == KREWIND_HOLD_TIME) dout = KEY_HREWIND;
00359 else if( (d2>KREWIND_HOLD_TIME)&&((d2&0x07)==0) )
00360 dout = KEY_RREWIND;
00361 break;
00362
00363 case KREWIND_UP:
00364 if(d2 < KREWIND_HOLD_TIME) dout = KEY_REWIND;
00365 break;
00366 }
00367 msg->d1 = dout;
00368 }
|
Here is the call graph for this function:

1.3.9.1