// ReSharper disable MemberCanBePrivate.Global // ReSharper disable UnusedMember.Global using RGB.NET.Core; using RGB.NET.Core.Exceptions; namespace RGB.NET.Devices.Corsair { /// /// Represents a corsair mouse. /// public class CorsairMouseRGBDevice : CorsairRGBDevice { #region Properties & Fields /// /// Gets information about the . /// public CorsairMouseRGBDeviceInfo MouseDeviceInfo { get; } #endregion #region Constructors /// /// Initializes a new instance of the class. /// /// The specific information provided by CUE for the mouse internal CorsairMouseRGBDevice(CorsairMouseRGBDeviceInfo info) : base(info) { this.MouseDeviceInfo = info; } #endregion #region Methods /// /// Initializes the of the mouse. /// protected override void InitializeLeds() { switch (MouseDeviceInfo.PhysicalLayout) { case CorsairPhysicalMouseLayout.Zones1: InitializeLed(new CorsairLedId(this, CorsairLedIds.B1), new Rectangle(0, 0, 10, 10)); break; case CorsairPhysicalMouseLayout.Zones2: InitializeLed(new CorsairLedId(this, CorsairLedIds.B1), new Rectangle(0, 0, 10, 10)); InitializeLed(new CorsairLedId(this, CorsairLedIds.B2), new Rectangle(10, 0, 10, 10)); break; case CorsairPhysicalMouseLayout.Zones3: InitializeLed(new CorsairLedId(this, CorsairLedIds.B1), new Rectangle(0, 0, 10, 10)); InitializeLed(new CorsairLedId(this, CorsairLedIds.B2), new Rectangle(10, 0, 10, 10)); InitializeLed(new CorsairLedId(this, CorsairLedIds.B3), new Rectangle(20, 0, 10, 10)); break; case CorsairPhysicalMouseLayout.Zones4: InitializeLed(new CorsairLedId(this, CorsairLedIds.B1), new Rectangle(0, 0, 10, 10)); InitializeLed(new CorsairLedId(this, CorsairLedIds.B2), new Rectangle(10, 0, 10, 10)); InitializeLed(new CorsairLedId(this, CorsairLedIds.B3), new Rectangle(20, 0, 10, 10)); InitializeLed(new CorsairLedId(this, CorsairLedIds.B4), new Rectangle(30, 0, 10, 10)); break; default: throw new RGBDeviceException($"Can't initial mouse with layout '{MouseDeviceInfo.PhysicalLayout}'"); } } #endregion } }