JAUInitializer (#1915)

* JAUInitializer

* forgot a couple things
This commit is contained in:
Jcw87
2023-09-07 09:50:36 -07:00
committed by GitHub
parent d56a9719ea
commit 3dd1963a59
16 changed files with 302 additions and 296 deletions
+42
View File
@@ -2,5 +2,47 @@
#define JAISTREAM_H
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JASAramStream.h"
#include "JSystem/JSupport/JSUList.h"
class JAIStreamMgr;
class JAIStream : public JAISound, JSULink<JAIStream> {
public:
struct TInner {
JASAramStream field_0x0;
};
/* 802A3104 */ JAIStream(JAIStreamMgr*, JAISoundStrategyMgr<JAIStream>*);
/* 802A319C */ void JAIStreamMgr_startID_(JAISoundID, s32, JGeometry::TVec3<f32> const*,
JAIAudience*, int);
/* 802A3230 */ void prepare_prepareStream_();
/* 802A33F4 */ void prepare_();
/* 802A3498 */ void prepare_startStream_();
/* 802A34E4 */ void JAIStreamMgr_mixOut_(JASSoundParams const&, JAISoundActivity);
/* 802A3720 */ void die_JAIStream_();
/* 802A37FC */ bool JAISound_tryDie_();
/* 802A388C */ void JAIStreamMgr_calc_();
/* 802A3948 */ s32 getNumChild() const;
/* 802A3950 */ JAISoundChild* getChild(int);
/* 802A3A24 */ void releaseChild(int);
/* 802A3ABC */ JASTrack* getTrack();
/* 802A3AC4 */ JASTrack* getChildTrack(int);
/* 802A3ACC */ JAIStream* asStream();
/* 802A3AD0 */ JAITempoMgr* getTempoMgr();
/* 0x0A8 */ TInner field_0x0a8;
/* 0x290 */ int field_0x290;
/* 0x294 */ s32 field_0x294;
/* 0x298 */ int field_0x298;
/* 0x29C */ int field_0x29c;
/* 0x2A0 */ JAISoundChild* field_0x2a0[6];
/* 0x2B8 */ JAIStreamMgr* field_0x2b8;
/* 0x2BC */ int field_0x2bc;
/* 0x2C0 */ JAISoundStrategyMgr<JAIStream>* field_0x2c0;
/* 0x2C4 */ u8 field_0x2C4;
/* 0x2C5 */ u8 field_0x2c5;
/* 0x2C6 */ u8 field_0x2c6;
};
#endif /* JAISTREAM_H */
+93 -1
View File
@@ -1,6 +1,98 @@
#ifndef JASARAMSTREAM_H
#define JASARAMSTREAM_H
#include "dolphin/types.h"
#include "dolphin/os/OSMessage.h"
class JASChannel;
namespace JASDsp {
class TChannel;
}
class JASAramStream {
public:
/* 8029631C */ static void initSystem(u32, u32);
/* 802963A8 */ JASAramStream();
/* 8029649C */ void init(u32, u32, void (*)(u32, JASAramStream*, void*), void*);
/* 8029655C */ void prepare(s32, int);
/* 80296618 */ void start();
/* 8029664C */ void stop(u16);
/* 80296684 */ void pause(bool);
/* 802966CC */ void cancel();
/* 80296710 */ void getBlockSamples() const;
/* 8029673C */ void headerLoadTask(void*);
/* 8029676C */ void firstLoadTask(void*);
/* 80296848 */ void loadToAramTask(void*);
/* 80296868 */ void finishTask(void*);
/* 802968C8 */ void prepareFinishTask(void*);
/* 80296920 */ void headerLoad(u32, int);
/* 80296AE8 */ void load();
/* 80296D74 */ void channelProcCallback(void*);
/* 80296D94 */ void dvdErrorCheck(void*);
/* 80296DF0 */ void channelCallback(u32, JASChannel*, JASDsp::TChannel*, void*);
/* 80296E2C */ void updateChannel(u32, JASChannel*, JASDsp::TChannel*);
/* 802974AC */ void channelProc();
/* 80297658 */ void channelStart();
/* 80297870 */ void channelStop(u16);
/* 0x000 */ OSMessageQueue field_0x000;
/* 0x020 */ OSMessageQueue field_0x020;
/* 0x040 */ void* field_0x040[16];
/* 0x080 */ void* field_0x080[4];
/* 0x090 */ JASChannel* field_0x090[6];
/* 0x0A8 */ int field_0x0a8;
/* 0x0AC */ u8 field_0x0ac;
/* 0x0AD */ u8 field_0x0ad;
/* 0x0AE */ u8 field_0x0ae;
/* 0x0AF */ u8 field_0x0AF[0x0B0 - 0x0AF];
/* 0x0B0 */ int field_0x0b0;
/* 0x0B4 */ int field_0x0b4;
/* 0x0B8 */ int field_0x0b8;
/* 0x0BC */ int field_0x0bc;
/* 0x0C0 */ u8 field_0x0c0;
/* 0x0C1 */ u8 field_0x0C1[0x0C4 - 0x0C1];
/* 0x0C4 */ int field_0x0c4;
/* 0x0C8 */ f32 field_0x0c8;
/* 0x0CC */ u8 field_0x0CC[0x108 - 0x0CC];
/* 0x108 */ int field_0x108;
/* 0x10C */ int field_0x10c;
/* 0x110 */ int field_0x110;
/* 0x114 */ u8 field_0x114;
/* 0x115 */ u8 field_0x115[0x118 - 0x115];
/* 0x118 */ int field_0x118;
/* 0x11C */ int field_0x11c;
/* 0x120 */ int field_0x120;
/* 0x124 */ int field_0x124;
/* 0x128 */ short field_0x128;
/* 0x12A */ u8 field_0x12A[0x12C - 0x12A];
/* 0x12C */ int field_0x12c;
/* 0x130 */ short field_0x130[6];
/* 0x13C */ short field_0x13c[6];
/* 0x148 */ int field_0x148;
/* 0x14C */ int field_0x14c;
/* 0x150 */ void* field_0x150;
/* 0x154 */ int field_0x154;
/* 0x158 */ short field_0x158;
/* 0x15A */ short field_0x15a;
/* 0x15C */ int field_0x15c;
/* 0x160 */ int field_0x160;
/* 0x164 */ int field_0x164;
/* 0x168 */ u8 field_0x168;
/* 0x169 */ u8 field_0x169[0x16C - 0x169];
/* 0x16C */ int field_0x16c;
/* 0x170 */ int field_0x170;
/* 0x174 */ f32 field_0x174;
/* 0x178 */ f32 field_0x178;
/* 0x17C */ float field_0x17c[6];
/* 0x194 */ float field_0x194[6];
/* 0x1AC */ float field_0x1ac[6];
/* 0x1C4 */ float field_0x1c4[6];
/* 0x1DC */ short field_0x1dc[6];
static u8 sLoadThread[4];
static u8 sReadBuffer[4];
static u8 sBlockSize[4];
static u8 sChannelMax[4];
};
#endif /* JASARAMSTREAM_H */
+1
View File
@@ -19,6 +19,7 @@ struct JASAudioThread : public JKRThread, public JASGlobalInstance<JASAudioThrea
/* 8029CFBC */ static void DSPCallback(void*);
/* 8029D028 */ virtual ~JASAudioThread() {}
static JASAudioThread* getThreadPointer() { return getInstance(); }
static int getDSPSyncCount() { return snIntCount; }
static void setDSPSyncCount(u32 param_0) { snIntCount = param_0; }
+24 -6
View File
@@ -2,15 +2,19 @@
#define JASHEAPCTRL_H
#include "JSystem/JSupport/JSUList.h"
#include "dolphin/os/OSInterrupt.h"
#include "dolphin/os/OSMutex.h"
class JASDisposer;
class JKRHeap;
class JKRSolidHeap;
class JASHeap {
public:
/* 80290140 */ JASHeap(JASDisposer*);
/* 802901AC */ void initRootHeap(void*, u32);
/* 8029021C */ void alloc(JASHeap*, u32);
/* 802903F4 */ void allocTail(JASHeap*, u32);
/* 8029021C */ bool alloc(JASHeap*, u32);
/* 802903F4 */ bool allocTail(JASHeap*, u32);
/* 802904E4 */ void free();
/* 80290608 */ void insertChild(JASHeap*, JASHeap*, void*, u32, bool);
/* 802906F0 */ void getTailHeap();
@@ -18,12 +22,27 @@ class JASHeap {
/* 802907E0 */ void getCurOffset();
/* 80290B54 */ ~JASHeap();
void* getBase() { return mBase; }
/* 0x00 */ JSUTree<JASHeap> mTree;
/* 0x1C */ OSMutex mMutex;
/* 0x34 */ JASDisposer* mDisposer;
/* 0x38 */ int field_0x38;
/* 0x3c */ int field_0x3c;
/* 0x40 */ void* field_0x40;
/* 0x38 */ void* mBase;
/* 0x3c */ u32 mSize;
/* 0x40 */ JASHeap* field_0x40;
};
namespace JASKernel {
/* 802909B8 */ void setupRootHeap(JKRSolidHeap*, u32);
/* 80290AC0 */ JKRHeap* getSystemHeap();
/* 80290AC8 */ u32 getCommandHeap();
/* 80290AD0 */ void setupAramHeap(u32, u32);
/* 80290B08 */ JASHeap* getAramHeap();
extern u8 audioAramHeap[68];
extern u8 sAramBase[4];
extern JKRHeap* sSystemHeap;
extern u8 sCommandHeap[4];
};
struct JASGenericMemPool {
@@ -125,7 +144,6 @@ private:
}
};
struct JKRSolidHeap;
extern JKRSolidHeap* JASDram;
#endif /* JASHEAPCTRL_H */
+3 -7
View File
@@ -9,14 +9,10 @@
struct JASSoundParams;
struct JASDsp {
struct TChannel {
/* 8029E00C */ void setFilterMode(u16);
/* 8029E044 */ void setIIRFilterParam(s16*);
/* 8029E06C */ void setFIR8FilterParam(s16*);
};
namespace JASDsp {
class TChannel;
static u32 FILTER_MODE_IIR;
extern u32 FILTER_MODE_IIR;
};
struct JASChannel {
+1 -33
View File
@@ -1,6 +1,7 @@
#ifndef JASWAVEARCLOADER_H
#define JASWAVEARCLOADER_H
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "JSystem/JSupport/JSUList.h"
#include "dol2asm.h"
#include "dolphin/os/OSMutex.h"
@@ -14,39 +15,6 @@ struct JASDisposer {
/* 80290BCC */ virtual void onDispose();
};
struct JASHeap : JSUTree<JASHeap> {
/* 80290140 */ JASHeap(JASDisposer*);
/* 802901AC */ void initRootHeap(void*, u32);
/* 8029021C */ bool alloc(JASHeap*, u32);
/* 802903F4 */ bool allocTail(JASHeap*, u32);
/* 802904E4 */ void free();
/* 80290608 */ void insertChild(JASHeap*, JASHeap*, void*, u32, bool);
/* 802906F0 */ void getTailHeap();
/* 8029077C */ void getTailOffset();
/* 802907E0 */ void getCurOffset();
/* 80290B54 */ ~JASHeap() {}
void* getBase() { return mBase; }
/* 0x1C */ OSMutex mMutex;
/* 0x38 */ JASDisposer* mDisposer;
/* 0x3C */ void* mBase;
/* 0x40 */ u32 _3c;
/* 0x44 */ u32 _40;
};
struct JASKernel {
/* 802909B8 */ void setupRootHeap(JKRSolidHeap*, u32);
/* 80290AC0 */ static JKRHeap* getSystemHeap();
/* 80290AC8 */ u32 getCommandHeap();
/* 80290AD0 */ void setupAramHeap(u32, u32);
/* 80290B08 */ static JASHeap* getAramHeap();
static u8 audioAramHeap[68];
static u8 sAramBase[4];
static JKRHeap* sSystemHeap;
static u8 sCommandHeap[4];
};
#define DIR_MAX 64
struct JASWaveArcLoader {
/* 8029A0A0 */ static JASHeap* getRootHeap();
+33
View File
@@ -3,4 +3,37 @@
#include "dolphin/types.h"
class JKRSolidHeap;
class JAU_JASInitializer {
public:
/* 802A4AD0 */ JAU_JASInitializer();
/* 802A4B28 */ void initJASystem(JKRSolidHeap*);
/* 0x00 */ u32 field_0x00;
/* 0x04 */ u32 field_0x04;
/* 0x08 */ int field_0x08;
/* 0x0C */ int field_0x0c;
/* 0x10 */ int field_0x10;
/* 0x14 */ int field_0x14;
/* 0x18 */ int field_0x18;
/* 0x1C */ int field_0x1c;
/* 0x20 */ int field_0x20;
/* 0x24 */ int field_0x24;
/* 0x28 */ int field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ char* field_0x30;
};
class JAU_JAIInitializer {
public:
/* 802A4D3C */ JAU_JAIInitializer();
/* 802A4D60 */ void initJAInterface();
int field_0x0;
int field_0x4;
int field_0x8;
int field_0xc;
};
#endif /* JAUINITIALIZER_H */
+1
View File
@@ -133,6 +133,7 @@ public:
JKRThread* enter(JKRThread* param_1, int param_2);
static void callback(OSThread* param_1, OSThread* param_2);
static JKRThreadSwitch* getManager() { return sManager; }
static u32 getTotalCount() { return sTotalCount; }
private: