mirror of
https://github.com/PrimeDecomp/prime.git
synced 2025-12-08 15:04:54 +00:00
More musyx imps, cleanups
This commit is contained in:
@@ -76,6 +76,29 @@ typedef struct SND_FMATRIX {
|
||||
f32 t[3];
|
||||
} SND_FMATRIX;
|
||||
|
||||
s32 sndInit(u8 voices, u8 music, u8 sfx, u8 studios, u32 flags, u32 aramSize);
|
||||
void sndQuit(void);
|
||||
|
||||
bool sndIsInstalled();
|
||||
bool sndIsIdle();
|
||||
SND_PLAYBACKINFO* sndGetPlayBackInfo();
|
||||
|
||||
void sndSetMaxVoices(u8 music, u8 sfx);
|
||||
|
||||
#define SND_USERMUSIC_VOLGROUPS 0xFA
|
||||
#define SND_USERFX_VOLGROUPS 0xFB
|
||||
#define SND_USERALL_VOLGROUPS 0xFC
|
||||
#define SND_MUSIC_VOLGROUPS 0xFD
|
||||
#define SND_FX_VOLGROUPS 0xFE
|
||||
#define SND_ALL_VOLGROUPS 0xFF
|
||||
|
||||
#define SND_MAX_USER_VOLGROUP 20
|
||||
|
||||
void sndVolume(u8 volume, u16 time, u8 volGroup);
|
||||
void sndMasterVolume(u8 volume, u16 time, u8 music, u8 fx);
|
||||
void sndOutputMode(SND_OUTPUTMODE mode);
|
||||
void sndSilence();
|
||||
|
||||
#define SND_AUX_NUMPARAMETERS 4
|
||||
|
||||
#define SND_AUX_REASON_BUFFERUPDATE 0
|
||||
@@ -204,14 +227,14 @@ typedef struct SND_PARAMETER_INFO {
|
||||
|
||||
} 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);
|
||||
#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);
|
||||
bool sndFXCtrl(SND_VOICEID vid, u8 ctrl, u8 value);
|
||||
bool sndFXCtrl14(SND_VOICEID vid, u8 ctrl, u16 value);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -38,6 +38,9 @@ void sndConvertMs(u32* time);
|
||||
void sndConvertTicks(u32* out, u32 seconds);
|
||||
u32 sndConvert2Ms(u32 time);
|
||||
|
||||
void hwDeactivateStudio(u8);
|
||||
u32 hwIsActive(s32);
|
||||
|
||||
extern SND_HOOKS salHooks;
|
||||
|
||||
/* Math */
|
||||
@@ -46,6 +49,11 @@ float salNormalizeVector(SND_FVECTOR* vec);
|
||||
void salCrossProduct(SND_FVECTOR* out, const SND_FVECTOR* a, const SND_FVECTOR* b);
|
||||
void salInvertMatrix(SND_FMATRIX* out, const SND_FMATRIX* in);
|
||||
|
||||
|
||||
/* hardware */
|
||||
/* TODO: Figure out what `unk` is */
|
||||
bool hwAddInput(u8 studio, void* unk);
|
||||
bool hwRemoveInput(u8 studio, void* unk);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
50
include/musyx/synth.h
Normal file
50
include/musyx/synth.h
Normal file
@@ -0,0 +1,50 @@
|
||||
#ifndef __SYNTH_H__
|
||||
#define __SYNTH_H__
|
||||
|
||||
#include "musyx/musyx_priv.h"
|
||||
#ifndef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct SynthVoice {
|
||||
char data1[0xf4];
|
||||
u32 _f4;
|
||||
VoiceID* voiceId;
|
||||
char data2[0x18];
|
||||
u32 _114[2];
|
||||
u8 _11c;
|
||||
u8 _11d;
|
||||
u8 _11e;
|
||||
u8 studio;
|
||||
char data3[0x404 - 0x120];
|
||||
} SynthVoice;
|
||||
|
||||
typedef void (*SND_AUX_CALLBACK)(u8 reason, SND_AUX_INFO * info, void * user);
|
||||
|
||||
extern SND_AUX_CALLBACK synthAuxACallback[8];
|
||||
extern u8 synthAuxAMIDI[8];
|
||||
extern u8 synthAuxAMIDISet[8];
|
||||
extern void* synthAuxAUser[8];
|
||||
extern SND_AUX_CALLBACK synthAuxBCallback[8];
|
||||
extern u8 synthAuxBMIDI[8];
|
||||
extern u8 synthAuxBMIDISet[8];
|
||||
extern void* synthAuxBUser[8];
|
||||
|
||||
s32 vidGetInternalId(SND_VOICEID id);
|
||||
bool synthFXSetCtrl(SND_VOICEID vid, u8 ctrl, u8 value);
|
||||
bool synthFXSetCtrl14(SND_VOICEID vid, u8 ctrl, u16 value);
|
||||
bool synthSendKeyOff(SND_VOICEID vid);
|
||||
SND_VOICEID synthFXStart(SND_FXID fid, u8 vol, u8 pan, u8 studio, u8);
|
||||
void synthVolume(u8 volume, u16 time, u8 volgroup2, s32, s32);
|
||||
|
||||
|
||||
/* TODO: Move this where it belongs */
|
||||
void hwSetAUXProcessingCallbacks(u8 studio,
|
||||
SND_AUX_CALLBACK auxA, void * userA,
|
||||
SND_AUX_CALLBACK auxB, void * userB);
|
||||
#ifndef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // __SYNTH_H__
|
||||
|
||||
Reference in New Issue
Block a user