diff --git a/RGB.NET.Devices.Msi/Exceptions/MysticLightException.cs b/RGB.NET.Devices.Msi/Exceptions/MysticLightException.cs
index d36665b..0b12582 100644
--- a/RGB.NET.Devices.Msi/Exceptions/MysticLightException.cs
+++ b/RGB.NET.Devices.Msi/Exceptions/MysticLightException.cs
@@ -34,6 +34,7 @@ namespace RGB.NET.Devices.Msi.Exceptions
/// The raw error code provided by the SDK.
/// The text-description of the error.
public MysticLightException(int errorCode, string description)
+ : base($"MSI error code {errorCode} ({description})")
{
this.ErrorCode = errorCode;
this.Description = description;
diff --git a/RGB.NET.Devices.Msi/Generic/IMsiRGBDevice.cs b/RGB.NET.Devices.Msi/Generic/IMsiRGBDevice.cs
index f8b35a8..cd09af0 100644
--- a/RGB.NET.Devices.Msi/Generic/IMsiRGBDevice.cs
+++ b/RGB.NET.Devices.Msi/Generic/IMsiRGBDevice.cs
@@ -3,10 +3,10 @@
namespace RGB.NET.Devices.Msi
{
///
- /// Represents a msi RGB-device.
+ /// Represents a MSI RGB-device.
///
internal interface IMsiRGBDevice : IRGBDevice
{
- void Initialize();
+ void Initialize(MsiDeviceUpdateQueue updateQueue, int ledCount);
}
}
diff --git a/RGB.NET.Devices.Msi/Generic/MsiDeviceUpdateQueue.cs b/RGB.NET.Devices.Msi/Generic/MsiDeviceUpdateQueue.cs
new file mode 100644
index 0000000..b2dffc0
--- /dev/null
+++ b/RGB.NET.Devices.Msi/Generic/MsiDeviceUpdateQueue.cs
@@ -0,0 +1,45 @@
+using System.Collections.Generic;
+using RGB.NET.Core;
+using RGB.NET.Devices.Msi.Native;
+
+namespace RGB.NET.Devices.Msi
+{
+ ///
+ ///
+ /// Represents the update-queue performing updates for MSI devices.
+ ///
+ public class MsiDeviceUpdateQueue : UpdateQueue
+ {
+ #region Properties & Fields
+
+ private string _deviceType;
+
+ #endregion
+
+ #region Constructors
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The update trigger used by this queue.
+ /// The device-type used to identify the device.
+ public MsiDeviceUpdateQueue(IDeviceUpdateTrigger updateTrigger, string deviceType)
+ : base(updateTrigger)
+ {
+ this._deviceType = deviceType;
+ }
+
+ #endregion
+
+ #region Methods
+
+ ///
+ protected override void Update(Dictionary