Represents the SDK for a corsair keyboard.
Inheritance: CUE.NET.Devices.Generic.AbstractCueDevice
示例#1
0
        /// <summary>
        /// Initilize the keylighter
        /// </summary>
        public void Start()
        {
            //initilize the keyboard or return an exception if it fails.
            try
            {
                CueSDK.Initialize();
                Console.WriteLine("CUE Started with " + CueSDK.LoadedArchitecture + "-SDK");

                keyboard = CueSDK.KeyboardSDK;
                if (keyboard != null)
                {
                    keyboard.UpdateMode = UpdateMode.Manual;
                    //keyboard.UpdateFrequency = 1f/30f;
                    if (keyboard.DeviceInfo.Model.Contains("K65"))
                        useNumpad = false;
                    KeyGroups.setupKeyGroups(keyboard, useNumpad);
                }

            }
            catch (CUEException ex)
            {
                Console.WriteLine("CUE Exception!");
                Console.WriteLine("ErrorCode: " + Enum.GetName(typeof(CorsairError), ex.Error));
                keyboard = null;
            }
            catch (WrapperException ex)
            {
                Console.WriteLine("CUE Wrapper Exception!");
                Console.WriteLine("Message:" + ex.Message);
                keyboard = null;
            }
        }
示例#2
0
文件: CueSDK.cs 项目: zlotap/CUE.NET
        // ReSharper restore UnusedAutoPropertyAccessor.Global

        #endregion

        #region Methods

        public static void Initialize(bool exclusiveAccess = false)
        {
            if (ProtocolDetails != null)
                throw new WrapperException("CueSDK is already initialized.");

            ProtocolDetails = new CorsairProtocolDetails(_CUESDK.CorsairPerformProtocolHandshake());

            CorsairError error = LastError;
            if (error != CorsairError.Success)
                Throw(error);

            if (ProtocolDetails.BreakingChanges)
                throw new WrapperException("The SDK currently used isn't compatible with the installed version of CUE.\r\n" +
                    $"CUE-Version: {ProtocolDetails.ServerVersion} (Protocol {ProtocolDetails.ServerProtocolVersion})\r\n" +
                    $"SDK-Version: {ProtocolDetails.SdkVersion} (Protocol {ProtocolDetails.SdkProtocolVersion})");

            if (exclusiveAccess)
            {
                if (!_CUESDK.CorsairRequestControl(CorsairAccessMode.ExclusiveLightingControl))
                    Throw(error);

                HasExclusiveAccess = true;
            }

            int deviceCount = _CUESDK.CorsairGetDeviceCount();
            for (int i = 0; i < deviceCount; i++)
            {
                _CorsairDeviceInfo nativeDeviceInfo = (_CorsairDeviceInfo)Marshal.PtrToStructure(_CUESDK.CorsairGetDeviceInfo(i), typeof(_CorsairDeviceInfo));
                GenericDeviceInfo info = new GenericDeviceInfo(nativeDeviceInfo);
                if (!info.CapsMask.HasFlag(CorsairDeviceCaps.Lighting))
                    continue; // Everything that doesn't support lighting control is useless

                switch (info.Type)
                {
                    case CorsairDeviceType.Keyboard:
                        KeyboardSDK = new CorsairKeyboard(new CorsairKeyboardDeviceInfo(nativeDeviceInfo));
                        break;
                    case CorsairDeviceType.Mouse:
                        MouseSDK = new CorsairMouse(new CorsairMouseDeviceInfo(nativeDeviceInfo));
                        break;
                    case CorsairDeviceType.Headset:
                        HeadsetSDK = new CorsairHeadset(new CorsairHeadsetDeviceInfo(nativeDeviceInfo));
                        break;

                    // ReSharper disable once RedundantCaseLabel
                    case CorsairDeviceType.Unknown:
                    default:
                        throw new WrapperException("Unknown Device-Type");
                }

                error = LastError;
                if (error != CorsairError.Success)
                    Throw(error);
            }
        }
		/// <summary>
		/// <para>This function will try to start the Corsair SDK</para>
		/// <para>This function will use exclusive access!</para>
		/// </summary>
		/// <returns>If false, then the SDK failed the initialize</returns>
		public static bool initSDK(){
			try{
				CueSDK.Initialize(true);
				keyboard = CueSDK.KeyboardSDK;
				if(keyboard == null)
					throw new WrapperException("No keyboard found!");
				keyboard.UpdateMode = CUE.NET.Devices.Generic.Enums.UpdateMode.Continuous; // No need to call manual update, as we do it automatic
				return true;
			}catch(Exception){
				return false;
			}
		}
 public IsaacKeyboard()
 {
     try
     {
         //initialize CueSDK and create a corsair keyboard from it
         CueSDK.Initialize();
         Debug.WriteLine("CueSDK Initialized - " + CueSDK.LoadedArchitecture);
         keyBoard = CueSDK.KeyboardSDK;
     }
     catch (Exception e)
     {
         Debug.WriteLine("Error: " + e);
         isNull = true;
     }
     //register every F key except F12
     for (int i = 1; i < 12; i++)
     {
         HealthKeys[i-1] = (CorsairKeyboardKeyId)(i + 1);
         Debug.WriteLine("-{0} Added-", HealthKeys[i]);
     }
     //Who made F12 equal to 73??
     HealthKeys[11] = CorsairKeyboardKeyId.F12;
     Debug.WriteLine("-{0} Added-", HealthKeys[11]);
     //register consumable key groups
     if (keyBoard.DeviceInfo.Model == "K95 RGB")
     {
         for (int i = 0; i < 6; i++)
         {
             CoinKeys[i] = (CorsairKeyboardKeyId)(i + 121);
             Debug.WriteLine("-{0} Added-", HealthKeys[i]);
         }
         for (int i = 0; i < 4; i++)
         {
             BombKeys[i] = (CorsairKeyboardKeyId)(i + 127);
             Debug.WriteLine("-{0} Added-", HealthKeys[i]);
         }
         BombKeys[4] = CorsairKeyboardKeyId.G11;
         BombKeys[5] = CorsairKeyboardKeyId.G12;
         for (int i = 0; i < 6; i++)
         {
             KeyKeys[i] = (CorsairKeyboardKeyId)(i + 139);
             Debug.WriteLine("-{0} Added-", HealthKeys[i]);
         }
     }
     else
         ENABLE_G_KEYS = false;
     //I'm keeping this here for future reference
     //keyBoard['A'].Led.Color = Color.Red;
     //keyBoard[CorsairKeyboardKeyId.Home].Led.Color = Color.White;
     //keyBoard.Update();
     //keyBoard.UpdateMode = CUE.NET.Devices.Generic.Enums.UpdateMode.Continuous;
     //keyBoard.UpdateFrequency = 1f / 20f;
 }
