mirror of
https://github.com/open-goal/jak-project
synced 2026-08-06 01:49:17 -04:00
8a73c3e997
This implements the functionality for the `PLUGIN_MESSAGE` grain and the 989snd VAG plugin system, allowing sounds to queue up VAG streams. Closes #2582
30 lines
597 B
C++
30 lines
597 B
C++
#pragma once
|
|
|
|
#include "common/common_types.h"
|
|
|
|
namespace plugin_strv {
|
|
|
|
enum class PluginOp { Queue, Stop, SetVol, StopAll };
|
|
|
|
struct PluginStreamRequest {
|
|
PluginOp op{};
|
|
u32 owner{};
|
|
char name[0x30]{};
|
|
s32 prio{};
|
|
s32 vol{};
|
|
s32 pan{};
|
|
};
|
|
|
|
struct PluginStreamOps {
|
|
void (*queue)(const PluginStreamRequest&) = nullptr;
|
|
void (*stop)(const PluginStreamRequest&) = nullptr;
|
|
void (*set_vol)(const PluginStreamRequest&) = nullptr;
|
|
void (*stop_all)() = nullptr;
|
|
s32 wakeup_thread = 0;
|
|
};
|
|
|
|
void Init(const PluginStreamOps& ops);
|
|
void HandleRequests();
|
|
|
|
} // namespace plugin_strv
|