Beispiel #1
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="Main" /> class.
        /// </summary>
        internal Main()
        {
            var settings = SettingsManager.GetSettings();

            SettingsManager.GetAutoStart();

            lastInput = DateTime.Now;
            idleTime  = settings.Item1;
            idleColor = settings.Item2;
            capsColor = settings.Item3;

            Properties.Settings.Default.SettingsSaving += SettingSaving;

            keyboard = new KeyboardInput();
            keyboard.KeyBoardKeyPressed += InputAction;

            mouse             = new MouseInput();
            mouse.MouseMoved += InputAction;

            new Initializer().NewCorsairDeviceConnected += UpdateNewDevice;

            SettingsWindow.ReleasedControl += RetakeControl;

            if (Keyboard.IsKeyToggled(Key.CapsLock))
            {
                LedChanger.ChangeLeds(capsColor);
                inCaps = true;
            }

            InitTimer();
        }
Beispiel #2
0
        /// <summary>
        ///     Loading new settings.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SettingSaving(object sender, CancelEventArgs e)
        {
            var settings = SettingsManager.GetSettings();

            if (idleTime != settings.Item1)
            {
                idleTime = settings.Item1;
            }

            if (idleColor != settings.Item2)
            {
                idleColor = settings.Item2;
            }

            if (capsColor != settings.Item3)
            {
                capsColor = settings.Item3;
            }

            if (inCaps)
            {
                LedChanger.ChangeLeds(capsColor);
            }
            else
            {
                LedChanger.ResetLeds();
            }
        }
Beispiel #3
0
 /// <summary>
 ///     Checks if enough time without input has passed.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="System.Timers.ElapsedEventArgs" /> instance containing the event data.</param>
 private void IdleCheck(object sender, ElapsedEventArgs e)
 {
     if (!inIdle)
     {
         if (DateTime.Now.Subtract(lastInput) > idleTime)
         {
             LedChanger.ChangeLeds(idleColor);
             inIdle = true;
         }
     }
 }
Beispiel #4
0
        /// <summary>
        /// Changes LEDs of newly connected device.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void UpdateNewDevice(object sender, EventArgs e)
        {
            if (inIdle)
            {
                LedChanger.ChangeLeds(idleColor);
            }

            else if (inCaps)
            {
                LedChanger.ChangeLeds(capsColor);
            }
        }
Beispiel #5
0
        /// <summary>
        /// Changes LEDs to proper color after color picker has changed it.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void RetakeControl(object sender, EventArgs e)
        {
            var capsToggled = Keyboard.IsKeyToggled(Key.CapsLock);

            if (capsToggled)
            {
                LedChanger.ChangeLeds(capsColor);
                inCaps = true;
            }

            else
            {
                LedChanger.ResetLeds();
                inCaps = inIdle = false;
            }
        }
Beispiel #6
0
        /// <summary>
        ///     Updates last input and changes LEDs if needed.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs" /> instance containing the event data.</param>
        private void InputAction(object sender, EventArgs e)
        {
            //System.Diagnostics.Debug.WriteLine("INPUT");
            var capsToggled = Keyboard.IsKeyToggled(Key.CapsLock);

            if (inIdle)
            {
                if (capsToggled)
                {
                    LedChanger.ChangeLeds(capsColor);
                    inCaps = true;
                }

                else
                {
                    LedChanger.ResetLeds();
                }

                inIdle = false;
            }

            else if (!capsToggled && inCaps)
            {
                LedChanger.ResetLeds();
                inCaps = false;
            }

            else if (capsToggled && !inCaps)
            {
                LedChanger.ChangeLeds(capsColor);
                //System.Diagnostics.Debug.WriteLine("GOING CAPS!");
                inCaps = true;
            }

            // Updates last input time
            lastInput = DateTime.Now;
        }