Beispiel #1
0
        internal void firekeyStateChangedEvent(BrailleIO_DeviceButtonStates states,
                                               List <string> pressedKeys,
                                               List <string> releasedKeys,
                                               int timeStampTickCount)
        {
            OrderedDictionary raw = new OrderedDictionary();

            raw.Add("pressedKeys", pressedKeys);
            raw.Add("releasedKeys", releasedKeys);
            raw.Add("timeStampTickCount", timeStampTickCount);
            fireKeyStateChanged(states, ref raw);
        }
Beispiel #2
0
        /// <summary>
        /// Gets the 'down' state value for a certain device button.
        /// </summary>
        /// <param name="button">The button.</param>
        /// <returns>the enum value for the 'down' state of the button</returns>
        public static BrailleIO_DeviceButtonStates GetDownStateForDeviceButton(BrailleIO_DeviceButton button)
        {
            int val = (int)button;
            BrailleIO_DeviceButtonStates result = BrailleIO_DeviceButtonStates.None;

            try
            {
                result = (BrailleIO_DeviceButtonStates)ShiftUpButtonsToUpDownStates(GetButtonUpFlags(val));
            }
            catch (Exception) { }
            return(result);
        }
Beispiel #3
0
        /// <summary>
        /// Fires a key state changed event.
        /// </summary>
        /// <param name="keyCode">The key code.</param>
        /// <param name="raw">The raw.</param>
        /// <param name="keyboardCode">optional combined Braille keyboard button states.</param>
        /// <param name="additionalKeyCode">list of optional combined additional button states.</param>
        protected virtual void fireKeyStateChanged(
            BrailleIO_DeviceButtonStates keyCode,
            ref OrderedDictionary raw,
            BrailleIO_BrailleKeyboardButtonStates keyboardCode   = BrailleIO_BrailleKeyboardButtonStates.None,
            BrailleIO_AdditionalButtonStates[] additionalKeyCode = null)
        {
            BrailleIO_DeviceButton pressed  = BrailleIO_DeviceButton.None;
            BrailleIO_DeviceButton released = BrailleIO_DeviceButton.None;

            BrailleIO_BrailleKeyboardButton pressedKbB  = BrailleIO_BrailleKeyboardButton.None;
            BrailleIO_BrailleKeyboardButton releasedKbB = BrailleIO_BrailleKeyboardButton.None;

            Dictionary <int, BrailleIO_AdditionalButton> pressedAdBs  = null;
            Dictionary <int, BrailleIO_AdditionalButton> releasedAdBs = null;

            try
            {
                // general buttons
                updatePressedDeviceButtons(keyCode, out pressed, out released);

                // braille keyboard buttons
                updatePressedKeyboardButtons(keyboardCode, out pressedKbB, out releasedKbB);

                // additional buttons
                updatePressedAdditionalButtons(additionalKeyCode, out pressedAdBs, out releasedAdBs);
            }
            catch
            {
                System.Diagnostics.Debug.WriteLine("ERROR in updating the current button states");
            }
            finally
            {
                // TODO: what to do to get it valid again?!
            }

            if (keyStateChanged != null)
            {
                try
                {
                    keyStateChanged(this, new BrailleIO_KeyStateChanged_EventArgs(keyCode, ref raw, keyboardCode, additionalKeyCode));
                }
                catch { }
            }

            checkForKeyCombination(
                pressed, released,
                pressedKbB, releasedKbB,
                pressedAdBs, releasedAdBs);
        }
Beispiel #4
0
        internal void firekeyStateChangedEvent(BrailleIO_DeviceButtonStates states,
                                               BrailleIO_BrailleKeyboardButtonStates keyboardCode,
                                               BrailleIO_AdditionalButtonStates[] additionalKeyCode,
                                               List <string> pressedKeys,
                                               List <string> releasedKeys,
                                               int timeStampTickCount)
        {
            OrderedDictionary raw = new OrderedDictionary();

            raw.Add("pressedKeys", pressedKeys);
            raw.Add("releasedKeys", releasedKeys);
            raw.Add("timeStampTickCount", timeStampTickCount);
            fireKeyStateChanged(states, ref raw, keyboardCode, additionalKeyCode);
            //fireKeyStateChanged(states, ref raw);
        }
