30 lines
1,003 B
GDScript
30 lines
1,003 B
GDScript
extends Node3D
|
|
|
|
func encode_sstv():
|
|
#var encoder = Martin1.new()
|
|
var encoder = RobotBW8.new()
|
|
var cameraImage = get_viewport().get_texture().get_image()
|
|
#var cameraImage = load("res://checker.png").get_image()
|
|
#var cameraImage = load("res://spiral.png").get_image()
|
|
#var cameraImage = load("res://testtest.png").get_image()
|
|
#var cameraImage = load("res://testtest2.png").get_image()
|
|
#var cameraImage = load("res://testtest3.png").get_image()
|
|
var audioBuffer = encoder.EncodeSSTV(cameraImage)
|
|
|
|
# Spew that audio yo.
|
|
$AudioStreamPlayer.stream.mix_rate = SSTVEncoder.SAMPLE_RATE
|
|
$AudioStreamPlayer.stream.buffer_length = 120
|
|
$AudioStreamPlayer.play()
|
|
var player = $AudioStreamPlayer.get_stream_playback()
|
|
for i in range(0, audioBuffer.size()):
|
|
player.push_frame(Vector2(audioBuffer[i], audioBuffer[i]))
|
|
|
|
# a lil hacky delay so sdfgi can settle lol.
|
|
var startTimer = 0
|
|
var first = true
|
|
func _process(delta):
|
|
if startTimer > 10 and first:
|
|
first = false
|
|
encode_sstv()
|
|
|
|
startTimer += 1
|