init method

Future<void> init()

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();
}