diff --git a/RGB.NET.Core/Devices/IRGBDeviceInfo.cs b/RGB.NET.Core/Devices/IRGBDeviceInfo.cs index 61cc868..68bb9dc 100644 --- a/RGB.NET.Core/Devices/IRGBDeviceInfo.cs +++ b/RGB.NET.Core/Devices/IRGBDeviceInfo.cs @@ -14,6 +14,11 @@ namespace RGB.NET.Core /// RGBDeviceType DeviceType { get; } + /// + /// Unique name of the . + /// + string DeviceName { get; } + /// /// Gets the manufacturer-name of the . /// diff --git a/RGB.NET.Devices.Asus/Generic/AsusRGBDeviceInfo.cs b/RGB.NET.Devices.Asus/Generic/AsusRGBDeviceInfo.cs index 488a2b7..7c6ff69 100644 --- a/RGB.NET.Devices.Asus/Generic/AsusRGBDeviceInfo.cs +++ b/RGB.NET.Devices.Asus/Generic/AsusRGBDeviceInfo.cs @@ -14,6 +14,9 @@ namespace RGB.NET.Devices.Asus /// public RGBDeviceType DeviceType { get; } + /// + public string DeviceName { get; } + /// public string Manufacturer { get; } @@ -51,6 +54,8 @@ namespace RGB.NET.Devices.Asus this.Handle = handle; this.Model = model; this.Manufacturer = manufacturer; + + DeviceName = $"{Manufacturer} {Model}"; } #endregion diff --git a/RGB.NET.Devices.CoolerMaster/Generic/CoolerMasterRGBDeviceInfo.cs b/RGB.NET.Devices.CoolerMaster/Generic/CoolerMasterRGBDeviceInfo.cs index b9790ca..d10eb01 100644 --- a/RGB.NET.Devices.CoolerMaster/Generic/CoolerMasterRGBDeviceInfo.cs +++ b/RGB.NET.Devices.CoolerMaster/Generic/CoolerMasterRGBDeviceInfo.cs @@ -15,6 +15,9 @@ namespace RGB.NET.Devices.CoolerMaster /// public RGBDeviceType DeviceType { get; } + /// + public string DeviceName { get; } + /// public string Manufacturer => "Cooler Master"; @@ -50,6 +53,7 @@ namespace RGB.NET.Devices.CoolerMaster this.DeviceIndex = deviceIndex; Model = deviceIndex.GetDescription(); + DeviceName = $"{Manufacturer} {Model}"; } #endregion diff --git a/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs b/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs index 017f735..dde9077 100644 --- a/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs +++ b/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs @@ -129,6 +129,7 @@ namespace RGB.NET.Devices.Corsair if (!_CUESDK.CorsairSetLayerPriority(127)) throw new CUEException(LastError); + Dictionary modelCounter = new Dictionary(); IList devices = new List(); int deviceCount = _CUESDK.CorsairGetDeviceCount(); for (int i = 0; i < deviceCount; i++) @@ -136,12 +137,12 @@ namespace RGB.NET.Devices.Corsair try { _CorsairDeviceInfo nativeDeviceInfo = (_CorsairDeviceInfo)Marshal.PtrToStructure(_CUESDK.CorsairGetDeviceInfo(i), typeof(_CorsairDeviceInfo)); - CorsairRGBDeviceInfo info = new CorsairRGBDeviceInfo(i, RGBDeviceType.Unknown, nativeDeviceInfo); + CorsairRGBDeviceInfo info = new CorsairRGBDeviceInfo(i, RGBDeviceType.Unknown, nativeDeviceInfo, modelCounter); if (!info.CapsMask.HasFlag(CorsairDeviceCaps.Lighting)) continue; // Everything that doesn't support lighting control is useless CorsairDeviceUpdateQueue deviceUpdateQueue = null; - foreach (ICorsairRGBDevice device in GetRGBDevice(info, i, nativeDeviceInfo)) + foreach (ICorsairRGBDevice device in GetRGBDevice(info, i, nativeDeviceInfo, modelCounter)) { if ((device == null) || !loadFilter.HasFlag(device.DeviceInfo.DeviceType)) continue; @@ -176,28 +177,28 @@ namespace RGB.NET.Devices.Corsair return true; } - private static IEnumerable GetRGBDevice(CorsairRGBDeviceInfo info, int i, _CorsairDeviceInfo nativeDeviceInfo) + private static IEnumerable GetRGBDevice(CorsairRGBDeviceInfo info, int i, _CorsairDeviceInfo nativeDeviceInfo, Dictionary modelCounter) { switch (info.CorsairDeviceType) { case CorsairDeviceType.Keyboard: - yield return new CorsairKeyboardRGBDevice(new CorsairKeyboardRGBDeviceInfo(i, nativeDeviceInfo)); + yield return new CorsairKeyboardRGBDevice(new CorsairKeyboardRGBDeviceInfo(i, nativeDeviceInfo, modelCounter)); break; case CorsairDeviceType.Mouse: - yield return new CorsairMouseRGBDevice(new CorsairMouseRGBDeviceInfo(i, nativeDeviceInfo)); + yield return new CorsairMouseRGBDevice(new CorsairMouseRGBDeviceInfo(i, nativeDeviceInfo, modelCounter)); break; case CorsairDeviceType.Headset: - yield return new CorsairHeadsetRGBDevice(new CorsairHeadsetRGBDeviceInfo(i, nativeDeviceInfo)); + yield return new CorsairHeadsetRGBDevice(new CorsairHeadsetRGBDeviceInfo(i, nativeDeviceInfo, modelCounter)); break; case CorsairDeviceType.Mousepad: - yield return new CorsairMousepadRGBDevice(new CorsairMousepadRGBDeviceInfo(i, nativeDeviceInfo)); + yield return new CorsairMousepadRGBDevice(new CorsairMousepadRGBDeviceInfo(i, nativeDeviceInfo, modelCounter)); break; case CorsairDeviceType.HeadsetStand: - yield return new CorsairHeadsetStandRGBDevice(new CorsairHeadsetStandRGBDeviceInfo(i, nativeDeviceInfo)); + yield return new CorsairHeadsetStandRGBDevice(new CorsairHeadsetStandRGBDeviceInfo(i, nativeDeviceInfo, modelCounter)); break; case CorsairDeviceType.CommanderPro: @@ -220,7 +221,7 @@ namespace RGB.NET.Devices.Corsair { _CorsairChannelDeviceInfo channelDeviceInfo = (_CorsairChannelDeviceInfo)Marshal.PtrToStructure(channelDeviceInfoPtr, typeof(_CorsairChannelDeviceInfo)); - yield return new CorsairCustomRGBDevice(new CorsairCustomRGBDeviceInfo(info.CorsairDeviceIndex, nativeDeviceInfo, channelDeviceInfo, referenceLed)); + yield return new CorsairCustomRGBDevice(new CorsairCustomRGBDeviceInfo(info.CorsairDeviceIndex, nativeDeviceInfo, channelDeviceInfo, referenceLed, modelCounter)); referenceLed += channelDeviceInfo.deviceLedCount; channelDeviceInfoPtr = new IntPtr(channelDeviceInfoPtr.ToInt64() + channelDeviceInfoStructSize); diff --git a/RGB.NET.Devices.Corsair/Custom/CorsairCustomRGBDeviceInfo.cs b/RGB.NET.Devices.Corsair/Custom/CorsairCustomRGBDeviceInfo.cs index eac5d13..fe2a6e8 100644 --- a/RGB.NET.Devices.Corsair/Custom/CorsairCustomRGBDeviceInfo.cs +++ b/RGB.NET.Devices.Corsair/Custom/CorsairCustomRGBDeviceInfo.cs @@ -2,6 +2,7 @@ // ReSharper disable UnusedMember.Global using System; +using System.Collections.Generic; using RGB.NET.Core; using RGB.NET.Devices.Corsair.Native; @@ -31,8 +32,10 @@ namespace RGB.NET.Devices.Corsair /// The native -struct /// The native representing this device. /// The id of the first led of this device. - internal CorsairCustomRGBDeviceInfo(int deviceIndex, _CorsairDeviceInfo nativeInfo, _CorsairChannelDeviceInfo channelDeviceInfo, CorsairLedId referenceCorsairLed) - : base(deviceIndex, channelDeviceInfo.type == CorsairChannelDeviceType.Strip ? RGBDeviceType.LedStripe : RGBDeviceType.Fan, nativeInfo, GetModelName(channelDeviceInfo.type)) + internal CorsairCustomRGBDeviceInfo(int deviceIndex, _CorsairDeviceInfo nativeInfo, _CorsairChannelDeviceInfo channelDeviceInfo, + CorsairLedId referenceCorsairLed, Dictionary modelCounter) + : base(deviceIndex, channelDeviceInfo.type == CorsairChannelDeviceType.Strip ? RGBDeviceType.LedStripe : RGBDeviceType.Fan, nativeInfo, + GetModelName(channelDeviceInfo.type), modelCounter) { this.ReferenceCorsairLed = referenceCorsairLed; diff --git a/RGB.NET.Devices.Corsair/Generic/CorsairRGBDeviceInfo.cs b/RGB.NET.Devices.Corsair/Generic/CorsairRGBDeviceInfo.cs index 012cfb5..88e6600 100644 --- a/RGB.NET.Devices.Corsair/Generic/CorsairRGBDeviceInfo.cs +++ b/RGB.NET.Devices.Corsair/Generic/CorsairRGBDeviceInfo.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Runtime.InteropServices; using System.Text.RegularExpressions; using RGB.NET.Core; @@ -27,6 +28,9 @@ namespace RGB.NET.Devices.Corsair /// public RGBDeviceType DeviceType { get; } + /// + public string DeviceName { get; } + /// public string Manufacturer => "Corsair"; @@ -57,13 +61,16 @@ namespace RGB.NET.Devices.Corsair /// The index of the . /// The type of the . /// The native -struct - internal CorsairRGBDeviceInfo(int deviceIndex, RGBDeviceType deviceType, _CorsairDeviceInfo nativeInfo) + /// A dictionary containing counters to create unique names for equal devices models. + internal CorsairRGBDeviceInfo(int deviceIndex, RGBDeviceType deviceType, _CorsairDeviceInfo nativeInfo, Dictionary modelCounter) { this.CorsairDeviceIndex = deviceIndex; this.DeviceType = deviceType; this.CorsairDeviceType = nativeInfo.type; this.Model = nativeInfo.model == IntPtr.Zero ? null : Regex.Replace(Marshal.PtrToStringAnsi(nativeInfo.model) ?? string.Empty, " ?DEMO", string.Empty, RegexOptions.IgnoreCase); this.CapsMask = (CorsairDeviceCaps)nativeInfo.capsMask; + + DeviceName = GetUniqueModelName(modelCounter); } /// @@ -73,13 +80,34 @@ namespace RGB.NET.Devices.Corsair /// The type of the . /// The native -struct /// The name of the device-model (overwrites the one provided with the device info). - internal CorsairRGBDeviceInfo(int deviceIndex, RGBDeviceType deviceType, _CorsairDeviceInfo nativeInfo, string modelName) + /// A dictionary containing counters to create unique names for equal devices models. + internal CorsairRGBDeviceInfo(int deviceIndex, RGBDeviceType deviceType, _CorsairDeviceInfo nativeInfo, string modelName, Dictionary modelCounter) { this.CorsairDeviceIndex = deviceIndex; this.DeviceType = deviceType; this.CorsairDeviceType = nativeInfo.type; this.Model = modelName; this.CapsMask = (CorsairDeviceCaps)nativeInfo.capsMask; + + DeviceName = GetUniqueModelName(modelCounter); + } + + #endregion + + #region Methods + + private string GetUniqueModelName(Dictionary modelCounter) + { + if (modelCounter.TryGetValue(Model, out int counter)) + { + counter = ++modelCounter[Model]; + return $"{Manufacturer} {Model} {counter}"; + } + else + { + modelCounter.Add(Model, 1); + return $"{Manufacturer} {Model}"; + } } #endregion diff --git a/RGB.NET.Devices.Corsair/Headset/CorsairHeadsetRGBDeviceInfo.cs b/RGB.NET.Devices.Corsair/Headset/CorsairHeadsetRGBDeviceInfo.cs index 560077a..993d17d 100644 --- a/RGB.NET.Devices.Corsair/Headset/CorsairHeadsetRGBDeviceInfo.cs +++ b/RGB.NET.Devices.Corsair/Headset/CorsairHeadsetRGBDeviceInfo.cs @@ -1,4 +1,5 @@ -using RGB.NET.Core; +using System.Collections.Generic; +using RGB.NET.Core; using RGB.NET.Devices.Corsair.Native; namespace RGB.NET.Devices.Corsair @@ -17,8 +18,9 @@ namespace RGB.NET.Devices.Corsair /// /// The index of the . /// The native -struct - internal CorsairHeadsetRGBDeviceInfo(int deviceIndex, _CorsairDeviceInfo nativeInfo) - : base(deviceIndex, RGBDeviceType.Headset, nativeInfo) + /// A dictionary containing counters to create unique names for equal devices models. + internal CorsairHeadsetRGBDeviceInfo(int deviceIndex, _CorsairDeviceInfo nativeInfo, Dictionary modelCounter) + : base(deviceIndex, RGBDeviceType.Headset, nativeInfo, modelCounter) { } #endregion diff --git a/RGB.NET.Devices.Corsair/HeadsetStand/CorsairHeadsetStandRGBDeviceInfo.cs b/RGB.NET.Devices.Corsair/HeadsetStand/CorsairHeadsetStandRGBDeviceInfo.cs index e5237ac..50ebbb3 100644 --- a/RGB.NET.Devices.Corsair/HeadsetStand/CorsairHeadsetStandRGBDeviceInfo.cs +++ b/RGB.NET.Devices.Corsair/HeadsetStand/CorsairHeadsetStandRGBDeviceInfo.cs @@ -1,4 +1,5 @@ -using RGB.NET.Core; +using System.Collections.Generic; +using RGB.NET.Core; using RGB.NET.Devices.Corsair.Native; namespace RGB.NET.Devices.Corsair @@ -17,8 +18,9 @@ namespace RGB.NET.Devices.Corsair /// /// The index of the . /// The native -struct - internal CorsairHeadsetStandRGBDeviceInfo(int deviceIndex, _CorsairDeviceInfo nativeInfo) - : base(deviceIndex, RGBDeviceType.HeadsetStand, nativeInfo) + /// A dictionary containing counters to create unique names for equal devices models. + internal CorsairHeadsetStandRGBDeviceInfo(int deviceIndex, _CorsairDeviceInfo nativeInfo, Dictionary modelCounter) + : base(deviceIndex, RGBDeviceType.HeadsetStand, nativeInfo, modelCounter) { } #endregion diff --git a/RGB.NET.Devices.Corsair/Keyboard/CorsairKeyboardRGBDeviceInfo.cs b/RGB.NET.Devices.Corsair/Keyboard/CorsairKeyboardRGBDeviceInfo.cs index 32f7fbf..fe6d699 100644 --- a/RGB.NET.Devices.Corsair/Keyboard/CorsairKeyboardRGBDeviceInfo.cs +++ b/RGB.NET.Devices.Corsair/Keyboard/CorsairKeyboardRGBDeviceInfo.cs @@ -1,6 +1,7 @@ // ReSharper disable MemberCanBePrivate.Global // ReSharper disable UnusedMember.Global +using System.Collections.Generic; using RGB.NET.Core; using RGB.NET.Devices.Corsair.Native; @@ -34,8 +35,9 @@ namespace RGB.NET.Devices.Corsair /// /// The index of the . /// The native -struct - internal CorsairKeyboardRGBDeviceInfo(int deviceIndex, _CorsairDeviceInfo nativeInfo) - : base(deviceIndex, RGBDeviceType.Keyboard, nativeInfo) + /// A dictionary containing counters to create unique names for equal devices models. + internal CorsairKeyboardRGBDeviceInfo(int deviceIndex, _CorsairDeviceInfo nativeInfo, Dictionary modelCounter) + : base(deviceIndex, RGBDeviceType.Keyboard, nativeInfo, modelCounter) { this.PhysicalLayout = (CorsairPhysicalKeyboardLayout)nativeInfo.physicalLayout; this.LogicalLayout = (CorsairLogicalKeyboardLayout)nativeInfo.logicalLayout; diff --git a/RGB.NET.Devices.Corsair/Mouse/CorsairMouseRGBDeviceInfo.cs b/RGB.NET.Devices.Corsair/Mouse/CorsairMouseRGBDeviceInfo.cs index 346fc5e..be37040 100644 --- a/RGB.NET.Devices.Corsair/Mouse/CorsairMouseRGBDeviceInfo.cs +++ b/RGB.NET.Devices.Corsair/Mouse/CorsairMouseRGBDeviceInfo.cs @@ -1,4 +1,5 @@ -using RGB.NET.Core; +using System.Collections.Generic; +using RGB.NET.Core; using RGB.NET.Devices.Corsair.Native; namespace RGB.NET.Devices.Corsair @@ -26,8 +27,9 @@ namespace RGB.NET.Devices.Corsair /// /// The index of the . /// The native -struct - internal CorsairMouseRGBDeviceInfo(int deviceIndex, _CorsairDeviceInfo nativeInfo) - : base(deviceIndex, RGBDeviceType.Mouse, nativeInfo) + /// A dictionary containing counters to create unique names for equal devices models. + internal CorsairMouseRGBDeviceInfo(int deviceIndex, _CorsairDeviceInfo nativeInfo, Dictionary modelCounter) + : base(deviceIndex, RGBDeviceType.Mouse, nativeInfo, modelCounter) { this.PhysicalLayout = (CorsairPhysicalMouseLayout)nativeInfo.physicalLayout; } diff --git a/RGB.NET.Devices.Corsair/Mousepad/CorsairMousepadRGBDeviceInfo.cs b/RGB.NET.Devices.Corsair/Mousepad/CorsairMousepadRGBDeviceInfo.cs index c5e5823..86ef31f 100644 --- a/RGB.NET.Devices.Corsair/Mousepad/CorsairMousepadRGBDeviceInfo.cs +++ b/RGB.NET.Devices.Corsair/Mousepad/CorsairMousepadRGBDeviceInfo.cs @@ -1,4 +1,5 @@ -using RGB.NET.Core; +using System.Collections.Generic; +using RGB.NET.Core; using RGB.NET.Devices.Corsair.Native; namespace RGB.NET.Devices.Corsair @@ -17,8 +18,9 @@ namespace RGB.NET.Devices.Corsair /// /// The index if the . /// The native -struct - internal CorsairMousepadRGBDeviceInfo(int deviceIndex, _CorsairDeviceInfo nativeInfo) - : base(deviceIndex, RGBDeviceType.Mousepad, nativeInfo) + /// A dictionary containing counters to create unique names for equal devices models. + internal CorsairMousepadRGBDeviceInfo(int deviceIndex, _CorsairDeviceInfo nativeInfo, Dictionary modelCounter) + : base(deviceIndex, RGBDeviceType.Mousepad, nativeInfo, modelCounter) { } #endregion diff --git a/RGB.NET.Devices.DMX/E131/E131DeviceInfo.cs b/RGB.NET.Devices.DMX/E131/E131DeviceInfo.cs index 8da933e..2401f58 100644 --- a/RGB.NET.Devices.DMX/E131/E131DeviceInfo.cs +++ b/RGB.NET.Devices.DMX/E131/E131DeviceInfo.cs @@ -24,6 +24,9 @@ namespace RGB.NET.Devices.DMX.E131 /// public RGBDeviceType DeviceType { get; } + /// + public string DeviceName { get; } + /// public string Manufacturer { get; } @@ -78,6 +81,8 @@ namespace RGB.NET.Devices.DMX.E131 CID = new byte[CID_LENGTH]; new Random().NextBytes(CID); } + + DeviceName = $"{Manufacturer} {Model}"; } #endregion diff --git a/RGB.NET.Devices.Debug/DebugRGBDeviceInfo.cs b/RGB.NET.Devices.Debug/DebugRGBDeviceInfo.cs index 10ad430..e3e6205 100644 --- a/RGB.NET.Devices.Debug/DebugRGBDeviceInfo.cs +++ b/RGB.NET.Devices.Debug/DebugRGBDeviceInfo.cs @@ -14,6 +14,9 @@ namespace RGB.NET.Devices.Debug /// public RGBDeviceType DeviceType { get; } + /// + public string DeviceName { get; } + /// public string Manufacturer { get; } @@ -41,13 +44,15 @@ namespace RGB.NET.Devices.Debug /// The model of the device. /// The of the device. /// True if the device supports syncback; false if not. - internal DebugRGBDeviceInfo(RGBDeviceType deviceType, string manufacturer, string model, RGBDeviceLighting lighting, bool supportsSyncBack) + internal DebugRGBDeviceInfo(RGBDeviceType deviceType, string manufacturer, string model, RGBDeviceLighting lighting, bool supportsSyncBack, string deviceName = null) { this.DeviceType = deviceType; this.Manufacturer = manufacturer; this.Model = model; this.Lighting = lighting; this.SupportsSyncBack = supportsSyncBack; + + DeviceName = deviceName ?? $"{Manufacturer} {Model}"; } #endregion diff --git a/RGB.NET.Devices.Logitech/Generic/LogitechRGBDeviceInfo.cs b/RGB.NET.Devices.Logitech/Generic/LogitechRGBDeviceInfo.cs index 3fc5017..ae13908 100644 --- a/RGB.NET.Devices.Logitech/Generic/LogitechRGBDeviceInfo.cs +++ b/RGB.NET.Devices.Logitech/Generic/LogitechRGBDeviceInfo.cs @@ -14,6 +14,9 @@ namespace RGB.NET.Devices.Logitech /// public RGBDeviceType DeviceType { get; } + /// + public string DeviceName { get; } + /// public string Manufacturer => "Logitech"; @@ -76,6 +79,8 @@ namespace RGB.NET.Devices.Logitech this.DeviceCaps = deviceCaps; this.ImageLayout = imageLayout; this.LayoutPath = layoutPath; + + DeviceName = $"{Manufacturer} {Model}"; } #endregion diff --git a/RGB.NET.Devices.Msi/Generic/MsiRGBDeviceInfo.cs b/RGB.NET.Devices.Msi/Generic/MsiRGBDeviceInfo.cs index f0d5c15..1d8e942 100644 --- a/RGB.NET.Devices.Msi/Generic/MsiRGBDeviceInfo.cs +++ b/RGB.NET.Devices.Msi/Generic/MsiRGBDeviceInfo.cs @@ -19,6 +19,9 @@ namespace RGB.NET.Devices.Msi /// public string MsiDeviceType { get; } + /// + public string DeviceName { get; } + /// public string Manufacturer { get; } @@ -51,6 +54,8 @@ namespace RGB.NET.Devices.Msi this.MsiDeviceType = msiDeviceType; this.Manufacturer = manufacturer; this.Model = model; + + DeviceName = $"{Manufacturer} {Model}"; } #endregion diff --git a/RGB.NET.Devices.Novation/Generic/NovationRGBDeviceInfo.cs b/RGB.NET.Devices.Novation/Generic/NovationRGBDeviceInfo.cs index c419719..2240500 100644 --- a/RGB.NET.Devices.Novation/Generic/NovationRGBDeviceInfo.cs +++ b/RGB.NET.Devices.Novation/Generic/NovationRGBDeviceInfo.cs @@ -14,6 +14,9 @@ namespace RGB.NET.Devices.Novation /// public RGBDeviceType DeviceType { get; } + /// + public string DeviceName { get; } + /// public string Manufacturer => "Novation"; @@ -56,6 +59,8 @@ namespace RGB.NET.Devices.Novation this.Model = model; this.DeviceId = deviceId; this.ColorCapabilities = colorCapabilities; + + DeviceName = $"{Manufacturer} {Model}"; } #endregion diff --git a/RGB.NET.Devices.Razer/Generic/RazerRGBDeviceInfo.cs b/RGB.NET.Devices.Razer/Generic/RazerRGBDeviceInfo.cs index 2385b01..3b1f241 100644 --- a/RGB.NET.Devices.Razer/Generic/RazerRGBDeviceInfo.cs +++ b/RGB.NET.Devices.Razer/Generic/RazerRGBDeviceInfo.cs @@ -19,6 +19,9 @@ namespace RGB.NET.Devices.Razer /// public RGBDeviceType DeviceType { get; } + /// + public string DeviceName { get; } + /// public string Manufacturer => "Razer"; @@ -49,6 +52,8 @@ namespace RGB.NET.Devices.Razer this.DeviceId = deviceId; this.DeviceType = deviceType; this.Model = model; + + DeviceName = $"{Manufacturer} {Model}"; } #endregion diff --git a/RGB.NET.Devices.SoIP/Client/SoIPClientRGBDeviceInfo.cs b/RGB.NET.Devices.SoIP/Client/SoIPClientRGBDeviceInfo.cs index a878d09..99f8099 100644 --- a/RGB.NET.Devices.SoIP/Client/SoIPClientRGBDeviceInfo.cs +++ b/RGB.NET.Devices.SoIP/Client/SoIPClientRGBDeviceInfo.cs @@ -14,6 +14,9 @@ namespace RGB.NET.Devices.SoIP.Client /// public RGBDeviceType DeviceType => RGBDeviceType.Unknown; + /// + public string DeviceName { get; } + /// public string Manufacturer { get; } @@ -49,6 +52,8 @@ namespace RGB.NET.Devices.SoIP.Client this.Model = deviceDefinition.Model; this.Hostname = deviceDefinition.Hostname; this.Port = deviceDefinition.Port; + + DeviceName = $"{Manufacturer} {Model}"; } #endregion diff --git a/RGB.NET.Devices.SoIP/Server/SoIPServerRGBDeviceInfo.cs b/RGB.NET.Devices.SoIP/Server/SoIPServerRGBDeviceInfo.cs index 25db97e..10ff143 100644 --- a/RGB.NET.Devices.SoIP/Server/SoIPServerRGBDeviceInfo.cs +++ b/RGB.NET.Devices.SoIP/Server/SoIPServerRGBDeviceInfo.cs @@ -14,6 +14,9 @@ namespace RGB.NET.Devices.SoIP.Server /// public RGBDeviceType DeviceType => RGBDeviceType.Unknown; + /// + public string DeviceName { get; } + /// public string Manufacturer { get; } @@ -43,6 +46,8 @@ namespace RGB.NET.Devices.SoIP.Server this.Manufacturer = deviceDefinition.Manufacturer; this.Model = deviceDefinition.Model; this.Port = deviceDefinition.Port; + + DeviceName = $"{Manufacturer} {Model}"; } #endregion