/// <summary> /// Initializes the device. /// </summary> public void Initialize(IDeviceUpdateTrigger updateTrigger) { InitializeLayout(); if (Size == Size.Invalid) { Rectangle ledRectangle = new Rectangle(this.Select(x => x.LedRectangle)); Size = ledRectangle.Size + new Size(ledRectangle.Location.X, ledRectangle.Location.Y); } if (DeviceInfo.ColorCapabilities == NovationColorCapabilities.LimitedRG) { UpdateQueue = new LimitedColorUpdateQueue(updateTrigger, DeviceInfo.DeviceId); } }
/// <summary> /// Initializes the device. /// </summary> public void Initialize(IDeviceUpdateTrigger updateTrigger) { InitializeLayout(); if (Size == Size.Invalid) { Rectangle ledRectangle = new Rectangle(this.Select(x => x.LedRectangle)); Size = ledRectangle.Size + new Size(ledRectangle.Location.X, ledRectangle.Location.Y); } UpdateQueue = DeviceInfo.ColorCapabilities switch { NovationColorCapabilities.LimitedRG => new LimitedColorUpdateQueue(updateTrigger, DeviceInfo.DeviceId), NovationColorCapabilities.RGB => new RGBColorUpdateQueue(updateTrigger, DeviceInfo.DeviceId), _ => throw new ArgumentOutOfRangeException() }; }