diff --git a/UI/floating_menu.gd b/UI/floating_menu.gd index bdaa1cd9..5580b64c 100644 --- a/UI/floating_menu.gd +++ b/UI/floating_menu.gd @@ -77,8 +77,8 @@ var anchored_position: Vector2 var _set_win: Window var _edit_win: Window -var _obs_pid: int = -1 -var _vtuber_pid: int = -1 +var _obs_proc: ProcessTree.ProcessInfo = null +var _vtuber_proc: ProcessTree.ProcessInfo = null var _vtuber_sid: int var _camera_sid: int @@ -199,8 +199,15 @@ func _handle_script_editor() -> void: _edit_win = win func _handle_run_obs() -> void: + if _obs_proc and _obs_proc.is_running(): + print("OBS is running.") + return + elif _obs_proc and not _obs_proc.is_running(): + _obs_proc = null + var tree := ProcessTree.new() if tree.has_process_name(Globals.settings.obs_name): + _obs_proc = tree.get_process_by_name(Globals.settings.obs_name) print("OBS is running.") return else: @@ -224,8 +231,16 @@ func _handle_step_away() -> void: EventManager.add_alert(alert) func _handle_run_vtuber() -> void: + if _vtuber_proc and _vtuber_proc.is_running(): + print("VTuber is running.") + return + elif _vtuber_proc and not _vtuber_proc.is_running(): + _vtuber_proc = null + + var tree := ProcessTree.new() if tree.has_process_name(Globals.settings.vtuber_name): + _vtuber_proc = tree.get_process_by_name(Globals.settings.vtuber_name) print("VTuber is running.") return else: