00001
00012 #ifndef _CONTROLER_H_
00013 #define _CONTROLER_H_
00014
00015 #include "extern_def.h"
00016
00017 DCPLAYA_EXTERN_C_START
00018
00030 #include <dc/controller.h>
00031
00033 typedef struct
00034 {
00035 uint32 elapsed_frames;
00036 uint16 buttons_change;
00037 uint16 buttons;
00038 uint8 rtrig;
00039 uint8 ltrig;
00040 int8 joyx;
00041 int8 joyy;
00042 int8 joy2x;
00043 int8 joy2y;
00044 } controler_state_t;
00045
00047 int controler_init(void);
00049 void controler_shutdown(void);
00050
00055 int controler_read(controler_state_t * state, unsigned int idx);
00056
00062 int controler_pressed(const controler_state_t * state, uint32 mask);
00063
00069 int controler_released(const controler_state_t * state, uint32 mask);
00070
00095 int controler_binding(int clear, int modify);
00096
00110 int controler_getchar(void);
00112 int controler_peekchar(void);
00113
00116
00117
00125 #define KBD_CONT1_C (0x80)
00126 #define KBD_CONT1_B (0x81)
00127 #define KBD_CONT1_A (0x82)
00128 #define KBD_CONT1_START (0x83)
00129 #define KBD_CONT1_DPAD_UP (0x84)
00130 #define KBD_CONT1_DPAD_DOWN (0x85)
00131 #define KBD_CONT1_DPAD_LEFT (0x86)
00132 #define KBD_CONT1_DPAD_RIGHT (0x87)
00133 #define KBD_CONT1_Z (0x88)
00134 #define KBD_CONT1_Y (0x89)
00135 #define KBD_CONT1_X (0x8a)
00136 #define KBD_CONT1_D (0x8b)
00137 #define KBD_CONT1_DPAD2_UP (0x8c)
00138 #define KBD_CONT1_DPAD2_DOWN (0x8d)
00139 #define KBD_CONT1_DPAD2_LEFT (0x8e)
00140 #define KBD_CONT1_DPAD2_RIGHT (0x8f)
00141
00143 #define KBD_CONT2_C (0x90)
00144 #define KBD_CONT2_B (0x91)
00145 #define KBD_CONT2_A (0x92)
00146 #define KBD_CONT2_START (0x93)
00147 #define KBD_CONT2_DPAD_UP (0x94)
00148 #define KBD_CONT2_DPAD_DOWN (0x95)
00149 #define KBD_CONT2_DPAD_LEFT (0x96)
00150 #define KBD_CONT2_DPAD_RIGHT (0x97)
00151 #define KBD_CONT2_Z (0x98)
00152 #define KBD_CONT2_Y (0x99)
00153 #define KBD_CONT2_X (0x9a)
00154 #define KBD_CONT2_D (0x9b)
00155 #define KBD_CONT2_DPAD2_UP (0x9c)
00156 #define KBD_CONT2_DPAD2_DOWN (0x9d)
00157 #define KBD_CONT2_DPAD2_LEFT (0x9e)
00158 #define KBD_CONT2_DPAD2_RIGHT (0x9f)
00159
00161 #define KBD_CONT3_C (0xa0)
00162 #define KBD_CONT3_B (0xa1)
00163 #define KBD_CONT3_A (0xa2)
00164 #define KBD_CONT3_START (0xa3)
00165 #define KBD_CONT3_DPAD_UP (0xa4)
00166 #define KBD_CONT3_DPAD_DOWN (0xa5)
00167 #define KBD_CONT3_DPAD_LEFT (0xa6)
00168 #define KBD_CONT3_DPAD_RIGHT (0xa7)
00169 #define KBD_CONT3_Z (0xa8)
00170 #define KBD_CONT3_Y (0xa9)
00171 #define KBD_CONT3_X (0xaa)
00172 #define KBD_CONT3_D (0xab)
00173 #define KBD_CONT3_DPAD2_UP (0xac)
00174 #define KBD_CONT3_DPAD2_DOWN (0xad)
00175 #define KBD_CONT3_DPAD2_LEFT (0xae)
00176 #define KBD_CONT3_DPAD2_RIGHT (0xaf)
00177
00179 #define KBD_CONT4_C (0xb0)
00180 #define KBD_CONT4_B (0xb1)
00181 #define KBD_CONT4_A (0xb2)
00182 #define KBD_CONT4_START (0xb3)
00183 #define KBD_CONT4_DPAD_UP (0xb4)
00184 #define KBD_CONT4_DPAD_DOWN (0xb5)
00185 #define KBD_CONT4_DPAD_LEFT (0xb6)
00186 #define KBD_CONT4_DPAD_RIGHT (0xb7)
00187 #define KBD_CONT4_Z (0xb8)
00188 #define KBD_CONT4_Y (0xb9)
00189 #define KBD_CONT4_X (0xba)
00190 #define KBD_CONT4_D (0xbb)
00191 #define KBD_CONT4_DPAD2_UP (0xbc)
00192 #define KBD_CONT4_DPAD2_DOWN (0xbd)
00193 #define KBD_CONT4_DPAD2_LEFT (0xbe)
00194 #define KBD_CONT4_DPAD2_RIGHT (0xbf)
00195
00197 #define KBD_CON_C(N) (0x80+((N)<<4))
00198 #define KBD_CON_B(N) (0x81+((N)<<4))
00199 #define KBD_CON_A(N) (0x82+((N)<<4))
00200 #define KBD_CON_START(N) (0x83+((N)<<4))
00201 #define KBD_CON_DPAD_UP(N) (0x84+((N)<<4))
00202 #define KBD_CON_DPAD_DOWN(N) (0x85+((N)<<4))
00203 #define KBD_CON_DPAD_LEFT(N) (0x86+((N)<<4))
00204 #define KBD_CON_DPAD_RIGHT(N) (0x87+((N)<<4))
00205 #define KBD_CON_Z(N) (0x88+((N)<<4))
00206 #define KBD_CON_Y(N) (0x89+((N)<<4))
00207 #define KBD_CON_X(N) (0x8a+((N)<<4))
00208 #define KBD_CON_D(N) (0x8b+((N)<<4))
00209 #define KBD_CON_DPAD2_UP(N) (0x8c+((N)<<4))
00210 #define KBD_CON_DPAD2_DOWN(N) (0x8d+((N)<<4))
00211 #define KBD_CON_DPAD2_LEFT(N) (0x8e+((N)<<4))
00212 #define KBD_CON_DPAD2_RIGHT(N) (0x8f+((N)<<4))
00213
00218 DCPLAYA_EXTERN_C_END
00219
00220 #endif
00221