using System.Collections.Generic; using AuraServiceLib; using RGB.NET.Core; namespace RGB.NET.Devices.Asus { /// /// Represents a generic information for a . /// public class AsusKeyboardRGBDeviceInfo : AsusRGBDeviceInfo, IKeyboardDeviceInfo { #region Properties & Fields /// /// The ASUS SDK returns useless names for notebook keyboards, possibly for others as well. /// Keep a list of those and rely on to get the real model /// private static List GenericDeviceNames = new() {"NotebookKeyboard"}; /// public KeyboardLayoutType Layout => KeyboardLayoutType.Unknown; #endregion #region Constructors /// /// /// Internal constructor of managed . /// /// The backing this RGB.NET device. internal AsusKeyboardRGBDeviceInfo(IAuraSyncDevice device) : base(RGBDeviceType.Keyboard, device, GetKeyboardModel(device.Name)) { } #endregion #region Methods private static string? GetKeyboardModel(string deviceName) { return GenericDeviceNames.Contains(deviceName) ? WMIHelper.GetSystemModelInfo() : deviceName; } #endregion } }