#pragma once #include #include "Runtime/GCNTypes.hpp" namespace metaforce { class CStreamAudioManager { static u8 g_MusicVolume; static u8 g_SfxVolume; static bool g_MusicUnmute; static bool g_SfxUnmute; static float GetTargetDSPVolume(float fileVol, bool music); static void StopStreaming(bool oneshot); static void UpdateDSP(bool oneshot, float dt); static void UpdateDSPStreamers(float dt); static void StopAllStreams(); public: static void Start(bool oneshot, std::string_view fileName, float volume, bool music, float fadeIn, float fadeOut); static void Stop(bool oneshot, std::string_view fileName); static void FadeBackIn(bool oneshot, float fadeTime); static void TemporaryFadeOut(bool oneshot, float fadeTime); static void Update(float dt); static void StopAll(); static void SetMusicUnmute(bool unmute); static void SetSfxVolume(u8 volume); static void SetMusicVolume(u8 volume); static void Initialize(); static void StopOneShot(); static void Shutdown(); }; } // namespace metaforce