SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
SpkSystem.cpp
1#include "Game/Speaker/SpkSystem.hpp"
2#include "Game/Speaker/SpkSpeakerCtrl.hpp"
3
4SpkSystem::SpkSystem(JKRHeap *pHeap) : JASGlobalInstance(this) {
5 mData = nullptr;
6
7 if (!pHeap) {
8 pHeap = JKRHeap::sCurrentHeap;
9 }
10
11 mHeap = pHeap;
12 mMixBuffer = new(pHeap, 0) SpkMixingBuffer(pHeap);
13 mSoundHolder = new(pHeap, 0) SpkSoundHolder();
14 SpkSpeakerCtrl::setup();
15 SpkSpeakerCtrl::setMixingBuffer(mMixBuffer);
16}
17
18void SpkSystem::setResource(JKRArchive *pArchive, u16 a2, u16 a3) {
19 mData = new(mHeap, 0) SpkData(pArchive);
20 mData->loadTable(a2);
21 mData->loadWave(a3);
22}
23
24void SpkSystem::framework() {
25 SpkSpeakerCtrl::framework();
26 mSoundHolder->framework();
27}
28
29void SpkSystem::startSound(s32 a1, s32 a2, SpkSoundHandle *pHandle) {
30 mSoundHolder->startSound(a1, a2, pHandle);
31}
32
33void SpkSystem::newSoundMemPool(s32 a1) {
34 JASPoolAllocObject<SpkSystem>::memPool_.newMemPool(0x60, a1);
35}
36
37void SpkSystem::connect(s32 chan) {
38 SpkSpeakerCtrl::connect(chan);
39}
40
41void SpkSystem::disconnect(s32 chan) {
42 SpkSpeakerCtrl::disconnect(chan);
43}
44
45void SpkSystem::reconnect(s32 chan) {
46 if (chan < 0) {
47 for (int i = 0; i < 4; i++) {
48 SpkSpeakerCtrl::reconnect(i);
49 }
50 }
51 else {
52 SpkSpeakerCtrl::reconnect(chan);
53 }
54}
55
56void SpkSystem::extensionProcess(s32 a1, s32 a2) {
57 SpkSpeakerCtrl::extensionProcess(a1, a2);
58}
59
60f32 SpkSystem::getDeviceVolume(s32 chan) {
61 return SpkSpeakerCtrl::getDeviceVolume(chan);
62}