Try tomorrow

This commit is contained in:
david rice
2026-04-21 16:23:43 +01:00
parent b7b4d22723
commit de632c68d0
2 changed files with 15 additions and 6 deletions

View File

@@ -10,7 +10,7 @@ Add addresses to REGISTER_COMMANDS to capture more register ranges.
import os import os
import re import re
import signal import socket
import subprocess import subprocess
import threading import threading
@@ -94,7 +94,9 @@ def control_display():
if state == "on": if state == "on":
with _video_lock: with _video_lock:
if _video_proc is not None and _video_proc.poll() is None: if _video_proc is not None and _video_proc.poll() is None:
_video_proc.send_signal(signal.SIGUSR1) _sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
_sock.sendto(b'switch', ('127.0.0.1', 5001))
_sock.close()
return jsonify({"status": "video switched"}), 200 return jsonify({"status": "video switched"}), 200
# fallback when video is not running # fallback when video is not running
os.system("echo 0 > /sys/class/graphics/fb0/blank") os.system("echo 0 > /sys/class/graphics/fb0/blank")

View File

@@ -1,6 +1,7 @@
import gi import gi
import signal # for signal.SIGUSR1 constant import socket
import struct import struct
import threading
import os import os
gi.require_version('Gst', '1.0') gi.require_version('Gst', '1.0')
@@ -130,9 +131,15 @@ def play_kiosk():
manager = KioskManager(pipeline) manager = KioskManager(pipeline)
pipeline.set_property("uri", manager.videos[0]) pipeline.set_property("uri", manager.videos[0])
# SIGUSR1 → switch video (used by device_server PUT /display {"state":"on"}) # UDP trigger → switch video (device_server sends a packet to port 5001)
GLib.unix_signal_add(GLib.PRIORITY_DEFAULT, signal.SIGUSR1, def _udp_listener():
lambda: manager.switch_video() or True) sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('127.0.0.1', 5001))
while True:
sock.recv(64)
GLib.idle_add(manager.switch_video)
threading.Thread(target=_udp_listener, daemon=True).start()
# --- INPUT MONITORING --- # --- INPUT MONITORING ---
try: try: