From dafab62718ceefe2400ef52e906c9e89b3d41a2b Mon Sep 17 00:00:00 2001 From: fallenoak Date: Sat, 29 Nov 2025 15:13:01 -0600 Subject: [PATCH] feat(sound): add SESound::MuteChannelGroup --- src/sound/SESound.cpp | 15 +++++++++++++++ src/sound/SESound.hpp | 1 + 2 files changed, 16 insertions(+) diff --git a/src/sound/SESound.cpp b/src/sound/SESound.cpp index 6996486..43aae40 100644 --- a/src/sound/SESound.cpp +++ b/src/sound/SESound.cpp @@ -577,6 +577,21 @@ void SESound::Log_Write(int32_t line, const char* file, FMOD_RESULT result, cons // TODO } +void SESound::MuteChannelGroup(const char* name, bool mute) { + if (!SESound::s_Initialized || !name) { + return; + } + + auto channelGroup = SESound::GetChannelGroup(name, false, false); + + if (!channelGroup) { + return; + } + + channelGroup->m_dirty = true; + channelGroup->m_muteVolume = mute ? 0.0f : 1.0f; +} + void SESound::ProcessReadyDiskSounds() { while (auto diskSound = SESound::s_ReadyDiskSounds.Head()) { SESound::s_ReadyDiskSounds.UnlinkNode(diskSound); diff --git a/src/sound/SESound.hpp b/src/sound/SESound.hpp index 007ab80..0763cfc 100644 --- a/src/sound/SESound.hpp +++ b/src/sound/SESound.hpp @@ -37,6 +37,7 @@ class SESound { static void Init(int32_t maxChannels, int32_t (*a2), int32_t enableReverb, int32_t enableSoftwareHRTF, int32_t* numChannels, int32_t* outputDriverIndex, const char* outputDriverName, void (*a8), int32_t a9); static int32_t IsInitialized(); static void Log_Write(int32_t line, const char* file, FMOD_RESULT result, const char* fmt, ...); + static void MuteChannelGroup(const char* name, bool mute); static void SetChannelGroupVolume(const char* name, float volume); // Public member functions