Beispiel #5
0
        /// <summary>
        /// Gets the device buttons contained in the states flags.
        /// </summary>
        /// <param name="states">The states.</param>
        /// <returns>List of buttons contained in that state flag</returns>
        /// <remarks>DEPRECATED! use flag stuff instead</remarks>
        public static List <BrailleIO_DeviceButton> GetDeviceButtonsOfStates(BrailleIO_DeviceButtonStates states)
        {
            List <BrailleIO_DeviceButton> result = new List <BrailleIO_DeviceButton>();

            foreach (BrailleIO_DeviceButtonStates r in Enum.GetValues(typeof(BrailleIO_DeviceButtonStates)))
            {
                if (states.HasFlag(r))
                {
                    var b = GetDeviceButtonFlagsOfState(r);
                    if (!result.Contains(b))
                    {
                        result.Add(b);
                    }
                }
            }
            return(result);
        }
        /// <summary>
        /// Gets all released general buttons.
        /// </summary>
        /// <param name="keys">All current keys states.</param>
        /// <returns>a list of released general buttons</returns>
        virtual public List<BrailleIO_DeviceButton> GetAllReleasedGeneralButtons(BrailleIO_DeviceButtonStates keys)
        {
            List<BrailleIO_DeviceButton> k = new List<BrailleIO_DeviceButton>();
            if ((keys == BrailleIO_DeviceButtonStates.None) || keys < 0) return k;

            if ((keys & BrailleIO_DeviceButtonStates.EnterUp) == BrailleIO_DeviceButtonStates.EnterUp) k.Add(BrailleIO_DeviceButton.Enter);
            if ((keys & BrailleIO_DeviceButtonStates.AbortUp) == BrailleIO_DeviceButtonStates.AbortUp) k.Add(BrailleIO_DeviceButton.Abort);
            if ((keys & BrailleIO_DeviceButtonStates.GestureUp) == BrailleIO_DeviceButtonStates.GestureUp) k.Add(BrailleIO_DeviceButton.Gesture);
            if ((keys & BrailleIO_DeviceButtonStates.LeftUp) == BrailleIO_DeviceButtonStates.LeftUp) k.Add(BrailleIO_DeviceButton.Left);
            if ((keys & BrailleIO_DeviceButtonStates.RightUp) == BrailleIO_DeviceButtonStates.RightUp) k.Add(BrailleIO_DeviceButton.Right);
            if ((keys & BrailleIO_DeviceButtonStates.UpUp) == BrailleIO_DeviceButtonStates.UpUp) k.Add(BrailleIO_DeviceButton.Up);
            if ((keys & BrailleIO_DeviceButtonStates.DownUp) == BrailleIO_DeviceButtonStates.DownUp) k.Add(BrailleIO_DeviceButton.Down);
            if ((keys & BrailleIO_DeviceButtonStates.ZoomInUp) == BrailleIO_DeviceButtonStates.ZoomInUp) k.Add(BrailleIO_DeviceButton.ZoomIn);
            if ((keys & BrailleIO_DeviceButtonStates.ZoomOutUp) == BrailleIO_DeviceButtonStates.ZoomOutUp) k.Add(BrailleIO_DeviceButton.ZoomOut);
            if ((keys & BrailleIO_DeviceButtonStates.Unknown) == BrailleIO_DeviceButtonStates.Unknown) k.Add(BrailleIO_DeviceButton.Unknown);
            return k;
        }
        /// <summary>Updates the list of pressed device buttons.</summary>
        /// <param name="keyCode">The key code.</param>
        /// <param name="pressedDB">The pressed device buttons.</param>
        /// <param name="releasedDB">The released device buttons.</param>
        protected virtual void updatePressedDeviceButtons(BrailleIO_DeviceButtonStates keyCode,
                                                          out BrailleIO_DeviceButton pressedDB,
                                                          out BrailleIO_DeviceButton releasedDB)
        {
            pressedDB  = BrailleIO_DeviceButton.None;
            releasedDB = BrailleIO_DeviceButton.None;

            if (keyCode != BrailleIO_DeviceButtonStates.None)
            {
                lock (_syncLock)
                {
                    pressedDB            = Utils.GetAllDownDeviceButtons(keyCode);
                    PressedDeviceButtons = PressedDeviceButtons | pressedDB;
                    releasedDB           = Utils.GetAllUpDeviceButtons(keyCode);
                    PressedDeviceButtons = PressedDeviceButtons & ~releasedDB;
                }
            }
        }
 /// <summary>Fires the key pressed event.</summary>
 /// <param name="keyCode">The key code.</param>
 /// <param name="raw">The raw hardware data.</param>
 /// <param name="keyboardButtonStates">The current pressed keyboard button states.</param>
 /// <param name="additionalButtonStates">The current pressed additional button states.</param>
 protected virtual void fireKeyPressed(
     BrailleIO_DeviceButtonStates keyCode,
     ref OrderedDictionary raw,
     BrailleIO_BrailleKeyboardButtonStates keyboardButtonStates,
     BrailleIO_AdditionalButtonStates[] additionalButtonStates
     )
 {
     if (keyPressed != null)
     {
         try
         {
             keyPressed.Invoke(
                 this,
                 new BrailleIO_KeyPressed_EventArgs(
                     keyCode, ref raw,
                     keyboardButtonStates, additionalButtonStates));
         }
         catch { }
     }
 }
 public abstract void HandleInteraction(BrailleIO_DeviceButtonStates keyEvent);
