fix(display): live games take over within a second, and straight from Vegas (#713)

A game that goes live takes over within about a second (_check_live_takeover in the frame loops and the dwell sleep, throttled to 1 s, never during on-demand, scheduled-off, live_in_ticker or an already-live screen); an interrupted Vegas iteration switches straight to the game; has_live_content() is asked once per plugin per scan. Goldens: live_priority, vegas.

Merged with #712: after an interrupted Vegas iteration the WiFi-notice check runs before the live switch (WiFi outranks live). Adds test/test_run_loop_wifi_and_live.py, pinning that a notice and a game arriving during the same screen (1 Hz, 125 Hz, Vegas) show the notice first, then the game, and neither while scheduled off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Chuck
2026-10-01 15:59:14 -04:00
committed by GitHub
co-authored by Claude Opus 5.5
parent 6c6394a1a7
commit 77e0ea91ae
7 changed files with 492 additions and 27 deletions
+13 -11
View File
@@ -2,18 +2,20 @@
"screens": [
[0.0, "clock", 20.0, "duration", 20, false],
[20.0, "weather", 20.0, "duration", 20, true],
[40.0, "sports_recent", 20.0, "live", 20, true],
[60.0, "sports_live", 20.0, "duration", 20, true],
[80.0, "sports_live", 20.0, "duration", 20, false],
[100.0, "sports_live", 20.0, "display-false", 11, false],
[120.0, "sports_recent", 20.0, "duration", 20, true],
[140.0, "sports_live", 0.0, "empty", 1, true],
[140.0, "clock", 20.0, "duration", 20, true],
[160.0, "weather", 20.0, "duration", 20, true],
[180.0, "sports_recent", 20.0, "horizon", 20, true]
[40.0, "sports_recent", 10.0, "live", 11, true],
[50.0, "sports_live", 20.0, "duration", 20, true],
[70.0, "sports_live", 20.0, "duration", 20, false],
[90.0, "sports_live", 20.0, "live-ended", 20, false],
[110.0, "sports_recent", 20.0, "duration", 20, true],
[130.0, "sports_live", 0.0, "empty", 1, true],
[130.0, "clock", 20.0, "duration", 20, true],
[150.0, "weather", 20.0, "duration", 20, true],
[170.0, "sports_recent", 20.0, "duration", 20, true],
[190.0, "sports_live", 0.0, "empty", 1, true],
[190.0, "clock", 10.0, "horizon", 10, true]
],
"events": [
[60.0, "live", "sports_live"],
[120.0, "live-ended", "sports_recent"]
[50.0, "live", "sports_live"],
[110.0, "live-ended", "sports_recent"]
]
}