#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include <n_audio/PR/n_libaudio.h>
extern void func_80243070(Struct87s *arg0);
extern u8 *soundfont1ctl_ROM_START;
extern u8 *soundfont1ctl_ROM_END;
extern u8 *soundfont1tbl_ROM_START;
Struct87s D_803835F0;
ALBank *sSfxSoundBank;
void sfxInstruments_init(void) {
ALBank *bnk;
s32 size;
ALInstrument *inst;
ALBankFile *bnk_f;
extern ALBankFile *port_alBnkfNew(u8 *ctlData, s32 ctlSize, u8 *tblData);
size = soundfont1ctl_ROM_END - soundfont1ctl_ROM_START;
bnk_f = port_alBnkfNew(soundfont1ctl_ROM_START, size, soundfont1tbl_ROM_START);
bnk = bnk_f->bankArray[0];
inst = bnk->instArray[0];
D_803835F0.unk0 = inst->soundCount;
D_803835F0.unk4 = 0x100;
D_803835F0.unk10 = 0x40;
D_803835F0.max_sounds = 24;
D_803835F0.heap = audioManager_getALHeapInfo();
func_80243070(&D_803835F0);
sSfxSoundBank = bnk;
}
intptr_t sfxInstruments_func_8033531C(enum sfx_e sfx_id, struct46s *arg1) {
return (intptr_t) func_80244608(sSfxSoundBank, (s16) (sfx_id + 1), arg1);
}
intptr_t sfxInstruments_func_80335354(enum sfx_e sfx_id, struct46s *arg1) {
return (intptr_t) func_80244608(musicInstruments_getSoundBank(), (s16) (sfx_id + 1), arg1);
}
void sfxInstruments_func_80335394(intptr_t arg0, f32 arg1) {
func_80244978(arg0, AL_SEQP_STOP_EVT, reinterpret_cast(s32, arg1));
}
void sfxInstruments_func_803353BC(intptr_t arg0, u16 arg1) {
if(arg1 > 0x7fff)
arg1 = 0x7fff;
func_80244978(arg0, AL_SEQP_PROG_EVT, arg1);
}
void sfxInstruments_func_803353F4(intptr_t arg0, s32 arg1) {
func_80244978(arg0, 0x100, arg1);
}
void sfxInstruments_func_80335418(intptr_t arg0, s32 arg1) {
func_80244978(arg0, AL_SEQ_END_EVT, arg1);
}
void sfxInstruments_func_8033543C(Struct81s *arg0) {
if(arg0 != NULL && func_802445AC(arg0) != 0){
func_80244814(arg0);
}
}
bool sfxInstruments_func_80335470(Struct81s *arg0) {
return func_802445AC(arg0) != 0;
}
u32 sfxInstruments_func_80335494(Struct81s *arg0) {
return func_802445AC(arg0);
}
s32 sfxInstruments_getSoundCount(void) {
return sSfxSoundBank->instArray[0]->soundCount;
}
s32 sfxInstruments_getMusicSoundBankSoundCount(void) {
return musicInstruments_getSoundBank()->instArray[0]->soundCount;
}
bool func_803354EC(enum sfx_e sfx_id) {
return func_802445C4(sSfxSoundBank, (s16) (sfx_id + 1));
}
bool func_80335520(enum sfx_e sfx_id) {
return func_802445C4(musicInstruments_getSoundBank(), (s16) (sfx_id + 1));
}