Beispiel #10
0
 /// <summary>
 /// Gets the device button for one certain button state.
 /// </summary>
 /// <param name="state">The state.</param>
 /// <returns>the button related to this state</returns>
 public static BrailleIO_DeviceButton GetDeviceButtonOfState(BrailleIO_DeviceButtonStates state)
 {
     return(GetDeviceButtonOfState(state.ToString()));
 }
        private void interpretGeneralButtons(BrailleIO_DeviceButtonStates states, IBrailleIOAdapter sender)
        {
            if (states != BrailleIO_DeviceButtonStates.None)
            {
                if ((states & BrailleIO_DeviceButtonStates.AbortDown) == BrailleIO_DeviceButtonStates.AbortDown)
                {
                    invertImage(BS_MAIN_NAME, "center");
                }
                else if ((states & BrailleIO_DeviceButtonStates.AbortUp) == BrailleIO_DeviceButtonStates.AbortUp)
                {
                }

                if ((states & BrailleIO_DeviceButtonStates.DownDown) == BrailleIO_DeviceButtonStates.DownDown)
                {
                    moveVertical(BS_MAIN_NAME, "center", -5);
                }
                else if ((states & BrailleIO_DeviceButtonStates.DownUp) == BrailleIO_DeviceButtonStates.DownUp)
                {
                }

                if ((states & BrailleIO_DeviceButtonStates.EnterDown) == BrailleIO_DeviceButtonStates.EnterDown)
                {
                }
                else if ((states & BrailleIO_DeviceButtonStates.EnterUp) == BrailleIO_DeviceButtonStates.EnterUp)
                {
                }

                if ((states & BrailleIO_DeviceButtonStates.GestureDown) == BrailleIO_DeviceButtonStates.GestureDown)
                {
                    /*if (io != null) { io.AllPinsDown(); }*/
                    if (sender == brailleDisAdapter)
                    {
                        interpretBrailleDisGesture = true;
                    }
                    if (sender == showOffAdapter)
                    {
                        interpretShowOfGesture = true;
                    }
                }
                else if ((states & BrailleIO_DeviceButtonStates.GestureUp) == BrailleIO_DeviceButtonStates.GestureUp)
                {
                    /*if (io != null) { io.RestoreLastRendering(); }*/
                    // evaluate the result
                    if (sender == brailleDisAdapter)
                    {
                        interpretBrailleDisGesture = false;
                    }
                    if (sender == showOffAdapter)
                    {
                        interpretShowOfGesture = false;
                    }
                    recognizeGesture(sender);
                }

                if ((states & BrailleIO_DeviceButtonStates.LeftDown) == BrailleIO_DeviceButtonStates.LeftDown)
                {
                    moveHorizontal(BS_MAIN_NAME, "center", 5);
                }
                else if ((states & BrailleIO_DeviceButtonStates.LeftUp) == BrailleIO_DeviceButtonStates.LeftUp)
                {
                }

                if ((states & BrailleIO_DeviceButtonStates.RightDown) == BrailleIO_DeviceButtonStates.RightDown)
                {
                    moveHorizontal(BS_MAIN_NAME, "center", -5);
                }
                else if ((states & BrailleIO_DeviceButtonStates.RightUp) == BrailleIO_DeviceButtonStates.RightUp)
                {
                }

                if ((states & BrailleIO_DeviceButtonStates.UpDown) == BrailleIO_DeviceButtonStates.UpDown)
                {
                    moveVertical(BS_MAIN_NAME, "center", 5);
                }
                else if ((states & BrailleIO_DeviceButtonStates.UpUp) == BrailleIO_DeviceButtonStates.UpUp)
                {
                }

                if ((states & BrailleIO_DeviceButtonStates.ZoomInDown) == BrailleIO_DeviceButtonStates.ZoomInDown)
                {
                    zoom(BS_MAIN_NAME, "center", 1.3);
                    //zoomPlus(BS_MAIN_NAME, "center", 0.00005);
                }
                else if ((states & BrailleIO_DeviceButtonStates.ZoomInUp) == BrailleIO_DeviceButtonStates.ZoomInUp)
                {
                }

                if ((states & BrailleIO_DeviceButtonStates.ZoomOutDown) == BrailleIO_DeviceButtonStates.ZoomOutDown)
                {
                    //zoomPlus(BS_MAIN_NAME, "center", -0.00005);
                    zoom(BS_MAIN_NAME, "center", 0.6);
                }
                else if ((states & BrailleIO_DeviceButtonStates.ZoomOutUp) == BrailleIO_DeviceButtonStates.ZoomOutUp)
                {
                }
            }
        }
