diff options
| author | Max Hilbrunner <mhilbrunner@users.noreply.github.com> | 2018-07-05 04:16:47 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-05 04:16:47 +0200 | 
| commit | ed61bdd2ae16c3d81b8aa1cdd9df7d769e44c49c (patch) | |
| tree | 5c8d912650be9360c40b8d7c859d15d42d115777 | |
| parent | 3f272c6ae65bd608c3f6412aebced29cfcb813e7 (diff) | |
| parent | 2bdac0a5d90811158c0615ab4d16e5dcff933957 (diff) | |
Merge pull request #19646 from chanon/fix-audiostream-cant-set-null-stream
Fix can't set AudioStreamPlayer stream to null
| -rw-r--r-- | scene/2d/audio_stream_player_2d.cpp | 10 | ||||
| -rw-r--r-- | scene/3d/audio_stream_player_3d.cpp | 10 | ||||
| -rw-r--r-- | scene/audio/audio_player.cpp | 1 | 
3 files changed, 10 insertions, 11 deletions
diff --git a/scene/2d/audio_stream_player_2d.cpp b/scene/2d/audio_stream_player_2d.cpp index 6e77369d65..b6dfc666b0 100644 --- a/scene/2d/audio_stream_player_2d.cpp +++ b/scene/2d/audio_stream_player_2d.cpp @@ -259,7 +259,6 @@ void AudioStreamPlayer2D::_notification(int p_what) {  void AudioStreamPlayer2D::set_stream(Ref<AudioStream> p_stream) { -	ERR_FAIL_COND(!p_stream.is_valid());  	AudioServer::get_singleton()->lock();  	mix_buffer.resize(AudioServer::get_singleton()->thread_get_mix_buffer_size()); @@ -271,14 +270,15 @@ void AudioStreamPlayer2D::set_stream(Ref<AudioStream> p_stream) {  		setseek = -1;  	} -	stream = p_stream; -	stream_playback = p_stream->instance_playback(); +	if (p_stream.is_valid()) { +		stream = p_stream; +		stream_playback = p_stream->instance_playback(); +	}  	AudioServer::get_singleton()->unlock(); -	if (stream_playback.is_null()) { +	if (p_stream.is_valid() && stream_playback.is_null()) {  		stream.unref(); -		ERR_FAIL_COND(stream_playback.is_null());  	}  } diff --git a/scene/3d/audio_stream_player_3d.cpp b/scene/3d/audio_stream_player_3d.cpp index f1da375451..35c52a26c9 100644 --- a/scene/3d/audio_stream_player_3d.cpp +++ b/scene/3d/audio_stream_player_3d.cpp @@ -569,7 +569,6 @@ void AudioStreamPlayer3D::_notification(int p_what) {  void AudioStreamPlayer3D::set_stream(Ref<AudioStream> p_stream) { -	ERR_FAIL_COND(!p_stream.is_valid());  	AudioServer::get_singleton()->lock();  	mix_buffer.resize(AudioServer::get_singleton()->thread_get_mix_buffer_size()); @@ -581,14 +580,15 @@ void AudioStreamPlayer3D::set_stream(Ref<AudioStream> p_stream) {  		setseek = -1;  	} -	stream = p_stream; -	stream_playback = p_stream->instance_playback(); +	if (p_stream.is_valid()) { +		stream = p_stream; +		stream_playback = p_stream->instance_playback(); +	}  	AudioServer::get_singleton()->unlock(); -	if (stream_playback.is_null()) { +	if (p_stream.is_valid() && stream_playback.is_null()) {  		stream.unref(); -		ERR_FAIL_COND(stream_playback.is_null());  	}  } diff --git a/scene/audio/audio_player.cpp b/scene/audio/audio_player.cpp index b5c232c33c..40ec04e479 100644 --- a/scene/audio/audio_player.cpp +++ b/scene/audio/audio_player.cpp @@ -176,7 +176,6 @@ void AudioStreamPlayer::set_stream(Ref<AudioStream> p_stream) {  	if (p_stream.is_valid() && stream_playback.is_null()) {  		stream.unref(); -		ERR_FAIL_COND(stream_playback.is_null());  	}  }  |