Updated ObsManager
Added logging Added reconnecting based upon obs_reconnect. Added bool check to see if we are connecting, or re-connecting.
This commit is contained in:
parent
95345fc50b
commit
298381b2d9
1 changed files with 22 additions and 3 deletions
|
|
@ -1,18 +1,34 @@
|
||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
var obs: NoOBSWS
|
|
||||||
signal obs_ready()
|
signal obs_ready()
|
||||||
signal obs_disconnect()
|
signal obs_disconnect()
|
||||||
signal stream_state_changed(state: bool)
|
signal stream_state_changed(state: bool)
|
||||||
signal input_state_changed(input_name: String, state: bool)
|
signal input_state_changed(input_name: String, state: bool)
|
||||||
signal scene_changed(scene_name: String, scene_uuid: String)
|
signal scene_changed(scene_name: String, scene_uuid: String)
|
||||||
|
|
||||||
|
static var _log: TwitchLogger = TwitchLogger.new(&"ObsManager", true, true)
|
||||||
|
|
||||||
|
var obs: NoOBSWS
|
||||||
|
var _reconnect: bool = false
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
obs = NoOBSWS.new()
|
obs = NoOBSWS.new()
|
||||||
add_child(obs)
|
add_child(obs)
|
||||||
obs.event_received.connect(_handle_websock_events)
|
obs.event_received.connect(_handle_websock_events)
|
||||||
obs.connection_ready.connect(obs_ready.emit)
|
obs.connection_ready.connect(func():
|
||||||
|
_reconnect = false
|
||||||
|
obs_ready.emit()
|
||||||
|
_log.i("Connected to OBS WebSocket server.")
|
||||||
|
)
|
||||||
obs.connection_closed_clean.connect(_handle_disconnect)
|
obs.connection_closed_clean.connect(_handle_disconnect)
|
||||||
|
obs.connection_failed.connect(func():
|
||||||
|
_log.i("Failed to connect to server.")
|
||||||
|
if Globals.settings.obs_reconnect:
|
||||||
|
await get_tree().create_timer(15).timeout
|
||||||
|
_reconnect = true
|
||||||
|
connect_to_host()
|
||||||
|
)
|
||||||
|
|
||||||
func is_open() -> bool:
|
func is_open() -> bool:
|
||||||
return obs.is_open()
|
return obs.is_open()
|
||||||
|
|
@ -23,11 +39,14 @@ func connect_to_host() -> void:
|
||||||
Globals.settings.obs_pass != ""):
|
Globals.settings.obs_pass != ""):
|
||||||
return
|
return
|
||||||
|
|
||||||
|
_log.i("%s to OBS WebSocket server..." % "Reconnecting" if _reconnect else "Connecting")
|
||||||
|
if _reconnect: _reconnect = false
|
||||||
obs.connect_to_obsws(Globals.settings.obs_port, Globals.settings.obs_host, Globals.settings.obs_pass)
|
obs.connect_to_obsws(Globals.settings.obs_port, Globals.settings.obs_host, Globals.settings.obs_pass)
|
||||||
|
|
||||||
func _handle_disconnect(reason: int, message: String) -> void:
|
func _handle_disconnect(_reason: int, _message: String) -> void:
|
||||||
obs_disconnect.emit()
|
obs_disconnect.emit()
|
||||||
if Globals.settings.obs_reconnect:
|
if Globals.settings.obs_reconnect:
|
||||||
|
_reconnect = true
|
||||||
connect_to_host()
|
connect_to_host()
|
||||||
|
|
||||||
func _handle_websock_events(event: NoOBSWS.Message) -> void:
|
func _handle_websock_events(event: NoOBSWS.Message) -> void:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue