Replaces the imperative play/pause/seek/positionSync message soup with a single host-authored PlaybackState (seq-ordered, anchor-extrapolated, phase machine: loading/waitingForPeers/paused/playing) that doubles as the heartbeat, plus guest status reports and host-applied control requests. Fixes the guest seek-back loop while the host loads (readiness was keyed on a pre-load !buffering snapshot and heartbeats broadcast frozen positions), adds real group buffering coordination (stall grace, scheduled simultaneous resumes, 15s safety timeout), rate-nudge drift correction with passthrough-aware seek fallback, session-scoped message handling (no lost messages during episode-switch detach gaps), and an expected-state ledger replacing the racy remote-action flag.
19 lines
454 B
Dart
19 lines
454 B
Dart
// Models
|
|
export 'models/watch_session.dart';
|
|
export 'models/sync_message.dart';
|
|
export 'models/playback_state.dart';
|
|
|
|
// Services
|
|
export 'services/watch_together_peer_service.dart';
|
|
export 'services/watch_together_controller.dart';
|
|
|
|
// Providers
|
|
export 'providers/watch_together_provider.dart';
|
|
|
|
// Screens
|
|
export 'screens/watch_together_screen.dart';
|
|
|
|
// Widgets
|
|
export 'widgets/join_session_dialog.dart';
|
|
export 'widgets/watch_together_overlay.dart';
|