Exemplo n.º 1
0
        private async void applyBtn_Click(object sender, EventArgs e)
        {
            bool startupBtnState = startupHandlerBtn.Enabled;

            try
            {
                this.programmingMouse = true;

                applyBtn.Enabled          = false;
                defaultBtn.Enabled        = false;
                startupHandlerBtn.Enabled = false;

                Firmware.LedMode progMode = Firmware.LedMode.AlwaysOn;
                int  progBright = 0;
                byte progR = 0, progG = 0, progB = 0;

                Color color = ColorSlider.ToRgbColor();

                if (Firmware.GetLED(ref progMode, ref progBright, ref progR, ref progG, ref progB))
                {
                    if (progMode == GetLedModeFromRadio() && progBright == ledBrightnessSlider.Value &&
                        color.R == progR && color.G == progG && color.B == progB)
                    {
                        Console.WriteLine("Not reprogramming, just applying.");
                        Firmware.EnableCustomLED();
                        return;
                    }
                }

                Console.WriteLine("Reprogramming...");
                await Firmware.SetLEDAsync(GetLedModeFromRadio(), ledBrightnessSlider.Value, color.R, color.G, color.B);

                Firmware.EnableCustomLED();
            }
            catch (FirmwareException ex)
            {
                // Mouse may be in a "waiting for write operations" state, better reset the mouse.
                // Additionally, scroll wheel and LED are most likely turned off, so user should indeed reconnect the mice.
                MessageBox.Show("Failed to apply changes to the mouse.\n" +
                                "\nIt's highly recommended that you disconnect and reconnect your mice right now to avoid further problems.\n" +
                                "\nAdditional error information: " + ex.Message,
                                "CmAlcorGUI", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                this.programmingMouse = false;

                applyBtn.Enabled          = true;
                defaultBtn.Enabled        = true;
                startupHandlerBtn.Enabled = startupBtnState;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        private void SetRadioFromLedMode(Firmware.LedMode mode)
        {
            switch (mode)
            {
            case Firmware.LedMode.AlwaysOff:
                alwaysOffRadioBtn.Checked = true;
                break;

            case Firmware.LedMode.AlwaysOn:
                alwaysOnRadioBtn.Checked = true;
                break;

            case Firmware.LedMode.RapidFire:
                rapidFireRadioBtn.Checked = true;
                break;

            case Firmware.LedMode.Breathing:
                breathingRadioBtn.Checked = true;
                break;

            default:
                throw new InvalidOperationException();
            }
        }