keyboard.h File Reference


Detailed Description

Keyboard module C header file.

REVISION

Definition in file keyboard.h.

#include "../feature.h"
#include "../MESSAGE/message.h"

Include dependency graph for keyboard.h:

Include dependency graph

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

Included by dependency graph

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.


Enumeration Type Documentation

enum KBD_FILTEREDMSG
 

Filtered keyboard messages.

Enumeration values:
KEY_PRESET0  auto resume.

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;

enum KEY_ID
 

Keyboard key IDs.

Enumeration values:
KLOCK  0
KUP  1
KDOWN  2
KPLAY  3
KHISI  4
KBACK  5
KSELECT  6
KPRESET1  7
KPRESET2  8
KPRESET3  9
KPRESET4  10
KPRESET5  11
KFORWARD  12
KREWIND  13
KNULL  14

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;

enum KEY_STATE
 

Key states.

Enumeration values:
RELEASED  0
RELEASE_PENDING  1
PRESSED  2
PRESS_PENDING  3

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;


Function Documentation

BOOL KBD_isKeyDown KEY_ID  id  ) 
 

This function tells if the specified key has been pressed down.

Parameters:
id key ID.
Returns:
TRUE if key is pressed down, otherwise FALSE.

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 }

void KBD_msgFilter st_MSG msg  ) 
 

Function serves as the default keyboard message filter.

Parameters:
msg keyboard message.

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:


Generated on Wed Jan 19 01:13:04 2005 for neuros-firmware by  doxygen 1.3.9.1