示例#5
0
文件: Main.cs 项目: xbenjii/Ambience
 public Main()
 {
     InitializeComponent();
     try
     {
         CueSDK.Initialize();
     }
     catch (CUE.NET.Exceptions.CUEException ex)
     {
         MessageBox.Show(ex.Message);
     }
     keyboard = CueSDK.KeyboardSDK;
     timer1.Interval = 150;
     timer1.Start();
 }
示例#6
0
        public void Initialize()
        {
            // Initialize everything
            CueSDK.Initialize();

            _keyboard = CueSDK.KeyboardSDK;
            if (_keyboard == null)
                throw new WrapperException("No keyboard found ...");

            // With this you could set the update frequency - the default (30 updates per second) should be fine for the most things
            //_keyboard.UpdateFrequency = 1f / 60f; // 60 updates per second

            // This is useful for debugging-purposes
            _keyboard.Exception += (sender, args) => Console.WriteLine(args.Exception.Message);

            Console.WriteLine("CUE.NET initialized!");
        }
示例#7
0
        /// <summary>
        ///     Enables the SDK and sets updatemode to manual as well as the color of the background to black.
        /// </summary>
        public override void Enable()
        {
            if (!CueSDK.IsInitialized)
                CueSDK.Initialize(true);

            CueSDK.UpdateMode = UpdateMode.Manual;
            _keyboard = CueSDK.KeyboardSDK;
            switch (_keyboard.DeviceInfo.Model)
            {
                case "K95 RGB":
                    Height = 7;
                    Width = 25;
                    Slug = "corsair-k95-rgb";
                    PreviewSettings = new PreviewSettings(676, 190, new Thickness(0, -15, 0, 0), Resources.k95);
                    break;
                case "K70 RGB":
                case "K70 RGB RAPIDFIRE":
                case "K70 LUX RGB":
                    Height = 7;
                    Width = 21;
                    Slug = "corsair-k70-rgb";
                    PreviewSettings = new PreviewSettings(676, 210, new Thickness(0, -25, 0, 0), Resources.k70);
                    break;
                case "K65 RGB":
                case "CGK65 RGB":
                case "K65 LUX RGB":
                case "K65 RGB RAPIDFIRE":
                    Height = 7;
                    Width = 18;
                    Slug = "corsair-k65-rgb";
                    PreviewSettings = new PreviewSettings(610, 240, new Thickness(0, -30, 0, 0), Resources.k65);
                    break;
                case "STRAFE RGB":
                    Height = 7;
                    Width = 22;
                    Slug = "corsair-strafe-rgb";
                    PreviewSettings = new PreviewSettings(665, 215, new Thickness(0, -5, 0, 0), Resources.strafe);
                    break;
            }

            Logger.Debug("Corsair SDK reported device as: {0}", _keyboard.DeviceInfo.Model);
            _keyboard.Brush = _keyboardBrush ?? (_keyboardBrush = new ImageBrush());
        }
