1#include "Game/Speaker/SpkSound.hpp"
2#include "JSystem/JAudio2/JASHeapCtrl.hpp"
4void SpkSoundHandle::releaseSound() {
9 mSound->mSoundHandle =
nullptr;
13SpkSoundVolume::SpkSoundVolume() {
24void SpkSoundVolume::setRelease(s32 release) {
35void SpkSoundVolume::setFadeOut(s32 fadeOut) {
36 BOOL status = OSDisableInterrupts();
46 OSRestoreInterrupts(status);
49SpkSound::SpkSound() : JSUPtrLink(this), mSoundHandle(nullptr), _14(-1), _18(0), _1C(0), _20(0), _24(100), _28(0), _2C(0), _30(-1), _34(-1), _38(0), _3C(-1) {
54SpkSound::~SpkSound() {
58 JASPoolAllocObject<SpkSound>::memPool_.free(
this, 0x60);
65void SpkSound::stop(s32 a1) {
67 s32 fade = (6 * a1) / 40;
70 mVolume.setFadeOut(fade);
73 mVolume.setRelease(_28);
82 mSoundHandle = pHandle;
83 pHandle->mSound =
this;
86void SpkSound::releaseHandle() {
91 mSoundHandle->mSound =
nullptr;
92 mSoundHandle =
nullptr;
95bool SpkSound::start(s32 a1, s32 a2) {
97 bool res = setWaveData(a2);
107void SpkSound::unlock() {
115SpkSoundHolder::SpkSoundHolder() : JASGlobalInstance(this) {
119 for (
int i = 0; i < 4; i++) {
124bool SpkSoundHolder::update(s32 a1) {
125 BOOL status = OSDisableInterrupts();
126 bool ret = updateEachSound(a1);
127 OSRestoreInterrupts(status);