1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-24 22:43:14 +00:00

Load audio files from the audio layer properties

This commit is contained in:
Emmanouil Papadeas 2024-12-10 02:58:40 +02:00
parent 7633b0fe2a
commit 0b0ae02ce2
2 changed files with 44 additions and 2 deletions

View file

@ -11,6 +11,11 @@ var layer_indices: PackedInt32Array
@onready var play_at_frame_slider := $GridContainer/PlayAtFrameSlider as ValueSlider
@onready var user_data_text_edit := $GridContainer/UserDataTextEdit as TextEdit
@onready var tileset_option_button := $GridContainer/TilesetOptionButton as OptionButton
@onready var audio_file_dialog := $AudioFileDialog as FileDialog
func _ready() -> void:
audio_file_dialog.use_native_dialog = Global.use_native_file_dialogs
func _on_visibility_changed() -> void:
@ -158,6 +163,10 @@ func _on_tileset_option_button_item_selected(index: int) -> void:
project.undo_redo.commit_action()
func _on_audio_file_button_pressed() -> void:
audio_file_dialog.popup_centered()
func _on_play_at_frame_slider_value_changed(value: float) -> void:
if layer_indices.size() == 0:
return
@ -165,3 +174,15 @@ func _on_play_at_frame_slider_value_changed(value: float) -> void:
var layer := Global.current_project.layers[layer_index]
if layer is AudioLayer:
layer.playback_frame = value - 1
func _on_audio_file_dialog_file_selected(path: String) -> void:
var audio_stream: AudioStream
if path.get_extension() == "mp3":
var file := FileAccess.open(path, FileAccess.READ)
audio_stream = AudioStreamMP3.new()
audio_stream.data = file.get_buffer(file.get_length())
for layer_index in layer_indices:
var layer := Global.current_project.layers[layer_index]
if layer is AudioLayer:
layer.audio = audio_stream

View file

@ -5,14 +5,15 @@
[node name="LayerProperties" type="AcceptDialog"]
title = "Layer properties"
size = Vector2i(300, 235)
position = Vector2i(0, 36)
size = Vector2i(300, 270)
script = ExtResource("1_54q1t")
[node name="GridContainer" type="GridContainer" parent="."]
offset_left = 8.0
offset_top = 8.0
offset_right = 292.0
offset_bottom = 186.0
offset_bottom = 221.0
columns = 2
[node name="NameLabel" type="Label" parent="GridContainer"]
@ -52,6 +53,15 @@ layout_mode = 2
size_flags_horizontal = 3
mouse_default_cursor_shape = 2
[node name="AudioFileLabel" type="Label" parent="GridContainer" groups=["AudioLayers"]]
layout_mode = 2
text = "Audio file:"
[node name="AudioFileButton" type="Button" parent="GridContainer" groups=["AudioLayers"]]
layout_mode = 2
mouse_default_cursor_shape = 2
text = "Load file"
[node name="PlayAtFrameLabel" type="Label" parent="GridContainer" groups=["AudioLayers"]]
layout_mode = 2
text = "Play at frame:"
@ -92,10 +102,21 @@ text = "Tileset:"
layout_mode = 2
mouse_default_cursor_shape = 2
[node name="AudioFileDialog" type="FileDialog" parent="."]
title = "Open a File"
size = Vector2i(870, 400)
always_on_top = true
ok_button_text = "Open"
file_mode = 0
access = 2
filters = PackedStringArray("*.mp3 ; MP3 Audio")
[connection signal="visibility_changed" from="." to="." method="_on_visibility_changed"]
[connection signal="text_changed" from="GridContainer/NameLineEdit" to="." method="_on_name_line_edit_text_changed"]
[connection signal="value_changed" from="GridContainer/OpacitySlider" to="." method="_on_opacity_slider_value_changed"]
[connection signal="item_selected" from="GridContainer/BlendModeOptionButton" to="." method="_on_blend_mode_option_button_item_selected"]
[connection signal="pressed" from="GridContainer/AudioFileButton" to="." method="_on_audio_file_button_pressed"]
[connection signal="value_changed" from="GridContainer/PlayAtFrameSlider" to="." method="_on_play_at_frame_slider_value_changed"]
[connection signal="text_changed" from="GridContainer/UserDataTextEdit" to="." method="_on_user_data_text_edit_text_changed"]
[connection signal="item_selected" from="GridContainer/TilesetOptionButton" to="." method="_on_tileset_option_button_item_selected"]
[connection signal="file_selected" from="AudioFileDialog" to="." method="_on_audio_file_dialog_file_selected"]