Give MusyX it's own types

This commit is contained in:
2022-08-05 12:43:46 -07:00
parent 7043befead
commit 79eff1f8b5
8 changed files with 178 additions and 72 deletions

View File

@@ -1,30 +1,81 @@
#ifndef MUSYX_H
#define MUSYX_H
#include "types.h"
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed long s32;
typedef unsigned long u32;
typedef float f32;
typedef double f64;
#ifndef NULL
#define NULL 0
#endif
#ifndef bool8
typedef unsigned char bool8;
#endif
#ifndef bool
typedef signed long bool;
#define FALSE 0
#define TRUE 1
#endif
#define SND_STUDIO_MAXNUM 8
#define SND_STUDIO_DEFAULT 0
#define SND_STUDIO_NONE 0xFF
#define SYNTH_MAX_VOICES 64
typedef u32 SND_SEQID;
typedef u32 SND_VOICEID;
typedef u32 SND_STREAMID;
typedef u16 SND_GROUPID;
typedef u16 SND_SONGID;
typedef u16 SND_FXID;
typedef enum {
SND_OUTPUTMODE_MONO = 0,
SND_OUTPUTMODE_STEREO,
SND_OUTPUTMODE_SURROUND,
} SND_OUTPUTMODE;
typedef struct SND_PLAYBACKINFO {
u32 frq;
u8 stereo;
u8 bits;
s8 deviceName[256];
s8 versionText[256];
} SND_PLAYBACKINFO;
typedef struct SND_SEQVOLDEF {
u8 track;
u8 volGroup;
} SND_SEQVOLDEF;
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _SynthInfo {
u32 freq;
u8 unk[0x20c];
u8 voices;
u8 music;
u8 sfx;
u8 studios;
} SynthInfo;
typedef struct _SND_HOOKS {
typedef struct SND_HOOKS {
void* (*malloc)(u32 len);
void (*free)(void* addr);
} SND_HOOKS;
typedef struct SND_FVECTOR {
f32 x;
f32 y;
f32 z;
} SND_FVECTOR;
typedef struct SND_FMATRIX {
f32 m[3][3];
f32 t[3];
} SND_FMATRIX;
#define SND_AUX_NUMPARAMETERS 4
#define SND_AUX_REASON_BUFFERUPDATE 0
@@ -97,10 +148,10 @@ typedef struct SND_AUX_DELAY {
} SND_AUX_DELAY;
void sndAuxCallbackDelay(u8 reason, SND_AUX_INFO* info, void* user);
s32 sndAuxCallbackUpdateSettingsDelay(SND_AUX_DELAY* delay);
s32 sndAuxCallbackPrepareDelay(SND_AUX_DELAY* rev);
s32 sndAuxCallbackShutdownDelay(SND_AUX_DELAY* rev);
s32 sndAuxCallbackUpdateSettingsReverbHI(SND_AUX_REVERBHI* rev);
bool sndAuxCallbackUpdateSettingsDelay(SND_AUX_DELAY* delay);
bool sndAuxCallbackPrepareDelay(SND_AUX_DELAY* rev);
bool sndAuxCallbackShutdownDelay(SND_AUX_DELAY* rev);
bool sndAuxCallbackUpdateSettingsReverbHI(SND_AUX_REVERBHI* rev);
typedef struct _SND_REVSTD_DELAYLINE {
s32 inPoint;
@@ -135,20 +186,32 @@ typedef struct SND_AUX_REVERBSTD {
} SND_AUX_REVERBSTD;
void sndAuxCallbackReverbSTD(u8 reason, SND_AUX_INFO* info, void* user);
s32 sndAuxCallbackPrepareReverbSTD(SND_AUX_REVERBSTD* rev);
s32 sndAuxCallbackShutdownReverbSTD(SND_AUX_REVERBSTD* rev);
s32 sndAuxCallbackUpdateSettingsReverbSTD(SND_AUX_REVERBSTD* rev);
bool sndAuxCallbackPrepareReverbSTD(SND_AUX_REVERBSTD* rev);
bool sndAuxCallbackShutdownReverbSTD(SND_AUX_REVERBSTD* rev);
bool sndAuxCallbackUpdateSettingsReverbSTD(SND_AUX_REVERBSTD* rev);
typedef struct SND_FVECTOR {
f32 x;
f32 y;
f32 z;
} SND_FVECTOR;
typedef struct SND_PARAMETER {
u8 ctrl;
union {
u8 value7;
u16 value14;
} paraData;
} SND_PARAMETER;
typedef struct SND_FMATRIX {
f32 m[3][3];
f32 t[3];
} SND_FMATRIX;
typedef struct SND_PARAMETER_INFO {
u8 numPara;
SND_PARAMETER* paraArray;
} SND_PARAMETER_INFO;
#define sndFXStart(fid,vol,pan) sndFXStartEx(fid,vol,pan,SND_STUDIO_DEFAULT)
SND_VOICEID sndFXStartEx(SND_FXID fid,u8 vol,u8 pan,u8 studio);
SND_VOICEID sndFXStartPara(SND_FXID fid,u8 vol,u8 pan,u8 studio,u8 numPara,...);
SND_VOICEID sndFXStartParaInfo(SND_FXID fid,u8 vol,u8 pan,u8 studio,SND_PARAMETER_INFO *paraInfo);
SND_VOICEID sndFXCheck(SND_VOICEID vid);
bool sndFXKeyOff(SND_VOICEID vid);
bool sndFXCtrl(SND_VOICEID vid,u8 ctrl,u8 value);
bool sndFXCtrl14(SND_VOICEID vid,u8 ctrl,u16 value);
#ifdef __cplusplus
}

View File

@@ -6,6 +6,16 @@
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _SynthInfo {
u32 freq;
u8 unk[0x20c];
u8 voices;
u8 music;
u8 sfx;
u8 studios;
} SynthInfo;
typedef s32 (*SND_COMPARE)(u16*, u8*);
void dataInit(u32, s32); /* extern */