summaryrefslogtreecommitdiff
path: root/src/JSystem/JAudio2/JASTaskThread.cpp
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2025-11-27 21:19:33 -0800
committerGitHub <noreply@github.com>2025-11-27 21:19:33 -0800
commit6f96e665186c87f15acb6f5cb8d27665afee3130 (patch)
tree3ea70fe7d635a0f55aae44b1a386814766a46597 /src/JSystem/JAudio2/JASTaskThread.cpp
parent767caeecc3e374779cccc9960b6546b74e7a9e50 (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.cpp82
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;
}