mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-22 22:24:16 -04:00
67 lines
1.4 KiB
C
67 lines
1.4 KiB
C
#ifndef DOLPHIN_PAD_H
|
|
#define DOLPHIN_PAD_H
|
|
|
|
#include "types.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define PAD_CONTROLLER_NUM 4
|
|
|
|
#define PAD_ERR_NONE 0
|
|
#define PAD_ERR_NO_CONTROLLER -1
|
|
#define PAD_ERR_NOT_READY -2
|
|
#define PAD_ERR_TRANSFER -3
|
|
|
|
#define PAD_MOTOR_STOP 0
|
|
#define PAD_MOTOR_RUMBLE 1
|
|
#define PAD_MOTOR_STOP_HARD 2
|
|
|
|
#define PAD_BUTTON_LEFT 0x0001
|
|
#define PAD_BUTTON_RIGHT 0x0002
|
|
#define PAD_BUTTON_DOWN 0x0004
|
|
#define PAD_BUTTON_UP 0x0008
|
|
#define PAD_TRIGGER_Z 0x0010
|
|
#define PAD_TRIGGER_R 0x0020
|
|
#define PAD_TRIGGER_L 0x0040
|
|
#define PAD_BUTTON_A 0x0100
|
|
#define PAD_BUTTON_B 0x0200
|
|
#define PAD_BUTTON_X 0x0400
|
|
#define PAD_BUTTON_Y 0x0800
|
|
#define PAD_BUTTON_MENU 0x1000
|
|
#define PAD_BUTTON_START 0x1000
|
|
|
|
typedef void (*PADSamplingCallback)(void);
|
|
|
|
typedef struct PADStatus {
|
|
u16 button;
|
|
s8 stickX;
|
|
s8 stickY;
|
|
s8 substickX;
|
|
s8 substickY;
|
|
u8 triggerLeft;
|
|
u8 triggerRight;
|
|
u8 analogA;
|
|
u8 analogB;
|
|
s8 err;
|
|
} PADStatus;
|
|
|
|
BOOL PADInit();
|
|
u32 PADRead(PADStatus *status);
|
|
BOOL PADReset(u32 mask);
|
|
BOOL PADRecalibrate(u32 mask);
|
|
void PADClamp(PADStatus *status);
|
|
void PADClampCircle(PADStatus *status);
|
|
void PADControlMotor(s32 chan, u32 cmd);
|
|
void PADSetSpec(u32 spec);
|
|
void PADControlAllMotors(const u32 *cmdArr);
|
|
void PADSetAnalogMode(u32 mode);
|
|
PADSamplingCallback PADSetSamplingCallback(PADSamplingCallback);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|