Exemplo n.º 1
0
        private void InputEventsKeyDown(object sender, KeyboardInputEventArgs e)
        {
            if (Utils.Time.GetMillisecondsSinceEpoch() - previoustime > 1000L)
            {
                return; //This event wasn't used for at least 1 second
            }
            if (previous_key == e.Key)
            {
                return;
            }

            long?currentTime = null;

            Devices.DeviceKeys device_key = e.GetDeviceKey();

            lock (TimeOfLastPress)
            {
                if (TimeOfLastPress.ContainsKey(device_key))
                {
                    if ((currentTime = Utils.Time.GetMillisecondsSinceEpoch()) - TimeOfLastPress[device_key] < pressBuffer)
                    {
                        return;
                    }
                    else
                    {
                        TimeOfLastPress.Remove(device_key);
                    }
                }
            }

            if (device_key != Devices.DeviceKeys.NONE && !Properties.Sequence.keys.Contains(device_key))
            {
                PointF pt = Effects.GetBitmappingFromDeviceKey(device_key).Center;
                if (pt != new PointF(0, 0))
                {
                    lock (TimeOfLastPress)
                        TimeOfLastPress.Add(device_key, currentTime ?? Utils.Time.GetMillisecondsSinceEpoch());

                    _input_list.Add(CreateInputItem(device_key, pt));
                    previous_key = e.Key;
                }
            }
        }
Exemplo n.º 2
0
        private void InputEventsOnKeyUp(object sender, KeyboardInputEventArgs e)
        {
            if (IsRecording())
            {
                DeviceKeys key = e.GetDeviceKey();

                if (key != DeviceKeys.NONE)
                {
                    if (HasRecorded(key))
                    {
                        RemoveKey(key);
                    }
                    else
                    {
                        AddKey(key);
                    }
                }
            }
        }
Exemplo n.º 3
0
        private void InputEventsKeyUp(object sender, KeyboardInputEventArgs e)
        {
            if (Utils.Time.GetMillisecondsSinceEpoch() - previoustime > 1000L)
            {
                return; //This event wasn't used for at least 1 second
            }
            Devices.DeviceKeys deviceKey = e.GetDeviceKey();
            if (deviceKey != Devices.DeviceKeys.NONE)
            {
                foreach (var input in _input_list.ToArray())
                {
                    if (input.waitOnKeyUp && input.key == deviceKey)
                    {
                        input.waitOnKeyUp = false;
                    }
                }
            }

            if (previous_key == e.Key)
            {
                previous_key = Keys.None;
            }
        }