SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
SpkWave.cpp
1#include "Game/Speaker/SpkWave.hpp"
2
3SpkWave::SpkWave() {
4 mResource = nullptr;
5}
6
7void SpkWave::setResource(void * pResource) {
8 OSDisableInterrupts();
9 mResource = pResource;
10 OSEnableInterrupts();
11}
12
13u32 SpkWave::getWaveSize(long wave) const {
14 if (mResource == nullptr) {
15 return 0;
16 } else {
17 return getWaveData(wave)->mSize;
18 }
19}
20
21u32 SpkWave::getLoopStartPos(long wave) const {
22 if (mResource == nullptr) {
23 return 0;
24 } else {
25 return getWaveData(wave)->mLoopStartPos;
26 }
27}
28
29u32 SpkWave::getLoopEndPos(long wave) const {
30 if (mResource == nullptr) {
31 return 0;
32 } else {
33 return getWaveData(wave)->mLoopEndPos;
34 }
35}
36
37u8** SpkWave::getWave(long wave) const {
38 if (mResource == nullptr) {
39 return 0;
40 } else {
41 return &getWaveData(wave)->mWave;
42 }
43}
44
45WaveData* SpkWave::getWaveData(long wave) const {
46 return (WaveData*)((u32)mResource + *(u32*)((u32)mResource + wave * 4 + 8));
47}