Godot first attempt
This commit is contained in:
parent
fa10e27083
commit
3805679ec4
|
@ -1 +1,2 @@
|
|||
*.exe
|
||||
.import
|
|
@ -0,0 +1,22 @@
|
|||
extends Node2D
|
||||
|
||||
var pid_of_dlserver = 0
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
||||
|
||||
func _notification(what):
|
||||
if what == MainLoop.NOTIFICATION_WM_QUIT_REQUEST:
|
||||
print("Killing dl-server, pid ",pid_of_dlserver)
|
||||
OS.kill(pid_of_dlserver)
|
||||
get_tree().quit() # default behavior
|
|
@ -0,0 +1,6 @@
|
|||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://Globals.gd" type="Script" id=1]
|
||||
|
||||
[node name="Globals" type="Node2D"]
|
||||
script = ExtResource( 1 )
|
Binary file not shown.
|
@ -0,0 +1,15 @@
|
|||
[remap]
|
||||
|
||||
importer="ogg_vorbis"
|
||||
type="AudioStreamOGGVorbis"
|
||||
path="res://.import/Intro.ogg-dfe75727d0e47692e220adf97ddb7ad9.oggstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Intro.ogg"
|
||||
dest_files=[ "res://.import/Intro.ogg-dfe75727d0e47692e220adf97ddb7ad9.oggstr" ]
|
||||
|
||||
[params]
|
||||
|
||||
loop=true
|
||||
loop_offset=0
|
|
@ -0,0 +1,56 @@
|
|||
extends Control
|
||||
|
||||
var effect
|
||||
var recording
|
||||
|
||||
func _ready():
|
||||
var idx = AudioServer.get_bus_index("Record")
|
||||
effect = AudioServer.get_bus_effect(idx, 0)
|
||||
print("We have ",AudioServer.bus_count," busses.")
|
||||
for i in range(0,2):
|
||||
print("Bus ",i," is called ",AudioServer.get_bus_name(i))
|
||||
print("index of `Record` is ",idx)
|
||||
print("effect is", effect)
|
||||
|
||||
|
||||
func _on_RecordButton_pressed():
|
||||
if effect.is_recording_active():
|
||||
recording = effect.get_recording()
|
||||
$PlayButton.disabled = false
|
||||
$SaveButton.disabled = false
|
||||
effect.set_recording_active(false)
|
||||
$RecordButton.text = "Record"
|
||||
$Status.text = ""
|
||||
else:
|
||||
$PlayButton.disabled = true
|
||||
$SaveButton.disabled = true
|
||||
effect.set_recording_active(true)
|
||||
$RecordButton.text = "Stop"
|
||||
$Status.text = "Recording..."
|
||||
|
||||
|
||||
func _on_PlayButton_pressed():
|
||||
print(recording)
|
||||
print(recording.format)
|
||||
print(recording.mix_rate)
|
||||
print(recording.stereo)
|
||||
var data = recording.get_data()
|
||||
print(data)
|
||||
print(data.size())
|
||||
$AudioStreamPlayer.stream = recording
|
||||
$AudioStreamPlayer.play()
|
||||
|
||||
|
||||
func _on_Play_Music_pressed():
|
||||
if $AudioStreamPlayer2.playing:
|
||||
$AudioStreamPlayer2.stop()
|
||||
$PlayMusic.text = "Play Music"
|
||||
else:
|
||||
$AudioStreamPlayer2.play()
|
||||
$PlayMusic.text = "Stop Music"
|
||||
|
||||
|
||||
func _on_SaveButton_pressed():
|
||||
var save_path = $SaveButton/Filename.text
|
||||
recording.save_to_wav(save_path)
|
||||
$Status.text = "Saved WAV file to: %s\n(%s)" % [save_path, ProjectSettings.globalize_path(save_path)]
|
|
@ -0,0 +1,80 @@
|
|||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://MicRecord.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Intro.ogg" type="AudioStream" id=2]
|
||||
|
||||
[sub_resource type="AudioStreamMicrophone" id=1]
|
||||
|
||||
[node name="MicRecord" type="Control"]
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
margin_left = -320.0
|
||||
margin_top = -240.0
|
||||
margin_right = 320.0
|
||||
margin_bottom = 240.0
|
||||
script = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="AudioStreamRecord" type="AudioStreamPlayer" parent="."]
|
||||
stream = SubResource( 1 )
|
||||
autoplay = true
|
||||
bus = "Record"
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
autoplay = true
|
||||
|
||||
[node name="AudioStreamPlayer2" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( 2 )
|
||||
volume_db = -6.0
|
||||
|
||||
[node name="RecordButton" type="Button" parent="."]
|
||||
margin_left = 120.0
|
||||
margin_top = 100.0
|
||||
margin_right = 240.0
|
||||
margin_bottom = 140.0
|
||||
text = "Record"
|
||||
|
||||
[node name="SaveButton" type="Button" parent="."]
|
||||
margin_left = 120.0
|
||||
margin_top = 180.0
|
||||
margin_right = 240.0
|
||||
margin_bottom = 220.0
|
||||
disabled = true
|
||||
text = "Save WAV To:"
|
||||
|
||||
[node name="Filename" type="LineEdit" parent="SaveButton"]
|
||||
margin_left = 180.0
|
||||
margin_right = 340.0
|
||||
margin_bottom = 40.0
|
||||
text = "user://record.wav"
|
||||
caret_blink = true
|
||||
caret_blink_speed = 0.5
|
||||
|
||||
[node name="PlayButton" type="Button" parent="."]
|
||||
margin_left = 300.0
|
||||
margin_top = 100.0
|
||||
margin_right = 420.0
|
||||
margin_bottom = 140.0
|
||||
disabled = true
|
||||
text = "Play"
|
||||
|
||||
[node name="PlayMusic" type="Button" parent="."]
|
||||
margin_left = 120.0
|
||||
margin_top = 260.0
|
||||
margin_right = 240.0
|
||||
margin_bottom = 300.0
|
||||
text = "Play Music"
|
||||
|
||||
[node name="Status" type="Label" parent="."]
|
||||
margin_left = 120.0
|
||||
margin_top = 340.0
|
||||
margin_right = 520.0
|
||||
margin_bottom = 340.0
|
||||
[connection signal="pressed" from="RecordButton" to="." method="_on_RecordButton_pressed"]
|
||||
[connection signal="pressed" from="SaveButton" to="." method="_on_SaveButton_pressed"]
|
||||
[connection signal="pressed" from="PlayButton" to="." method="_on_PlayButton_pressed"]
|
||||
[connection signal="pressed" from="PlayMusic" to="." method="_on_Play_Music_pressed"]
|
|
@ -0,0 +1,20 @@
|
|||
extends VideoPlayer
|
||||
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
||||
|
||||
|
||||
func _on_VPMain_finished():
|
||||
play()
|
|
@ -0,0 +1,24 @@
|
|||
extends VideoPlayer
|
||||
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
||||
|
||||
|
||||
func _on_VideoPlayer_ready():
|
||||
pass
|
||||
|
||||
|
||||
func _on_Control_ready():
|
||||
pass # Replace with function body.
|
|
@ -0,0 +1,14 @@
|
|||
[gd_resource type="AudioBusLayout" load_steps=2 format=2]
|
||||
|
||||
[sub_resource type="AudioEffectRecord" id=1]
|
||||
resource_name = "Record"
|
||||
|
||||
[resource]
|
||||
bus/1/name = "Record"
|
||||
bus/1/solo = false
|
||||
bus/1/mute = true
|
||||
bus/1/bypass_fx = false
|
||||
bus/1/volume_db = 0.0
|
||||
bus/1/send = "Master"
|
||||
bus/1/effect/0/effect = SubResource( 1 )
|
||||
bus/1/effect/0/enabled = true
|
|
@ -0,0 +1,14 @@
|
|||
[gd_resource type="AudioBusLayout" load_steps=2 format=2]
|
||||
|
||||
[sub_resource type="AudioEffectRecord" id=1]
|
||||
resource_name = "Record"
|
||||
|
||||
[resource]
|
||||
bus/1/name = "Record"
|
||||
bus/1/solo = false
|
||||
bus/1/mute = true
|
||||
bus/1/bypass_fx = false
|
||||
bus/1/volume_db = 0.0
|
||||
bus/1/send = "Master"
|
||||
bus/1/effect/0/effect = SubResource( 1 )
|
||||
bus/1/effect/0/enabled = true
|
|
@ -0,0 +1,60 @@
|
|||
extends Control
|
||||
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
var lastcheck = 0
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
lastcheck += delta
|
||||
if lastcheck > 1:
|
||||
print("Last check > 1...")
|
||||
lastcheck = 0;
|
||||
$HTTPRequest.request("http://127.0.0.1:10435/status/")
|
||||
# #$HTTPRequest.request("http://www.mocky.io/v2/5185415ba171ea3a00704eed")
|
||||
|
||||
|
||||
|
||||
func _on_Control_ready():
|
||||
# TODO: cross-platform how?
|
||||
#var command = OS.get_user_data_dir()+"/youtube-dl.exe -o "+OS.get_user_data_dir()+"/temp https://www.youtube.com/watch?v=x1T6QFpd0J4 > "+OS.get_user_data_dir()+"/ytdl.log"
|
||||
#print(command)
|
||||
#OS.execute("CMD.exe", ["/C", command], false, output)
|
||||
#for line in output:
|
||||
# print(line)
|
||||
#o.open(OS.get_user_data_dir()+"/ytdl.log", File.READ)
|
||||
#var line = ""
|
||||
#while !o.eof_reached():
|
||||
# line = o.get_line()
|
||||
# print(line)
|
||||
#print(OS.get_user_data_dir())
|
||||
$HTTPRequest.request("http://127.0.0.1:10435/get?url=https://www.youtube.com/watch?v=x1T6QFpd0J4")
|
||||
#$HTTPRequest.request("http://127.0.0.1:10435/get?url=https://player.vimeo.com/video/459151338")
|
||||
#https://www.youtube.com/watch?v=x1T6QFpd0J4
|
||||
|
||||
|
||||
func _on_HTTPRequest_request_completed(result, response_code, headers, body):
|
||||
#print(result)
|
||||
#print(response_code)
|
||||
#print(headers)
|
||||
#print(body.get_string_from_utf8())
|
||||
var json = JSON.parse(body.get_string_from_utf8())
|
||||
if json.result != null:
|
||||
$VBoxContainer2/DownloadProgress.value = json.result["percentage"]
|
||||
if json.result["percentage"] == 100:
|
||||
get_tree().change_scene("res://justplayer.tscn")
|
||||
#print(json.result)
|
||||
#print(json.result["percentage"])
|
||||
#pass
|
||||
|
||||
|
||||
func _on_DownloadProgress_changed():
|
||||
pass # Replace with function body.
|
|
@ -0,0 +1,51 @@
|
|||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://download_video.gd" type="Script" id=1]
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_left = -0.890956
|
||||
margin_top = -1.7818
|
||||
margin_right = -0.890991
|
||||
margin_bottom = -1.7818
|
||||
script = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
margin_left = 1.0
|
||||
margin_top = 300.0
|
||||
margin_right = 1023.0
|
||||
margin_bottom = 316.0
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="VBoxContainer"]
|
||||
margin_right = 1022.0
|
||||
margin_bottom = 16.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
bbcode_enabled = true
|
||||
bbcode_text = "[center]Downloading and converting video[/center]"
|
||||
text = "Downloading and converting video"
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="."]
|
||||
margin_left = 213.816
|
||||
margin_top = 320.724
|
||||
margin_right = 837.816
|
||||
margin_bottom = 334.724
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="DownloadProgress" type="ProgressBar" parent="VBoxContainer2"]
|
||||
margin_right = 624.0
|
||||
margin_bottom = 14.0
|
||||
|
||||
[node name="HTTPRequest" type="HTTPRequest" parent="."]
|
||||
[connection signal="ready" from="." to="." method="_on_Control_ready"]
|
||||
[connection signal="changed" from="VBoxContainer2/DownloadProgress" to="." method="_on_DownloadProgress_changed"]
|
||||
[connection signal="request_completed" from="HTTPRequest" to="." method="_on_HTTPRequest_request_completed"]
|
Binary file not shown.
After Width: | Height: | Size: 3.2 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.png"
|
||||
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
|
@ -0,0 +1,23 @@
|
|||
extends Control
|
||||
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
||||
|
||||
|
||||
func _on_Control_ready():
|
||||
$vp.set_stream(load(OS.get_user_data_dir()+"/test.webm"))
|
||||
print($vp.get_stream_name())
|
||||
$vp.play()
|
||||
pass # Replace with function body.
|
|
@ -0,0 +1,19 @@
|
|||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://VideoPlayer.gd" type="Script" id=1]
|
||||
[ext_resource path="res://justplayer.gd" type="Script" id=2]
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
script = ExtResource( 2 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="vp" type="VideoPlayer" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
script = ExtResource( 1 )
|
||||
[connection signal="ready" from="." to="." method="_on_Control_ready"]
|
||||
[connection signal="ready" from="vp" to="vp" method="_on_VideoPlayer_ready"]
|
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/loadscreen.png-9b47d6976e585d82c21226a16c2b64a0.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://loadscreen.png"
|
||||
dest_files=[ "res://.import/loadscreen.png-9b47d6976e585d82c21226a16c2b64a0.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
|
@ -0,0 +1,27 @@
|
|||
extends Control
|
||||
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
||||
|
||||
func _on_Quit_pressed():
|
||||
get_tree().quit()
|
||||
|
||||
|
||||
func _on_Button_pressed():
|
||||
get_tree().change_scene("res://download_video.tscn")
|
||||
|
||||
|
||||
func _on_MicTest_pressed():
|
||||
get_tree().change_scene("res://MicRecord.tscn")
|
|
@ -0,0 +1,67 @@
|
|||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://main_menu.gd" type="Script" id=1]
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
script = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.033
|
||||
margin_bottom = 0.200001
|
||||
alignment = 1
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer"]
|
||||
margin_right = 1000.0
|
||||
margin_bottom = 20.0
|
||||
size_flags_horizontal = 3
|
||||
alignment = 1
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="HBoxContainer/VBoxContainer"]
|
||||
margin_top = 2.0
|
||||
margin_right = 1000.0
|
||||
margin_bottom = 17.0
|
||||
size_flags_horizontal = 3
|
||||
bbcode_enabled = true
|
||||
bbcode_text = "[center]MAIN MENU[/center]"
|
||||
text = "MAIN MENU"
|
||||
fit_content_height = true
|
||||
scroll_active = false
|
||||
|
||||
[node name="Quit" type="Button" parent="HBoxContainer"]
|
||||
margin_left = 1004.0
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 20.0
|
||||
text = "X"
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.815
|
||||
margin_top = 50.0
|
||||
margin_bottom = -3.05176e-05
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="DownloadPlayVid" type="Button" parent="GridContainer"]
|
||||
margin_right = 109.0
|
||||
margin_bottom = 20.0
|
||||
text = "Test scenario 1"
|
||||
|
||||
[node name="MicTest" type="Button" parent="GridContainer"]
|
||||
margin_top = 24.0
|
||||
margin_right = 109.0
|
||||
margin_bottom = 44.0
|
||||
text = "Mic Test"
|
||||
[connection signal="pressed" from="HBoxContainer/Quit" to="HBoxContainer/Quit" method="_on_Quit_pressed"]
|
||||
[connection signal="pressed" from="GridContainer/DownloadPlayVid" to="." method="_on_Button_pressed"]
|
||||
[connection signal="pressed" from="GridContainer/MicTest" to="." method="_on_MicTest_pressed"]
|
|
@ -0,0 +1,35 @@
|
|||
; Engine configuration file.
|
||||
; It's best edited using the editor UI and not directly,
|
||||
; since the parameters that go here are not all obvious.
|
||||
;
|
||||
; Format:
|
||||
; [section] ; section goes between []
|
||||
; param=value ; assign values to parameters
|
||||
|
||||
config_version=4
|
||||
|
||||
_global_script_classes=[ ]
|
||||
_global_script_class_icons={
|
||||
|
||||
}
|
||||
|
||||
[application]
|
||||
|
||||
config/name="ASingCrow"
|
||||
run/main_scene="res://startup.tscn"
|
||||
config/icon="res://icon.png"
|
||||
|
||||
[audio]
|
||||
|
||||
default_bus_layout="res://default_env.tres"
|
||||
enable_audio_input=true
|
||||
|
||||
[autoload]
|
||||
|
||||
Globals="*res://Globals.tscn"
|
||||
|
||||
[rendering]
|
||||
|
||||
quality/driver/driver_name="GLES2"
|
||||
vram_compression/import_etc=true
|
||||
vram_compression/import_etc2=false
|
|
@ -0,0 +1,45 @@
|
|||
extends Control
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
||||
|
||||
func _on_Timer_timeout():
|
||||
get_tree().change_scene("res://main_menu.tscn")
|
||||
|
||||
|
||||
func _on_Timer2_timeout():
|
||||
var output = []
|
||||
var o = File.new()
|
||||
var dir = Directory.new()
|
||||
if !o.file_exists('user://youtube-dl.exe'):
|
||||
print("Need youtube-dl")
|
||||
dir.copy("./youtube-dl.exe", "user://youtube-dl.exe")
|
||||
if !o.file_exists('user://ffmpeg.exe'):
|
||||
print("Need ffmpeg")
|
||||
dir.copy("./ffmpeg.exe", "user://ffmpeg.exe")
|
||||
if !o.file_exists('user://dlserver.exe'):
|
||||
print("Need dlserver")
|
||||
dir.copy("./dlserver.exe", "user://dlserver.exe")
|
||||
Globals.pid_of_dlserver = OS.execute(".\\dlserver.exe", [OS.get_user_data_dir()], false)
|
||||
print("Started dl-server, pid ", Globals.pid_of_dlserver)
|
||||
$ValidateServerRunningTimer.start()
|
||||
|
||||
|
||||
func _on_ValidateServerRunningTimer_timeout():
|
||||
$HTTPRequest.request("http://127.0.0.1:10435/")
|
||||
|
||||
|
||||
func _on_HTTPRequest_request_completed(result, response_code, headers, body):
|
||||
print("Received ",response_code," response from server, good enough!")
|
||||
$SceneChangeTimer.start()
|
|
@ -0,0 +1,49 @@
|
|||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://loadscreen.png" type="Texture" id=1]
|
||||
[ext_resource path="res://startup.gd" type="Script" id=2]
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
script = ExtResource( 2 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": true
|
||||
}
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_bottom = 25.0
|
||||
alignment = 1
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer"]
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 625.0
|
||||
alignment = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="HBoxContainer/VBoxContainer"]
|
||||
margin_top = 12.0
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 612.0
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="SceneChangeTimer" type="Timer" parent="."]
|
||||
wait_time = 5.0
|
||||
one_shot = true
|
||||
|
||||
[node name="StartDlServerTimer" type="Timer" parent="."]
|
||||
one_shot = true
|
||||
autostart = true
|
||||
|
||||
[node name="ValidateServerRunningTimer" type="Timer" parent="."]
|
||||
one_shot = true
|
||||
|
||||
[node name="HTTPRequest" type="HTTPRequest" parent="."]
|
||||
[connection signal="timeout" from="SceneChangeTimer" to="." method="_on_Timer_timeout"]
|
||||
[connection signal="timeout" from="StartDlServerTimer" to="." method="_on_Timer2_timeout"]
|
||||
[connection signal="timeout" from="ValidateServerRunningTimer" to="." method="_on_ValidateServerRunningTimer_timeout"]
|
||||
[connection signal="request_completed" from="HTTPRequest" to="." method="_on_HTTPRequest_request_completed"]
|
Loading…
Reference in New Issue