8#ifndef __LIBDRAGON_JOYPAD_INTERNAL_H
9#define __LIBDRAGON_JOYPAD_INTERNAL_H
28#define ASSERT_JOYPAD_PORT_VALID(port) \
29 assert((port) >= 0 && (port) < JOYPAD_PORT_COUNT)
48#define JOYPAD_RAW_2D_RIGHT (1<<0)
50#define JOYPAD_RAW_2D_LEFT (1<<1)
52#define JOYPAD_RAW_2D_DOWN (1<<2)
54#define JOYPAD_RAW_2D_UP (1<<3)
58typedef struct joypad_gcn_origin_s
75#define JOYPAD_GCN_ORIGIN_INIT \
76 ((joypad_gcn_origin_t){ 127, 127, 127, 127, 0, 0 })
79#define CLAMP_ANALOG_STICK(value) CLAMP((int)(value), -127, 127)
82#define CLAMP_ANALOG_TRIGGER(value) CLAMP((int)(value), 0, 255)
85typedef struct joypad_device_cold_s
98typedef struct joypad_device_hot_s
uint16_t joybus_identifier_t
Joypad Identifier type.
Definition joybus.h:96
uint8_t stick_x
Analog stick X-axis.
Definition joypad_internal.h:61
joypad_style_t style
Joypad style.
Definition joypad_internal.h:90
joypad_style_t style
Joypad style.
Definition joypad_internal.h:101
joypad_inputs_t current
Joypad inputs for current frame.
Definition joypad_internal.h:92
uint8_t analog_r
Analog R-trigger.
Definition joypad_internal.h:71
joybus_identifier_t identifier
Joybus device type identifier.
Definition joypad_internal.h:88
uint8_t cstick_x
Analog C-stick X-axis.
Definition joypad_internal.h:65
uint8_t analog_l
Analog L-trigger.
Definition joypad_internal.h:69
uint8_t stick_y
Analog stick Y-axis.
Definition joypad_internal.h:63
uint8_t cstick_y
Analog C-stick Y-axis.
Definition joypad_internal.h:67
joypad_inputs_t previous
Joypad inputs for previous frame.
Definition joypad_internal.h:94
joypad_rumble_method_t rumble_method
Joypad rumble method.
Definition joypad_internal.h:103
bool rumble_active
Is the Joypad currently rumbling?
Definition joypad_internal.h:105
int joypad_get_accessory_state(joypad_port_t port)
Get the Joypad accessory state for a Joypad port.
Definition joypad.c:883
int joypad_get_accessory_error(joypad_port_t port)
Get the Joypad accessory error for a Joypad port.
Definition joypad.c:890
#define JOYPAD_PORT_COUNT
Count of Joypad ports.
Definition joypad.h:86
volatile joypad_device_hot_t joypad_devices_hot[JOYPAD_PORT_COUNT]
Joypad "hot" devices for each port.
Definition joypad.c:90
volatile joypad_gcn_origin_t joypad_origins_hot[JOYPAD_PORT_COUNT]
Joypad origins for each port.
Definition joypad.c:92
joypad_rumble_method_t
Joypad rumble methods enumeration.
Definition joypad_internal.h:33
joypad_inputs_t joypad_read_n64_inputs(joypad_port_t port)
Read the inputs from a Nintendo 64 controller synchronously.
Definition joypad.c:687
volatile joypad_accessory_t joypad_accessories_hot[JOYPAD_PORT_COUNT]
Joypad accessories for each port.
Definition joypad.c:94
volatile joybus_identifier_t joypad_identifiers_hot[JOYPAD_PORT_COUNT]
Joypad identifiers for each port.
Definition joypad.c:88
joypad_port_t
Joypad Port Numbers.
Definition joypad.h:74
joypad_style_t
Joypad Styles enumeration.
Definition joypad.h:98
@ JOYPAD_RUMBLE_METHOD_N64_RUMBLE_PAK
Nintendo 64 controller with Rumble Pak.
Definition joypad_internal.h:37
@ JOYPAD_RUMBLE_METHOD_NONE
Rumble not supported.
Definition joypad_internal.h:35
@ JOYPAD_RUMBLE_METHOD_GCN_CONTROLLER
GameCube controller with rumble motors.
Definition joypad_internal.h:39
Joypad accessory structure.
Definition joypad_accessory.h:142
"Cold" (non-volatile) Joypad device structure.
Definition joypad_internal.h:86
"Hot" (interrupt-driven) Joypad device structure.
Definition joypad_internal.h:99
Joypad GameCube controller origins structure.
Definition joypad_internal.h:59
Joypad accessory helpers.
Misc utilities functions and macros.