//----------------------------------------------------------------------------- // pad.h >> generic app // matt verran 14/06/1999 (emelents by TOM) //----------------------------------------------------------------------------- // // pad.mode = 8bits: bit 8-5 = redundant // bit 4 = 1:leftpad analog 0:leftpad digital // bit 3 = 1:righpad analog 0:righpad digital // bit 2 = 1:leftpad out 0:leftpad in // bit 1 = 1:righpad out 0:righpad in //----------------------------------------------------------------------------- #include #include #define PADLup (1<<12) #define PADLdown (1<<14) #define PADLleft (1<<15) #define PADLright (1<<13) #define PADLT (1<<4) #define PADLO (1<<5) #define PADLX (1<<6) #define PADLS (1<<7) #define PADLstart (1<<11) #define PADLselect (1<<8) #define PADLR1 (1<<3) #define PADLR2 (1<<1) #define PADLL1 (1<<3) #define PADLL2 (1<<0) #define PADRup (1<<28) #define PADRdown (1<<30) #define PADRleft (1<<31) #define PADRright (1<<29) #define PADRT (1<<20) #define PADRO (1<<21) #define PADRX (1<<22) #define PADRS (1<<23) #define PADRstart (1<<27) #define PADRselect (1<<24) #define PADRR1 (1<<19) #define PADRR2 (1<<17) #define PADRL1 (1<<18) #define PADRL2 (1<<16) #define PADLdisconnected (1<<1) #define PADLanalog (1<<3) #define PADRdisconnected (1<<0) #define PADRanalog (1<<2) #define Abs(a) ( ((a) < 0) ? (-(a)) : (a) ) typedef struct { u_long button; int LleftStickV, LleftStickH; int LrightStickV, LrightStickH; int RleftStickV, RleftStickH; int RrightStickV, RrightStickH; u_char mode; } PadInfo; void InitPad(void); void ReadPad(PadInfo *pad);