示例#8
0
        public Form1()
        {
            InitializeComponent();
            this.WindowState = FormWindowState.Minimized;
            this.ShowInTaskbar = false;

            selectedColor = (Color)Properties.Settings.Default["KeyPadColor"];

            colorPanel.BackColor = selectedColor;
            CueSDK.Initialize();
            keyboard = CueSDK.KeyboardSDK;
            if (keyboard == null)
                MessageBox.Show("Keyboard not found!");

            numpadGroup = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.NumLock, CorsairKeyboardKeyId.KeypadEnter);

            refreshNumpad();

            var kh = new KeyboardHook(true);
            kh.KeyUp += Kh_KeyUp;
        }
示例#9
0
        /// <summary>
        /// Intial setup of keygroups using the keyboard provided.
        /// </summary>
        /// <param name="keyboard"></param>
        /// <param name="useNumpad"></param>
        public static void setupKeyGroups(CorsairKeyboard keyboard, bool useNumpad)
        {
            try
            {
                WASD = new ListKeyGroup(keyboard, keyboard['W'],
                    keyboard['A'],
                    keyboard['S'],
                    keyboard['D']);
                
                healthFunction = new ListKeyGroup(keyboard, CorsairKeyboardKeyId.F1,
                    CorsairKeyboardKeyId.F2,
                    CorsairKeyboardKeyId.F3,
                    CorsairKeyboardKeyId.F4,
                    CorsairKeyboardKeyId.F5,
                    CorsairKeyboardKeyId.F6);
                armorFunction = new ListKeyGroup(keyboard, CorsairKeyboardKeyId.F7,
                    CorsairKeyboardKeyId.F8,
                    CorsairKeyboardKeyId.F9,
                    CorsairKeyboardKeyId.F10,
                    CorsairKeyboardKeyId.F11,
                    CorsairKeyboardKeyId.F12);

                //don't initilize the numpad groups if the keyboard doesn't have a numpad(K65).
                if (useNumpad)
                {
					numpad = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.NumLock, CorsairKeyboardKeyId.KeypadEnter, 1.0f, true);
					
                    numpadDigital = new List<ListKeyGroup>();
                    for (int i = 0; i < 10; ++i)
                    {
                        numpadDigital.Add(null);
                    }

                    numpadDigital[1] = new ListKeyGroup(keyboard,
                        CorsairKeyboardKeyId.NumLock,
                        CorsairKeyboardKeyId.KeypadSlash,
                        CorsairKeyboardKeyId.Keypad8,
                        CorsairKeyboardKeyId.Keypad5,
                        CorsairKeyboardKeyId.Keypad2,
                        CorsairKeyboardKeyId.Keypad0,
                        CorsairKeyboardKeyId.KeypadPeriodAndDelete);

                    var numpad2Keys = new CorsairKeyboardKeyId[] { CorsairKeyboardKeyId.NumLock,
                    CorsairKeyboardKeyId.KeypadSlash,
                    CorsairKeyboardKeyId.KeypadAsterisk,
                    CorsairKeyboardKeyId.Keypad9,
                    CorsairKeyboardKeyId.Keypad6,
                    CorsairKeyboardKeyId.Keypad5,
                    CorsairKeyboardKeyId.Keypad4,
                    CorsairKeyboardKeyId.Keypad1,
                    CorsairKeyboardKeyId.Keypad0,
                    CorsairKeyboardKeyId.KeypadPeriodAndDelete};
                    numpadDigital[2] = new ListKeyGroup(keyboard, numpad2Keys);

                    numpadDigital[3] = new ListKeyGroup(keyboard, numpad2Keys);
                    numpadDigital[3].AddKey(CorsairKeyboardKeyId.Keypad3);
                    numpadDigital[3].RemoveKey(CorsairKeyboardKeyId.Keypad1);

                    var numpad4Keys = new CorsairKeyboardKeyId[] { CorsairKeyboardKeyId.NumLock,
                    CorsairKeyboardKeyId.Keypad7,
                    CorsairKeyboardKeyId.Keypad4,
                    CorsairKeyboardKeyId.Keypad5,
                    CorsairKeyboardKeyId.Keypad6,
                    CorsairKeyboardKeyId.Keypad9,
                    CorsairKeyboardKeyId.KeypadAsterisk,
                    CorsairKeyboardKeyId.Keypad3,
                    CorsairKeyboardKeyId.KeypadPeriodAndDelete};
                    numpadDigital[4] = new ListKeyGroup(keyboard, numpad4Keys);

                    numpadDigital[5] = new ListKeyGroup(keyboard, numpad2Keys);
                    numpadDigital[5].AddKey(CorsairKeyboardKeyId.Keypad7, CorsairKeyboardKeyId.Keypad3);
                    numpadDigital[5].RemoveKey(CorsairKeyboardKeyId.Keypad9, CorsairKeyboardKeyId.Keypad1);

                    numpadDigital[6] = new ListKeyGroup(keyboard, numpad2Keys);
                    numpadDigital[6].AddKey(CorsairKeyboardKeyId.Keypad3, CorsairKeyboardKeyId.Keypad7);
                    numpadDigital[6].RemoveKey(CorsairKeyboardKeyId.Keypad9);

                    var numpad7Keys = new CorsairKeyboardKeyId[] {
                    CorsairKeyboardKeyId.Keypad7,
                    CorsairKeyboardKeyId.NumLock,
                    CorsairKeyboardKeyId.KeypadSlash,
                    CorsairKeyboardKeyId.KeypadAsterisk,
                    CorsairKeyboardKeyId.Keypad9,
                    CorsairKeyboardKeyId.Keypad6,
                    CorsairKeyboardKeyId.Keypad3,
                    CorsairKeyboardKeyId.KeypadPeriodAndDelete };
                    numpadDigital[7] = new ListKeyGroup(keyboard, numpad7Keys);

                    numpadDigital[8] = new ListKeyGroup(keyboard, numpad2Keys);
                    numpadDigital[8].AddKey(CorsairKeyboardKeyId.Keypad7, CorsairKeyboardKeyId.Keypad3);

                    numpadDigital[9] = new ListKeyGroup(keyboard, numpad4Keys);
                    numpadDigital[9].AddKey(CorsairKeyboardKeyId.KeypadSlash);

                    numpadDigital[0] = new ListKeyGroup(keyboard, numpad7Keys);
                    numpadDigital[0].AddKey(CorsairKeyboardKeyId.Keypad0,
                        CorsairKeyboardKeyId.Keypad1,
                        CorsairKeyboardKeyId.Keypad4);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception in creating key groups!");
                Console.WriteLine("Message: " + ex.Message);
            }
        }
        public static void ColorTheBoard(double percentage, CorsairKeyboard keyboard)
        {
            RectangleKeyGroup[] rows = new RectangleKeyGroup[23];

            rows[0] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.G1, CorsairKeyboardKeyId.G16) { Brush = new SolidColorBrush(Color.Black) };
            rows[1] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.G2, CorsairKeyboardKeyId.G17) { Brush = new SolidColorBrush(Color.Black) };
            rows[2] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.G3, CorsairKeyboardKeyId.G18) { Brush = new SolidColorBrush(Color.Black) };
            rows[3] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.MR, CorsairKeyboardKeyId.LeftCtrl) { Brush = new SolidColorBrush(Color.Black) };
            rows[4] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.M1, CorsairKeyboardKeyId.LeftGui) { Brush = new SolidColorBrush(Color.Black) };
            rows[5] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.M2, CorsairKeyboardKeyId.Z) { Brush = new SolidColorBrush(Color.Black) };
            rows[6] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.M3, CorsairKeyboardKeyId.X) { Brush = new SolidColorBrush(Color.Black) };
            rows[7] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.F3, CorsairKeyboardKeyId.C) { Brush = new SolidColorBrush(Color.Black) };
            rows[8] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.F4, CorsairKeyboardKeyId.V) { Brush = new SolidColorBrush(Color.Black) };
            rows[9] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.V, CorsairKeyboardKeyId.F5) { Brush = new SolidColorBrush(Color.Black) };
            rows[10] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.F6, CorsairKeyboardKeyId.Space) { Brush = new SolidColorBrush(Color.Black) };
            rows[11] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.N, CorsairKeyboardKeyId.F7) { Brush = new SolidColorBrush(Color.Black) };
            rows[12] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.F7, CorsairKeyboardKeyId.PeriodAndBiggerThan) { Brush = new SolidColorBrush(Color.Black) };
            rows[13] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.RightAlt, CorsairKeyboardKeyId.F9) { Brush = new SolidColorBrush(Color.Black) };
            rows[14] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.RightGui, CorsairKeyboardKeyId.F11) { Brush = new SolidColorBrush(Color.Black) };
            rows[15] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.F11, CorsairKeyboardKeyId.RightCtrl) { Brush = new SolidColorBrush(Color.Black) };
            rows[16] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.Brightness, CorsairKeyboardKeyId.LeftArrow) { Brush = new SolidColorBrush(Color.Black) };
            rows[17] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.WinLock, CorsairKeyboardKeyId.DownArrow) { Brush = new SolidColorBrush(Color.Black) };
            rows[18] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.PauseBreak, CorsairKeyboardKeyId.RightArrow) { Brush = new SolidColorBrush(Color.Black) };
            rows[19] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.Stop, CorsairKeyboardKeyId.Keypad0) { Brush = new SolidColorBrush(Color.Black) };
            rows[20] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.Mute, CorsairKeyboardKeyId.Keypad2) { Brush = new SolidColorBrush(Color.Black) };
            rows[21] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.PlayPause, CorsairKeyboardKeyId.KeypadPeriodAndDelete) { Brush = new SolidColorBrush(Color.Black) };
            rows[22] = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.ScanNextTrack, CorsairKeyboardKeyId.KeypadPlus) { Brush = new SolidColorBrush(Color.Black) };

            percentage = percentage / 4.54;
            int newPercentage = (int)percentage;
            //Console.WriteLine(percentage);
            Color toColor = Color.Black;

            if (newPercentage < 7 && newPercentage != 0)
            {
                Console.WriteLine(newPercentage);
                toColor = Color.Red;
            }
            else if (newPercentage >= 7 && newPercentage < 16)
            {
                Console.WriteLine(newPercentage);
                toColor = Color.Yellow;
            }
            else if (newPercentage >= 16)
            {
                Console.WriteLine(newPercentage);
                toColor = Color.Green;
            }
            else
            {
                Console.WriteLine(newPercentage);
                toColor = Color.Black;
            }

            Console.WriteLine(toColor);
            for(int i = 0; i <= newPercentage; i++)
            {
                try
                {
                    rows[i].Brush = new SolidColorBrush(toColor);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }

            Console.WriteLine("Coloring Keyboard");
            keyboard.Update();
        }
 //Checks that we have a valid KeyboardSDK instance
 private bool CheckForKeyboard()
 {
     keyboard = CueSDK.KeyboardSDK;
     if (!CheckForCUEError() || Keyboard == null)
     {
         Console.WriteLine("No Corsair keyboard connected!.");
         return false;
     }
     else
     {
         return true;
     }
 }
