init method
Implementation
Future<void> init() async {
await _fcastDiscovery.initialize();
await _chromecastDiscovery.initialize();
_fcastDiscovery.eventStream!.listen((event) async {
switch (event) {
case BonsoirDiscoveryServiceFoundEvent():
event.service.resolve(_fcastDiscovery.serviceResolver);
break;
case BonsoirDiscoveryServiceResolvedEvent():
DeviceInfo? deviceInfo = await _makeFcastDeviceInfo(event.service);
if (deviceInfo != null) {
_deviceFoundOrUpdated(deviceInfo);
}
break;
case BonsoirDiscoveryServiceUpdatedEvent():
DeviceInfo? deviceInfo = await _makeFcastDeviceInfo(event.service);
if (deviceInfo != null) {
_deviceFoundOrUpdated(deviceInfo);
}
break;
case BonsoirDiscoveryServiceLostEvent():
_deviceRemoved(event.service.name);
break;
default:
break;
}
});
_chromecastDiscovery.eventStream!.listen((event) async {
switch (event) {
case BonsoirDiscoveryServiceFoundEvent():
event.service.resolve(_chromecastDiscovery.serviceResolver);
break;
case BonsoirDiscoveryServiceResolvedEvent():
DeviceInfo? deviceInfo = await _makeChromecastDeviceInfo(
event.service,
);
if (deviceInfo != null) {
_deviceFoundOrUpdated(deviceInfo);
}
break;
case BonsoirDiscoveryServiceUpdatedEvent():
DeviceInfo? deviceInfo = await _makeChromecastDeviceInfo(
event.service,
);
if (deviceInfo != null) {
_deviceFoundOrUpdated(deviceInfo);
}
break;
case BonsoirDiscoveryServiceLostEvent():
_deviceRemoved(event.service.name);
break;
default:
break;
}
});
await _fcastDiscovery.start();
await _chromecastDiscovery.start();
}