Merge pull request #17367 from ShyRed/audio_playing_

Use fake audio playing property in editor
This commit is contained in:
Hein-Pieter van Braam 2018-05-13 21:35:44 +02:00 committed by GitHub
commit 24dbe5e310
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 44 additions and 3 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;