Files
dusklight/libs/JSystem/src/JAudio2/JASCallback.cpp
T
Luke Street 4df8ccc871 Reorganize library code into libs/ (#3119)
* Reorganize files into libs/{dolphin,JSystem,PowerPC_EABI_Support,revolution,TRK_MINNOW_DOLPHIN}

* Update configure.py and project.py for new libs structure

* Refactor `#include <dolphin/x.h>` -> `<x.h>`

* Remove `__REVOLUTION_SDK__` forwards from dolphin

* Fix dolphin/ references in revolution

* Wrap `#include <dolphin.h>` in `!__REVOLUTION_SDK__`

* Always build TRK against dolphin headers

* Resolve revolution SDK header resolution issues
2026-03-01 14:35:36 -08:00

43 lines
1.1 KiB
C++

#include "JSystem/JSystem.h" // IWYU pragma: keep
#include "JSystem/JAudio2/JASCallback.h"
#include "JSystem/JAudio2/JASCriticalSection.h"
bool JASCallbackMgr::regist(JASCallback* callback, void* argument) {
JASCriticalSection criticalSection;
for (int i = 0; i < NUM_CALLBACKS; i++) {
if (callbacks_[i].callback_ == NULL) {
callbacks_[i].callback_ = callback;
callbacks_[i].arg_ = argument;
return true;
}
}
return false;
}
int JASCallbackMgr::reject(JASCallback* callback, void* argument) {
int rejectNum = 0;
JASCriticalSection criticalSection;
for (int i = 0; i < NUM_CALLBACKS; i++) {
if (callbacks_[i].callback_ == callback && callbacks_[i].arg_ == argument) {
callbacks_[i].callback_ = NULL;
callbacks_[i].arg_ = NULL;
rejectNum++;
}
}
return rejectNum;
}
void JASCallbackMgr::callback() {
for (int i = 0; i < NUM_CALLBACKS; i++) {
if (callbacks_[i].callback_) {
s32 result = callbacks_[i].callback_(callbacks_[i].arg_);
if (result < 0) {
callbacks_[i].callback_ = NULL;
callbacks_[i].arg_ = NULL;
}
}
}
}