2021-03-28 22:49:05 +02:00
|
|
|
#ifndef JAISTREAMMGR_H
|
|
|
|
|
#define JAISTREAMMGR_H
|
2021-01-25 12:57:46 -05:00
|
|
|
|
2023-02-16 13:09:22 -08:00
|
|
|
#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"
|
2021-01-25 12:57:46 -05:00
|
|
|
|
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
|
|
|
|
|
*
|
|
|
|
|
*/
|
2023-02-16 13:09:22 -08:00
|
|
|
class JAIStreamMgr : public JASGlobalInstance<JAIStreamMgr> {
|
2021-09-30 07:13:49 -07:00
|
|
|
public:
|
|
|
|
|
/* 802A3B68 */ JAIStreamMgr(bool);
|
2024-01-30 19:08:37 -05:00
|
|
|
/* 802A3C3C */ bool startSound(JAISoundID, JAISoundHandle*, JGeometry::TVec3<f32> const*);
|
2021-09-30 07:13:49 -07:00
|
|
|
/* 802A3D70 */ void freeDeadStream_();
|
|
|
|
|
/* 802A3EBC */ void calc();
|
|
|
|
|
/* 802A4028 */ void stop();
|
|
|
|
|
/* 802A4068 */ void stop(u32);
|
|
|
|
|
/* 802A40B8 */ void stopSoundID(JAISoundID);
|
|
|
|
|
/* 802A4118 */ void mixOut();
|
2024-02-09 01:30:28 +02:00
|
|
|
/* 802A4174 */ JAIStream* newStream_();
|
2024-10-23 19:25:13 -04:00
|
|
|
/* 802B9978 */ bool isActive() const { return mStreamList.getNumLinks() != 0; }
|
2021-09-30 07:13:49 -07:00
|
|
|
|
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; }
|
2023-09-15 05:20:09 -07:00
|
|
|
void setStreamDataMgr(JAIStreamDataMgr* param_0) {
|
2023-09-16 10:17:56 -07:00
|
|
|
JUT_ASSERT(139, !isActive());
|
2024-02-09 01:30:28 +02:00
|
|
|
streamDataMgr_ = param_0;
|
2023-09-15 05:20:09 -07:00
|
|
|
}
|
|
|
|
|
void setStreamAramMgr(JAIStreamAramMgr* param_0) {
|
2023-09-16 10:17:56 -07:00
|
|
|
JUT_ASSERT(157, !isActive());
|
2023-09-15 05:20:09 -07:00
|
|
|
mStreamAramMgr = param_0;
|
|
|
|
|
}
|
2024-01-30 19:08:37 -05:00
|
|
|
void pause(bool i_pause) { mActivity.field_0x0.flags.flag2 = i_pause; }
|
2023-09-15 05:20:09 -07:00
|
|
|
|
2021-09-30 07:13:49 -07:00
|
|
|
private:
|
|
|
|
|
/* 0x00 */ JAISoundActivity mActivity;
|
|
|
|
|
/* 0x04 */ JAISoundParamsMove mParams;
|
2024-02-09 01:30:28 +02:00
|
|
|
/* 0x54 */ JAIAudience* field_0x54;
|
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 */
|