From 4e5e0f73451fcd096732fb31a42f3491ee689507 Mon Sep 17 00:00:00 2001 From: Christopher Arndt Date: Mon, 6 Nov 2023 17:22:18 +0100 Subject: [PATCH] Some function signature cleanup Signed-off-by: Christopher Arndt --- UI.tscn | 1 - osc_receiver.gd | 36 ++++++++++++++++++------------------ osc_sender.gd | 35 +++++++++++++++++++++++------------ screenshot.png | Bin 0 -> 10638 bytes screenshot.png.import | 34 ++++++++++++++++++++++++++++++++++ slider.gd | 6 +----- toggle_button.gd | 6 +----- ui.gd | 27 +++++++++++++++++---------- 8 files changed, 94 insertions(+), 51 deletions(-) create mode 100644 screenshot.png create mode 100644 screenshot.png.import diff --git a/UI.tscn b/UI.tscn index 3066733..fe2ae17 100644 --- a/UI.tscn +++ b/UI.tscn @@ -24,7 +24,6 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_28t32") -osc_dest_port = 9001 debug = true [node name="MarginContainer" type="MarginContainer" parent="."] diff --git a/osc_receiver.gd b/osc_receiver.gd index 9feaf32..e73353c 100644 --- a/osc_receiver.gd +++ b/osc_receiver.gd @@ -26,14 +26,14 @@ func _exit_tree(): stop_server() -func register_callback(oscaddress, argtypes, callback): - if not _observers.has([oscaddress, argtypes]): - _observers[[oscaddress, argtypes]] = [] +func register_callback(osc_address, arg_types, callback) -> void: + if not _observers.has([osc_address, arg_types]): + _observers[[osc_address, arg_types]] = [] - _observers[[oscaddress, argtypes]].append(callback) + _observers[[osc_address, arg_types]].append(callback) -func start_server(port:int = default_port, bind_address:String = default_address): +func start_server(port:int = default_port, bind_address:String = default_address) -> void: _server = UDPServer.new() if _server.listen(port, bind_address) != OK: @@ -44,7 +44,7 @@ func start_server(port:int = default_port, bind_address:String = default_address _timer.start(poll_interval) -func stop_server(): +func stop_server() -> void: _timer.stop() remove_child(_timer) _timer.free() @@ -53,12 +53,12 @@ func stop_server(): _server.stop() -func _debug(msg): +func _debug(msg) -> void: if debug: print(msg) -func _poll(): +func _poll() -> void: if not _server.is_listening(): return @@ -81,11 +81,11 @@ func _poll(): _debug("OSC arg types: %s" % types) if _observers.has([address, types]): - var values = _parse_osc_values(packet.slice(offset), types) + result = _parse_osc_values(packet.slice(offset), types) - if values == null: + if result[0] != OK: _debug("Invalid/Unsupported OSC message.") - elif values.size() != types.length(): + elif result[1].size() != types.length(): _debug("Mismatch between expected / received number of OSC arguments.") else: var msg_info = { @@ -96,9 +96,9 @@ func _poll(): } for callback in _observers[[address, types]]: - callback.call(msg_info, values) + callback.call(msg_info, result[1]) -func _parse_osc_addr_and_types(packet: PackedByteArray): +func _parse_osc_addr_and_types(packet: PackedByteArray) -> Array: var asep = packet.find(0) var address = packet.slice(0, asep).get_string_from_ascii() @@ -110,7 +110,7 @@ func _parse_osc_addr_and_types(packet: PackedByteArray): return [address, types, tsep + (4 - tsep % 4)] -func _parse_osc_values(packet: PackedByteArray, types: String): +func _parse_osc_values(packet: PackedByteArray, types: String) -> Array: var result var values = [] var stream = StreamPeerBuffer.new() @@ -153,7 +153,7 @@ func _parse_osc_values(packet: PackedByteArray, types: String): stream.seek(stream.get_position() + (4 - count % 4)) else: _debug("Could not read OSC blob argument.") - return + return [ERR_PARSE_ERROR] "t": result = stream.get_data(8) @@ -161,7 +161,7 @@ func _parse_osc_values(packet: PackedByteArray, types: String): values.append(result[1]) else: _debug("Could not read OSC timetag argument.") - return + return [ERR_PARSE_ERROR] "m", "r": values.append([ stream.get_u8(), @@ -177,6 +177,6 @@ func _parse_osc_values(packet: PackedByteArray, types: String): values.append(null) _: _debug("Argument type '%s' not supported." % type_id) - return + return [ERR_INVALID_DATA] - return values + return [OK, values] diff --git a/osc_sender.gd b/osc_sender.gd index b907569..935ff1e 100644 --- a/osc_sender.gd +++ b/osc_sender.gd @@ -17,12 +17,12 @@ func _init(): _socket.set_dest_address(_address, _port) -func _debug(msg): +func _debug(msg) -> void: if debug: print(msg) -func set_destination(dest): +func set_destination(dest) -> void: if dest is int: _socket.set_dest_address(_address, dest) _port = dest @@ -35,16 +35,18 @@ func set_destination(dest): _port = dest[1] -func send_osc(oscaddress: String, argtypes: String, values: Array, dest = null): - assert(oscaddress.begins_with("/")) +func create_message(osc_address: String, arg_types: String, values: Array) -> Array: + if not osc_address.begins_with("/"): + return [ERR_INVALID_DATA] + var buf = StreamPeerBuffer.new() buf.set_big_endian(true) - _pack_string(buf, oscaddress) - _pack_string(buf, "," + argtypes) + _pack_string(buf, osc_address) + _pack_string(buf, "," + arg_types) var vidx: int = 0 - for i in argtypes.length(): - var typetag = argtypes[i] + for i in arg_types.length(): + var typetag = arg_types[i] var inc_vidx = true match typetag: @@ -72,19 +74,28 @@ func send_osc(oscaddress: String, argtypes: String, values: Array, dest = null): inc_vidx = false # no argument value sent _: _debug("Argument type '%s' not supported." % typetag) - return FAILED + return [ERR_INVALID_PARAMETER] if inc_vidx: vidx += 1 + return [OK, buf.get_data_array()] + + +func send_osc(osc_address: String, arg_types: String, values: Array, dest = null) -> Error: + var res = create_message(osc_address, arg_types, values) + + if res[0] != OK: + return res[0] + if dest != null: set_destination(dest) - _socket.put_packet(buf.get_data_array()) + _socket.put_packet(res[1]) return OK -func _pack_string(buf: StreamPeerBuffer, s: String): +func _pack_string(buf: StreamPeerBuffer, s: String) -> void: ## Pack a string into a binary OSC buffer buf.put_data(s.to_ascii_buffer()) @@ -93,7 +104,7 @@ func _pack_string(buf: StreamPeerBuffer, s: String): buf.put_u8(0) -func _pack_blob(buf, blob): +func _pack_blob(buf, blob) -> void: ## Pack a PackedByteArray, Array or String into a binary OSC buffer if blob is String: blob = blob.to_utf8_buffer() diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..0837de5723832e27c179658d4406d86d655dbae5 GIT binary patch literal 10638 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 E1Lb>FfdBvi literal 0 HcmV?d00001 diff --git a/screenshot.png.import b/screenshot.png.import new file mode 100644 index 0000000..df499f9 --- /dev/null +++ b/screenshot.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bc0u3ivd6q1jg" +path="res://.godot/imported/screenshot.png-024a21af5d37bf0f0dd0e2bccdd149d0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://screenshot.png" +dest_files=["res://.godot/imported/screenshot.png-024a21af5d37bf0f0dd0e2bccdd149d0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/slider.gd b/slider.gd index 94de797..acf52e0 100644 --- a/slider.gd +++ b/slider.gd @@ -1,9 +1,5 @@ extends VSlider -func recv_osc(msg_info, values): - #print("Sender IP: %s" % msg_info["ip"]) - #print("Sender Port: %d" % msg_info["port"]) - #print("Address: %s" % msg_info["address"]) - #print("Types: %s" % msg_info["types"]) +func recv_osc(msg_info, values) -> void: set_value_no_signal(clampf(values[0], 0.0, 1.0)) diff --git a/toggle_button.gd b/toggle_button.gd index eb90c5a..5aff3f3 100644 --- a/toggle_button.gd +++ b/toggle_button.gd @@ -1,9 +1,5 @@ extends Button -func recv_osc(msg_info, values): - #print("Sender IP: %s" % msg_info["ip"]) - #print("Sender Port: %d" % msg_info["port"]) - #print("Address: %s" % msg_info["address"]) - #print("Types: %s" % msg_info["types"]) +func recv_osc(msg_info, values) -> void: set_pressed_no_signal(bool(values[0])) diff --git a/ui.gd b/ui.gd index e06b204..e27cad9 100644 --- a/ui.gd +++ b/ui.gd @@ -27,33 +27,40 @@ func _ready(): # configure all sensors for i in range(4): var nodename = "VSlider%d" % (i + 1) - var osc_addr = "/slider/%d" % i + var osc_address = "/slider/%d" % i var slider_node = find_child(nodename) - osc_server.register_callback(osc_addr, "f", slider_node.recv_osc) + osc_server.register_callback(osc_address, "f", slider_node.recv_osc) slider_node.value_changed.connect(slider_callback.bind(i)) + + if debug: + osc_server.register_callback(osc_address, "f", print_osc_message) for i in range(4): var nodename = "Button%d" % (i + 1) - var osc_addr = "/button/%d" % i + var osc_address = "/button/%d" % i var button_node = find_child(nodename) - osc_server.register_callback(osc_addr, "i", button_node.recv_osc) button_node.pressed.connect(button_callback.bind(button_node, i)) + osc_server.register_callback(osc_address, "i", button_node.recv_osc) + + if debug: + osc_server.register_callback(osc_address, "i", print_osc_message) # start listening for osc messages osc_server.start_server(osc_server_port, osc_server_address) -func _button_pressed(btn: Button, idx: int): - _debug("Button %s pressed: state = %s" % [idx, btn.button_pressed]) - osc_client.send_osc("/button/%d" % idx, "i", [1 if btn.button_pressed else 0]) +func _button_pressed(btn: Button, idx: int) -> void: + var value = 1 if btn.button_pressed else 0 + _debug("Button %s pressed: value = %s" % [idx, value]) + osc_client.send_osc("/button/%d" % idx, "i", [value]) -func _slider_moved(value: float, idx: int): +func _slider_moved(value: float, idx: int) -> void: _debug("Slider %d moved: value = %f" % [idx, value]) osc_client.send_osc("/slider/%d" % idx, "f", [value]) -func recv_osc(msg_info, values): +func print_osc_message(msg_info, values) -> void: _debug("Sender IP: %s" % msg_info["ip"]) _debug("Sender Port: %d" % msg_info["port"]) _debug("Address: %s" % msg_info["address"]) @@ -61,6 +68,6 @@ func recv_osc(msg_info, values): _debug("Values: %s" % values) -func _debug(msg): +func _debug(msg) -> void: if debug: print(msg)