diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2025-11-27 21:19:33 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-27 21:19:33 -0800 |
| commit | 6f96e665186c87f15acb6f5cb8d27665afee3130 (patch) | |
| tree | 3ea70fe7d635a0f55aae44b1a386814766a46597 /src/JSystem/JAudio2/JASTaskThread.cpp | |
| parent | 767caeecc3e374779cccc9960b6546b74e7a9e50 (diff) | |
various Z2Audio / JAudio debug cleanup (#2876)
* some JAudio work
* audio cleanup checkpoint
* checkpoint more audio cleanup
* fix symbols
* more z2 cleanup
* fix regression
* fix build
* some fixes
Diffstat (limited to 'src/JSystem/JAudio2/JASTaskThread.cpp')
| -rw-r--r-- | src/JSystem/JAudio2/JASTaskThread.cpp | 82 |
1 files changed, 42 insertions, 40 deletions
diff --git a/src/JSystem/JAudio2/JASTaskThread.cpp b/src/JSystem/JAudio2/JASTaskThread.cpp index a1cd980baf..b6e11789d2 100644 --- a/src/JSystem/JAudio2/JASTaskThread.cpp +++ b/src/JSystem/JAudio2/JASTaskThread.cpp @@ -1,20 +1,16 @@ -// -// Generated By: dol2asm -// Translation Unit: JASTaskThread -// - #include "JSystem/JSystem.h" // IWYU pragma: keep #include "JSystem/JAudio2/JASTaskThread.h" #include "JSystem/JAudio2/JASCalc.h" #include "JSystem/JAudio2/JASCriticalSection.h" #include "JSystem/JKernel/JKRSolidHeap.h" -#include "dolphin/os.h" /* 8028F6C4-8028F724 28A004 0060+00 0/0 1/1 0/0 .text __ct__13JASTaskThreadFiiUl */ -JASTaskThread::JASTaskThread(int param_0, int param_1, u32 param_2) : JKRThread(JASDram, param_2, param_1, param_0) { +JASTaskThread::JASTaskThread(int priority, int msgCount, u32 stackSize) : + JKRThread(JASDram, stackSize, msgCount, priority) +{ field_0x84 = false; - OSInitThreadQueue(&mpThreadQueue); + OSInitThreadQueue(&threadQueue_); } /* 8028F724-8028F850 28A064 012C+00 1/0 0/0 0/0 .text __dt__13JASTaskThreadFv */ @@ -32,58 +28,62 @@ JASTaskThread::~JASTaskThread() { /* 8028F850-8028F9EC 28A190 019C+00 1/1 0/0 0/0 .text allocCallStack__13JASTaskThreadFPFPv_vPCvUl */ -void* JASTaskThread::allocCallStack(void (*param_0)(void*), void const* param_1, u32 param_2) { +void* JASTaskThread::allocCallStack(JASThreadCallback callback, const void* msg, u32 msgSize) { ThreadMemPool* heap; - u32 size = param_2 + 8; + u32 size = msgSize + 8; JASThreadCallStack *callStack = (JASThreadCallStack*) JASKernel::getCommandHeap()->alloc(size); if (callStack == NULL) { return NULL; } - callStack->field_0x4 = 1; - JASCalc::bcopy(param_1, callStack->field_0x8.buffer, param_2); - callStack->mRunFunc = param_0; + + callStack->msgType_ = 1; + JASCalc::bcopy(msg, callStack->msg.buffer, msgSize); + callStack->callback_ = callback; return callStack; } /* 8028F9EC-8028FB5C 28A32C 0170+00 1/1 0/0 0/0 .text allocCallStack__13JASTaskThreadFPFPv_vPv */ -void* JASTaskThread::allocCallStack(void (*runFunc)(void*), void* param_1) { +void* JASTaskThread::allocCallStack(JASThreadCallback callback, void* msg) { JASThreadCallStack *callStack; - callStack = (JASThreadCallStack*)JASKernel::getCommandHeap()->alloc(0xc); + callStack = (JASThreadCallStack*)JASKernel::getCommandHeap()->alloc(12); if (callStack == NULL) { return NULL; } - callStack->field_0x4 = 0; - callStack->field_0x8.pBuffer = param_1; - callStack->mRunFunc = runFunc; + + callStack->msgType_ = 0; + callStack->msg.bufferPtr = msg; + callStack->callback_ = callback; return callStack; } /* 8028FB5C-8028FC54 28A49C 00F8+00 0/0 6/6 0/0 .text sendCmdMsg__13JASTaskThreadFPFPv_vPCvUl */ -int JASTaskThread::sendCmdMsg(void (*param_0)(void*), void const* param_1, u32 param_2) { - void* pvVar1; +int JASTaskThread::sendCmdMsg(JASThreadCallback callback, const void* msg, u32 msgSize) { + void* callstack; - pvVar1 = allocCallStack(param_0, param_1, param_2); - if (pvVar1 == NULL) { + callstack = allocCallStack(callback, msg, msgSize); + if (callstack == NULL) { return 0; } - int iVar2 = sendMessage(pvVar1); - if (iVar2 == 0) { - JASKernel::getCommandHeap()->free(pvVar1); + + BOOL iVar2 = sendMessage(callstack); + if (!iVar2) { + JASKernel::getCommandHeap()->free(callstack); } return iVar2; } /* 8028FC54-8028FD4C 28A594 00F8+00 0/0 3/3 0/0 .text sendCmdMsg__13JASTaskThreadFPFPv_vPv */ -int JASTaskThread::sendCmdMsg(void (*param_0)(void*), void* param_1) { - void* pvVar1; +int JASTaskThread::sendCmdMsg(JASThreadCallback callback, void* msg) { + void* callstack; - pvVar1 = allocCallStack(param_0, param_1); - if (pvVar1 == NULL) { + callstack = allocCallStack(callback, msg); + if (callstack == NULL) { return 0; } - int iVar2 = sendMessage(pvVar1); - if (iVar2 == 0) { - JASKernel::getCommandHeap()->free(pvVar1); + + BOOL iVar2 = sendMessage(callstack); + if (!iVar2) { + JASKernel::getCommandHeap()->free(callstack); } return iVar2; } @@ -91,19 +91,21 @@ int JASTaskThread::sendCmdMsg(void (*param_0)(void*), void* param_1) { /* 8028FD4C-8028FE88 28A68C 013C+00 1/0 0/0 0/0 .text run__13JASTaskThreadFv */ // NONMATCHING Regalloc void* JASTaskThread::run() { - JASThreadCallStack* ppcVar1; + JASThreadCallStack* callstack; OSInitFastCast(); do { - ppcVar1 = (JASThreadCallStack*)waitMessageBlock(); + callstack = (JASThreadCallStack*)waitMessageBlock(); if (field_0x84) { - OSSleepThread(&mpThreadQueue); + OSSleepThread(&threadQueue_); } - if (ppcVar1->field_0x4) { - ppcVar1->mRunFunc(ppcVar1->field_0x8.buffer); + + if (callstack->msgType_) { + callstack->callback_(callstack->msg.buffer); } else { - ppcVar1->mRunFunc(ppcVar1->field_0x8.pBuffer); + callstack->callback_(callstack->msg.bufferPtr); } - JASKernel::getCommandHeap()->free(ppcVar1); + + JASKernel::getCommandHeap()->free(callstack); } while (true); } @@ -114,7 +116,7 @@ void JASTaskThread::pause(bool param_0) { field_0x84 = 1; } else { if (field_0x84) { - OSWakeupThread(&mpThreadQueue); + OSWakeupThread(&threadQueue_); } field_0x84 = 0; } |
