#ifndef Z2SOUNDHANDLES_H #define Z2SOUNDHANDLES_H #include "JSystem/JAudio2/JAISoundHandles.h" #include "JSystem/JSupport/JSUList.h" #include "JSystem/JAudio2/JASHeapCtrl.h" #include "dolphin/types.h" class Z2SoundHandlePool : public JAISoundHandle, public JSULink { // , public JASPoolAllocObject { public: Z2SoundHandlePool() : JAISoundHandle(), JSULink(this) {} ~Z2SoundHandlePool() {} }; class Z2SoundHandles : protected JSUList { public: Z2SoundHandles(); ~Z2SoundHandles(); void initHandlesPool(u8 pNumHandles); void deleteHandlesPool(); JAISoundHandle* getFreeHandle(); JAISoundHandle* getLowPrioSound(JAISoundID pSoundId); bool isActive() const; JAISoundHandle* getHandleSoundID(JAISoundID pSoundId); JAISoundHandle* getHandleUserData(u32 pUserData); void stopAllSounds(u32 fadeout); void setPos(const JGeometry::TVec3& pos); int getNumHandles() const { return getNumLinks(); } JAISoundHandle* getHandle(int index) { return (Z2SoundHandlePool*)getNth(index); } private: /* 0xC */ u8 mNumHandles; }; #endif /* Z2SOUNDHANDLES_H */