Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
Z2SoundHandles.h
Go to the documentation of this file.
1#ifndef Z2SOUNDHANDLES_H
2#define Z2SOUNDHANDLES_H
3
4#include "JSystem/JAudio2/JAISoundHandles.h"
5#include "JSystem/JAudio2/JASHeapCtrl.h"
6
7class Z2SoundHandlePool : public JAISoundHandle, public JSULink<Z2SoundHandlePool>, public JASPoolAllocObject<Z2SoundHandlePool> {
8public:
9 Z2SoundHandlePool() : JAISoundHandle(), JSULink<Z2SoundHandlePool>(this) {}
10};
11
12class Z2SoundHandles : protected JSUList<Z2SoundHandlePool> {
13public:
16
17 void initHandlesPool(u8 handleNum);
18 void deleteHandlesPool();
20 Z2SoundHandlePool* getLowPrioSound(JAISoundID soundID);
21
22 bool isActive() const;
23
24 Z2SoundHandlePool* getHandleSoundID(JAISoundID soundID);
26
27 void stopAllSounds(u32 fadeTime);
28
29 void stopSound(JAISoundID soundID, u32 fadeTime) {
30 // u32 cast is a fakematch
31 JAISoundHandle* phandle = getHandleSoundID((u32)soundID);
32 if (phandle != NULL) {
33 (*phandle)->stop(fadeTime);
34 }
35 }
36
37 void setPos(const JGeometry::TVec3<f32>& pos);
38
39 int getNumHandles() const { return getNumLinks(); }
40
42 JUT_ASSERT(49, index >= 0);
43 JUT_ASSERT(50, index < getNumLinks());
44 return (Z2SoundHandlePool*)getNth(index);
45 }
46
47private:
48 /* 0xC */ u8 handleNum_;
49};
50
51#endif /* Z2SOUNDHANDLES_H */
Definition Z2SoundHandles.h:7
Z2SoundHandlePool()
Definition Z2SoundHandles.h:9
Definition Z2SoundHandles.h:12
void setPos(const JGeometry::TVec3< f32 > &pos)
Definition Z2SoundHandles.cpp:132
~Z2SoundHandles()
Definition Z2SoundHandles.cpp:8
Z2SoundHandlePool * getLowPrioSound(JAISoundID soundID)
Definition Z2SoundHandles.cpp:80
u8 handleNum_
Definition Z2SoundHandles.h:48
Z2SoundHandlePool * getHandle(int index)
Definition Z2SoundHandles.h:41
int getNumHandles() const
Definition Z2SoundHandles.h:39
Z2SoundHandlePool * getHandleUserData(u32 userData)
Definition Z2SoundHandles.cpp:43
void deleteHandlesPool()
Definition Z2SoundHandles.cpp:16
Z2SoundHandlePool * getFreeHandle()
Definition Z2SoundHandles.cpp:57
bool isActive() const
Definition Z2SoundHandles.cpp:122
void stopSound(JAISoundID soundID, u32 fadeTime)
Definition Z2SoundHandles.h:29
Z2SoundHandles()
Definition Z2SoundHandles.cpp:4
void stopAllSounds(u32 fadeTime)
Definition Z2SoundHandles.cpp:112
void initHandlesPool(u8 handleNum)
Definition Z2SoundHandles.cpp:12
Z2SoundHandlePool * getHandleSoundID(JAISoundID soundID)
Definition Z2SoundHandles.cpp:29