From 775c1cbce8b07e50259220e3ccf9a4d71be436a8 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Wed, 26 Nov 2025 23:33:37 -0600 Subject: [PATCH] feat(sound): add SESound::SetVolume --- src/sound/SESound.cpp | 13 +++++++++++++ src/sound/SESound.hpp | 1 + 2 files changed, 14 insertions(+) diff --git a/src/sound/SESound.cpp b/src/sound/SESound.cpp index 1bed896..b0ab029 100644 --- a/src/sound/SESound.cpp +++ b/src/sound/SESound.cpp @@ -4,6 +4,7 @@ #include "util/SFile.hpp" #include #include +#include #include #define LOG_WRITE(result, ...) \ @@ -622,3 +623,15 @@ void SESound::SetUserData(SEUserData* userData) { this->m_internal->m_userData = userData; } + +void SESound::SetVolume(float volume) { + if (!this->m_internal) { + return; + } + + this->m_internal->m_volume = std::min(std::max(volume, 0.0f), 1.0f); + + if (this->m_internal->m_fmodChannel) { + this->m_internal->m_fmodChannel->setVolume(this->m_internal->GetVolume()); + } +} diff --git a/src/sound/SESound.hpp b/src/sound/SESound.hpp index c191194..6da9178 100644 --- a/src/sound/SESound.hpp +++ b/src/sound/SESound.hpp @@ -43,6 +43,7 @@ class SESound { void SetFadeInTime(float fadeInTime); void SetFadeOutTime(float fadeOutTime); void SetUserData(SEUserData* userData); + void SetVolume(float volume); private: // Private static functions