Files
tp/include/JSystem/JAudio2/JAIStreamMgr.h
T

56 lines
1.7 KiB
C++
Raw Normal View History

2021-03-28 22:49:05 +02:00
#ifndef JAISTREAMMGR_H
#define JAISTREAMMGR_H
#include "JSystem/JAudio2/JASGadget.h"
2024-01-13 15:41:29 +02:00
#include "JSystem/JAudio2/JAIStream.h"
2023-09-15 05:20:09 -07:00
#include "JSystem/JUtility/JUTAssert.h"
2023-09-15 05:20:09 -07:00
class JAIStreamAramMgr;
class JAIStreamDataMgr;
2021-09-30 07:13:49 -07:00
2024-04-12 00:10:30 -06:00
/**
* @ingroup jsystem-jaudio
*
*/
class JAIStreamMgr : public JASGlobalInstance<JAIStreamMgr> {
2021-09-30 07:13:49 -07:00
public:
2025-11-30 14:23:42 -08:00
JAIStreamMgr(bool setInstance);
bool startSound(JAISoundID id, JAISoundHandle* handle, const JGeometry::TVec3<f32>* posPtr);
void freeDeadStream_();
void calc();
void stop();
void stop(u32 fadeTime);
void stopSoundID(JAISoundID id);
void mixOut();
JAIStream* newStream_();
bool isActive() const { return mStreamList.getNumLinks() != 0; }
2021-09-30 07:13:49 -07:00
JAIAudience* getAudience() { return mAudience; }
2023-09-15 05:20:09 -07:00
JAISoundParamsMove* getParams() { return &mParams; }
2024-02-09 01:30:28 +02:00
JAIStreamAramMgr* getStreamAramMgr() { return mStreamAramMgr; }
2024-10-23 19:25:13 -04:00
JSUList<JAIStream>* getStreamList() { return &mStreamList; }
void setStreamDataMgr(JAIStreamDataMgr* streamDataMgr) {
2023-09-16 10:17:56 -07:00
JUT_ASSERT(139, !isActive());
streamDataMgr_ = streamDataMgr;
2023-09-15 05:20:09 -07:00
}
void setStreamAramMgr(JAIStreamAramMgr* streamDataMgr) {
2023-09-16 10:17:56 -07:00
JUT_ASSERT(157, !isActive());
mStreamAramMgr = streamDataMgr;
2023-09-15 05:20:09 -07:00
}
void pause(bool paused) { mActivity.field_0x0.flags.flag2 = paused; }
2023-09-15 05:20:09 -07:00
2021-09-30 07:13:49 -07:00
private:
/* 0x00 */ JAISoundActivity mActivity;
/* 0x04 */ JAISoundParamsMove mParams;
/* 0x54 */ JAIAudience* mAudience;
2021-09-30 07:13:49 -07:00
/* 0x58 */ JSUList<JAIStream> mStreamList;
2024-02-09 01:30:28 +02:00
/* 0x64 */ JAIStreamDataMgr* streamDataMgr_;
2023-09-15 05:20:09 -07:00
/* 0x68 */ JAIStreamAramMgr* mStreamAramMgr;
2024-02-09 01:30:28 +02:00
/* 0x6C */ JAISoundStrategyMgr<JAIStream>* field_0x6c;
2021-09-30 07:13:49 -07:00
}; // Size: 0x70
2021-03-28 22:49:05 +02:00
#endif /* JAISTREAMMGR_H */