diff options
| author | Jcw87 <Jcw87@users.noreply.github.com> | 2025-12-23 10:23:09 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-23 10:23:09 -0800 |
| commit | 6ef13c620a46aed5fea525699a4832a1ad6e4d1f (patch) | |
| tree | 03d9f63ec5b89e6877580edc41f5346d679a871e /include | |
| parent | c9d0c58ffe107550835987fc37504839e9d98f05 (diff) | |
JAudio2 debug (#2990)
Diffstat (limited to 'include')
| -rw-r--r-- | include/JSystem/JAudio2/JASBasicInst.h | 7 | ||||
| -rw-r--r-- | include/JSystem/JAudio2/JASChannel.h | 3 | ||||
| -rw-r--r-- | include/JSystem/JAudio2/JASCmdStack.h | 9 | ||||
| -rw-r--r-- | include/JSystem/JAudio2/JASDrumSet.h | 6 | ||||
| -rw-r--r-- | include/JSystem/JAudio2/JASHeapCtrl.h | 43 | ||||
| -rw-r--r-- | include/JSystem/JAudio2/JASOscillator.h | 2 | ||||
| -rw-r--r-- | include/JSystem/JAudio2/JASResArcLoader.h | 48 | ||||
| -rw-r--r-- | include/JSystem/JAudio2/JASTrack.h | 22 | ||||
| -rw-r--r-- | include/JSystem/JSupport/JSUList.h | 4 |
9 files changed, 84 insertions, 60 deletions
diff --git a/include/JSystem/JAudio2/JASBasicInst.h b/include/JSystem/JAudio2/JASBasicInst.h index c8054c4fd6..5fe6b84db4 100644 --- a/include/JSystem/JAudio2/JASBasicInst.h +++ b/include/JSystem/JAudio2/JASBasicInst.h @@ -6,6 +6,8 @@ struct JKRHeap; +const int OSC_MAX = 2; + /** * @ingroup jsystem-jaudio * @@ -46,6 +48,7 @@ struct JASBasicInst : public JASInst { struct TKeymap { ~TKeymap(); TKeymap() { mHighKey = -1; } + s32 getHighKey() const { return mHighKey; } void setHighKey(int key) { mHighKey = key; } /* 0x0 */ s32 mHighKey; @@ -59,6 +62,7 @@ struct JASBasicInst : public JASInst { void setKeyRegionCount(u32, JKRHeap*); void setOsc(int, JASOscillator::Data const*); TKeymap* getKeyRegion(int); + TKeymap* getKeyRegion(int) const; virtual ~JASBasicInst(); virtual bool getParam(int, int, JASInstParam*) const; @@ -66,10 +70,11 @@ struct JASBasicInst : public JASInst { void setVolume(f32 volume) { mVolume = volume; } void setPitch(f32 pitch) { mPitch = pitch; } + u32 getKeyRegionCount() const { return mKeymapCount; } /* 0x04 */ f32 mVolume; /* 0x08 */ f32 mPitch; - /* 0x0C */ JASOscillator::Data const* field_0xc[2]; + /* 0x0C */ JASOscillator::Data const* field_0xc[OSC_MAX]; /* 0x10 */ u32 mKeymapCount; /* 0x14 */ TKeymap* mKeymap; }; diff --git a/include/JSystem/JAudio2/JASChannel.h b/include/JSystem/JAudio2/JASChannel.h index b54bb428ed..6cd2d4c0de 100644 --- a/include/JSystem/JAudio2/JASChannel.h +++ b/include/JSystem/JAudio2/JASChannel.h @@ -52,6 +52,7 @@ public: class JASChannel : public JASPoolAllocObject_MultiThreaded<JASChannel> { public: typedef void (*Callback)(u32, JASChannel*, JASDsp::TChannel*, void*); + static const int BUSOUT_CPUCH = 6; enum CallbackType { /* 0 */ CB_PLAY, @@ -140,7 +141,7 @@ public: /* 0x1C */ JASOscillator mOscillators[2]; /* 0x5C */ JASLfo mVibrate; /* 0x74 */ JASLfo mTremolo; - /* 0x8C */ MixConfig mMixConfig[6]; + /* 0x8C */ MixConfig mMixConfig[BUSOUT_CPUCH]; /* 0x98 */ u16 mPriority; /* 0x9C */ JASChannelParams mParams; /* 0xB4 */ JASSoundParams mSoundParams; diff --git a/include/JSystem/JAudio2/JASCmdStack.h b/include/JSystem/JAudio2/JASCmdStack.h index 22664962b6..c35a1146cb 100644 --- a/include/JSystem/JAudio2/JASCmdStack.h +++ b/include/JSystem/JAudio2/JASCmdStack.h @@ -42,10 +42,15 @@ struct JASPortCmd : JSULink<JASPortCmd> { void execCommandStay(); }; + bool addPortCmdOnce(); + bool setPortCmd(Command func, JASPortArgs*); static void execAllCommand(); - Command _10; - JASPortArgs* _14; + Command getFunc() { return mFunc; } + JASPortArgs* getArgs() { return mArgs; } + + Command mFunc; + JASPortArgs* mArgs; static TPortHead sCommandListOnce; static TPortHead sCommandListStay; diff --git a/include/JSystem/JAudio2/JASDrumSet.h b/include/JSystem/JAudio2/JASDrumSet.h index 4fed94c985..8e5c8df244 100644 --- a/include/JSystem/JAudio2/JASDrumSet.h +++ b/include/JSystem/JAudio2/JASDrumSet.h @@ -32,10 +32,12 @@ struct JASDrumSet : public JASInst { void newPercArray(u8, JKRHeap*); virtual bool getParam(int, int, JASInstParam*) const; void setPerc(int, JASDrumSet::TPerc*); + JASDrumSet::TPerc* getPerc(int); + JASDrumSet::TPerc* getPerc(int) const; virtual u32 getType() const; - /* 0x4 */ TPerc** field_0x4; - /* 0x8 */ u8 field_0x8; + /* 0x4 */ TPerc** mPercArray; + /* 0x8 */ u8 mPercNumMax; }; #endif /* JASDRUMSET_H */ diff --git a/include/JSystem/JAudio2/JASHeapCtrl.h b/include/JSystem/JAudio2/JASHeapCtrl.h index 5a7b2550f8..af04892178 100644 --- a/include/JSystem/JAudio2/JASHeapCtrl.h +++ b/include/JSystem/JAudio2/JASHeapCtrl.h @@ -22,13 +22,15 @@ public: bool alloc(JASHeap*, u32); bool allocTail(JASHeap*, u32); bool free(); + u32 getTotalFreeSize(); + u32 getFreeSize(); void insertChild(JASHeap*, JASHeap*, void*, u32, bool); JASHeap* getTailHeap(); u32 getTailOffset(); u32 getCurOffset(); void* getBase() { return mBase; } - bool isAllocated() { return mBase; } + bool isAllocated() const { return mBase; } u32 getSize() const { return mSize; } /* 0x00 */ JSUTree<JASHeap> mTree; @@ -180,7 +182,7 @@ class JASMemChunkPool : public T<JASMemChunkPool<ChunkSize, T> >::ObjectLevelLoc mNextChunk = chunk; } - u32 getFreeSize() { + u32 getFreeSize() const { return ChunkSize - mUsedSize; } @@ -201,27 +203,22 @@ public: } bool createNewChunk() { - bool uVar2; if (field_0x18 != NULL && field_0x18->isEmpty()) { field_0x18->revive(); - uVar2 = 1; - } else { - MemoryChunk* pMVar4 = field_0x18; - field_0x18 = new (JASKernel::getSystemHeap(), 0) MemoryChunk(pMVar4); - if (field_0x18 != NULL) { - uVar2 = 1; - } else { - JUT_WARN(428, "%s", "Not enough JASSystemHeap"); - field_0x18 = new (JKRHeap::getSystemHeap(), 0) MemoryChunk(pMVar4); - if (field_0x18 != NULL) { - uVar2 = 1; - } else { - field_0x18 = pMVar4; - uVar2 = 0; - } - } + return true; + } + MemoryChunk* pMVar4 = field_0x18; + field_0x18 = new (JASKernel::getSystemHeap(), 0) MemoryChunk(pMVar4); + if (field_0x18 != NULL) { + return true; } - return uVar2; + JUT_WARN(428, "%s", "Not enough JASSystemHeap"); + field_0x18 = new (JKRHeap::getSystemHeap(), 0) MemoryChunk(pMVar4); + if (field_0x18 != NULL) { + return true; + } + field_0x18 = pMVar4; + return false; } void* alloc(u32 size) { @@ -269,6 +266,8 @@ namespace JASKernel { JASMemChunkPool<1024, JASThreadingModel::ObjectLevelLockable>* getCommandHeap(); void setupAramHeap(u32, u32); JASHeap* getAramHeap(); + u32 getAramFreeSize(); + u32 getAramSize(); extern JASHeap audioAramHeap; extern u32 sAramBase; @@ -348,14 +347,14 @@ class JASPoolAllocObject_MultiThreaded { public: static void* operator new(size_t n) { JASMemPool_MultiThreaded<T>& memPool_ = getMemPool(); - return memPool_.alloc(sizeof(T)); + return memPool_.alloc(n); } static void* operator new(size_t n, void* ptr) { return ptr; } static void operator delete(void* ptr, size_t n) { JASMemPool_MultiThreaded<T>& memPool_ = getMemPool(); - memPool_.free(ptr, sizeof(T)); + memPool_.free(ptr, n); } static void newMemPool(int n) { diff --git a/include/JSystem/JAudio2/JASOscillator.h b/include/JSystem/JAudio2/JASOscillator.h index ac7f58c3a5..bfff094f5c 100644 --- a/include/JSystem/JAudio2/JASOscillator.h +++ b/include/JSystem/JAudio2/JASOscillator.h @@ -38,7 +38,7 @@ struct JASOscillator { /* 0x00 */ u32 mTarget; /* 0x04 */ f32 _04; /* 0x08 */ const Point* mTable; - /* 0x0C */ const Point* _0C; + /* 0x0C */ const Point* rel_table; /* 0x10 */ f32 mScale; /* 0x14 */ f32 _14; }; diff --git a/include/JSystem/JAudio2/JASResArcLoader.h b/include/JSystem/JAudio2/JASResArcLoader.h index b5602633f8..1b375e798e 100644 --- a/include/JSystem/JAudio2/JASResArcLoader.h +++ b/include/JSystem/JAudio2/JASResArcLoader.h @@ -9,37 +9,39 @@ namespace JASResArcLoader { size_t getResMaxSize(JKRArchive const*); static void loadResourceCallback(void*); int loadResourceAsync(JKRArchive*, u16, u8*, u32, void (*)(u32, u32), u32); + + // from pikmin2 + typedef void (*LoadCallback)(u32, u32); + + struct TLoadResInfo { + inline TLoadResInfo(JKRArchive* archive, u16 id, void* buf, u32 size) + : mArchive(archive) + , mID(id) + , mBuffer(buf) + , mBufferSize(size) + , mCallback(0) + , mCallbackArg(0) + , mQueue(0) + { + } + + JKRArchive* mArchive; // _00 + u16 mID; // _04 + void* mBuffer; // _08 + u32 mBufferSize; // _0C + LoadCallback mCallback; // _10 + u32 mCallbackArg; // _14, arg to pass to mCallback along with readResource result + OSMessageQueue* mQueue; // _18 + }; }; class JKRArchive; -// from pikmin2 -typedef void (*LoadCallback)(u32, u32); - enum ResArcMessage { RESARCMSG_Error = -1, RESARCMSG_Success = 0, }; -struct CallbackArgs { - inline CallbackArgs(u16 id, u8* buf, u32 size, JKRArchive* archive) - : mArchive(archive) - , mID(id) - , mBuffer(buf) - , mBufferSize(size) - , mCallback(0) - , mCallbackArg(0) - , mQueue(0) - { - } - - JKRArchive* mArchive; // _00 - u16 mID; // _04 - u8* mBuffer; // _08 - u32 mBufferSize; // _0C - LoadCallback mCallback; // _10 - u32 mCallbackArg; // _14, arg to pass to mCallback along with readResource result - OSMessageQueue* mQueue; // _18 -}; + #endif /* JASRESARCLOADER_H */ diff --git a/include/JSystem/JAudio2/JASTrack.h b/include/JSystem/JAudio2/JASTrack.h index b749e87471..4b0d3ea0fa 100644 --- a/include/JSystem/JAudio2/JASTrack.h +++ b/include/JSystem/JAudio2/JASTrack.h @@ -22,10 +22,14 @@ namespace JASDsp { * */ struct JASTrack : public JASPoolAllocObject_MultiThreaded<JASTrack> { + static const int CHANNEL_MGR_MAX = 4; + static const int TIMED_PARAMS = 6; + static const int OSC_NUM = 2; + enum Status { STATUS_FREE, STATUS_RUN, - STATUS_STOP, + STATUS_STOPPED, }; struct TChannelMgr : public JASPoolAllocObject_MultiThreaded<TChannelMgr> { @@ -82,6 +86,11 @@ struct JASTrack : public JASPoolAllocObject_MultiThreaded<JASTrack> { void closeChild(u32); JASTrack* openChild(u32); void connectBus(int, int); + f32 getVolume() const; + f32 getPitch() const; + f32 getPan() const; + f32 getFxmix() const; + f32 getDolby() const; void setLatestKey(u8); JASChannel* channelStart(JASTrack::TChannelMgr*, u32, u32, u32); int noteOn(u32, u32, u32); @@ -115,6 +124,7 @@ struct JASTrack : public JASPoolAllocObject_MultiThreaded<JASTrack> { void setTimebase(u16); void updateChannel(JASChannel*, JASDsp::TChannel*); JASTrack* getRootTrack(); + int getChannelCount() const; int tickProc(); int seqMain(); @@ -191,7 +201,7 @@ struct JASTrack : public JASPoolAllocObject_MultiThreaded<JASTrack> { MoveParam_ dolby; MoveParam_ distFilter; } params; - MoveParam_ array[6]; + MoveParam_ array[TIMED_PARAMS]; } mMoveParam; #else /* 0x09C */ union MoveParam_u { @@ -203,17 +213,17 @@ struct JASTrack : public JASPoolAllocObject_MultiThreaded<JASTrack> { MoveParam_ dolby; MoveParam_ distFilter; } params; - MoveParam_ array[6]; + MoveParam_ array[TIMED_PARAMS]; MoveParam_u() {} } mMoveParam; #endif - /* 0x0e4 */ JASOscillator::Data mOscParam[2]; + /* 0x0e4 */ JASOscillator::Data mOscParam[OSC_NUM]; /* 0x114 */ JASOscillator::Point mOscPoint[4]; /* 0x12C */ JASTrack* mParent; /* 0x130 */ JASTrack* mChildren[MAX_CHILDREN]; - /* 0x170 */ TChannelMgr* mChannelMgrs[4]; + /* 0x170 */ TChannelMgr* mChannelMgrs[CHANNEL_MGR_MAX]; /* 0x180 */ TChannelMgr mDefaultChannelMgr; - /* 0x1D0 */ int mChannelMgrCount; + /* 0x1D0 */ u32 mChannelMgrCount; /* 0x1D4 */ const JASDefaultBankTable* mBankTable; /* 0x1D8 */ f32 field_0x1d8; /* 0x1DC */ f32 field_0x1dc; diff --git a/include/JSystem/JSupport/JSUList.h b/include/JSystem/JSupport/JSUList.h index a2bb967cc3..7b31430276 100644 --- a/include/JSystem/JSupport/JSUList.h +++ b/include/JSystem/JSupport/JSUList.h @@ -230,7 +230,7 @@ public: T* getObject() const { return this->mTree->getObject(); } - bool operator==(JSUTree<T>* other) { return this->mTree == other; } + bool operator==(const JSUTree<T>* other) const { return this->mTree == other; } bool operator!=(const JSUTree<T>* other) const { return this->mTree != other; } @@ -245,7 +245,7 @@ public: return *this; } - T* operator*() { return this->getObject(); } + T* operator*() const { return this->getObject(); } T* operator->() const { return this->getObject(); } |
