TRC Library for FTC (2011) 2011
TRC Library Code Project

C:/Users/Michael/Ftc/2011/code/trclib/nxtbtn.h

Go to the documentation of this file.
00001 #if 0
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 #endif
00015 
00016 #ifndef _NXTBTN_H
00017 #define _NXTBTN_H
00018 
00019 #pragma systemFile
00020 
00021 #ifdef MOD_ID
00022     #undef MOD_ID
00023 #endif
00024 #define MOD_ID                  MOD_NXTBTN
00025 
00026 //
00027 // Constants.
00028 //
00029 #define NXTBTNF_USER_MASK       0x00ff
00030 #define NXTBTNF_ENABLE_EVENTS   0x0001
00031 
00032 //
00033 // Type definitions.
00034 //
00035 typedef struct
00036 {
00037     int nxtBtnFlags;
00038     int prevBtn;
00039 } NXTBTN;
00040 
00041 //
00042 // Import function prototypes.
00043 //
00044 void
00045 NxtBtnEvent(
00046     __in NXTBTN &nxtbtn,
00047     __in int nxtButton,
00048     __in bool fPressed
00049     );
00050 
00057 void
00058 NxtBtnInit(
00059     __out NXTBTN &nxtbtn,
00060     __in  int nxtBtnFlags
00061     )
00062 {
00063     TFuncName("NxtBtnInit");
00064     TLevel(INIT);
00065     TEnter();
00066 
00067     nxtbtn.nxtBtnFlags = nxtBtnFlags & NXTBTNF_USER_MASK;
00068     nxtbtn.prevBtn = nNxtButtonPressed;
00069 
00070     TExit();
00071     return;
00072 }   //NxtBtnInit
00073 
00080 void
00081 NxtBtnTask(
00082     __inout NXTBTN &nxtbtn
00083     )
00084 {
00085     int currBtn = nNxtButtonPressed;
00086     int btnID;
00087     bool fPressed;
00088 
00089     TFuncName("NxtBtnTask");
00090     TLevel(TASK);
00091     TEnterMsg(("Prev=%d,Curr=%d", nxtbtn.prevBtn, currBtn));
00092 
00093     if (currBtn != nxtbtn.prevBtn)
00094     {
00095         if (currBtn == kNoButton)
00096         {
00097             btnID = nxtbtn.prevBtn;
00098             fPressed = false;
00099         }
00100         else
00101         {
00102             btnID = currBtn;
00103             fPressed = true;
00104         }
00105 
00106         if (nxtbtn.nxtBtnFlags & NXTBTNF_ENABLE_EVENTS)
00107         {
00108             NxtBtnEvent(nxtbtn, btnID, fPressed);
00109         }
00110 
00111         nxtbtn.prevBtn = currBtn;
00112     }
00113 
00114     TExit();
00115     return;
00116 }   //NxtBtnTask
00117 
00118 #endif  //ifndef _NXTBTN_H
 All Data Structures Files Functions Variables Defines