Aggiunge overlay server-side burn-in e stabilizza diretta live.

Tabellone, badge e brand sono ricodificati nel flusso _air via OverlayRelay;
sync punteggio HTTP, volume condiviso rails/sidekiq, qualità 720p migliorata
e badge CONNECTING in ripresa da pausa.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-03 23:55:17 +02:00
parent fd225fbadd
commit ab9cb02083
58 changed files with 2423 additions and 242 deletions

View File

@@ -1,10 +1,12 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../../app/theme.dart';
import '../../features/shared/live_score_actions.dart';
import '../../providers/score_provider.dart';
import '../websocket_service.dart';
import '../../providers/score_sync_provider.dart';
import 'score_overlay_bar.dart';
/// Tabellone interattivo: aggiorna punteggio via WebSocket (senza link regia).
@@ -27,8 +29,8 @@ class LiveScoreControls extends ConsumerWidget {
final Future<void> Function()? onStopStream;
void _sync(WidgetRef ref) {
if (!ref.read(websocketServiceProvider).isConnected) return;
ref.read(websocketServiceProvider).sendScoreUpdate(ref.read(scoreProvider));
// HTTP serializzato; il server fa broadcast WebSocket. Pagina live = status.json.
unawaited(ref.read(scoreSyncProvider).push());
}
Future<void> _pointHome(BuildContext context, WidgetRef ref) async {