From 85808440342cd7f80cf7ccc8a661060c6346a6da Mon Sep 17 00:00:00 2001 From: Florent Berthaut <florent.berthaut@univ-lille.fr> Date: Thu, 30 Nov 2023 11:56:47 +0100 Subject: [PATCH] Fix recording --- core/IvmiNode.gd | 8 ++- core/IvmiProperty.gd | 5 +- core/IvmiScene.gd | 68 ++++++---------------- patches/ivm-fx-autogate.pd | Bin 6946 -> 6989 bytes patches/ivm-syn-granular.pd | Bin 14287 -> 14327 bytes techniques/control/Tunnel/Tunnel.gd | 4 +- techniques/control/Tunnel/TunnelPreset.gd | 6 ++ 7 files changed, 36 insertions(+), 55 deletions(-) diff --git a/core/IvmiNode.gd b/core/IvmiNode.gd index 8b545f3..73602ff 100644 --- a/core/IvmiNode.gd +++ b/core/IvmiNode.gd @@ -139,9 +139,13 @@ func _process(delta): #output all values listened to which have changed if _send_data: for k in _properties.keys(): - if _properties[k]._listen && _properties[k]._changed : - _ivmi.send(name+"/"+k, _properties[k]._tags, get_property(k)) + if _properties[k]._changed : + if _properties[k]._listen : + _ivmi.send(name+"/"+k, _properties[k]._tags, get_property(k)) + if _properties[k]._record and _ivmi.is_recording(): + _ivmi.record_property(name+"/"+k, _properties[k]._tags, get_property(k)) _properties[k]._changed=false + func send_prop(prop) : _ivmi.send(name+"/"+prop, _properties[prop]._tags, get_property(prop)) diff --git a/core/IvmiProperty.gd b/core/IvmiProperty.gd index 4316385..772533d 100644 --- a/core/IvmiProperty.gd +++ b/core/IvmiProperty.gd @@ -10,7 +10,7 @@ var _listen = false var _tags = "" var _immediate = false var _ivmi_node = null - +var _record = false func set_values(vals : Array) : if vals.size() == _values.size() : @@ -47,6 +47,9 @@ func set_name(n): func set_listen(l) : _listen=l +func set_record(r) : + _record=r + func set_immediate(i) : _immediate=i diff --git a/core/IvmiScene.gd b/core/IvmiScene.gd index 13ca34b..a9efaa4 100644 --- a/core/IvmiScene.gd +++ b/core/IvmiScene.gd @@ -38,7 +38,7 @@ enum VRMode {SplitHorizontal, SplitVertical, Anaglyph, QuadBuffer} @export var _screen_vr_screen_size=Vector2(3,2) : set = set_screen_vr_screen_size @export var _screen_vr_window_size=Vector2(1024,600) : set = set_screen_vr_window_size @export var _screen_vr_window_position=Vector2(640,480) : set = set_screen_vr_window_position -var _xr_interface : XRInterface +var _xr_interface : XRInterface = null var _config # Network variables @@ -159,57 +159,19 @@ func _ready(): #initialize either libpd or osc patch send("init", "f", [1]) - for argument in OS.get_cmdline_args(): - if argument == "--serve": - _network_mode = NetMode.Server - #elif argument.find("=") > -1: - # var key_value = argument.split("=") - # if key_value[0] == "--name": - # _client_name = key_value[1] - # my_info.name = _client_name - # elif key_value[0] == "--ip": - # _server_ip = key_value[1] - # elif key_value[0] == "--port": - # _server_port = key_value[1] - - if _network_mode!=NetMode.None : - if _network_protocol==NetProto.WebRTC : -# if OS.get_name()=="HTML5" : -# #create client -# _network_client = IvmiClient.new() -# _network_client.connect("on_peers_ready",Callable(self,"_on_network_ready")) -# add_child(_network_client) -# #connect to server -# _on_found_server(_server_ip, _server_port) -# else : -# #create client -# _network_client = IvmiClient.new() -# _network_client.connect("on_peers_ready",Callable(self,"_on_network_ready")) -# add_child(_network_client) -# -# #if server, create server, promote it and connect to it -# if _network_mode==NetMode.Server : -# print("IVMI : Starting server") -# _network_server = IvmiServer.new() -# _network_server._port = _server_port -# add_child(_network_server) -# #connect locally -# _on_found_server("127.0.0.1", _server_port) - pass - - elif _network_protocol==NetProto.Enet : - match _network_mode : - NetMode.Server : - # init server - var peer = ENetMultiplayerPeer.new() - peer.create_server(_server_port) - multiplayer.multiplayer_peer = peer - _on_network_ready() - print("IVMI : Starting Server") - NetMode.Client : - if _server_ip!="" : - _on_found_server(_server_ip, _server_port) + if _network_protocol==NetProto.Enet : + match _network_mode : + NetMode.Server : + # init server + var peer = ENetMultiplayerPeer.new() + peer.create_server(_server_port) + multiplayer.multiplayer_peer = peer + _on_network_ready() + print("IVMI : Starting Server") + NetMode.Client : + if _server_ip!="" : + _on_found_server(_server_ip, _server_port) #start discov @@ -264,6 +226,7 @@ func _process(delta) : _recording_index+=1 if _recording_index>=_recorded_props.size(): _recording_state=RecordingState.STOPPED + _recording_playing_done() @@ -423,6 +386,9 @@ func record_property(address, tags, values) : args.append_array(values) var t = Time.get_ticks_msec()-_recording_time _recorded_props.append({"time":t, "address":addr, "tags":tags, "args":args}) + +func _recording_playing_done() : + pass # -------------------------- diff --git a/patches/ivm-fx-autogate.pd b/patches/ivm-fx-autogate.pd index 060a6603e8f846bea5daf384c541fa86cd5be1bb..5ba82e98751ee2fe7f7d92a65761b0c1d8df21e7 100644 GIT binary patch delta 94 zcmZ2vcGhgdq{-_TRVHq;XH=NHmQi)GG^71wE=KOjsf_N73Y*t5Zf0dv*qq3o$u^mb zk!$l6-V|nm{G==eGc$7qBU6RUyqwgM&BlV~IeGK)Qj<#*ER7Tl6bwx!|CG`M0E<H$ A!~g&Q delta 63 zcmX?Ww#aP4Bu1{u>lu|NZnJ0PnmAE&vOJ?TBiH0;#y}8Pb@L_0K2}Dq&57)pY>Zr+ SPxIz7Z}t^D#W`75S^)r!sS{}c diff --git a/patches/ivm-syn-granular.pd b/patches/ivm-syn-granular.pd index 572ca4f482e4609a9372414d3ef9a9717c624500..fb3aebf84cac978796ec3427554cfc40713b35e2 100644 GIT binary patch delta 190 zcmX?~|2==g<jFz2!jo^PiB8;Y%ch`fq@ZgtIe=FbBr;ip(PnZeufXIRYW$m<8BeoJ z-X<?Nd4ZJp<}$YTY#`3&1yZ|NHX90^WJK_eNx*r0tdnDTIW}*T=Vb?(x%q}#9n0i! zZ5L*QC4!TWXva@h(dpZ~S?3B9NIA$P9y2o|1rtk!%)Fe`lFifgB{+EV@=}va6wFN( N3=|B_CoePC1OSlpL3#iH delta 155 zcmeyKe?EW0WJa#ZjEtHS_gXV@P2Q)bKUss(hLLM>gOvE>2Wsq_n;B2DFmg?vAf>*! zjO{%eBiH5$Qm0uq8w#Cdgt3oFK-qGvj9i=7%Zsoxa!n58mD&72tqi0$OxuN#Yw|%g pjmd|#;~BXoE9vwxa&6wAbA?HOOW6Pn6rl9xmHHAKldqdA002RHFINBn diff --git a/techniques/control/Tunnel/Tunnel.gd b/techniques/control/Tunnel/Tunnel.gd index 9d02878..724beca 100644 --- a/techniques/control/Tunnel/Tunnel.gd +++ b/techniques/control/Tunnel/Tunnel.gd @@ -60,7 +60,9 @@ func _update_multislice() : trans.basis = Basis.from_euler(rot).scaled(sca) $MultiSlice.multimesh.set_instance_transform(s, trans) $MultiSlice.multimesh.set_instance_custom_data(s, Color(col.r,col.g,col.b,1.0)) - + +func _process(delta : float) -> void : + super._process(delta) func _physics_process(delta): diff --git a/techniques/control/Tunnel/TunnelPreset.gd b/techniques/control/Tunnel/TunnelPreset.gd index 0c3a1d4..76ca619 100644 --- a/techniques/control/Tunnel/TunnelPreset.gd +++ b/techniques/control/Tunnel/TunnelPreset.gd @@ -34,6 +34,12 @@ func _ready() : if _noisiness_curve: _noisiness_curve.connect("changed",Callable(self,"_on_noisiness_curve_changed")) +func _process(delta): + super._process(delta) + +func _set_property(prop, vals) : + super._set_property(prop, vals) + func get_tunnel_preset_data(): var tunnel_param_data_array = [] if _height_curve: -- GitLab