Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

KeyPad.hpp

Go to the documentation of this file.
00001 /* $Id: KeyPad.hpp,v 1.1.1.1 2005/04/22 17:18:53 ndsdev Exp $ */
00011 #ifndef KEYPAD_H
00012 #define KEYPAD_H
00013 
00014 #include <NDS/jtypes.h>
00015 
00020 enum KP_Keys {
00021   KP_KEY_A,                     
00022   KP_KEY_B,                     
00023   KP_KEY_SELECT,                
00024   KP_KEY_START,                 
00025   KP_KEY_RIGHT,                 
00026   KP_KEY_LEFT,                  
00027   KP_KEY_UP,                    
00028   KP_KEY_DOWN,                  
00029   KP_KEY_R,                     
00030   KP_KEY_L,                     
00031   KP_NUM_KEYS,                  
00032   KP_LAST_KEY = KP_KEY_L,       
00033   KP_FIRST_KEY = KP_KEY_A,      
00034 };
00035 
00048 class KeyPad {
00054   struct keyData {
00055     bool pressed;       
00056     bool repeating;     
00057     uint16 counter;     
00058     uint16 mask;        
00059     keyData();
00060   };
00061 
00062   uint16 repeat_delay;  
00063   uint16 repeat_rate;   
00064   uint16 counter;       
00065   uint16 current_keys;  
00066   keyData kd[KP_NUM_KEYS];
00067   uint16 touchX;        
00068   uint16 touchY;        
00069   uint16 touchZ1;       
00070   uint16 touchZ2;       
00071   uint16 buttons;       
00072 protected:
00086   bool updateKey(uint16 keys, uint16 counter, keyData& key);
00087 public:
00097   KeyPad(int repeat_delay, int repeat_rate);
00098 
00112   uint16 Update(int buttons = -1, int x = -1, int y = -1,
00113                 int z1 = -1, int z2 = -1);
00114 
00119   uint16 GetKeys(void);
00120 
00132   bool TouchPos(uint16& x, uint16& y);
00133 
00151   static bool TouchPos(int buttons, int x, int y, int z1, int z2,
00152                        uint16& x, uint16& y);
00153 };
00154 
00155 #endif

Generated on Fri Apr 22 13:47:42 2005 for PhoenixRising NDS Library by doxygen 1.3.6