Try tomorrow
This commit is contained in:
@@ -10,7 +10,7 @@ Add addresses to REGISTER_COMMANDS to capture more register ranges.
|
||||
|
||||
import os
|
||||
import re
|
||||
import signal
|
||||
import socket
|
||||
import subprocess
|
||||
import threading
|
||||
|
||||
@@ -94,7 +94,9 @@ def control_display():
|
||||
if state == "on":
|
||||
with _video_lock:
|
||||
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
|
||||
# fallback when video is not running
|
||||
os.system("echo 0 > /sys/class/graphics/fb0/blank")
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import gi
|
||||
import signal # for signal.SIGUSR1 constant
|
||||
import socket
|
||||
import struct
|
||||
import threading
|
||||
import os
|
||||
|
||||
gi.require_version('Gst', '1.0')
|
||||
@@ -130,9 +131,15 @@ def play_kiosk():
|
||||
manager = KioskManager(pipeline)
|
||||
pipeline.set_property("uri", manager.videos[0])
|
||||
|
||||
# SIGUSR1 → switch video (used by device_server PUT /display {"state":"on"})
|
||||
GLib.unix_signal_add(GLib.PRIORITY_DEFAULT, signal.SIGUSR1,
|
||||
lambda: manager.switch_video() or True)
|
||||
# UDP trigger → switch video (device_server sends a packet to port 5001)
|
||||
def _udp_listener():
|
||||
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 ---
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user