From 12f682bdc292a6400803eeddef35473e1eddd3b2 Mon Sep 17 00:00:00 2001 From: Gustavo Jaruga Cruz Date: Mon, 19 Aug 2024 02:51:07 -0300 Subject: [PATCH] Exposes interactive audio playback current playing clip. --- .../interactive_music/audio_stream_interactive.cpp | 5 +++++ modules/interactive_music/audio_stream_interactive.h | 1 + .../doc_classes/AudioStreamPlaybackInteractive.xml | 12 ++++++++++++ 3 files changed, 18 insertions(+) diff --git a/modules/interactive_music/audio_stream_interactive.cpp b/modules/interactive_music/audio_stream_interactive.cpp index 8472c4e352c..fb67b1a782a 100644 --- a/modules/interactive_music/audio_stream_interactive.cpp +++ b/modules/interactive_music/audio_stream_interactive.cpp @@ -1011,6 +1011,10 @@ void AudioStreamPlaybackInteractive::switch_to_clip(int p_index) { switch_request = p_index; } +int AudioStreamPlaybackInteractive::get_current_clip_index() const { + return playback_current; +} + int AudioStreamPlaybackInteractive::get_loop_count() const { return 0; // Looping not supported } @@ -1026,4 +1030,5 @@ bool AudioStreamPlaybackInteractive::is_playing() const { void AudioStreamPlaybackInteractive::_bind_methods() { ClassDB::bind_method(D_METHOD("switch_to_clip_by_name", "clip_name"), &AudioStreamPlaybackInteractive::switch_to_clip_by_name); ClassDB::bind_method(D_METHOD("switch_to_clip", "clip_index"), &AudioStreamPlaybackInteractive::switch_to_clip); + ClassDB::bind_method(D_METHOD("get_current_clip_index"), &AudioStreamPlaybackInteractive::get_current_clip_index); } diff --git a/modules/interactive_music/audio_stream_interactive.h b/modules/interactive_music/audio_stream_interactive.h index 12d3ce8aad8..fd9521f3b2a 100644 --- a/modules/interactive_music/audio_stream_interactive.h +++ b/modules/interactive_music/audio_stream_interactive.h @@ -259,6 +259,7 @@ public: void switch_to_clip_by_name(const StringName &p_name); void switch_to_clip(int p_index); + int get_current_clip_index() const; virtual void set_parameter(const StringName &p_name, const Variant &p_value) override; virtual Variant get_parameter(const StringName &p_name) const override; diff --git a/modules/interactive_music/doc_classes/AudioStreamPlaybackInteractive.xml b/modules/interactive_music/doc_classes/AudioStreamPlaybackInteractive.xml index c87d7c8fcbf..86b608b02f9 100644 --- a/modules/interactive_music/doc_classes/AudioStreamPlaybackInteractive.xml +++ b/modules/interactive_music/doc_classes/AudioStreamPlaybackInteractive.xml @@ -9,6 +9,18 @@ + + + + Return the index of the currently playing clip. You can use this to get the name of the currently playing clip with [method AudioStreamInteractive.get_clip_name]. + [b]Example:[/b] Get the currently playing clip name from inside an [AudioStreamPlayer] node. + [codeblocks] + [gdscript] + var playing_clip_name = stream.get_clip_name(get_stream_playback().get_current_clip_index()) + [/gdscript] + [/codeblocks] + +