From 803bc041c7e228e2b7c88afd1121550e51db3f82 Mon Sep 17 00:00:00 2001 From: Max Roncace Date: Fri, 20 Feb 2026 05:53:27 -0500 Subject: Implement Z2AudioCS (#3103) --- include/Z2AudioCS/SpkSystem.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 include/Z2AudioCS/SpkSystem.h (limited to 'include/Z2AudioCS/SpkSystem.h') diff --git a/include/Z2AudioCS/SpkSystem.h b/include/Z2AudioCS/SpkSystem.h new file mode 100644 index 0000000000..05541c72e5 --- /dev/null +++ b/include/Z2AudioCS/SpkSystem.h @@ -0,0 +1,38 @@ +#ifndef Z2AUDIOCS_SPKSYSTEM_H +#define Z2AUDIOCS_SPKSYSTEM_H + +#include "Z2AudioCS/SpkData.h" +#include "Z2AudioCS/SpkMixingBuffer.h" +#include "Z2AudioCS/SpkSound.h" +#include "JSystem/JAudio2/JASGadget.h" +#include "JSystem/JKernel/JKRArchive.h" +#include "JSystem/JKernel/JKRHeap.h" +#include + +class SpkSystem : protected JASGlobalInstance { +public: + SpkSystem(JKRHeap* heap); + void setResource(JKRArchive* resArc, u16, u16); + void framework(void); + void startSound(s32 chan, s32 param_1, SpkSoundHandle* handle); + void startLevelSound(s32 chan, s32 param_1, SpkSoundHandle* handle); + void stopAll(s32 chan, s32 msec); + void setMasterVolume(f32 vol); + f32 getMasterVolume(void); + void setConfigVolume(s32 vol); + static void newSoundMemPool(s32 numOfSound); + static void connect(s32 chan); + static void disconnect(s32 chan); + static void extensionProcess(s32, s32); + + inline SpkData* getData(void) const { return mData; } + inline SpkMixingBuffer* getMixingBuffer(void) const { return mMixingBuffer; } + +private: + /* 0x00 */ JKRHeap* mHeap; + /* 0x04 */ SpkData* mData; + /* 0x08 */ SpkMixingBuffer* mMixingBuffer; + /* 0x0C */ SpkSoundHolder* mSoundHolder; +}; + +#endif /* Z2AUDIOCS_SPKSYSTEM_H */ -- cgit v1.2.3