summaryrefslogtreecommitdiffstats
path: root/src/audio_core/stream.cpp
diff options
context:
space:
mode:
authorDavid Marcec <dmarcecguzman@gmail.com>2019-06-16 11:06:33 +0200
committerDavid Marcec <dmarcecguzman@gmail.com>2019-06-16 11:06:33 +0200
commit335127af6921ce298a6dd63682895768c6b06e86 (patch)
tree0a505fec2c232dec0945fc02159eecc9c3af087e /src/audio_core/stream.cpp
parentMerge pull request #2538 from ReinUsesLisp/ssy-pbk (diff)
downloadyuzu-335127af6921ce298a6dd63682895768c6b06e86.tar
yuzu-335127af6921ce298a6dd63682895768c6b06e86.tar.gz
yuzu-335127af6921ce298a6dd63682895768c6b06e86.tar.bz2
yuzu-335127af6921ce298a6dd63682895768c6b06e86.tar.lz
yuzu-335127af6921ce298a6dd63682895768c6b06e86.tar.xz
yuzu-335127af6921ce298a6dd63682895768c6b06e86.tar.zst
yuzu-335127af6921ce298a6dd63682895768c6b06e86.zip
Diffstat (limited to 'src/audio_core/stream.cpp')
-rw-r--r--src/audio_core/stream.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/audio_core/stream.cpp b/src/audio_core/stream.cpp
index 11481a776..982c7af2f 100644
--- a/src/audio_core/stream.cpp
+++ b/src/audio_core/stream.cpp
@@ -51,6 +51,10 @@ void Stream::Stop() {
UNIMPLEMENTED();
}
+void Stream::SetVolume(float volume) {
+ game_volume = volume;
+}
+
Stream::State Stream::GetState() const {
return state;
}
@@ -62,8 +66,8 @@ s64 Stream::GetBufferReleaseCycles(const Buffer& buffer) const {
return Core::Timing::usToCycles(us);
}
-static void VolumeAdjustSamples(std::vector<s16>& samples) {
- const float volume{std::clamp(Settings::values.volume, 0.0f, 1.0f)};
+static void VolumeAdjustSamples(std::vector<s16>& samples, float game_volume) {
+ const float volume{std::clamp(Settings::values.volume - (1.0f - game_volume), 0.0f, 1.0f)};
if (volume == 1.0f) {
return;
@@ -97,7 +101,7 @@ void Stream::PlayNextBuffer() {
active_buffer = queued_buffers.front();
queued_buffers.pop();
- VolumeAdjustSamples(active_buffer->GetSamples());
+ VolumeAdjustSamples(active_buffer->GetSamples(), game_volume);
sink_stream.EnqueueSamples(GetNumChannels(), active_buffer->GetSamples());