Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
SpkSound.h
Go to the documentation of this file.
1#ifndef Z2AUDIOCS_SPKSOUND_H
2#define Z2AUDIOCS_SPKSOUND_H
3
8#include <revolution/types.h>
9
10class SpkSound;
11
13public:
14 SpkSoundHandle(void) : mSound(NULL) {}
17 }
18 void releaseSound(void);
19
20 inline bool isSoundAttached() const {
21 return mSound != NULL;
22 }
23 inline SpkSound* operator->(void) const {
24 JUT_ASSERT(62, mSound != NULL);
25 return mSound;
26 }
27 inline operator bool() const {
28 return isSoundAttached();
29 }
30
31 /* 0x00 */ SpkSound* mSound;
32};
33
35public:
36 SpkSoundVolume(void);
37 void setRelease(s32);
38 void setFadeOut(s32);
39 f32 calc(bool&);
40 void setTableVolume(f32);
41
42 /* 0x00 */ f32 field_0x00;
43 /* 0x04 */ f32 field_0x04;
44 /* 0x08 */ f32 field_0x08;
45 /* 0x0C */ f32 field_0x0c;
46 /* 0x10 */ f32 field_0x10;
47 /* 0x14 */ f32 field_0x14;
48 /* 0x18 */ f32 field_0x18;
49 /* 0x1C */ f32 mTableVolume;
50};
51
52class SpkSound : public JASPoolAllocObject<SpkSound>, public JSULink<SpkSound> {
53public:
54 SpkSound(void);
55 ~SpkSound(void);
56 void update(f32 vol);
57 void stop(s32 msec);
58 void startRelease(void);
59 bool isHandleAttached(void) const;
60 void attachHandle(SpkSoundHandle* handle);
61 void releaseHandle(void);
62 bool start(s32 chan, s32 soundNum);
63 void kill(void);
64 bool isStopping(void) const;
65 bool isDead(void) const;
66 bool isLocked(void) const;
67 void unlock(void);
68 s32 getLifeTime(void);
69 void setLifeTime(s32 lifeTime);
70 void updateLifeTime(void);
72 bool isLoopWave(void);
73 bool setWaveData(s32 soundNum);
74
75 inline s32 getPriority(void) const { return mPriority; }
76 inline void setPriority(s32 priority) { mPriority = priority; }
77 inline s32 getSoundNum(void) const { return mSoundNum; }
78 inline void setSoundNum(s32 soundNum) { mSoundNum = soundNum; }
79
81 /* 0x14 */ s32 mSoundNum;
82 /* 0x18 */ s16* mWaveData;
83 /* 0x1C */ s32 mCurPos;
84 /* 0x20 */ u32 field_0x20;
85 /* 0x24 */ s32 mPriority;
86 /* 0x28 */ u32 field_0x28;
87 /* 0x2C */ s32 mWaveSize;
88 /* 0x30 */ s32 mWaveLoopStart;
89 /* 0x34 */ s32 mWaveLoopEnd;
90 /* 0x38 */ s32 mState;
91 /* 0x3C */ s32 mLifeTime;
93};
94
95class SpkSoundHolder : JASGlobalInstance<SpkSoundHolder> {
96public:
97 SpkSoundHolder(void);
98 bool startSound(s32 chan, s32 soundNum, SpkSoundHandle* handle);
99 bool startLevelSound(s32 chan, s32 soundNum, SpkSoundHandle* handle);
100 void stopAll(s32 chan, s32 msec);
101 bool update(s32 chan);
102 bool updateEachSound(s32 chan);
103 void freeDeadSound(s32 chan);
104 void appendSound(s32 chan, SpkSound* sound);
105 void framework(void);
106
107 inline f32 getMasterVolume(void) const { return mMasterVolume; }
108 inline void setMasterVolume(f32 vol) { mMasterVolume = vol; }
109 inline s32 getConfigVolume(void) const { return mConfigVolume; }
110 inline void setConfigVolume(s32 vol) { mConfigVolume = vol; }
111 inline f32 getConfigVolumeF32(void) const { return (f32)mConfigVolume / 15.0f; }
112
113 /* 0x00 */ JSUList<SpkSound> mSoundList[WPAD_MAX_CONTROLLERS];
114 /* 0x30 */ f32 mSoundVolumes[WPAD_MAX_CONTROLLERS];
115 /* 0x40 */ f32 mMasterVolume;
116 /* 0x44 */ s32 mConfigVolume;
117};
118
119#endif /* Z2AUDIOCS_SPKSOUND_H */
Definition JASGadget.h:12
Definition JASHeapCtrl.h:284
Definition JSUList.h:96
Definition SpkSound.h:12
bool isSoundAttached() const
Definition SpkSound.h:20
void releaseSound(void)
Definition SpkSound.cpp:18
SpkSound * operator->(void) const
Definition SpkSound.h:23
SpkSoundHandle(void)
Definition SpkSound.h:14
~SpkSoundHandle(void)
Definition SpkSound.h:15
SpkSound * mSound
Definition SpkSound.h:31
Definition SpkSound.h:95
SpkSoundHolder(void)
Definition SpkSound.cpp:306
f32 getConfigVolumeF32(void) const
Definition SpkSound.h:111
void stopAll(s32 chan, s32 msec)
Definition SpkSound.cpp:389
bool startSound(s32 chan, s32 soundNum, SpkSoundHandle *handle)
Definition SpkSound.cpp:315
bool startLevelSound(s32 chan, s32 soundNum, SpkSoundHandle *handle)
Definition SpkSound.cpp:363
JSUList< SpkSound > mSoundList[WPAD_MAX_CONTROLLERS]
Definition SpkSound.h:113
void freeDeadSound(s32 chan)
Definition SpkSound.cpp:418
void appendSound(s32 chan, SpkSound *sound)
Definition SpkSound.cpp:359
f32 getMasterVolume(void) const
Definition SpkSound.h:107
bool update(s32 chan)
Definition SpkSound.cpp:399
f32 mMasterVolume
Definition SpkSound.h:115
s32 getConfigVolume(void) const
Definition SpkSound.h:109
void setConfigVolume(s32 vol)
Definition SpkSound.h:110
s32 mConfigVolume
Definition SpkSound.h:116
void setMasterVolume(f32 vol)
Definition SpkSound.h:108
f32 mSoundVolumes[WPAD_MAX_CONTROLLERS]
Definition SpkSound.h:114
void framework(void)
Definition SpkSound.cpp:430
bool updateEachSound(s32 chan)
Definition SpkSound.cpp:405
Definition SpkSound.h:34
f32 field_0x0c
Definition SpkSound.h:45
f32 field_0x18
Definition SpkSound.h:48
f32 field_0x00
Definition SpkSound.h:42
f32 calc(bool &)
Definition SpkSound.cpp:60
f32 field_0x08
Definition SpkSound.h:44
f32 field_0x04
Definition SpkSound.h:43
f32 field_0x10
Definition SpkSound.h:46
f32 field_0x14
Definition SpkSound.h:47
SpkSoundVolume(void)
Definition SpkSound.cpp:27
void setRelease(s32)
Definition SpkSound.cpp:38
void setFadeOut(s32)
Definition SpkSound.cpp:48
void setTableVolume(f32)
Definition SpkSound.cpp:98
f32 mTableVolume
Definition SpkSound.h:49
Definition SpkSound.h:52
s32 getLifeTime(void)
Definition SpkSound.cpp:252
void kill(void)
Definition SpkSound.cpp:228
SpkSound(void)
Definition SpkSound.cpp:102
s32 mLifeTime
Definition SpkSound.h:91
s32 mWaveSize
Definition SpkSound.h:87
s32 mWaveLoopEnd
Definition SpkSound.h:89
bool isLoopWave(void)
Definition SpkSound.cpp:268
bool isLocked(void) const
Definition SpkSound.cpp:240
void stop(s32 msec)
Definition SpkSound.cpp:178
bool isHandleAttached(void) const
Definition SpkSound.cpp:203
~SpkSound(void)
Definition SpkSound.cpp:109
void setLifeTime(s32 lifeTime)
Definition SpkSound.cpp:256
s32 mWaveLoopStart
Definition SpkSound.h:88
void update(f32 vol)
Definition SpkSound.cpp:113
void startRelease(void)
Definition SpkSound.cpp:189
s32 mPriority
Definition SpkSound.h:85
void releaseHandle(void)
Definition SpkSound.cpp:207
s32 getSoundNum(void) const
Definition SpkSound.h:77
void unlock(void)
Definition SpkSound.cpp:244
bool setWaveData(s32 soundNum)
Definition SpkSound.cpp:272
void updateLifeTime(void)
Definition SpkSound.cpp:260
u32 field_0x20
Definition SpkSound.h:84
SpkSoundHandle * mHandle
Definition SpkSound.h:80
SpkSoundVolume mVolume
Definition SpkSound.h:92
void attachHandle(SpkSoundHandle *handle)
Definition SpkSound.cpp:193
s32 mCurPos
Definition SpkSound.h:83
s32 mState
Definition SpkSound.h:90
void setSoundNum(s32 soundNum)
Definition SpkSound.h:78
bool isStopping(void) const
Definition SpkSound.cpp:232
bool isDead(void) const
Definition SpkSound.cpp:236
u32 field_0x28
Definition SpkSound.h:86
s32 mSoundNum
Definition SpkSound.h:81
s32 convertMsecToFrames(s32 msec)
Definition SpkSound.cpp:264
s32 getPriority(void) const
Definition SpkSound.h:75
s16 * mWaveData
Definition SpkSound.h:82
void setPriority(s32 priority)
Definition SpkSound.h:76
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
signed long s32
Definition types.h:11
@ start
Definition strtold.c:23