diff options
| author | Luke Street <luke@street.dev> | 2026-03-01 15:35:36 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-01 14:35:36 -0800 |
| commit | 9649319ec4926457ef85e6094f8207474c977c2d (patch) | |
| tree | 1c5cd4c7cc4c1aee03f28921213da47f2775444d /libs/JSystem/src/JAudio2/JASCmdStack.cpp | |
| parent | 6e149819e13b1f70ecbf8a4c66b030c17ffed2bb (diff) | |
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
Diffstat (limited to 'libs/JSystem/src/JAudio2/JASCmdStack.cpp')
| -rw-r--r-- | libs/JSystem/src/JAudio2/JASCmdStack.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/libs/JSystem/src/JAudio2/JASCmdStack.cpp b/libs/JSystem/src/JAudio2/JASCmdStack.cpp new file mode 100644 index 0000000000..beaeee492e --- /dev/null +++ b/libs/JSystem/src/JAudio2/JASCmdStack.cpp @@ -0,0 +1,52 @@ +// +// JASCmdStack +// + +#include "JSystem/JSystem.h" // IWYU pragma: keep + +#include "JSystem/JAudio2/JASCmdStack.h" +#include "JSystem/JAudio2/JASCriticalSection.h" +#include <os.h> + +JASPortCmd::TPortHead JASPortCmd::sCommandListOnce; + +JASPortCmd::TPortHead JASPortCmd::sCommandListStay; + +bool JASPortCmd::addPortCmdOnce() { + JASCriticalSection cs; + return sCommandListOnce.append(this); +} + +bool JASPortCmd::setPortCmd(Command func, JASPortArgs* args) { + JUT_ASSERT(81, func != NULL); + if (getSupervisor()) { + return false; + } + mFunc = func; + mArgs = args; + return true; +} + +void JASPortCmd::execAllCommand() { + sCommandListOnce.execCommandOnce(); + sCommandListStay.execCommandStay(); +} + +void JASPortCmd::TPortHead::execCommandOnce() { + JASCriticalSection cs; + JSULink<JASPortCmd>* next; + for (JSULink<JASPortCmd>* link = getFirst(); link != NULL; link = next) { + next = link->getNext(); + JASPortCmd* cmd = link->getObject(); + cmd->getFunc()(cmd->getArgs()); + remove(link); + } +} + +void JASPortCmd::TPortHead::execCommandStay() { + JASCriticalSection cs; + for (JSULink<JASPortCmd>* link = getFirst(); link != NULL; link = link->getNext()) { + JASPortCmd* cmd = link->getObject(); + cmd->getFunc()(cmd->getArgs()); + } +} |