示例#12
0
        //Setup device SDKs and Init
        void InitializeDevices()
        {
            chk_deviceKeyboard.ForeColor = System.Drawing.Color.LightGray;
            chk_deviceMouse.ForeColor = System.Drawing.Color.LightGray;
            chk_deviceKeypad.ForeColor = System.Drawing.Color.LightGray;
            chk_deviceMousepad.ForeColor = System.Drawing.Color.LightGray;
            chk_deviceHeadset.ForeColor = System.Drawing.Color.LightGray;
            chk_deviceCorsair.ForeColor = System.Drawing.Color.LightGray;
            chk_deviceLogitech.ForeColor = System.Drawing.Color.LightGray;

            //INIT REFERENCE SDKS

            //LOGITECH
            if (Process.GetProcessesByName("LCore").Length > 0)
            {
                LogitechGSDK.LogiLedInit();
                LogitechSDK = true;
            }
            else
            {
                LogitechSDK = false;
            }

            if (LogitechSDK == true)
            {
                chk_deviceLogitech.Checked = true;
                chk_deviceLogitech.AutoCheck = true;
                chk_deviceLogitech.ForeColor = SystemColors.ControlText;
            }
            else
            {
                chk_deviceLogitech.Checked = false;
                chk_deviceLogitech.AutoCheck = false;
                chk_deviceLogitech.ForeColor = System.Drawing.Color.LightGray;
            }

            //CORSAIR
            if (File.Exists(ProgramFilesx86() + @"\Corsair\Corsair Utility Engine\CorsairHID.exe"))
            {
                if (StartUp == false)
                {
                    if (!File.Exists(AppDataPath + @"\Advanced Combat Tracker\Plugins\CUESDK_2013.dll"))
                    {
                        DialogResult result = MessageBox.Show("The Corsair SDK has not been initialized on your system. Would you like to do it now?", "CUE SDK Not Found", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                        if (result == DialogResult.Yes)
                        {
                            try
                            {
                                File.Copy(pluginEnviroment + @"\lib\CUESDK_2013.dll", AppDataPath + @"\Advanced Combat Tracker\Plugins\CUESDK_2013.dll", true);
                                MessageBox.Show("Corsair SDK has been enabled. Please restart ACT and run CUE to enable Corsair support.");
                                CorsairSDK = false;
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show("Chromatics was unable to initialize the Corsair SDK. Please try again later. (Error Code: " + ex.Message + ")");
                                CorsairSDK = false;
                            }

                        }
                        else
                        {
                            MessageBox.Show("Corsair devices will be temporarily disabled. Please restart ACT if you wish to initialize the SDK.");
                            CorsairSDK = false;
                        }
                    }
                    else
                    {
                        try
                        {
                            CueSDK.Initialize();
                            CorsairSDK = true;
                            MessageBox.Show("Initialized with " + CueSDK.LoadedArchitecture + " -SDK","DEBUG");
                        }
                        catch (CUEException ex)
                        {
                            if (ex.Error.ToString() == "ServerNotFound")
                            {
                                CorsairSDK = false;
                                //CorsairState = 2;
                                Debug.WriteLine(ex.Error.ToString());
                                MessageBox.Show("CUE (Corsair Utility Engine) is currently not running or not installed. Please install or run the program and restart ACT to enable Corsair Support. If you are still getting this error message, please select 'Enable SDK' in the CUE application.");
                            }
                            else
                            {
                                CorsairSDK = false;
                                MessageBox.Show("An unknown error occurred while trying to load the Corsair libraries. Corsair support will be disabled.");
                            }
                        }
                        catch (WrapperException ex)
                        {
                            if (ex.Message == "CueSDK is already initialized.")
                            {
                                CorsairSDK = false;
                                //CorsairState = 2;
                                MessageBox.Show("An error occured where ACT attempted to start the Corsair Engine twice. Please restart ACT to re-enable Corsair device support.");
                            }
                            else
                            {
                                CorsairSDK = false;
                                MessageBox.Show("An unknown error occurred while trying to load the Corsair libraries. Corsair support will be disabled.");
                            }
                        }
                    }
                }
            }

            if (CorsairSDK == true)
            {
                corKeyboard = CueSDK.KeyboardSDK;
                CorsairMouse corMouse = CueSDK.MouseSDK;
                CorsairHeadset corHeadset = CueSDK.HeadsetSDK;

                if (corKeyboard != null)
                {
                    CorsairKeyboardDetect = true;
                    chk_deviceCorsair.Checked = true;
                    chk_deviceCorsair.AutoCheck = true;
                    chk_deviceCorsair.ForeColor = SystemColors.ControlText;

                }
                if (corMouse != null)
                {
                    CorsairMouseDetect = true;
                    chk_deviceCorsair.Checked = true;
                    chk_deviceCorsair.AutoCheck = true;
                    chk_deviceCorsair.ForeColor = SystemColors.ControlText;
                }
                if (corHeadset != null)
                {
                    CorsairHeadsetDetect = true;
                    chk_deviceCorsair.Checked = true;
                    chk_deviceCorsair.AutoCheck = true;
                    chk_deviceCorsair.ForeColor = SystemColors.ControlText;
                }

            }
            else
            {
                chk_deviceCorsair.Checked = false;
                chk_deviceCorsair.AutoCheck = false;
                chk_deviceCorsair.ForeColor = System.Drawing.Color.LightGray;
            }

            //RAZER
            if (Chroma.IsSdkAvailable() == false)
            {
                RazerSDK = false;
            }

            if (RazerSDK != false)
            {
                if (Chroma.Instance.Initialized != true)
                {
                    Chroma.Instance.Uninitialize();
                }
                else
                {
                    Chroma.Instance.Initialize();
                }
                Chroma chroma = (Chroma)Chroma.Instance;

                //Razer device auto-detection disabled due to bug in Razer SDK

                //Keyboards
                //if (chroma.Query(new Guid(0x2ea1bb63, 0xca28, 0x428d, 0x9f, 0x06, 0x19, 0x6b, 0x88, 0x33, 0x0b, 0xbb)).Connected == true) { chk_deviceKeyboard.Checked = true; chk_deviceKeyboard.AutoCheck = true; chk_deviceKeyboard.ForeColor = SystemColors.ControlText; } //Blackwidow
                //if (chroma.Query(new Guid(0xed1c1b82, 0xbfbe, 0x418f, 0xb4, 0x9d, 0xd0, 0x3f, 0x5, 0xb1, 0x49, 0xdf)).Connected == true) { chk_deviceKeyboard.Checked = true; chk_deviceKeyboard.AutoCheck = true; chk_deviceKeyboard.ForeColor = SystemColors.ControlText; } //BlackwidowTE
                //if (chroma.Query(new Guid(0x18c5ad9b, 0x4326, 0x4828, 0x92, 0xc4, 0x26, 0x69, 0xa6, 0x6d, 0x22, 0x83)).Connected == true) { chk_deviceKeyboard.Checked = true; chk_deviceKeyboard.AutoCheck = true; chk_deviceKeyboard.ForeColor = SystemColors.ControlText; } //Deathstalker

                //Mouse
                //if (chroma.Query(new Guid(0xaec50d91, 0xb1f1, 0x452f, 0x8e, 0x16, 0x7b, 0x73, 0xf3, 0x76, 0xfd, 0xf3)).Connected == true) { chk_deviceMouse.Checked = true; chk_deviceMouse.AutoCheck = true; chk_deviceMouse.ForeColor = SystemColors.ControlText; } //DeathAdder
                //if (chroma.Query(new Guid(0xff8a5929, 0x4512, 0x4257, 0x8d, 0x59, 0xc6, 0x47, 0xbf, 0x99, 0x35, 0xd0)).Connected == true) { chk_deviceMouse.Checked = true; chk_deviceMouse.AutoCheck = true; chk_deviceMouse.ForeColor = SystemColors.ControlText; } //Diamondback
                //if (chroma.Query(new Guid(0x7ec00450, 0xe0ee, 0x4289, 0x89, 0xd5, 0xd, 0x87, 0x9c, 0x19, 0x6, 0x1a)).Connected == true) { chk_deviceMouse.Checked = true; chk_deviceMouse.AutoCheck = true; chk_deviceMouse.ForeColor = SystemColors.ControlText; } //MambaTE

                //Keypad
                //if (chroma.Query(new Guid(0xf0545c, 0xe180, 0x4ad1, 0x8e, 0x8a, 0x41, 0x90, 0x61, 0xce, 0x50, 0x5e)).Connected == true) { chk_deviceKeypad.Checked = true; chk_deviceKeypad.AutoCheck = true; chk_deviceKeypad.ForeColor = SystemColors.ControlText; } //Tatarus
                //if (chroma.Query(new Guid(0x9d24b0ab, 0x162, 0x466c, 0x96, 0x40, 0x7a, 0x92, 0x4a, 0xa4, 0xd9, 0xfd)).Connected == true) { chk_deviceKeypad.Checked = true; chk_deviceKeypad.AutoCheck = true; chk_deviceKeypad.ForeColor = SystemColors.ControlText; } //Orbweaver

                //Mousepad
                //if (chroma.Query(new Guid(0x80f95a94, 0x73d2, 0x48ca, 0xae, 0x9a, 0x9, 0x86, 0x78, 0x9a, 0x9a, 0xf2)).Connected == true) { chk_deviceMousepad.Checked = true; chk_deviceMousepad.AutoCheck = true; chk_deviceMousepad.ForeColor = SystemColors.ControlText; } //Firefly

                //Headset
                //if (chroma.Query(new Guid(0xcd1e09a5, 0xd5e6, 0x4a6c, 0xa9, 0x3b, 0xe6, 0xd9, 0xbf, 0x1d, 0x20, 0x92)).Connected == true) { chk_deviceHeadset.Checked = true; chk_deviceHeadset.AutoCheck = true; chk_deviceHeadset.ForeColor = SystemColors.ControlText; } //Kraken 7.1

                chk_deviceKeyboard.Checked = true; chk_deviceKeyboard.AutoCheck = true; chk_deviceKeyboard.ForeColor = SystemColors.ControlText;
                chk_deviceMouse.Checked = true; chk_deviceMouse.AutoCheck = true; chk_deviceMouse.ForeColor = SystemColors.ControlText;
                chk_deviceKeypad.Checked = true; chk_deviceKeypad.AutoCheck = true; chk_deviceKeypad.ForeColor = SystemColors.ControlText;
                chk_deviceMousepad.Checked = true; chk_deviceMousepad.AutoCheck = true; chk_deviceMousepad.ForeColor = SystemColors.ControlText;
                chk_deviceHeadset.Checked = true; chk_deviceHeadset.AutoCheck = true; chk_deviceHeadset.ForeColor = SystemColors.ControlText;
            }

            ResetDevices();
            if (rescan == true)
            {
                if (RazerSDK == false)
                {
                    MessageBox.Show("The Razer SDK (RzChromaSDK64.dll) Could not be found on this computer. Please install Synapse and restart ACT if you wish to use Chromatics with Razer devices.");
                }
                if (CorsairSDK == false)
                {
                    MessageBox.Show("CUE (Corsair Utility Engine) is currently not running or not installed. Please install or run the program and restart ACT to enable Corsair Support. If you are still getting this error message, please select 'Enable SDK' in the CUE application.");
                }
                if (LogitechSDK == false)
                {
                    MessageBox.Show("Logitech Gaming Software is currently not running or not installed.Please install or run the program and restart ACT to enable Logitech Support.");
                }
                rescan = false;
            }

            StartUp = true;
        }
示例#13
0
 public static Dictionary<string, CorsairLed> GetCorsairLeds(CorsairKeyboard keyboard)
 {
     return keyboard.Keys.ToDictionary(key => key.KeyId.ToString(), key => key.Led);
 }