Beispiel #12
0
        internal void fireKeyStateChangeEvent(BrailleIO_DeviceButtonStates states,
                                              BrailleIO_BrailleKeyboardButtonStates keyboardCode,
                                              BrailleIO_AdditionalButtonStates[] additionalKeyCode,
                                              List <string> pressedKeys,
                                              List <string> releasedKeys,
                                              int timeStampTickCount)
        {
            if (Ctr)
            {
                //check if pressed or released
                if (releasedKeys == null || releasedKeys.Count < 1) //pressed keys
                {
                    if (pressedKeys != null && pressedKeys.Count > 0)
                    {
                        foreach (string pk in pressedKeys)
                        {
                            if (_pressedButtons.Contains(pk))
                            {
                                UnmarkButtons(new List <String> {
                                    pk
                                });
                                _pressedButtons.Remove(pk);
                                _pressedStates.Remove(states);
                                _pressedKeyboradStates.Remove(keyboardCode);
                                if (additionalKeyCode != null && additionalKeyCode.Length > 0)
                                {
                                    _pressedFncStates.Remove(additionalKeyCode[0]);
                                }
                            }
                            else
                            {
                                _pressedButtons.Add(pk);
                                _pressedStates.Add(states);
                                _pressedKeyboradStates.Add(keyboardCode);
                                if (additionalKeyCode != null && additionalKeyCode.Length > 0)
                                {
                                    _pressedFncStates.Add(additionalKeyCode[0]);
                                }
                            }
                        }
                    }
                }
                else // released keys
                {
                    if (releasedKeys != null && releasedKeys.Count > 0)
                    {
                        foreach (string rk in releasedKeys)
                        {
                            if (_releasedButtons.Contains(rk))
                            {
                                UnmarkButtons(new List <String> {
                                    rk
                                });
                                _releasedButtons.Remove(rk);
                                _releasedStates.Remove(states);
                                _releasedKeybordStates.Remove(keyboardCode);
                                if (additionalKeyCode != null && additionalKeyCode.Length > 0)
                                {
                                    _releasedFncStates.Remove(additionalKeyCode[0]);
                                }
                            }
                            else
                            {
                                _releasedButtons.Add(rk);
                                _releasedStates.Add(states);
                                _releasedKeybordStates.Add(keyboardCode);
                                if (additionalKeyCode != null && additionalKeyCode.Length > 0)
                                {
                                    _releasedFncStates.Add(additionalKeyCode[0]);
                                }
                            }
                        }
                    }
                }

                MarkButtonAsPressed(_pressedButtons);
            }

            BrailleIO_DeviceButtonStates ps = BrailleIO_DeviceButtonStates.None;

            foreach (BrailleIO_DeviceButtonStates s in _pressedStates)
            {
                ps = ps | s;
            }
            BrailleIO_BrailleKeyboardButtonStates ks = BrailleIO_BrailleKeyboardButtonStates.None;

            foreach (BrailleIO_BrailleKeyboardButtonStates item in _pressedKeyboradStates)
            {
                ks |= item;
            }
            BrailleIO_AdditionalButtonStates ads = BrailleIO_AdditionalButtonStates.None;

            foreach (BrailleIO_AdditionalButtonStates item in _pressedFncStates)
            {
                ads |= item;
            }

            // fire always button pressed but wait for release
            if (ShowOffAdapter != null && pressedKeys != null && pressedKeys.Count > 0)
            {
                ShowOffAdapter.firekeyStateChangedEvent(ps, ks, new BrailleIO_AdditionalButtonStates[1] {
                    ads
                }, _pressedButtons, new List <String>(), timeStampTickCount);
            }
            //              ShowOffAdapter.firekeyStateChangedEvent(ps, _pressedButtons, new List<String>(), timeStampTickCount);


            if (Ctr)
            {
                return;      // break the release or reset functions
            }
            if (states == BrailleIO_DeviceButtonStates.None && pressedKeys == null && releasedKeys == null && timeStampTickCount == 0)
            {
                //check if this is because the ctr is released
                if (ShowOffAdapter != null)
                {
                    BrailleIO_DeviceButtonStates rs = BrailleIO_DeviceButtonStates.None;
                    foreach (BrailleIO_DeviceButtonStates s in _releasedStates)
                    {
                        rs = rs | s;
                    }
                    BrailleIO_BrailleKeyboardButtonStates rks = BrailleIO_BrailleKeyboardButtonStates.None;
                    foreach (BrailleIO_BrailleKeyboardButtonStates item in _releasedKeybordStates)
                    {
                        rks |= item;
                    }
                    // TODO: do for additional buttons
                    BrailleIO_AdditionalButtonStates rads = BrailleIO_AdditionalButtonStates.None;
                    foreach (BrailleIO_AdditionalButtonStates item in _releasedFncStates)
                    {
                        rads |= item;
                    }

                    ShowOffAdapter.firekeyStateChangedEvent(rs, rks, new BrailleIO_AdditionalButtonStates[1] {
                        rads
                    }, new List <String>(), _releasedButtons, timeStampTickCount);
                    //ShowOffAdapter.firekeyStateChangedEvent(rs, new List<String>(), _releasedButtons, timeStampTickCount);


                    UnmarkButtons(_releasedButtons);

                    _pressedButtons.Clear();
                    _releasedButtons.Clear();
                    _pressedStates.Clear();
                    _pressedKeyboradStates.Clear();
                    _pressedFncStates.Clear();
                    _releasedStates.Clear();
                    _releasedKeybordStates.Clear();
                    _releasedFncStates.Clear();
                }
            }
            else
            {
                if (ShowOffAdapter != null)
                {
                    ShowOffAdapter.firekeyStateChangedEvent(states, keyboardCode, additionalKeyCode, pressedKeys, releasedKeys, timeStampTickCount);
                    //ShowOffAdapter.firekeyStateChangedEvent(states, pressedKeys, releasedKeys, timeStampTickCount);
                }
            }
        }
