import shutil
from printer import perror
if shutil.which("npx") is None:
perror("npx is not installed or not found in PATH")
import psutil
import subprocess
from printer import monitor_stderr
class Gamepad_Viewer:
def __init__(self):
self.background_process = None
def start_mirroring(self):
cmd = ["npx", "electron", "gamepad_viewer"]
try:
self.background_process = subprocess.Popen(cmd, stderr=subprocess.PIPE)
monitor_stderr(self.background_process, "GAMEPAD VIEWER")
print("GAMEPAD VIEWER process launched")
except Exception as e:
perror(f"Failed to launch GAMEPAD VIEWER: {e}")
def stop_mirroring(self):
if self.background_process:
parent = psutil.Process(self.background_process.pid)
for child in parent.children(recursive=True):
child.kill()
parent.kill()
print("GAMEPAD VIEWER process terminated")
else:
print("No GAMEPAD VIEWER process to terminate")