mirror of https://github.com/zeldaret/tp
111 lines
2.8 KiB
C
111 lines
2.8 KiB
C
#ifndef _REVOLUTION_HBM_H_
|
|
#define _REVOLUTION_HBM_H_
|
|
|
|
#include <revolution/kpad.h>
|
|
#include <revolution/mem.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define NW4HBM_VERSION(major, minor) ((major & 0xFF) << 8 | minor & 0xFF)
|
|
|
|
typedef enum HBMSelectBtnNum {
|
|
HBM_SELECT_NULL = -1,
|
|
|
|
HBM_SELECT_HOMEBTN,
|
|
HBM_SELECT_BTN1,
|
|
HBM_SELECT_BTN2,
|
|
HBM_SELECT_BTN3,
|
|
HBM_SELECT_BTN4,
|
|
|
|
HBM_SELECT_MAX
|
|
} HBMSelectBtnNum;
|
|
|
|
enum HBMSoundEvent_et {
|
|
HBM_SOUND_EVENT_0, // StartInitSound? and then num would not matter
|
|
HBM_SOUND_EVENT_1, // EndInitSound? and then num would not matter
|
|
HBM_SOUND_EVENT_2, // Fadeout, num = ms? see calc_fadeoutAnm
|
|
HBM_SOUND_EVENT_3, // Blackout, num = ms? from various
|
|
HBM_SOUND_EVENT_4, // ShutdownSound? and then num would not matter
|
|
HBM_SOUND_EVENT_PLAY, /* num = HBMSound_et (see below) */
|
|
};
|
|
|
|
enum HBMSound_et {
|
|
HBM_SOUND_HOME_BUTTON,
|
|
HBM_SOUND_RETURN_APP,
|
|
HBM_SOUND_GOTO_MENU,
|
|
HBM_SOUND_RESET_APP,
|
|
HBM_SOUND_FOCUS,
|
|
HBM_SOUND_SELECT,
|
|
HBM_SOUND_CANCEL,
|
|
HBM_SOUND_OPEN_CONTROLLER,
|
|
HBM_SOUND_CLOSE_CONTROLLER,
|
|
HBM_SOUND_VOLUME_PLUS,
|
|
HBM_SOUND_VOLUME_MINUS,
|
|
HBM_SOUND_VOLUME_PLUS_LIMIT,
|
|
HBM_SOUND_VOLUME_MINUS_LIMIT,
|
|
HBM_SOUND_NOTHING_DONE,
|
|
HBM_SOUND_VIBE_ON,
|
|
HBM_SOUND_VIBE_OFF,
|
|
HBM_SOUND_START_CONNECT_WINDOW,
|
|
HBM_SOUND_CONNECTED1,
|
|
HBM_SOUND_CONNECTED2,
|
|
HBM_SOUND_CONNECTED3,
|
|
HBM_SOUND_CONNECTED4,
|
|
HBM_SOUND_END_CONNECT_WINDOW,
|
|
HBM_SOUND_MANUAL_OPEN,
|
|
HBM_SOUND_MANUAL_FOCUS,
|
|
HBM_SOUND_MANUAL_SELECT,
|
|
HBM_SOUND_MANUAL_SCROLL,
|
|
HBM_SOUND_MANUAL_CANCEL,
|
|
HBM_SOUND_MANUAL_RETURN_APP
|
|
};
|
|
|
|
typedef int HBMSoundCallback(int evt, int num);
|
|
typedef struct HBMDataInfo {
|
|
/* 0x00 */ void* layoutBuf;
|
|
/* 0x04 */ void* spkSeBuf;
|
|
/* 0x08 */ void* msgBuf;
|
|
/* 0x0C */ void* configBuf;
|
|
/* 0x10 */ void* mem;
|
|
/* 0x14 */ HBMSoundCallback* sound_callback;
|
|
/* 0x18 */ int backFlag;
|
|
/* 0x1C */ int region;
|
|
/* 0x20 */ int cursor;
|
|
/* 0x28 */ u32 memSize;
|
|
/* 0x2C */ f32 frameDelta;
|
|
/* 0x30 */ Vec2 adjust;
|
|
/* 0x38 */ MEMAllocator* pAllocator;
|
|
} HBMDataInfo; // size 0x3C
|
|
|
|
typedef struct HBMKPadData {
|
|
KPADStatus* kpad;
|
|
Vec2 pos;
|
|
u32 use_devtype;
|
|
} HBMKPadData; // size 0x10
|
|
|
|
typedef struct HBMControllerData {
|
|
HBMKPadData wiiCon[WPAD_MAX_CONTROLLERS];
|
|
} HBMControllerData; // size 0x40
|
|
|
|
void HBMCreate(const HBMDataInfo* pHBInfo);
|
|
void HBMDelete(void);
|
|
void HBMInit(void);
|
|
HBMSelectBtnNum HBMCalc(const HBMControllerData* pController);
|
|
void HBMDraw(void);
|
|
HBMSelectBtnNum HBMGetSelectBtnNum(void);
|
|
void HBMSetAdjustFlag(BOOL flag);
|
|
void HBMStartBlackOut(void);
|
|
BOOL HBMIsReassignedControllers(void);
|
|
|
|
void HBMCreateSound(void* soundData, void* memBuf, u32 memSize);
|
|
void HBMDeleteSound(void);
|
|
void HBMUpdateSound(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // _REVOLUTION_HBM_H_
|