flutter_cast_framework_modern/lib/src/cast/CastContext.dart
2021-11-01 19:17:14 +01:00

35 lines
750 B
Dart

import 'package:flutter/foundation.dart';
import '../HostApis.dart';
import 'SessionManager.dart';
class CastContext {
final ValueNotifier<CastState> state = ValueNotifier(CastState.unavailable);
final CastApi castApi;
CastContext(this.castApi);
void showCastChooserDialog() {
castApi.showCastDialog();
}
void onCastStateChanged(int castState) {
state.value = CastState.values[castState];
}
SessionManager? _sessionManager;
SessionManager get sessionManager {
var result = _sessionManager;
if (result == null) {
_sessionManager = result = SessionManager(castApi);
}
return result;
}
}
enum CastState {
idle, // 0
unavailable, // 1
unconnected, // 2
connecting, // 3
connected, // 4
}