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
|
||||
|
||||
var obs: NoOBSWS
|
||||
signal obs_ready()
|
||||
signal obs_disconnect()
|
||||
signal stream_state_changed(state: bool)
|
||||
signal input_state_changed(input_name: String, state: bool)
|
||||
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.
|
||||
func _ready() -> void:
|
||||
obs = NoOBSWS.new()
|
||||
add_child(obs)
|
||||
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_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:
|
||||
return obs.is_open()
|
||||
|
|
@ -23,11 +39,14 @@ func connect_to_host() -> void:
|
|||
Globals.settings.obs_pass != ""):
|
||||
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)
|
||||
|
||||
func _handle_disconnect(reason: int, message: String) -> void:
|
||||
func _handle_disconnect(_reason: int, _message: String) -> void:
|
||||
obs_disconnect.emit()
|
||||
if Globals.settings.obs_reconnect:
|
||||
_reconnect = true
|
||||
connect_to_host()
|
||||
|
||||
func _handle_websock_events(event: NoOBSWS.Message) -> void:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue