summaryrefslogtreecommitdiffstats
path: root/servers/audio/audio_stream.h
diff options
context:
space:
mode:
Diffstat (limited to 'servers/audio/audio_stream.h')
-rw-r--r--servers/audio/audio_stream.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/servers/audio/audio_stream.h b/servers/audio/audio_stream.h
index 015e89fc8e..f8123fbe15 100644
--- a/servers/audio/audio_stream.h
+++ b/servers/audio/audio_stream.h
@@ -38,6 +38,7 @@
#include "core/object/gdvirtual.gen.inc"
#include "core/variant/native_ptr.h"
+#include "core/variant/typed_array.h"
class AudioStream;
@@ -54,6 +55,9 @@ protected:
GDVIRTUAL1(_seek, double)
GDVIRTUAL3R(int, _mix, GDExtensionPtr<AudioFrame>, float, int)
GDVIRTUAL0(_tag_used_streams)
+ GDVIRTUAL2(_set_parameter, const StringName &, const Variant &)
+ GDVIRTUAL1RC(Variant, _get_parameter, const StringName &)
+
public:
virtual void start(double p_from_pos = 0.0);
virtual void stop();
@@ -66,6 +70,9 @@ public:
virtual void tag_used_streams();
+ virtual void set_parameter(const StringName &p_name, const Variant &p_value);
+ virtual Variant get_parameter(const StringName &p_name) const;
+
virtual int mix(AudioFrame *p_buffer, float p_rate_scale, int p_frames);
};
@@ -124,6 +131,7 @@ protected:
GDVIRTUAL0RC(bool, _has_loop)
GDVIRTUAL0RC(int, _get_bar_beats)
GDVIRTUAL0RC(int, _get_beat_count)
+ GDVIRTUAL0RC(TypedArray<Dictionary>, _get_parameter_list)
public:
virtual Ref<AudioStreamPlayback> instantiate_playback();
@@ -141,6 +149,17 @@ public:
uint64_t get_tagged_frame() const;
uint32_t get_tagged_frame_count() const;
float get_tagged_frame_offset(int p_index) const;
+
+ struct Parameter {
+ PropertyInfo property;
+ Variant default_value;
+ Parameter(const PropertyInfo &p_info = PropertyInfo(), const Variant &p_default_value = Variant()) {
+ property = p_info;
+ default_value = p_default_value;
+ }
+ };
+
+ virtual void get_parameter_list(List<Parameter> *r_parameters);
};
// Microphone