From b22783b9b378f1fcc7eead0d9340deeebec08c3a Mon Sep 17 00:00:00 2001 From: Adam Scott Date: Thu, 18 Jul 2024 11:14:33 -0400 Subject: [PATCH] Fix new stream types `mix()` not returning 0 when inactive --- modules/interactive_music/audio_stream_interactive.cpp | 5 +---- modules/interactive_music/audio_stream_playlist.cpp | 5 +---- modules/interactive_music/audio_stream_synchronized.cpp | 7 ++----- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/modules/interactive_music/audio_stream_interactive.cpp b/modules/interactive_music/audio_stream_interactive.cpp index d7762295eb0b..8472c4e352cb 100644 --- a/modules/interactive_music/audio_stream_interactive.cpp +++ b/modules/interactive_music/audio_stream_interactive.cpp @@ -858,10 +858,7 @@ int AudioStreamPlaybackInteractive::mix(AudioFrame *p_buffer, float p_rate_scale } if (!active) { - for (int i = 0; i < p_frames; i++) { - p_buffer[i] = AudioFrame(0.0, 0.0); - } - return p_frames; + return 0; } int todo = p_frames; diff --git a/modules/interactive_music/audio_stream_playlist.cpp b/modules/interactive_music/audio_stream_playlist.cpp index f47035b30cf1..eb77a4a8d35f 100644 --- a/modules/interactive_music/audio_stream_playlist.cpp +++ b/modules/interactive_music/audio_stream_playlist.cpp @@ -259,10 +259,7 @@ void AudioStreamPlaybackPlaylist::seek(double p_time) { int AudioStreamPlaybackPlaylist::mix(AudioFrame *p_buffer, float p_rate_scale, int p_frames) { if (!active) { - for (int i = 0; i < p_frames; i++) { - p_buffer[i] = AudioFrame(0.0, 0.0); - } - return p_frames; + return 0; } double time_dec = (1.0 / AudioServer::get_singleton()->get_mix_rate()); diff --git a/modules/interactive_music/audio_stream_synchronized.cpp b/modules/interactive_music/audio_stream_synchronized.cpp index d0d58fac161f..e38a57ba753a 100644 --- a/modules/interactive_music/audio_stream_synchronized.cpp +++ b/modules/interactive_music/audio_stream_synchronized.cpp @@ -204,11 +204,8 @@ void AudioStreamPlaybackSynchronized::seek(double p_time) { } int AudioStreamPlaybackSynchronized::mix(AudioFrame *p_buffer, float p_rate_scale, int p_frames) { - if (active != true) { - for (int i = 0; i < p_frames; i++) { - p_buffer[i] = AudioFrame(0.0, 0.0); - } - return p_frames; + if (!active) { + return 0; } int todo = p_frames;