summaryrefslogtreecommitdiff
path: root/src/code/audio_thread_manager.c
diff options
context:
space:
mode:
authorDerek Hensley <hensley.derek58@gmail.com>2023-06-21 00:50:26 -0700
committerGitHub <noreply@github.com>2023-06-21 17:50:26 +1000
commitc0ac061e6f30d72bccf43b472a6949c26689191f (patch)
tree426d1f4dc8ca11d65b4a7bac246fd9e30d7e1dac /src/code/audio_thread_manager.c
parent9c0fc94fe3c331fb125a4e4c23409f527f35c023 (diff)
AudioMgr cleanup (#1300)
* AudioMgr cleanup * Remove D_801D14F0 from variables.h
Diffstat (limited to 'src/code/audio_thread_manager.c')
-rw-r--r--src/code/audio_thread_manager.c49
1 files changed, 27 insertions, 22 deletions
diff --git a/src/code/audio_thread_manager.c b/src/code/audio_thread_manager.c
index 45fbcb87e..12941eb2d 100644
--- a/src/code/audio_thread_manager.c
+++ b/src/code/audio_thread_manager.c
@@ -1,6 +1,7 @@
#include "global.h"
+#include "audiomgr.h"
-void func_80172C30(AudioMgr* audioMgr) {
+void AudioMgr_NotifyTaskDone(AudioMgr* audioMgr) {
AudioTask* task = audioMgr->rspTask;
if (audioMgr->rspTask->taskQueue != NULL) {
@@ -9,7 +10,7 @@ void func_80172C30(AudioMgr* audioMgr) {
}
void AudioMgr_HandleRetrace(AudioMgr* audioMgr) {
- static s32 retryCount = 10;
+ static s32 sRetryCount = 10;
AudioTask* rspTask;
s32 timerMsgVal = 666;
OSTimer timer;
@@ -19,8 +20,8 @@ void AudioMgr_HandleRetrace(AudioMgr* audioMgr) {
audioMgr->rspTask = NULL;
}
- while (audioMgr->cmdQ.validCount != 0) {
- osRecvMesg(&audioMgr->cmdQ, NULL, OS_MESG_NOBLOCK);
+ while (!MQ_IS_EMPTY(&audioMgr->cmdQueue)) {
+ osRecvMesg(&audioMgr->cmdQueue, NULL, OS_MESG_NOBLOCK);
}
if (audioMgr->rspTask != NULL) {
@@ -29,7 +30,7 @@ void AudioMgr_HandleRetrace(AudioMgr* audioMgr) {
audioMgr->audioTask.framebuffer = NULL;
audioMgr->audioTask.list = audioMgr->rspTask->task;
- audioMgr->audioTask.msgQ = &audioMgr->cmdQ;
+ audioMgr->audioTask.msgQ = &audioMgr->cmdQueue;
audioMgr->audioTask.msg = NULL;
osSendMesg(&audioMgr->sched->cmdQ, &audioMgr->audioTask, OS_MESG_BLOCK);
@@ -44,13 +45,13 @@ void AudioMgr_HandleRetrace(AudioMgr* audioMgr) {
if (audioMgr->rspTask != NULL) {
while (true) {
- osSetTimer(&timer, OS_USEC_TO_CYCLES(32000), 0, &audioMgr->cmdQ, (OSMesg)timerMsgVal);
- osRecvMesg(&audioMgr->cmdQ, (OSMesg*)&msg, OS_MESG_BLOCK);
+ osSetTimer(&timer, OS_USEC_TO_CYCLES(32000), 0, &audioMgr->cmdQueue, (OSMesg)timerMsgVal);
+ osRecvMesg(&audioMgr->cmdQueue, (OSMesg*)&msg, OS_MESG_BLOCK);
osStopTimer(&timer);
if (msg == timerMsgVal) {
osSyncPrintf("AUDIO SP TIMEOUT %08x %08x\n", audioMgr->rspTask, audioMgr->rspTask->task);
- if (retryCount >= 0) {
- retryCount--;
+ if (sRetryCount >= 0) {
+ sRetryCount--;
Sched_SendAudioCancelMsg(audioMgr->sched);
} else {
osSyncPrintf("audioMgr.c:もうダメ!死ぬ!\n");
@@ -62,13 +63,13 @@ void AudioMgr_HandleRetrace(AudioMgr* audioMgr) {
}
}
- func_80172C30(audioMgr);
+ AudioMgr_NotifyTaskDone(audioMgr);
}
audioMgr->rspTask = rspTask;
}
-void AudioMgr_HandlePRENMI(AudioMgr* audioMgr) {
+void AudioMgr_HandlePreNMI(AudioMgr* audioMgr) {
Audio_PreNMI();
}
@@ -81,32 +82,36 @@ void AudioMgr_ThreadEntry(void* arg) {
Audio_Init();
AudioLoad_SetDmaHandler(DmaMgr_DmaHandler);
Audio_InitSound();
- osSendMesg(&audioMgr->lockMsgQ, NULL, OS_MESG_BLOCK);
- IrqMgr_AddClient(audioMgr->irqMgr, &irqClient, &audioMgr->interruptMsgQ);
+ osSendMesg(&audioMgr->lockQueue, NULL, OS_MESG_BLOCK);
+ IrqMgr_AddClient(audioMgr->irqMgr, &irqClient, &audioMgr->interruptQueue);
exit = false;
while (!exit) {
- osRecvMesg(&audioMgr->interruptMsgQ, (OSMesg*)&msg, OS_MESG_BLOCK);
+ osRecvMesg(&audioMgr->interruptQueue, (OSMesg*)&msg, OS_MESG_BLOCK);
switch (*msg) {
case OS_SC_RETRACE_MSG:
AudioMgr_HandleRetrace(audioMgr);
- while (audioMgr->interruptMsgQ.validCount != 0) {
- osRecvMesg(&audioMgr->interruptMsgQ, (OSMesg*)&msg, OS_MESG_BLOCK);
+ while (!MQ_IS_EMPTY(&audioMgr->interruptQueue)) {
+ osRecvMesg(&audioMgr->interruptQueue, (OSMesg*)&msg, OS_MESG_BLOCK);
switch (*msg) {
case OS_SC_RETRACE_MSG:
break;
+
case OS_SC_PRE_NMI_MSG:
- AudioMgr_HandlePRENMI(audioMgr);
+ AudioMgr_HandlePreNMI(audioMgr);
break;
+
case OS_SC_NMI_MSG:
exit = true;
break;
}
}
break;
+
case OS_SC_PRE_NMI_MSG:
- AudioMgr_HandlePRENMI(audioMgr);
+ AudioMgr_HandlePreNMI(audioMgr);
break;
+
case OS_SC_NMI_MSG:
exit = true;
break;
@@ -117,7 +122,7 @@ void AudioMgr_ThreadEntry(void* arg) {
}
void AudioMgr_Unlock(AudioMgr* audioMgr) {
- osRecvMesg(&audioMgr->lockMsgQ, NULL, OS_MESG_BLOCK);
+ osRecvMesg(&audioMgr->lockQueue, NULL, OS_MESG_BLOCK);
}
void AudioMgr_Init(AudioMgr* audioMgr, void* stack, OSPri pri, OSId id, SchedContext* sched, IrqMgr* irqMgr) {
@@ -127,9 +132,9 @@ void AudioMgr_Init(AudioMgr* audioMgr, void* stack, OSPri pri, OSId id, SchedCon
audioMgr->irqMgr = irqMgr;
audioMgr->rspTask = NULL;
- osCreateMesgQueue(&audioMgr->cmdQ, audioMgr->cmdMsgBuf, ARRAY_COUNT(audioMgr->cmdMsgBuf));
- osCreateMesgQueue(&audioMgr->interruptMsgQ, audioMgr->interruptMsgBuf, ARRAY_COUNT(audioMgr->interruptMsgBuf));
- osCreateMesgQueue(&audioMgr->lockMsgQ, audioMgr->lockMsgBuf, ARRAY_COUNT(audioMgr->lockMsgBuf));
+ osCreateMesgQueue(&audioMgr->cmdQueue, audioMgr->cmdMsgBuf, ARRAY_COUNT(audioMgr->cmdMsgBuf));
+ osCreateMesgQueue(&audioMgr->interruptQueue, audioMgr->interruptMsgBuf, ARRAY_COUNT(audioMgr->interruptMsgBuf));
+ osCreateMesgQueue(&audioMgr->lockQueue, audioMgr->lockMsgBuf, ARRAY_COUNT(audioMgr->lockMsgBuf));
osCreateThread(&audioMgr->thread, id, AudioMgr_ThreadEntry, audioMgr, stack, pri);
osStartThread(&audioMgr->thread);