mirror of
https://github.com/zeldaret/ss
synced 2026-08-17 21:33:05 -04:00
Pad stuff
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include "egg/audio/eggAudioRmtSpeakerMgr.h"
|
||||
|
||||
#include "nw4r/snd/snd_SoundSystem.h"
|
||||
|
||||
#include "rvl/OS.h" // IWYU pragma: export
|
||||
|
||||
namespace EGG {
|
||||
@@ -21,7 +22,7 @@ void AudioRmtSpeakerMgr::setupCallback(s32 arg1, s32 arg2) {
|
||||
}
|
||||
sAudioRmtSpeakerWpadVolume = WPADGetSpeakerVolume();
|
||||
} else {
|
||||
fn_804B6D80(arg1, sTasks[mTaskFinishCount].mpCallback);
|
||||
setup(arg1, sTasks[mTaskFinishCount].mpCallback);
|
||||
}
|
||||
sTasks[mTaskFinishCount].field_0x01 = true;
|
||||
}
|
||||
@@ -32,12 +33,12 @@ void AudioRmtSpeakerMgr::shutdownCallback(s32 arg1, s32 arg2) {
|
||||
(sTasks[mTaskFinishCount].mpCallback)(arg1, arg2);
|
||||
}
|
||||
} else {
|
||||
fn_804B6DE0(arg1, sTasks[mTaskFinishCount].mpCallback);
|
||||
shutdown(arg1, sTasks[mTaskFinishCount].mpCallback);
|
||||
}
|
||||
sTasks[mTaskFinishCount].field_0x01 = true;
|
||||
}
|
||||
|
||||
void AudioRmtSpeakerMgr::fn_804B6AF0(s32 i, WPADCallback *pCallback, bool enable) {
|
||||
void AudioRmtSpeakerMgr::add_task(s32 i, WPADCallback *pCallback, bool enable) {
|
||||
BOOL intr = OSDisableInterrupts();
|
||||
|
||||
u32 index = mTaskRequestCount;
|
||||
@@ -52,14 +53,14 @@ void AudioRmtSpeakerMgr::fn_804B6AF0(s32 i, WPADCallback *pCallback, bool enable
|
||||
OSRestoreInterrupts(intr);
|
||||
}
|
||||
|
||||
void AudioRmtSpeakerMgr::fn_804B6B80(s32 i, WPADCallback *pCallback) {
|
||||
void AudioRmtSpeakerMgr::doSetup(s32 i, WPADCallback *pCallback) {
|
||||
if (!nw4r::snd::SoundSystem::GetRemoteSpeaker(i).Setup(pCallback)) {
|
||||
fn_804B6AF0(i, pCallback, true);
|
||||
add_task(i, pCallback, true);
|
||||
sTasks[mTaskRequestCount].field_0x01 = true;
|
||||
}
|
||||
}
|
||||
|
||||
void AudioRmtSpeakerMgr::fn_804B6C00(s32 i, WPADCallback *pCallback) {
|
||||
void AudioRmtSpeakerMgr::doShutdown(s32 i, WPADCallback *pCallback) {
|
||||
nw4r::snd::SoundSystem::GetRemoteSpeaker(i).Shutdown(pCallback);
|
||||
}
|
||||
|
||||
@@ -67,9 +68,9 @@ void AudioRmtSpeakerMgr::calc() {
|
||||
if (!sTask) {
|
||||
if (mTaskRequestCount != mTaskFinishCount) {
|
||||
if (sTasks[mTaskFinishCount].field_0x00) {
|
||||
fn_804B6B80(sTasks[mTaskFinishCount].mChannel, setupCallback);
|
||||
doSetup(sTasks[mTaskFinishCount].mChannel, setupCallback);
|
||||
} else {
|
||||
fn_804B6C00(sTasks[mTaskFinishCount].mChannel, shutdownCallback);
|
||||
doShutdown(sTasks[mTaskFinishCount].mChannel, shutdownCallback);
|
||||
}
|
||||
sTask = true;
|
||||
}
|
||||
@@ -86,7 +87,7 @@ void AudioRmtSpeakerMgr::setupCallbackDirect(s32 arg1, s32 arg2) {
|
||||
if (arg2 == 0) {
|
||||
sAudioRmtSpeakerWpadVolume = WPADGetSpeakerVolume();
|
||||
} else {
|
||||
fn_804B6B80(arg1, setupCallbackDirect);
|
||||
doSetup(arg1, setupCallbackDirect);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,17 +98,17 @@ void AudioRmtSpeakerMgr::shutdownCallbackDirect(s32 arg1, s32 arg2) {
|
||||
if (arg2 == 0) {
|
||||
return;
|
||||
}
|
||||
fn_804B6C00(arg1, shutdownCallbackDirect);
|
||||
doShutdown(arg1, shutdownCallbackDirect);
|
||||
}
|
||||
|
||||
void AudioRmtSpeakerMgr::fn_804B6D80(s32 i, WPADCallback *pCallback) {
|
||||
void AudioRmtSpeakerMgr::setup(s32 i, WPADCallback *pCallback) {
|
||||
WPADDeviceType ty;
|
||||
if (!sAudioRmtSpeakerConnectCanncelSw && WPADProbe(i, &ty) != WPAD_ERR_NO_CONTROLLER) {
|
||||
fn_804B6AF0(i, pCallback, true);
|
||||
add_task(i, pCallback, true);
|
||||
}
|
||||
}
|
||||
|
||||
void AudioRmtSpeakerMgr::fn_804B6DE0(s32 i, WPADCallback *pCallback) {
|
||||
void AudioRmtSpeakerMgr::shutdown(s32 i, WPADCallback *pCallback) {
|
||||
WPADDeviceType ty;
|
||||
if (!sAudioRmtSpeakerConnectCanncelSw) {
|
||||
if (WPADProbe(i, &ty) == WPAD_ERR_NO_CONTROLLER) {
|
||||
@@ -115,7 +116,7 @@ void AudioRmtSpeakerMgr::fn_804B6DE0(s32 i, WPADCallback *pCallback) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
fn_804B6AF0(i, pCallback, false);
|
||||
add_task(i, pCallback, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,7 +125,7 @@ void AudioRmtSpeakerMgr::connectAllByForce() {
|
||||
sAudioRmtSpeakerConnectCanncelSw = false;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (WPADProbe(i, &ty) != WPAD_ERR_NO_CONTROLLER) {
|
||||
fn_804B6B80(i, setupCallbackDirect);
|
||||
doSetup(i, setupCallbackDirect);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -134,7 +135,7 @@ void AudioRmtSpeakerMgr::disconnectAllByForce() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
WPADProbe(i, &ty); // ignoring result here
|
||||
if (nw4r::snd::SoundSystem::GetRemoteSpeaker(i).IsAvailable()) {
|
||||
fn_804B6C00(i, shutdownCallbackDirect);
|
||||
doShutdown(i, shutdownCallbackDirect);
|
||||
}
|
||||
}
|
||||
sAudioRmtSpeakerConnectCanncelSw = true;
|
||||
|
||||
Reference in New Issue
Block a user