summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scene/2d/audio_stream_player_2d.cpp11
-rw-r--r--scene/2d/audio_stream_player_2d.h4
-rw-r--r--scene/3d/audio_stream_player_3d.cpp11
-rw-r--r--scene/3d/audio_stream_player_3d.h4
-rw-r--r--scene/audio/audio_player.cpp13
-rw-r--r--scene/audio/audio_player.h4
6 files changed, 44 insertions, 3 deletions
diff --git a/scene/2d/audio_stream_player_2d.cpp b/scene/2d/audio_stream_player_2d.cpp
index f998f23d3b..94db832e9f 100644
--- a/scene/2d/audio_stream_player_2d.cpp
+++ b/scene/2d/audio_stream_player_2d.cpp
@@ -233,7 +233,6 @@ void AudioStreamPlayer2D::_notification(int p_what) {
//stop playing if no longer active
if (!active) {
set_physics_process_internal(false);
- //do not update, this makes it easier to animate (will shut off otherwise)
//_change_notify("playing"); //update property in editor
emit_signal("finished");
}
@@ -313,6 +312,11 @@ void AudioStreamPlayer2D::stop() {
bool AudioStreamPlayer2D::is_playing() const {
+#ifdef TOOLS_ENABLED
+ if (Engine::get_singleton()->is_editor_hint())
+ return fake_active;
+#endif
+
if (stream_playback.is_valid()) {
return active; // && stream_playback->is_playing();
}
@@ -357,11 +361,16 @@ bool AudioStreamPlayer2D::is_autoplay_enabled() {
void AudioStreamPlayer2D::_set_playing(bool p_enable) {
+#ifdef TOOLS_ENABLED
+ fake_active = p_enable;
+#endif
+
if (p_enable)
play();
else
stop();
}
+
bool AudioStreamPlayer2D::_is_active() const {
return active;
diff --git a/scene/2d/audio_stream_player_2d.h b/scene/2d/audio_stream_player_2d.h
index 9ae8e3a518..eae18c8404 100644
--- a/scene/2d/audio_stream_player_2d.h
+++ b/scene/2d/audio_stream_player_2d.h
@@ -69,6 +69,10 @@ private:
volatile bool active;
volatile float setplay;
+#ifdef TOOLS_ENABLED
+ volatile bool fake_active;
+#endif
+
float volume_db;
float pitch_scale;
bool autoplay;
diff --git a/scene/3d/audio_stream_player_3d.cpp b/scene/3d/audio_stream_player_3d.cpp
index c2a50ec7bb..fa2b798769 100644
--- a/scene/3d/audio_stream_player_3d.cpp
+++ b/scene/3d/audio_stream_player_3d.cpp
@@ -543,7 +543,6 @@ void AudioStreamPlayer3D::_notification(int p_what) {
//stop playing if no longer active
if (!active) {
set_physics_process_internal(false);
- //do not update, this makes it easier to animate (will shut off otherwise)
//_change_notify("playing"); //update property in editor
emit_signal("finished");
}
@@ -641,6 +640,11 @@ void AudioStreamPlayer3D::stop() {
bool AudioStreamPlayer3D::is_playing() const {
+#ifdef TOOLS_ENABLED
+ if (Engine::get_singleton()->is_editor_hint())
+ return fake_active;
+#endif
+
if (stream_playback.is_valid()) {
return active; // && stream_playback->is_playing();
}
@@ -685,11 +689,16 @@ bool AudioStreamPlayer3D::is_autoplay_enabled() {
void AudioStreamPlayer3D::_set_playing(bool p_enable) {
+#ifdef TOOLS_ENABLED
+ fake_active = p_enable;
+#endif
+
if (p_enable)
play();
else
stop();
}
+
bool AudioStreamPlayer3D::_is_active() const {
return active;
diff --git a/scene/3d/audio_stream_player_3d.h b/scene/3d/audio_stream_player_3d.h
index 1fcb83cf21..0e44ffd273 100644
--- a/scene/3d/audio_stream_player_3d.h
+++ b/scene/3d/audio_stream_player_3d.h
@@ -102,6 +102,10 @@ private:
volatile bool active;
volatile float setplay;
+#ifdef TOOLS_ENABLED
+ volatile bool fake_active;
+#endif
+
AttenuationModel attenuation_model;
float unit_db;
float unit_size;
diff --git a/scene/audio/audio_player.cpp b/scene/audio/audio_player.cpp
index 408c00334a..e7ace82fc0 100644
--- a/scene/audio/audio_player.cpp
+++ b/scene/audio/audio_player.cpp
@@ -127,6 +127,7 @@ void AudioStreamPlayer::_notification(int p_what) {
if (!active || (setseek < 0 && !stream_playback->is_playing())) {
active = false;
set_process_internal(false);
+ //_change_notify("playing"); //update property in editor
emit_signal("finished");
}
}
@@ -211,8 +212,13 @@ void AudioStreamPlayer::stop() {
bool AudioStreamPlayer::is_playing() const {
+#ifdef TOOLS_ENABLED
+ if (Engine::get_singleton()->is_editor_hint())
+ return fake_active;
+#endif
+
if (stream_playback.is_valid()) {
- return active; //&& stream_playback->is_playing();
+ return active; // && stream_playback->is_playing();
}
return false;
@@ -265,11 +271,16 @@ AudioStreamPlayer::MixTarget AudioStreamPlayer::get_mix_target() const {
void AudioStreamPlayer::_set_playing(bool p_enable) {
+#ifdef TOOLS_ENABLED
+ fake_active = p_enable;
+#endif
+
if (p_enable)
play();
else
stop();
}
+
bool AudioStreamPlayer::_is_active() const {
return active;
diff --git a/scene/audio/audio_player.h b/scene/audio/audio_player.h
index 21189aea6d..f2e2684642 100644
--- a/scene/audio/audio_player.h
+++ b/scene/audio/audio_player.h
@@ -53,6 +53,10 @@ private:
volatile float setseek;
volatile bool active;
+#ifdef TOOLS_ENABLED
+ volatile bool fake_active;
+#endif
+
float mix_volume_db;
float pitch_scale;
float volume_db;