libjoybus
Joybus implementation for 32-bit MCUs
Loading...
Searching...
No Matches
gcn_controller.h
Go to the documentation of this file.
6
7#pragma once
8
9#include <stdint.h>
18#define JOYBUS_GCN_BUTTON_A (1 << 0)
19#define JOYBUS_GCN_BUTTON_B (1 << 1)
20#define JOYBUS_GCN_BUTTON_X (1 << 2)
21#define JOYBUS_GCN_BUTTON_Y (1 << 3)
22#define JOYBUS_GCN_BUTTON_START (1 << 4)
23#define JOYBUS_GCN_NEED_ORIGIN (1 << 5)
24#define JOYBUS_GCN_ERROR_LATCH (1 << 6)
25#define JOYBUS_GCN_ERROR (1 << 7)
26#define JOYBUS_GCN_BUTTON_LEFT (1 << 8)
27#define JOYBUS_GCN_BUTTON_RIGHT (1 << 9)
28#define JOYBUS_GCN_BUTTON_DOWN (1 << 10)
29#define JOYBUS_GCN_BUTTON_UP (1 << 11)
30#define JOYBUS_GCN_BUTTON_Z (1 << 12)
31#define JOYBUS_GCN_BUTTON_R (1 << 13)
32#define JOYBUS_GCN_BUTTON_L (1 << 14)
33#define JOYBUS_GCN_USE_ORIGIN (1 << 15)
34#define JOYBUS_GCN_BUTTON_MASK 0x7F1F
35
45 uint16_t buttons;
46
48 uint8_t stick_x;
49
51 uint8_t stick_y;
52
54 uint8_t substick_x;
55
57 uint8_t substick_y;
58
60 uint8_t trigger_left;
61
64
66 uint8_t analog_a;
67
69 uint8_t analog_b;
70} __attribute__((packed));
71
102
joybus_gcn_motor_state
GameCube controller motor states.
Definition gcn_controller.h:106
@ JOYBUS_GCN_MOTOR_RUMBLE
Start the rumble motor.
Definition gcn_controller.h:111
@ JOYBUS_GCN_MOTOR_STOP_HARD
Stop the rumble motor immediately.
Definition gcn_controller.h:114
@ JOYBUS_GCN_MOTOR_STOP
Stop the rumble motor.
Definition gcn_controller.h:108
joybus_gcn_analog_mode
Analog modes for packing GameCube controller input state.
Definition gcn_controller.h:86
@ JOYBUS_GCN_ANALOG_MODE_3
Substick X/Y and triggers full precision, analog A/B omitted.
Definition gcn_controller.h:97
@ JOYBUS_GCN_ANALOG_MODE_0
Substick X/Y full precision, triggers and analog A/B truncated to 4 bits.
Definition gcn_controller.h:88
@ JOYBUS_GCN_ANALOG_MODE_1
Triggers full precision, substick X/Y and analog A/B truncated to 4 bits.
Definition gcn_controller.h:91
@ JOYBUS_GCN_ANALOG_MODE_4
Substick X/Y and analog A/B full precision, triggers omitted.
Definition gcn_controller.h:100
@ JOYBUS_GCN_ANALOG_MODE_2
Analog A/B full precision, substick X/Y and triggers truncated to 4 bits.
Definition gcn_controller.h:94
GameCube controller input/origin state.
Definition gcn_controller.h:43
uint8_t substick_y
C-stick y-axis position.
Definition gcn_controller.h:57
uint8_t trigger_right
Right analog trigger position.
Definition gcn_controller.h:63
uint8_t analog_b
Analog B button value.
Definition gcn_controller.h:69
uint8_t trigger_left
Left analog trigger position.
Definition gcn_controller.h:60
uint8_t stick_x
Main stick x-axis position.
Definition gcn_controller.h:48
uint8_t analog_a
Analog A button value.
Definition gcn_controller.h:66
uint16_t buttons
Button state.
Definition gcn_controller.h:45
uint8_t substick_x
C-stick x-axis position.
Definition gcn_controller.h:54
uint8_t stick_y
Main stick y-axis position.
Definition gcn_controller.h:51