24#ifndef __DC_MAPLE_CONTROLLER_H
25#define __DC_MAPLE_CONTROLLER_H
105#define CONT_START (1<<3)
106#define CONT_DPAD_UP (1<<4)
107#define CONT_DPAD_DOWN (1<<5)
108#define CONT_DPAD_LEFT (1<<6)
109#define CONT_DPAD_RIGHT (1<<7)
112#define CONT_X (1<<10)
113#define CONT_D (1<<11)
114#define CONT_DPAD2_UP (1<<12)
115#define CONT_DPAD2_DOWN (1<<13)
116#define CONT_DPAD2_LEFT (1<<14)
117#define CONT_DPAD2_RIGHT (1<<15)
126#define CONT_RESET_BUTTONS (CONT_A | CONT_B | CONT_X | CONT_Y | CONT_START)
144typedef struct cont_state {
241#define CONT_CAPABILITY_C (1<<24)
242#define CONT_CAPABILITY_B (1<<25)
243#define CONT_CAPABILITY_A (1<<26)
244#define CONT_CAPABILITY_START (1<<27)
245#define CONT_CAPABILITY_DPAD_UP (1<<28)
246#define CONT_CAPABILITY_DPAD_DOWN (1<<29)
247#define CONT_CAPABILITY_DPAD_LEFT (1<<30)
248#define CONT_CAPABILITY_DPAD_RIGHT (1<<31)
249#define CONT_CAPABILITY_Z (1<<16)
250#define CONT_CAPABILITY_Y (1<<17)
251#define CONT_CAPABILITY_X (1<<18)
252#define CONT_CAPABILITY_D (1<<19)
253#define CONT_CAPABILITY_DPAD2_UP (1<<20)
254#define CONT_CAPABILITY_DPAD2_DOWN (1<<21)
255#define CONT_CAPABILITY_DPAD2_LEFT (1<<22)
256#define CONT_CAPABILITY_DPAD2_RIGHT (1<<23)
257#define CONT_CAPABILITY_RTRIG (1<<8)
258#define CONT_CAPABILITY_LTRIG (1<<9)
259#define CONT_CAPABILITY_ANALOG_X (1<<10)
260#define CONT_CAPABILITY_ANALOG_Y (1<<11)
261#define CONT_CAPABILITY_ANALOG2_X (1<<12)
262#define CONT_CAPABILITY_ANALOG2_Y (1<<13)
276#define CONT_CAPABILITIES_STANDARD_BUTTONS (CONT_CAPABILITY_A | \
277 CONT_CAPABILITY_B | \
278 CONT_CAPABILITY_X | \
279 CONT_CAPABILITY_Y | \
280 CONT_CAPABILITY_START)
283#define CONT_CAPABILITIES_DPAD (CONT_CAPABILITY_DPAD_UP | \
284 CONT_CAPABILITY_DPAD_DOWN | \
285 CONT_CAPABILITY_DPAD_LEFT | \
286 CONT_CAPABILITY_DPAD_RIGHT)
289#define CONT_CAPABILITIES_ANALOG (CONT_CAPABILITY_ANALOG_X | \
290 CONT_CAPABILITY_ANALOG_Y)
293#define CONT_CAPABILITIES_TRIGGERS (CONT_CAPABILITY_LTRIG | \
294 CONT_CAPABILITY_RTRIG)
297#define CONT_CAPABILITIES_EXTENDED_BUTTONS (CONT_CAPABILITY_C | \
301#define CONT_CAPABILITIES_SECONDARY_DPAD (CONT_CAPABILITY_DPAD2_UP | \
302 CONT_CAPABILITY_DPAD2_DOWN | \
303 CONT_CAPABILITY_DPAD2_LEFT | \
304 CONT_CAPABILITY_DPAD2_RIGHT)
307#define CONT_CAPABILITIES_SECONDARY_ANALOG (CONT_CAPABILITY_ANALOG2_X | \
308 CONT_CAPABILITY_ANALOG2_Y)
311#define CONT_CAPABILITIES_DUAL_DPAD (CONT_CAPABILITIES_DPAD | \
312 CONT_CAPABILITIES_SECONDARY_DPAD)
315#define CONT_CAPABILITIES_DUAL_ANALOG (CONT_CAPABILITIES_ANALOG | \
316 CONT_CAPABILITIES_SECONDARY_ANALOG)
400#define CONT_TYPE_STANDARD_CONTROLLER (CONT_CAPABILITIES_STANDARD_BUTTONS | \
401 CONT_CAPABILITIES_TRIGGERS | \
402 CONT_CAPABILITIES_DPAD | \
403 CONT_CAPABILITIES_ANALOG)
406#define CONT_TYPE_DUAL_ANALOG_CONTROLLER (CONT_CAPABILITIES_STANDARD_BUTTONS | \
407 CONT_CAPABILITIES_TRIGGERS | \
408 CONT_CAPABILITIES_DPAD | \
409 CONT_CAPABILITIES_DUAL_ANALOG)
412#define CONT_TYPE_ASCII_PAD (CONT_CAPABILITIES_STANDARD_BUTTONS | \
413 CONT_CAPABILITIES_EXTENDED_BUTTONS | \
414 CONT_CAPABILITIES_DPAD)
417#define CONT_TYPE_ARCADE_STICK (CONT_CAPABILITIES_STANDARD_BUTTONS | \
418 CONT_CAPABILITIES_EXTENDED_BUTTONS | \
419 CONT_CAPABILITIES_DPAD)
422#define CONT_TYPE_TWIN_STICK (CONT_CAPABILITIES_STANDARD_BUTTONS | \
423 CONT_CAPABILITIES_EXTENDED_BUTTONS | \
424 CONT_CAPABILITY_D | \
425 CONT_CAPABILITIES_DUAL_DPAD)
428#define CONT_TYPE_ASCII_MISSION_STICK (CONT_CAPABILITIES_STANDARD_BUTTONS | \
429 CONT_CAPABILITIES_DUAL_DPAD | \
430 CONT_CAPABILITIES_TRIGGERS | \
431 CONT_CAPABILITIES_ANALOG)
434#define CONT_TYPE_RACING_CONTROLLER (CONT_CAPABILITY_DPAD_UP | \
435 CONT_CAPABILITY_DPAD_DOWN | \
436 CONT_CAPABILITY_A | \
437 CONT_CAPABILITY_B | \
438 CONT_CAPABILITY_START | \
439 CONT_CAPABILITIES_TRIGGERS | \
440 CONT_CAPABILITY_ANALOG_X \
441 CONT_CAPABILITIES_SECONDARY_ANALOG)
444#define CONT_TYPE_MARACAS (CONT_CAPABILITY_A | \
445 CONT_CAPABILITY_B | \
446 CONT_CAPABILITY_D | \
447 CONT_CAPABILITY_START | \
448 CONT_CAPABILITIES_EXTENDED_BUTTONS | \
449 CONT_CAPABILITIES_DUAL_ANALOG)
452#define CONT_TYPE_DANCE_MAT (CONT_CAPABILITY_A | \
453 CONT_CAPABILITY_B | \
454 CONT_CAPABILITY_START | \
455 CONT_CAPABILITIES_DPAD)
458#define CONT_TYPE_FISHING_ROD (CONT_CAPABILITIES_STANDARD_BUTTONS | \
459 CONT_CAPABILITIES_DPAD | \
460 CONT_CAPABILITIES_TRIGGERS | \
461 CONT_CAPABILITIES_DUAL_ANALOG)
464#define CONT_TYPE_POP_N_MUSIC (CONT_CAPABILITIES_STANDARD_BUTTONS | \
465 CONT_CAPABILITY_C | \
466 CONT_CAPABILITIES_DPAD)
469#define CONT_TYPE_DENSHA_DE_GO (CONT_CAPABILITIES_STANDARD_BUTTONS | \
470 CONT_CAPABILITIES_EXTENDED_BUTTONS | \
471 CONT_CAPABILITY_D | \
472 CONT_CAPABILITIES_DPAD)
475#define CONT_TYPE_PANTHERDC (CONT_CAPABILITIES_STANDARD_BUTTONS | \
476 CONT_CAPABILITIES_EXTENDED_BUTTONS | \
477 CONT_CAPABILITY_D | \
478 CONT_CAPABILITIES_TRIGGERS | \
479 CONT_CAPABILITIES_DPAD | \
480 CONT_CAPABILITIES_DUAL_ANALOG)
514void cont_shutdown(
void);
int cont_has_capabilities(const struct maple_device *cont, uint32_t capabilities)
Check for controller capabilities.
int cont_is_type(const struct maple_device *cont, uint32_t type)
Check for controller type.
Controller state structure.
Definition controller.h:144
int joy2y
Secondary joystick y-axis value.
Definition controller.h:176
uint32_t b
B button value.
Definition controller.h:152
uint32_t dpad_down
Main Dpad Down button value.
Definition controller.h:156
uint32_t z
Z button value.
Definition controller.h:159
uint32_t dpad2_down
Secondary Dpad Down button value.
Definition controller.h:164
uint32_t dpad2_up
Secondary Dpad Up button value.
Definition controller.h:163
int ltrig
Left trigger value (0-255).
Definition controller.h:171
uint32_t dpad2_left
Secondary Dpad Left button value.
Definition controller.h:165
uint32_t dpad2_right
Secondary Dpad Right button value.
Definition controller.h:166
uint32_t a
A button value.
Definition controller.h:153
uint32_t c
C button value.
Definition controller.h:151
uint32_t dpad_right
Main Dpad Right button value.
Definition controller.h:158
int joyx
Main joystick x-axis value (-128 - 127).
Definition controller.h:173
uint32_t buttons
bit-packed controller button states
Definition controller.h:149
int joy2x
Secondary joystick x-axis value.
Definition controller.h:175
uint32_t dpad_left
Main Dpad Left button value.
Definition controller.h:157
uint32_t y
Y button value.
Definition controller.h:160
int joyy
Main joystick y-axis value.
Definition controller.h:174
int rtrig
Right trigger value (0-255).
Definition controller.h:172
uint32_t x
X button value.
Definition controller.h:161
uint32_t d
D button value.
Definition controller.h:162
uint32_t start
Start button value.
Definition controller.h:154
uint32_t dpad_up
Main Dpad Up button value.
Definition controller.h:155