Beispiel #1
0
        /// <inheritdoc />
        public bool Initialize(RGBDeviceType loadFilter = RGBDeviceType.All, bool exclusiveAccessIfPossible = false, bool throwExceptions = false)
        {
            IsInitialized = false;

            try
            {
                UpdateTrigger?.Stop();

                // ReSharper disable once SuspiciousTypeConversion.Global
                _sdk = (IAuraSdk2) new AuraSdk();
                _sdk.SwitchMode();

                IList <IRGBDevice> devices = new List <IRGBDevice>();
                foreach (IAuraSyncDevice device in _sdk.Enumerate(0))
                {
                    try
                    {
                        IAsusRGBDevice rgbDevice;
                        switch ((AsusDeviceType)device.Type)
                        {
                        case AsusDeviceType.MB_RGB:
                            rgbDevice = new AsusMainboardRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.Mainboard, device, WMIHelper.GetMainboardInfo()?.model ?? device.Name));
                            break;

                        case AsusDeviceType.MB_ADDRESABLE:
                            rgbDevice = new AsusUnspecifiedRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.LedStripe, device), LedId.LedStripe1);
                            break;

                        case AsusDeviceType.VGA_RGB:
                            rgbDevice = new AsusGraphicsCardRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.GraphicsCard, device));
                            break;

                        case AsusDeviceType.HEADSET_RGB:
                            rgbDevice = new AsusHeadsetRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.Headset, device));
                            break;

                        case AsusDeviceType.DRAM_RGB:
                            rgbDevice = new AsusDramRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.DRAM, device));
                            break;

                        case AsusDeviceType.KEYBOARD_RGB:
                        case AsusDeviceType.NB_KB_RGB:
                        case AsusDeviceType.NB_KB_4ZONE_RGB:
                            rgbDevice = new AsusKeyboardRGBDevice(new AsusKeyboardRGBDeviceInfo(device, CultureInfo.CurrentCulture));
                            break;

                        case AsusDeviceType.MOUSE_RGB:
                            rgbDevice = new AsusMouseRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.Mouse, device));
                            break;

                        default:
                            rgbDevice = new AsusUnspecifiedRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.Unknown, device), LedId.Custom1);
                            break;
                        }

                        if (loadFilter.HasFlag(rgbDevice.DeviceInfo.DeviceType))
                        {
                            rgbDevice.Initialize(UpdateTrigger);
                            devices.Add(rgbDevice);
                        }
                    }
                    catch
                    {
                        if (throwExceptions)
                        {
                            throw;
                        }
                    }
                }

                UpdateTrigger?.Start();

                Devices       = new ReadOnlyCollection <IRGBDevice>(devices);
                IsInitialized = true;
            }
            catch
            {
                if (throwExceptions)
                {
                    throw;
                }
                return(false);
            }
            return(true);
        }
Beispiel #2
0
        /// <inheritdoc />
        public bool Initialize(RGBDeviceType loadFilter = RGBDeviceType.All, bool exclusiveAccessIfPossible = false, bool throwExceptions = false)
        {
            IsInitialized = false;

            try
            {
                UpdateTrigger?.Stop();

                // ReSharper disable once SuspiciousTypeConversion.Global
                _sdk = (IAuraSdk2) new AuraSdk();
                _sdk.SwitchMode();

                IList <IRGBDevice> devices = new List <IRGBDevice>();
                foreach (IAuraSyncDevice device in _sdk.Enumerate(0))
                {
                    try
                    {
                        IAsusRGBDevice rgbDevice = null;
                        switch (device.Type)
                        {
                        case 0x00010000:     //Motherboard
                            rgbDevice = new AsusMainboardRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.Mainboard, device, WMIHelper.GetMainboardInfo()?.model ?? device.Name));
                            break;

                        case 0x00011000:     //Motherboard LED Strip
                            rgbDevice = new AsusUnspecifiedRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.LedStripe, device), LedId.LedStripe1);
                            break;

                        case 0x00020000:     //VGA
                            rgbDevice = new AsusGraphicsCardRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.GraphicsCard, device));
                            break;

                        case 0x00040000:     //Headset
                            rgbDevice = new AsusHeadsetRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.Headset, device));
                            break;

                        case 0x00070000:     //DRAM
                            rgbDevice = new AsusDramRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.DRAM, device));
                            break;

                        case 0x00080000:     //Keyboard
                        case 0x00081000:     //Notebook Keyboard
                        case 0x00081001:     //Notebook Keyboard(4 - zone type)
                            rgbDevice = new AsusKeyboardRGBDevice(new AsusKeyboardRGBDeviceInfo(device, CultureInfo.CurrentCulture));
                            break;

                        case 0x00090000:     //Mouse
                            rgbDevice = new AsusMouseRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.Mouse, device));
                            break;

                        case 0x00000000:     //All
                        case 0x00012000:     //All - In - One PC
                        case 0x00030000:     //Display
                        case 0x00050000:     //Microphone
                        case 0x00060000:     //External HDD
                        case 0x00061000:     //External BD Drive
                        case 0x000B0000:     //Chassis
                        case 0x000C0000:     //Projector
                            rgbDevice = new AsusUnspecifiedRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.Unknown, device), LedId.Custom1);
                            break;
                        }

                        if ((rgbDevice != null) && loadFilter.HasFlag(rgbDevice.DeviceInfo.DeviceType))
                        {
                            rgbDevice.Initialize(UpdateTrigger);
                            devices.Add(rgbDevice);
                        }
                    }
                    catch
                    {
                        if (throwExceptions)
                        {
                            throw;
                        }
                    }
                }

                UpdateTrigger?.Start();

                Devices       = new ReadOnlyCollection <IRGBDevice>(devices);
                IsInitialized = true;
            }
            catch
            {
                if (throwExceptions)
                {
                    throw;
                }
                return(false);
            }
            return(true);
        }