Example #1
0
 private CorsairLedId GetInitialLedIdForDeviceType(CorsairDeviceType type)
 {
     return(type switch
     {
         CorsairDeviceType.Headset => CorsairLedId.H_LeftLogo,
         CorsairDeviceType.MemoryModule => CorsairLedId.DRAM_1,
         CorsairDeviceType.Cooler => CorsairLedId.LC_C1_1,
         CorsairDeviceType.Motherboard => CorsairLedId.MB_Zone1,
         CorsairDeviceType.GraphicsCard => CorsairLedId.GPU_Zone1,
         _ => CorsairLedId.I_Invalid
     });
Example #2
0
        // private ICueDevice mouse;
        // private ICueDevice mousemat;


        public iCueHardware GetDevice(CorsairDeviceType type)
        {
            switch (type)
            {
            case CorsairDeviceType.Keyboard:
                return(Keyboard);

                break;

            case CorsairDeviceType.LightningNodePro:
                return(LedStrip);

                break;
            }
            return(null);
        }
Example #3
0
        private bool SetDeviceColors(CorsairDeviceType type, int index, Dictionary <DeviceKeys, Color> keyColors)
        {
            List <CorsairLedColor> colors = new List <CorsairLedColor>();

            if (LedMaps.MapsMap.TryGetValue(type, out var dict) && dict.Count != 0)
            {
                foreach (var led in keyColors)
                {
                    if (dict.TryGetValue(led.Key, out var ledid))
                    {
                        colors.Add(new CorsairLedColor()
                        {
                            LedId = ledid,
                            R     = led.Value.R,
                            G     = led.Value.G,
                            B     = led.Value.B
                        });
                    }
                }
            }
            else
            {
                if (keyColors.TryGetValue(DeviceKeys.Peripheral_Logo, out var clr))
                {
                    foreach (CorsairLedId led in LedMaps.DIYLeds)
                    {
                        colors.Add(new CorsairLedColor()
                        {
                            LedId = led,
                            R     = clr.R,
                            G     = clr.G,
                            B     = clr.B
                        });
                    }
                }
            }

            if (colors.Count == 0)
            {
                return(false);
            }

            return(CUE.SetDeviceColors(index, colors.ToArray()));
        }
Example #4
0
        private static CorsairLedId GetChannelReferenceId(CorsairDeviceType deviceType, int channel)
        {
            if (deviceType == CorsairDeviceType.Cooler)
            {
                return(CorsairLedId.CustomLiquidCoolerChannel1Led1);
            }
            else
            {
                switch (channel)
                {
                case 0: return(CorsairLedId.CustomDeviceChannel1Led1);

                case 1: return(CorsairLedId.CustomDeviceChannel2Led1);

                case 2: return(CorsairLedId.CustomDeviceChannel3Led1);
                }
            }

            return(CorsairLedId.Invalid);
        }
Example #5
0
        private string GetDeviceType(CorsairDeviceType t)
        {
            switch (t)
            {
            case CorsairDeviceType.Cooler: return(DeviceTypes.Cooler);

            case CorsairDeviceType.CommanderPro: return(DeviceTypes.Other);

            case CorsairDeviceType.Headset: return(DeviceTypes.Headset);

            case CorsairDeviceType.HeadsetStand: return(DeviceTypes.HeadsetStand);

            case CorsairDeviceType.Keyboard: return(DeviceTypes.Keyboard);

            case CorsairDeviceType.MemoryModule: return(DeviceTypes.Memory);

            case CorsairDeviceType.Motherboard: return(DeviceTypes.MotherBoard);

            case CorsairDeviceType.GraphicsCard: return(DeviceTypes.GPU);

            case CorsairDeviceType.Unknown:
                return(DeviceTypes.Other);

            case CorsairDeviceType.Mouse:
                return(DeviceTypes.Mouse);

            case CorsairDeviceType.Mousepad:
                return(DeviceTypes.MousePad);

            case CorsairDeviceType.LightningNodePro:
                return(DeviceTypes.Other);

            default:
                return(DeviceTypes.Other);
            }
        }
Example #6
0
 public SettingLedChain(CorsairDeviceType deviceType, List <string> ledIdNames)
 {
     this.DeviceType = deviceType;
     this.LedIdNames = ledIdNames;
 }
Example #7
0
        // ReSharper restore UnusedAutoPropertyAccessor.Global

        #endregion

        #region Methods

        /// <summary>
        /// Checks if the SDK for the provided <see cref="CorsairDeviceType"/> is available or checks if CUE is installed and SDK supported enabled if null is provided.
        /// </summary>
        /// <param name="sdkType">The <see cref="CorsairDeviceType"/> to check or null to check for generall SDK availability.</param>
        /// <returns>The availability of the provided <see cref="CorsairDeviceType"/>.</returns>
        public static bool IsSDKAvailable(CorsairDeviceType? sdkType = null)
        {
            try
            {
                if (IsInitialized)
                {
                    // ReSharper disable once SwitchStatementMissingSomeCases - everything else is true
                    switch (sdkType)
                    {
                        case CorsairDeviceType.Keyboard:
                            return KeyboardSDK != null;
                        case CorsairDeviceType.Mouse:
                            return MouseSDK != null;
                        case CorsairDeviceType.Headset:
                            return HeadsetSDK != null;
                        case CorsairDeviceType.Mousemat:
                            return MousematSDK != null;
                        default:
                            return true;
                    }
                }
                else
                {
                    _CUESDK.CorsairPerformProtocolHandshake();

                    if (sdkType == null || sdkType == CorsairDeviceType.Unknown)
                        return LastError == CorsairError.Success;

                    int deviceCount = _CUESDK.CorsairGetDeviceCount();
                    for (int i = 0; i < deviceCount; i++)
                    {
                        GenericDeviceInfo info = new GenericDeviceInfo((_CorsairDeviceInfo)Marshal.PtrToStructure(_CUESDK.CorsairGetDeviceInfo(i), typeof(_CorsairDeviceInfo)));
                        if (info.CapsMask.HasFlag(CorsairDeviceCaps.Lighting) && info.Type == sdkType.Value)
                            return true;
                    }
                }
            }
            catch
            {
                return false;
            }
            return false;
        }