Beispiel #13
0
        internal void fireKeyStateChangeEvent(BrailleIO_DeviceButtonStates states,
                                              List <string> pressedKeys,
                                              List <string> releasedKeys,
                                              int timeStampTickCount)
        {
            if (Ctr)
            {
                //check if pressed or released
                if (releasedKeys == null || releasedKeys.Count < 1) //pressed keys
                {
                    if (pressedKeys != null && pressedKeys.Count > 0)
                    {
                        foreach (string pk in pressedKeys)
                        {
                            if (_pressedButtons.Contains(pk))
                            {
                                UnmarkButtons(new List <String> {
                                    pk
                                });
                                _pressedButtons.Remove(pk);
                                _pressedStates.Remove(states);
                            }
                            else
                            {
                                _pressedButtons.Add(pk);
                                _pressedStates.Add(states);
                            }
                        }
                    }
                }
                else // released keys
                {
                    if (releasedKeys != null && releasedKeys.Count > 0)
                    {
                        foreach (string rk in releasedKeys)
                        {
                            if (_releasedButtons.Contains(rk))
                            {
                                UnmarkButtons(new List <String> {
                                    rk
                                });
                                _releasedButtons.Remove(rk);
                                _releasedStates.Remove(states);
                            }
                            else
                            {
                                _releasedButtons.Add(rk);
                                _releasedStates.Add(states);
                            }
                        }
                    }
                }

                MarkButtonAsPressed(_pressedButtons);
            }

            BrailleIO_DeviceButtonStates ps = BrailleIO_DeviceButtonStates.None;

            foreach (BrailleIO_DeviceButtonStates s in _pressedStates)
            {
                ps = ps | s;
            }

            // fire always button pressed but wait for release
            if (ShowOffAdapter != null && pressedKeys != null && pressedKeys.Count > 0)
            {
                ShowOffAdapter.firekeyStateChangedEvent(ps, _pressedButtons, new List <String>(), timeStampTickCount);
            }

            if (Ctr)
            {
                return;      // break the release or reset functions
            }
            if (states == BrailleIO_DeviceButtonStates.None && pressedKeys == null && releasedKeys == null && timeStampTickCount == 0)
            {
                //check if this is because the ctr is released
                if (ShowOffAdapter != null)
                {
                    BrailleIO_DeviceButtonStates rs = BrailleIO_DeviceButtonStates.None;
                    foreach (BrailleIO_DeviceButtonStates s in _releasedStates)
                    {
                        rs = rs | s;
                    }

                    ShowOffAdapter.firekeyStateChangedEvent(rs, new List <String>(), _releasedButtons, timeStampTickCount);

                    UnmarkButtons(_releasedButtons);

                    _pressedButtons.Clear();
                    _releasedButtons.Clear();
                    _pressedStates.Clear();
                    _releasedStates.Clear();
                }
            }
            else
            {
                if (ShowOffAdapter != null)
                {
                    ShowOffAdapter.firekeyStateChangedEvent(states, pressedKeys, releasedKeys, timeStampTickCount);
                }
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="BrailleIO_KeyStateChanged_EventArgs"/> class.
 /// </summary>
 /// <param name="keyCode">The key code.</param>
 /// <param name="raw">The original raw event data from the device.</param>
 public BrailleIO_KeyStateChanged_EventArgs(BrailleIO_DeviceButtonStates keyCode, ref OrderedDictionary raw)
 {
     this.keyCode = keyCode;
     this.raw     = raw;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="BrailleIO_KeyPressed_EventArgs"/> class.
 /// </summary>
 /// <param name="keyCode">The key code.</param>
 /// <param name="raw">The original raw event data from the device.</param>
 public BrailleIO_KeyPressed_EventArgs(BrailleIO_DeviceButtonStates keyCode, ref Object raw)
 {
     this.keyCode = keyCode;
     this.raw     = raw;
 }
Beispiel #16
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BrailleIO_KeyStateChanged_EventArgs"/> class.
 /// </summary>
 /// <param name="keyCode">The key code.</param>
 /// <param name="raw">The original raw event data from the device.</param>
 public BrailleIO_KeyStateChanged_EventArgs(BrailleIO_DeviceButtonStates keyCode, ref OrderedDictionary raw,
                                            BrailleIO_BrailleKeyboardButtonStates keyboardCode   = BrailleIO_BrailleKeyboardButtonStates.None,
                                            BrailleIO_AdditionalButtonStates[] additionalKeyCode = null)
     : base(keyCode, ref raw, keyboardCode, additionalKeyCode)
 {
 }
Beispiel #17
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BrailleIO_KeyStateChanged_EventArgs" /> class.
 /// </summary>
 /// <param name="keyCode">The key code.</param>
 public BrailleIO_KeyStateChanged_EventArgs(BrailleIO_DeviceButtonStates keyCode)
     : base(keyCode)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="BrailleIO_KeyStateChanged_EventArgs" /> class.
 /// </summary>
 /// <param name="keyCode">The key code.</param>
 public BrailleIO_KeyStateChanged_EventArgs(BrailleIO_DeviceButtonStates keyCode)
 {
     this.keyCode = keyCode;
     this.raw     = null;
 }