tp/libs/Z2AudioLib/Z2SoundHandles.cpp

126 lines
3.6 KiB
C++

/* Z2SoundHandles.cpp autogenerated by split.py v0.3 at 2021-01-05 01:21:30.657620 */
#include "Z2AudioLib/Z2SoundHandles/Z2SoundHandles.h"
#include "JSystem/JAudio2/JASGenericMemPool.h"
#include "JSystem/JAudio2/JASMemPool.h"
#include "global.h"
extern "C" {
void __ct__10JSUPtrLinkFPv(void);
void __dl__FPv(void);
void __dt__10JSUPtrLinkFv(void);
void func_80361C24(void);
void remove__10JSUPtrListFP10JSUPtrLink(void);
void append__10JSUPtrListFP10JSUPtrLink(void);
}
// additional symbols needed for Z2SoundHandles.cpp
// autogenerated by split.py v0.3 at 2021-01-05 01:21:30.649510
extern u8 lbl_804341B8;
extern u8 lbl_80450B5C;
extern u8 lbl_80451348;
extern u8 lbl_804341C4;
Z2SoundHandles::Z2SoundHandles() {
mNumHandles = 0;
}
Z2SoundHandles::~Z2SoundHandles() {
deleteHandlesPool();
}
void Z2SoundHandles::initHandlesPool(u8 pNumHandles) {
mNumHandles = pNumHandles;
}
asm void Z2SoundHandles::deleteHandlesPool() {
nofralloc
#include "Z2AudioLib/Z2SoundHandles/asm/func_802AB120.s"
}
extern "C" {
// __dt__31JASMemPool<17Z2SoundHandlePool>Fv
// JASMemPool<17Z2SoundHandlePool>::~JASMemPool<17Z2SoundHandlePool>(void)
asm void JASMemPool_NS_dtor_X4_(void) {
nofralloc
#include "Z2AudioLib/Z2SoundHandles/asm/func_802AB200.s"
}
};
JAISoundHandle* Z2SoundHandles::getHandleSoundID(JAISoundID pSoundId) {
JSULink<Z2SoundHandlePool>* link;
for (link = this->getFirst(); link != NULL; link = link->getNext()) {
JAISoundHandle* handle = link->getObject();
if (handle->isSoundAttached()) {
if ((*handle)->getID() == pSoundId) {
return handle;
}
}
}
return NULL;
}
JAISoundHandle* Z2SoundHandles::getHandleUserData(u32 pUserData) {
JSULink<Z2SoundHandlePool>* link;
for (link = this->getFirst(); link != NULL; link = link->getNext()) {
JAISoundHandle* handle = link->getObject();
if (handle->isSoundAttached()) {
if ((*handle)->getUserData() == pUserData) {
return handle;
}
}
}
return NULL;
}
extern "C" {
// getFreeHandle__14Z2SoundHandlesFv
// Z2SoundHandles::getFreeHandle(void)
asm void getFreeHandle__14Z2SoundHandlesFv(void) {
nofralloc
#include "Z2AudioLib/Z2SoundHandles/asm/func_802AB2D8.s"
}
// getLowPrioSound__14Z2SoundHandlesF10JAISoundID
// Z2SoundHandles::getLowPrioSound(JAISoundID)
asm void getLowPrioSound__14Z2SoundHandlesF10JAISoundID(void) {
nofralloc
#include "Z2AudioLib/Z2SoundHandles/asm/func_802AB3D0.s"
}
};
// stopAllSounds__14Z2SoundHandlesFUl
// Z2SoundHandles::stopAllSounds(unsigned long)
void Z2SoundHandles::stopAllSounds(u32 fadeout) {
JSULink<Z2SoundHandlePool>* link;
for (link = this->getFirst(); link != NULL; link = link->getNext()) {
JAISoundHandle* handle = link->getObject();
//! @meme: explicit operator bool call required to match and be similar
//! to CHN_debug; could more concisely write handle->isSoundAttached
//! (for some reason cast-to-bool doesn't work?)
if (handle && handle->operator bool()) {
(*handle)->stop(fadeout);
}
}
}
bool Z2SoundHandles::isActive() const {
JSULink<Z2SoundHandlePool>* link;
for (link = this->getFirst(); link != NULL; link = link->getNext()) {
if (link->getObject()->isSoundAttached()) {
return true;
}
}
return false;
}
// setPos__14Z2SoundHandlesFRCQ29JGeometry8TVec3<f>
// Z2SoundHandles::setPos(JGeometry::TVec3<f>)
asm void Z2SoundHandles::setPos(const JGeometry::TVec3<f32>& pos) {
nofralloc
#include "Z2AudioLib/Z2SoundHandles/asm/func_802AB538.s"
}