Example #1
0
        /// <inheritdoc />
        public async Task PrepareForExternalControl(DeviceType deviceType, string deviceIPAddress)
        {
            //Per Nanoleaf documentation:
            //For Aurora, the request will give back information about the ip address and which port to use
            //For Canvas, the request will return null, and the external control info is of a pre defined structure
            switch (deviceType)
            {
            case DeviceType.Aurora:
                _externalControlInfo = await GetExternalControlInfoAsync(deviceType);

                break;

            case DeviceType.Canvas:
                await GetExternalControlInfoAsync(deviceType);

                _externalControlInfo = new ExternalControlInfo
                {
                    StreamIPAddress = deviceIPAddress,
                    StreamIProtocol = _canvasStreamIPProtocol,
                    StreamPort      = _canvasStreamPort
                };
                break;

            default:
                throw new NotImplementedException($"No external control preparation implemented for device type {deviceType.ToString()}");
            }
        }
 /// <inheritdoc />
 public async Task PrepareForExternalControl()
 {
     _externalControlInfo = await GetExternalControlInfoAsync();
 }