summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorA Thousand Ships <96648715+AThousandShips@users.noreply.github.com>2023-10-22 16:27:43 +0200
committerA Thousand Ships <96648715+AThousandShips@users.noreply.github.com>2023-10-22 22:35:32 +0200
commit72fccd82c556b6f0d9678fc12eb8c331ff86d9f4 (patch)
tree71e115d2777a5ea37b7b08c103cdb5af29995497
parent8c25a98fdf68dc388eddaefa188f3386236cdfe4 (diff)
downloadredot-engine-72fccd82c556b6f0d9678fc12eb8c331ff86d9f4.tar.gz
[Audio] Fix pausing stream on entering tree
The paused notifications are only sent when pause status is changed, this ensures that streams that are non-processing do not play when added to the tree. Also ensures that the `process_mode` property applies generally.
-rw-r--r--scene/2d/audio_stream_player_2d.cpp2
-rw-r--r--scene/3d/audio_stream_player_3d.cpp2
-rw-r--r--scene/audio/audio_stream_player.cpp2
3 files changed, 3 insertions, 3 deletions
diff --git a/scene/2d/audio_stream_player_2d.cpp b/scene/2d/audio_stream_player_2d.cpp
index 0a80467b6b..afc5748ac5 100644
--- a/scene/2d/audio_stream_player_2d.cpp
+++ b/scene/2d/audio_stream_player_2d.cpp
@@ -43,7 +43,7 @@ void AudioStreamPlayer2D::_notification(int p_what) {
if (autoplay && !Engine::get_singleton()->is_editor_hint()) {
play();
}
- set_stream_paused(false);
+ set_stream_paused(!can_process());
} break;
case NOTIFICATION_EXIT_TREE: {
diff --git a/scene/3d/audio_stream_player_3d.cpp b/scene/3d/audio_stream_player_3d.cpp
index 9f99b5ecbd..3971e615a1 100644
--- a/scene/3d/audio_stream_player_3d.cpp
+++ b/scene/3d/audio_stream_player_3d.cpp
@@ -245,7 +245,7 @@ void AudioStreamPlayer3D::_notification(int p_what) {
if (autoplay && !Engine::get_singleton()->is_editor_hint()) {
play();
}
- set_stream_paused(false);
+ set_stream_paused(!can_process());
} break;
case NOTIFICATION_EXIT_TREE: {
diff --git a/scene/audio/audio_stream_player.cpp b/scene/audio/audio_stream_player.cpp
index 7f6dfd0ab8..f3c986f9b3 100644
--- a/scene/audio/audio_stream_player.cpp
+++ b/scene/audio/audio_stream_player.cpp
@@ -40,7 +40,7 @@ void AudioStreamPlayer::_notification(int p_what) {
if (autoplay && !Engine::get_singleton()->is_editor_hint()) {
play();
}
- set_stream_paused(false);
+ set_stream_paused(!can_process());
} break;
case NOTIFICATION_INTERNAL_PROCESS: {