REVISION
Definition in file keyboard.h.
#include "../feature.h"
#include "../MESSAGE/message.h"
Include dependency graph for keyboard.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Data Structures | |
| struct | st_KEY |
| Individual key structure. More... | |
Enumerations | |
| enum | KEY_ID { KLOCK, KUP, KDOWN, KPLAY, KHISI, KBACK, KSELECT, KPRESET1, KPRESET2, KPRESET3, KPRESET4, KPRESET5, KFORWARD, KREWIND, KNULL } |
| Keyboard key IDs. More... | |
| enum | KEY_STATE { RELEASED, RELEASE_PENDING, PRESSED, PRESS_PENDING } |
| Key states. More... | |
| enum | KEY_STATUS_ID |
| Key status enumeration. | |
| enum | KBD_MSG |
| Raw keyboard messages. | |
| enum | KBD_FILTEREDMSG { , KEY_PRESET0 } |
| Filtered keyboard messages. More... | |
Functions | |
| void | KBD_init (void) |
| Function initializes keyboard interface. | |
| void | KBD_main (void) |
| Function serves as the keyboard scan handle. | |
| BOOL | KBD_isKeyDown (KEY_ID) |
| This function tells if the specified key has been pressed down. | |
| void | KBD_msgFilter (st_MSG *) |
| Function serves as the default keyboard message filter. | |
|
|
Filtered keyboard messages.
Definition at line 154 of file keyboard.h. 00154 {
00155 KEY_NOKEY,
00156 KEY_LOCK,
00157 KEY_UNLOCK,
00158
00159 KEY_DOWN,
00160 KEY_HDOWN,
00161 KEY_RDOWN,
00162
00163 KEY_UP,
00164 KEY_HUP,
00165 KEY_RUP,
00166
00167 KEY_PLAY,
00168 KEY_PPLAY,
00169 KEY_HPLAY,
00170
00171 KEY_HISI,
00172 KEY_HHISI,
00173
00174 KEY_BACK,
00175 KEY_HBACK,
00176
00177 KEY_SELECT,
00178 KEY_HSELECT,
00179
00180 KEY_PRESET0,
00181 KEY_PRESET1,
00182 KEY_PRESET2,
00183 KEY_PRESET3,
00184 KEY_PRESET4,
00185 KEY_PRESET5,
00186 KEY_HPRESET1,
00187 KEY_HPRESET2,
00188 KEY_HPRESET3,
00189 KEY_HPRESET4,
00190 KEY_HPRESET5,
00191
00192 KEY_FORWARD,
00193 KEY_HFORWARD,
00194 KEY_RFORWARD,
00195
00196 KEY_REWIND,
00197 KEY_HREWIND,
00198 KEY_RREWIND
00199 } KBD_FILTEREDMSG;
|
|
|
Keyboard key IDs.
Definition at line 68 of file keyboard.h. Referenced by KBD_main(). 00068 {
00069 KLOCK,
00070 KUP,
00071 KDOWN,
00072 KPLAY,
00073 KHISI,
00074 KBACK,
00075 KSELECT,
00076 KPRESET1,
00077 KPRESET2,
00078 KPRESET3,
00079 KPRESET4,
00080 KPRESET5,
00081 KFORWARD,
00082 KREWIND,
00083 KNULL
00084 } KEY_ID;
|
|
|
Key states.
Definition at line 88 of file keyboard.h. Referenced by KBD_main(). 00088 {
00089 RELEASED,
00090 RELEASE_PENDING,
00091 PRESSED,
00092 PRESS_PENDING
00093 } KEY_STATE;
|
|
|
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