mirror of
https://github.com/zeldaret/mm.git
synced 2024-10-07 10:13:32 +00:00
db8f5f5ccc
* Cleanup * Cleanup variables.h * Cleanup fault headers * Some includes/headers cleanup * Libultra btn wrappers * Mark differences to original libultra headers * Remove duplicate include in fault * format * Update include/PR/os_voice.h Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com> * align --------- Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>
95 lines
2.6 KiB
C
95 lines
2.6 KiB
C
#ifndef PR_OS_CONT_H
|
|
#define PR_OS_CONT_H
|
|
|
|
#include "ultratypes.h"
|
|
#include "os_message.h"
|
|
|
|
|
|
typedef struct {
|
|
/* 0x0 */ u16 type;
|
|
/* 0x2 */ u8 status;
|
|
/* 0x3 */ u8 errno;
|
|
} OSContStatus; // size = 0x4
|
|
|
|
typedef struct {
|
|
/* 0x0 */ u16 button;
|
|
/* 0x2 */ s8 stick_x;
|
|
/* 0x3 */ s8 stick_y;
|
|
/* 0x4 */ u8 errno;
|
|
} OSContPad; // size = 0x6
|
|
|
|
#define MAXCONTROLLERS 4
|
|
|
|
/* controller errors */
|
|
#define CONT_NO_RESPONSE_ERROR 0x8
|
|
#define CONT_OVERRUN_ERROR 0x4
|
|
|
|
/* Controller type */
|
|
#define CONT_ABSOLUTE 0x0001
|
|
#define CONT_RELATIVE 0x0002
|
|
#define CONT_JOYPORT 0x0004
|
|
#define CONT_EEPROM 0x8000
|
|
#define CONT_EEP16K 0x4000
|
|
#define CONT_TYPE_MASK 0x1F07
|
|
#define CONT_TYPE_NORMAL 0x0005
|
|
#define CONT_TYPE_MOUSE 0x0002
|
|
#define CONT_TYPE_VOICE 0x0100
|
|
|
|
/* Controller status */
|
|
#define CONT_CARD_ON 0x01
|
|
#define CONT_CARD_PULL 0x02
|
|
#define CONT_ADDR_CRC_ER 0x04
|
|
#define CONT_EEPROM_BUSY 0x80
|
|
|
|
#define R_CBUTTONS 0x0001
|
|
#define L_CBUTTONS 0x0002
|
|
#define D_CBUTTONS 0x0004
|
|
#define U_CBUTTONS 0x0008
|
|
#define R_TRIG 0x0010
|
|
#define L_TRIG 0x0020
|
|
#define R_JPAD 0x0100
|
|
#define L_JPAD 0x0200
|
|
#define D_JPAD 0x0400
|
|
#define U_JPAD 0x0800
|
|
#define START_BUTTON 0x1000
|
|
#define Z_TRIG 0x2000
|
|
#define B_BUTTON 0x4000
|
|
#define A_BUTTON 0x8000
|
|
|
|
/* Not original to libultra: button macros */
|
|
/* Buttons */
|
|
#define BTN_CRIGHT R_CBUTTONS
|
|
#define BTN_CLEFT L_CBUTTONS
|
|
#define BTN_CDOWN D_CBUTTONS
|
|
#define BTN_CUP U_CBUTTONS
|
|
#define BTN_R R_TRIG
|
|
#define BTN_L L_TRIG
|
|
#define BTN_RESET 0x0080 /* "neutral reset": Corresponds to holding L+R and pressing S */
|
|
#define BTN_DRIGHT R_JPAD
|
|
#define BTN_DLEFT L_JPAD
|
|
#define BTN_DDOWN D_JPAD
|
|
#define BTN_DUP U_JPAD
|
|
#define BTN_START START_BUTTON
|
|
#define BTN_Z Z_TRIG
|
|
#define BTN_B B_BUTTON
|
|
#define BTN_A A_BUTTON
|
|
|
|
#define CONT_ERR_NO_CONTROLLER PFS_ERR_NOPACK /* 1 */
|
|
#define CONT_ERR_CONTRFAIL CONT_OVERRUN_ERROR /* 4 */
|
|
#define CONT_ERR_INVALID PFS_ERR_INVALID /* 5 */
|
|
#define CONT_ERR_DEVICE PFS_ERR_DEVICE /* 11 */
|
|
#define CONT_ERR_NOT_READY 12
|
|
#define CONT_ERR_VOICE_MEMORY 13
|
|
#define CONT_ERR_VOICE_WORD 14
|
|
#define CONT_ERR_VOICE_NO_RESPONSE 15
|
|
|
|
|
|
s32 osContInit(OSMesgQueue* mq, u8* bitpattern, OSContStatus* data);
|
|
s32 osContStartQuery(OSMesgQueue* mq);
|
|
s32 osContStartReadData(OSMesgQueue* mq);
|
|
s32 osContSetCh(u8 ch);
|
|
void osContGetQuery(OSContStatus* data);
|
|
void osContGetReadData(OSContPad* data);
|
|
|
|
#endif
|