diff options
| author | Jcw87 <Jcw87@users.noreply.github.com> | 2023-09-07 09:50:36 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-07 19:50:36 +0300 |
| commit | 3dd1963a59c4cf80c0348f10532d2ce445dec7de (patch) | |
| tree | 0d948d80170ec4a0193acb3b8c62d24889561f88 /include | |
| parent | d56a9719ea1f2a325a5013bd4f8c94fb76f21599 (diff) | |
JAUInitializer (#1915)
* JAUInitializer
* forgot a couple things
Diffstat (limited to 'include')
| -rw-r--r-- | include/JSystem/JAudio2/JAIStream.h | 42 | ||||
| -rw-r--r-- | include/JSystem/JAudio2/JASAramStream.h | 94 | ||||
| -rw-r--r-- | include/JSystem/JAudio2/JASAudioThread.h | 1 | ||||
| -rw-r--r-- | include/JSystem/JAudio2/JASHeapCtrl.h | 30 | ||||
| -rw-r--r-- | include/JSystem/JAudio2/JASTrack.h | 10 | ||||
| -rw-r--r-- | include/JSystem/JAudio2/JASWaveArcLoader.h | 34 | ||||
| -rw-r--r-- | include/JSystem/JAudio2/JAUInitializer.h | 33 | ||||
| -rw-r--r-- | include/JSystem/JKernel/JKRThread.h | 1 |
8 files changed, 198 insertions, 47 deletions
diff --git a/include/JSystem/JAudio2/JAIStream.h b/include/JSystem/JAudio2/JAIStream.h index 91b83630fe..59a8f63232 100644 --- a/include/JSystem/JAudio2/JAIStream.h +++ b/include/JSystem/JAudio2/JAIStream.h @@ -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 */ diff --git a/include/JSystem/JAudio2/JASAramStream.h b/include/JSystem/JAudio2/JASAramStream.h index c366a63a61..39859901ca 100644 --- a/include/JSystem/JAudio2/JASAramStream.h +++ b/include/JSystem/JAudio2/JASAramStream.h @@ -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 */ diff --git a/include/JSystem/JAudio2/JASAudioThread.h b/include/JSystem/JAudio2/JASAudioThread.h index 4eb9ebc18d..04dd028eb4 100644 --- a/include/JSystem/JAudio2/JASAudioThread.h +++ b/include/JSystem/JAudio2/JASAudioThread.h @@ -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; } diff --git a/include/JSystem/JAudio2/JASHeapCtrl.h b/include/JSystem/JAudio2/JASHeapCtrl.h index ce17158c6f..db02654e35 100644 --- a/include/JSystem/JAudio2/JASHeapCtrl.h +++ b/include/JSystem/JAudio2/JASHeapCtrl.h @@ -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 */ diff --git a/include/JSystem/JAudio2/JASTrack.h b/include/JSystem/JAudio2/JASTrack.h index bc8b332fa3..7e2106e46a 100644 --- a/include/JSystem/JAudio2/JASTrack.h +++ b/include/JSystem/JAudio2/JASTrack.h @@ -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 { diff --git a/include/JSystem/JAudio2/JASWaveArcLoader.h b/include/JSystem/JAudio2/JASWaveArcLoader.h index 971298dcf4..26719245d5 100644 --- a/include/JSystem/JAudio2/JASWaveArcLoader.h +++ b/include/JSystem/JAudio2/JASWaveArcLoader.h @@ -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(); diff --git a/include/JSystem/JAudio2/JAUInitializer.h b/include/JSystem/JAudio2/JAUInitializer.h index e97740914b..bf00750a5b 100644 --- a/include/JSystem/JAudio2/JAUInitializer.h +++ b/include/JSystem/JAudio2/JAUInitializer.h @@ -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 */ diff --git a/include/JSystem/JKernel/JKRThread.h b/include/JSystem/JKernel/JKRThread.h index 4d29462554..c2b89de847 100644 --- a/include/JSystem/JKernel/JKRThread.h +++ b/include/JSystem/JKernel/JKRThread.h @@ -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: |
