Improve audio types

This commit is contained in:
gamemasterplc 2024-11-04 22:17:14 -06:00
parent 44107236ed
commit 4a4967d4a3
11 changed files with 430 additions and 298 deletions

View file

@ -3,40 +3,41 @@
#include "dolphin.h"
typedef struct hu_snd_grp_data {
/* 0x00 */ s16 ovl;
/* 0x02 */ s16 grpset;
/* 0x04 */ s32 auxANo;
/* 0x08 */ s32 auxBNo;
/* 0x0C */ s8 auxAVol;
/* 0x0D */ s8 auxBVol;
} HuSndGrpData;
typedef struct sndGrpTbl_s {
s16 ovl;
s16 grpSet;
s32 auxANo;
s32 auxBNo;
s8 auxAVol;
s8 auxBVol;
} SNDGRPTBL;
void HuAudInit(void);
s32 HuAudStreamPlay(char *name, s32 arg1);
s32 HuAudStreamPlay(char *name, BOOL flag);
void HuAudStreamVolSet(s16 vol);
void HuAudStreamPauseOn(void);
void HuAudStreamPauseOff(void);
void HuAudStreamFadeOut(s32 arg0);
void HuAudStreamFadeOut(s32 streamNo);
void HuAudAllStop(void);
void HuAudFadeOut(s32 arg0);
s32 HuAudFXPlay(s32 arg0);
s32 HuAudFXPlayVol(s32 arg0, s16 arg1);
s32 HuAudFXPlayVolPan(s32 arg0, s16 arg1, s16 arg2);
void HuAudFXStop(s32 arg0);
void HuAudFadeOut(s32 speed);
int HuAudFXPlay(int seId);
int HuAudFXPlayVol(int seId, s16 vol);
int HuAudFXPlayVolPan(int seId, s16 vol, s16 pan);
void HuAudFXStop(int seNo);
void HuAudFXAllStop(void);
void HuAudFXFadeOut(s32 arg0, s32 arg1);
void HuAudFXPanning(s32 arg0, s16 arg1);
void HuAudFXListnerSet(Vec* arg0, Vec* arg1, float arg2, float arg3);
void HuAudFXListnerSetEX(Vec* arg0, Vec* arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6);
void HuAudFXFadeOut(int seNo, s32 speed);
void HuAudFXPanning(int seNo, s16 pan);
void HuAudFXListnerSet(Vec *pos, Vec *heading, float sndDist, float sndSpeed);
void HuAudFXListnerSetEX(Vec *pos, Vec *heading, float sndDist, float sndSpeed, float startDis, float frontSurDis, float backSurDis);
void HuAudFXListnerUpdate(Vec *arg0, Vec *arg1);
s32 HuAudFXEmiterPlay(s32 arg0, Vec *arg1);
void HuAudFXEmiterUpDate(s32 arg0, Vec *arg1);
int HuAudFXEmiterPlay(int seId, Vec *pos);
void HuAudFXEmiterUpDate(int seNo, Vec *pos);
void HuAudFXListnerKill(void);
void HuAudFXPauseAll(s32 arg0);
s32 HuAudFXStatusGet(s32 arg0);
s32 HuAudFXPitchSet(s32 arg0, s16 arg1);
s32 HuAudFXVolSet(s32 arg0, s16 arg1);
s32 HuAudFXStatusGet(int seNo);
s32 HuAudFXPitchSet(int seNo, s16 pitch);
s32 HuAudFXVolSet(int seNo, s16 vol);
s32 HuAudSeqPlay(s16 arg0);
void HuAudSeqStop(s32 arg0);
void HuAudSeqFadeOut(s32 arg0, s32 arg1);
@ -73,6 +74,6 @@ extern float Snd3DDistOffset;
extern s32 musicOffF;
extern u8 fadeStat;
extern HuSndGrpData HuSndGrpTbl[];
extern SNDGRPTBL sndGrpTable[];
#endif

View file

@ -1,87 +1,203 @@
#ifndef _GAME_MSM_H
#define _GAME_MSM_H
#ifndef MSM_H
#define MSM_H
#include "dolphin.h"
#include "musyx/musyx.h"
typedef struct {
s32 unk00;
s32 unk04;
char unk08[4];
char *unk0C;
char *unk10;
s32 unk14;
s32 unk18;
s32 unk1C;
void *unk20;
s32 unk24;
} UnkMsmStruct_00; // Size 0x28
#define MSM_SEPARAM_NONE 0
#define MSM_SEPARAM_VOL (1 << 0)
#define MSM_SEPARAM_PAN (1 << 1)
#define MSM_SEPARAM_PITCH (1 << 2)
#define MSM_SEPARAM_SPAN (1 << 3)
#define MSM_SEPARAM_AUXVOLA (1 << 4)
#define MSM_SEPARAM_AUXVOLB (1 << 5)
#define MSM_SEPARAM_POS (1 << 6)
typedef struct {
/* 0x00 */ s32 unk00;
/* 0x04 */ s8 unk04;
/* 0x05 */ s8 unk05;
/* 0x06 */ s16 unk06;
/* 0x08 */ char unk08[1];
/* 0x09 */ s8 unk09;
/* 0x0A */ s8 unk0A;
/* 0x0B */ char unk0B[5];
/* 0x10 */ Vec unk10;
} UnkMsmStruct_01; // Size 0x1C
#define MSM_LISTENER_NONE 0
#define MSM_LISTENER_STARTDIS (1 << 0)
#define MSM_LISTENER_FRONTSURDIS (1 << 1)
#define MSM_LISTENER_BACKSURDIS (1 << 2)
typedef struct {
/* 0x00 */ s32 unk00;
/* 0x04 */ float startDis;
/* 0x08 */ float frontSurDis;
/* 0x0C */ float backSurDis;
} UnkMsmStruct_02; // Size (min: 0x10, max: 0x1C)
#define MSM_MUSPARAM_NONE 0
#define MSM_MUSPARAM_CHAN (1 << 0)
#define MSM_MUSPARAM_VOL (1 << 1)
#define MSM_MUSPARAM_PAUSE (1 << 2)
#define MSM_MUSPARAM_FADESPEED (1 << 3)
#define MSM_MUSPARAM_SPEED (1 << 4)
typedef struct {
/* 0x00 */ s32 unk00;
/* 0x04 */ s8 unk04;
/* 0x05 */ s8 unk05;
/* 0x06 */ u16 unk06;
} UnkMsmStruct_03; // Size unknown (min: 8, max: 0x10)
#define MSM_STREAMPARAM_NONE 0
#define MSM_STREAMPARAM_VOL (1 << 0)
#define MSM_STREAMPARAM_PAN (1 << 1)
#define MSM_STREAMPARAM_SPAN (1 << 2)
#define MSM_STREAMPARAM_AUXA (1 << 4)
#define MSM_STREAMPARAM_AUXB (1 << 5)
#define MSM_STREAMPARAM_FADESPEED (1 << 8)
#define MSM_STREAMPARAM_CHAN (1 << 9)
#define MSM_STREAMPARAM_PAUSE (1 << 10)
typedef struct {
/* 0x00 */ s32 unk00;
/* 0x04 */ char unk04[1];
/* 0x05 */ s8 unk05;
/* 0x06 */ u16 unk06;
/* 0x08 */ char unk08[1];
} UnkMsmStruct_04; // Size unknown (min: 9, max: 0x18)
#define MSM_ERR_OPENFAIL -1
#define MSM_ERR_READFAIL -2
#define MSM_ERR_OUTOFMEM -10
#define MSM_ERR_OUTOFAMEM -20
#define MSM_ERR_INITFAIL -20
#define MSM_ERR_INVALID_AUXPARAM -31
#define MSM_ERR_PLAYFAIL -33
#define MSM_ERR_STREAMALLOC_FAIL -35
#define MSM_ERR_INSTALLED -36
#define MSM_ERR_GRP_NOTLOADED -103
#define MSM_ERR_INVALIDID -120
#define MSM_ERR_INVALIDFILE -121
#define MSM_ERR_REMOVEDID -122
#define MSM_ERR_MUSGRP_NOTLOADED -123
#define MSM_ERR_OUTOFMUS -130
void msmSysRegularProc(void);
void msmSysSetOutputMode(s32 arg0);
void msmSysSetAux(s32 arg0, s32 arg1);
s32 msmSysGetSampSize(s32 arg0);
#define MSM_VOL_MAX 127
#define MSM_PAN_LEFT 32
#define MSM_PAN_CENTER 64
#define MSM_PAN_RIGHT 96
#define MSM_SE_DONE 0
#define MSM_SE_PLAY 1
#define MSM_SE_PAUSEIN 2
#define MSM_SE_PAUSEOUT 3
#define MSM_MUS_DONE 0
#define MSM_MUS_STOP 1
#define MSM_MUS_PLAY 2
#define MSM_MUS_PAUSE 3
#define MSM_STREAM_DONE 0
#define MSM_STREAM_STOP 1
#define MSM_STREAM_PLAY 2
#define MSM_STREAM_PAUSEIN 3
#define MSM_STREAM_PAUSEOUT 4
#define MSM_STREAM_DVDERROR 5
#define MSM_MUS_MAX 4
#define MSM_STREAM_NONE -1
#define MSM_AUXA_DEFAULT 0
#define MSM_AUXB_DEFAULT 1
#define MSM_AUX_NONE -1
#define MSM_ENTRY_SENO_MAX 32
typedef BOOL (*MSM_OPEN)(s32 entrynum, DVDFileInfo *fileInfo);
typedef BOOL (*MSM_READ)(DVDFileInfo *fileInfo, void *addr, s32 length, s32 offset, s32 prio);
typedef BOOL (*MSM_CLOSE)(DVDFileInfo *fileInfo);
typedef struct msmAram_s {
BOOL skipARInit;
union {
struct {
u32 aramEnd;
};
struct {
u32 numEntries;
u32 *stackIndex;
};
};
} MSM_ARAM;
typedef struct msmInit_s {
char *msmPath;
char *pdtPath;
MSM_OPEN open;
MSM_READ read;
MSM_CLOSE close;
void *heap;
u32 heapSize;
} MSM_INIT;
typedef struct msmSeParam_s {
s32 flag;
s8 vol;
s8 pan;
s16 pitch;
u8 span;
s8 auxAVol;
s8 auxBVol;
s32 pad;
Vec pos;
} MSM_SEPARAM;
typedef struct msmSe_s {
u16 groupId;
u16 fxId;
s8 vol;
s8 pan;
s16 pitchBend;
u8 span;
u8 reverb;
u8 chorus;
u8 doppler;
s8 comp;
u8 pad[3];
} MSMSE;
typedef struct msmSeListener_s {
s32 flag;
float startDis;
float frontSurDis;
float backSurDis;
} MSM_SELISTENER;
typedef struct msmMusParam_s {
s32 flag;
s8 chan;
s8 vol;
u16 fadeSpeed;
u16 speed;
} MSM_MUSPARAM;
typedef struct msmStreamParam_s {
s32 flag;
s8 vol;
s8 pan;
s8 span;
s8 auxA;
s8 auxB;
s8 chan;
u16 fadeSpeed;
} MSM_STREAMPARAM;
s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram);
void msmSysSetOutputMode(SND_OUTPUTMODE mode);
s32 msmSysDelGroupAll(void);
s32 msmSysDelGroupBase(s32 arg0);
void msmSysLoadGroupBase(s32 arg0, void *arg1);
s32 msmSysLoadGroupSet(s32 arg0, void *arg1);
s32 msmSysInit(char **arg0, UnkMsmStruct_00 *arg1);
s32 msmMusGetMidiCtrl(s32 arg0, s32 arg1, s32 arg2);
s32 msmMusGetNumPlay(s32 arg0);
s32 msmMusGetStatus(s32 arg0);
void msmMusPauseAll(s32 arg0, s32 arg1);
void msmMusPause(s32 arg0, s32 arg1, s32 arg2);
void msmMusSetParam(s16 arg0, UnkMsmStruct_04 *arg1);
void msmMusStopAll(s32 arg0, s32 arg1);
void msmMusStop(s32 arg0, s32 arg1);
s32 msmMusPlay(s32 arg0, UnkMsmStruct_03 *arg1);
void msmSeDelListener(void);
void msmSeUpdataListener(Vec *arg0, Vec *arg1);
void msmSeSetListener(Vec* arg0, Vec* arg1, float arg2, float arg3, UnkMsmStruct_02 *arg4);
s32 msmSeGetEntryID(s32 arg0, void *arg1);
s32 msmSeGetNumPlay(s32 arg0);
s32 msmSeGetStatus(s32 arg0);
s32 msmSeSetParam(s32 arg0, UnkMsmStruct_01 *arg1);
void msmSePauseAll(s32 arg0, s32 arg1);
void msmSeStopAll(s32 arg0, s32 arg1);
void msmSeStop(s32 arg0, s32 arg1);
s32 msmSePlay(s32 arg0, UnkMsmStruct_01 *arg1);
s32 msmStreamGetStatus(s32 arg0);
void msmStreamPauseAll(s32 arg0);
void msmStreamStop(s32 arg0, s32 arg1);
s32 msmStreamPlay(s16 arg0, s32 *arg1);
s32 msmSysLoadGroup(s32 grp, void *buf, BOOL flag);
s32 msmSysGetSampSize(BOOL baseGrp);
s32 msmSysDelGroupBase(s32 grpNum);
#endif
s32 msmSeSetParam(int seNo, MSM_SEPARAM *param);
int msmSePlay(int seId, MSM_SEPARAM *param);
s32 msmSeStop(int seNo, s32 speed);
s32 msmSePauseAll(BOOL pause, s32 speed);
s32 msmSePause(int seNo, BOOL pause, s32 speed);
void msmSeStopAll(BOOL checkGrp, s32 speed);
s32 msmSeSetListener(Vec *pos, Vec *heading, float sndDist, float sndSpeed, MSM_SELISTENER *listener);
s32 msmSeUpdataListener(Vec *pos, Vec *heading);
void msmSeDelListener(void);
s32 msmSeGetStatus(int seNo);
s32 msmSeGetNumPlay(BOOL baseGrp);
s32 msmSeGetEntryID(s16 seId, int *seNo);
int msmMusPlay(int musId, MSM_MUSPARAM *musParam);
s32 msmMusStop(int musNo, s32 speed);
s32 msmMusPauseAll(BOOL pause, s32 speed);
s32 msmMusPause(int musNo, BOOL pause, s32 speed);
s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl);
void msmMusStopAll(BOOL checkGrp, s32 speed);
s32 msmMusGetStatus(int musNo);
s32 msmMusGetNumPlay(BOOL baseGrp);
int msmStreamPlay(int streamId, MSM_STREAMPARAM *streamParam);
s32 msmStreamStop(int streamNo, s32 speed);
s32 msmStreamPauseAll(BOOL pause, s32 speed);
s32 msmStreamPause(int streamNo, BOOL pause, s32 speed);
void msmStreamStopAll(s32 speed);
s32 msmStreamGetStatus(int streamNo);
#endif