diff --git a/.gitignore b/.gitignore index 4fcae69..689e286 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ .godot/ *.swp *.swo +export/ +android/ diff --git a/export_presets.cfg b/export_presets.cfg index 35d4099..600a407 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -1,6 +1,6 @@ [preset.0] -name="Android" +name="Android (Gradle Build)" platform="Android" runnable=true advanced_options=false @@ -20,7 +20,7 @@ script_export_mode=2 custom_template/debug="" custom_template/release="" -gradle_build/use_gradle_build=false +gradle_build/use_gradle_build=true gradle_build/gradle_build_directory="" gradle_build/android_source_template="" gradle_build/compress_native_libraries=false @@ -33,7 +33,7 @@ architectures/x86=false architectures/x86_64=false version/code=1 version/name="" -package/unique_name="com.example.$genname" +package/unique_name="de.sebageek.cwgenerator" package/name="" package/signed=true package/app_category=2 diff --git a/project.godot b/project.godot index 858ddc3..f98bb67 100644 --- a/project.godot +++ b/project.godot @@ -26,6 +26,10 @@ window/size/viewport_width=786 window/size/viewport_height=1024 window/handheld/orientation=1 +[editor_plugins] + +enabled=PackedStringArray("res://addons/SharePlugin/plugin.cfg") + [rendering] renderer/rendering_method="mobile" diff --git a/scenes/main.gd b/scenes/main.gd index 4b345be..af9c66a 100644 --- a/scenes/main.gd +++ b/scenes/main.gd @@ -4,7 +4,7 @@ var sample_hz = 22050.0 # Keep the number of samples to mix low, GDScript is not var pulse_hz = 440.0 * 2 var phase = 0.0 var morse_state := false -var playback: AudioStreamPlayback = null +var playback: AudioStreamPlayback = null var vol_on := -30 func _process(_delta): @@ -24,7 +24,7 @@ func _ready(): $Player.play() playback = $Player.get_stream_playback() fill_buffer() - + OS.open_midi_inputs() print(OS.get_connected_midi_inputs()) @@ -77,17 +77,17 @@ func _on_wav_button_pressed() -> void: var data: Array[int] = [] var _use_test_data := false var amp := 100 - + if not _use_test_data: data.append_array(_make_tone(0, 0.2, sample_hz, amp)) - + var _morse_on := true for n in range(1, MorseState.states.size()): var _freq = pulse_hz if _morse_on else 0.0 print(_freq, " of length ", MorseState.states[n] / 1000.0) data.append_array(_make_tone(_freq, MorseState.states[n] / 1000.0, sample_hz, amp)) _morse_on = not _morse_on - + data.append_array(_make_tone(0, 0.2, sample_hz, amp)) else: data.append_array(_make_tone(pulse_hz, 0.5, sample_hz, 100)) @@ -95,23 +95,28 @@ func _on_wav_button_pressed() -> void: data.append_array(_make_tone(pulse_hz, 0.5, sample_hz, 100)) data.append_array(_make_tone(0, 0.5, sample_hz, 100)) data.append_array(_make_tone(pulse_hz, 0.5, sample_hz, 100)) - + # save wav var wav := AudioStreamWAV.new() wav.format = AudioStreamWAV.FORMAT_8_BITS wav.mix_rate = sample_hz wav.stereo = false wav.data = data - + print("Writing WAV with ", data.size(), " length") var proposed_fname := "morse-" + Time.get_datetime_string_from_system(true) + ".wav" match OS.get_name(): - ["Linux", "macOS", "Windows"]: + "Linux", "macOS", "Windows": wav.save_to_wav("/tmp/foo.wav") + print("GLobalized path: " + ProjectSettings.globalize_path("user://morse.wav")) "Android": - print("Whaaat") + print("Sharing file on android") + var tmp_file_path := OS.get_user_data_dir().path_join(proposed_fname) + wav.save_to_wav(tmp_file_path) + $Share.share_file(tmp_file_path, "audio/vnd.wave", proposed_fname, "", "") + # DirAccess.remove_absolute(tmp_file_path) "Web": - print("download") + print("Download on Web") # we either write our own wave header method or we use a temporary file # FIXME: find out if we have our own temp / if our filename needs to be random var tmp_file := "/tmp/morse.wav" diff --git a/scenes/main.tscn b/scenes/main.tscn index 5a3b73c..5480aba 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=4 format=3 uid="uid://ctak1goemnnc5"] +[gd_scene load_steps=5 format=3 uid="uid://ctak1goemnnc5"] [ext_resource type="Script" path="res://scenes/main.gd" id="1_8bx00"] [ext_resource type="PackedScene" uid="uid://xqic6oa5d7oc" path="res://scenes/MorseBanner.tscn" id="2_v02md"] +[ext_resource type="Script" path="res://addons/SharePlugin/Share.gd" id="3_ci1yg"] [sub_resource type="AudioStreamGenerator" id="AudioStreamGenerator_kvn5v"] mix_rate = 11025.0 @@ -66,6 +67,9 @@ text = "Reset" stream = SubResource("AudioStreamGenerator_kvn5v") volume_db = -80.0 +[node name="Share" type="Node" parent="."] +script = ExtResource("3_ci1yg") + [connection signal="button_down" from="VBoxContainer/MorseButton" to="." method="_on_morse_button_down"] [connection signal="button_up" from="VBoxContainer/MorseButton" to="." method="_on_morse_button_up"] [connection signal="pressed" from="VBoxContainer/WavButton" to="." method="_on_wav_button_pressed"]