|
32 | 32 |
|
33 | 33 | #include "core/io/file_access_memory.h" |
34 | 34 | #include "core/io/marshalls.h" |
| 35 | +#include "scene/resources/placeholder_audio_stream.h" |
35 | 36 |
|
36 | 37 | const float TRIM_DB_LIMIT = -50; |
37 | 38 | const int TRIM_FADE_OUT_FRAMES = 500; |
@@ -1204,6 +1205,14 @@ Ref<AudioStreamWAV> AudioStreamWAV::load_from_file(const String &p_path, const D |
1204 | 1205 | return load_from_buffer(stream_data, p_options); |
1205 | 1206 | } |
1206 | 1207 |
|
| 1208 | +Ref<Resource> AudioStreamWAV::create_placeholder() const { |
| 1209 | + Ref<PlaceholderAudioStream> placeholder; |
| 1210 | + placeholder.instantiate(); |
| 1211 | + placeholder->set_length(get_length()); |
| 1212 | + placeholder->set_tags(get_tags()); |
| 1213 | + return placeholder; |
| 1214 | +} |
| 1215 | + |
1207 | 1216 | void AudioStreamWAV::_bind_methods() { |
1208 | 1217 | ClassDB::bind_static_method("AudioStreamWAV", D_METHOD("load_from_buffer", "stream_data", "options"), &AudioStreamWAV::load_from_buffer, DEFVAL(Dictionary())); |
1209 | 1218 | ClassDB::bind_static_method("AudioStreamWAV", D_METHOD("load_from_file", "path", "options"), &AudioStreamWAV::load_from_file, DEFVAL(Dictionary())); |
@@ -1234,6 +1243,8 @@ void AudioStreamWAV::_bind_methods() { |
1234 | 1243 |
|
1235 | 1244 | ClassDB::bind_method(D_METHOD("save_to_wav", "path"), &AudioStreamWAV::save_to_wav); |
1236 | 1245 |
|
| 1246 | + ClassDB::bind_method(D_METHOD("create_placeholder"), &AudioStreamWAV::create_placeholder); |
| 1247 | + |
1237 | 1248 | ADD_PROPERTY(PropertyInfo(Variant::PACKED_BYTE_ARRAY, "data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NO_EDITOR), "set_data", "get_data"); |
1238 | 1249 | ADD_PROPERTY(PropertyInfo(Variant::INT, "format", PROPERTY_HINT_ENUM, "8-Bit,16-Bit,IMA ADPCM,Quite OK Audio"), "set_format", "get_format"); |
1239 | 1250 | ADD_PROPERTY(PropertyInfo(Variant::INT, "loop_mode", PROPERTY_HINT_ENUM, "Disabled,Forward,Ping-Pong,Backward"), "set_loop_mode", "get_loop_mode"); |
|
0 commit comments