summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEoin O'Neill <eoinoneill1991@gmail.com>2022-02-10 21:01:04 -0800
committerEoin O'Neill <eoinoneill1991@gmail.com>2022-02-22 18:11:40 -0800
commitded9dc1e825f1b050c95afa6be786723420e1a2b (patch)
tree25c41c018b65fd3eaa89aec1031b757693ac1ef5
parent002ab1060862431731cd528a0887ad8362ab404c (diff)
Add missing binding to AudioStream class
This allows for the extension of AudioStream where you can call `instance_plackback` on child AudioStream instances within gdscript, much like the implementation of some child classes in C++. See `AudioStreamRandomPitch` for an example of how this can be used.
-rw-r--r--doc/classes/AudioStream.xml6
-rw-r--r--servers/audio/audio_stream.cpp1
2 files changed, 7 insertions, 0 deletions
diff --git a/doc/classes/AudioStream.xml b/doc/classes/AudioStream.xml
index 1e6f700c7c..6343da6eed 100644
--- a/doc/classes/AudioStream.xml
+++ b/doc/classes/AudioStream.xml
@@ -39,6 +39,12 @@
Returns the length of the audio stream in seconds.
</description>
</method>
+ <method name="instance_playback">
+ <return type="AudioStreamPlayback" />
+ <description>
+ Returns an AudioStreamPlayback. Useful for when you want to extend `_instance_playback` but call `instance_playback` from an internally held AudioStream subresource. An example of this can be found in the source files for `AudioStreamRandomPitch::instance_playback`.
+ </description>
+ </method>
<method name="is_monophonic" qualifiers="const">
<return type="bool" />
<description>
diff --git a/servers/audio/audio_stream.cpp b/servers/audio/audio_stream.cpp
index 39060286a4..a710658bff 100644
--- a/servers/audio/audio_stream.cpp
+++ b/servers/audio/audio_stream.cpp
@@ -200,6 +200,7 @@ bool AudioStream::is_monophonic() const {
void AudioStream::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_length"), &AudioStream::get_length);
ClassDB::bind_method(D_METHOD("is_monophonic"), &AudioStream::is_monophonic);
+ ClassDB::bind_method(D_METHOD("instance_playback"), &AudioStream::instance_playback);
GDVIRTUAL_BIND(_instance_playback);
GDVIRTUAL_BIND(_get_stream_name);
GDVIRTUAL_BIND(_get_length);