public void KeyDown(USBC_Key key)
        {
            // This was taken from USBC_Keyboard.KeyDown() from reflector, with minor reformatting.
            int num = 0;

            if ((key >= USBC_Key.LeftCtrl) && (key <= USBC_Key.RightGUI))
            {
                byte num3 = (byte)(((int)key) - 0xe0);
                this._KbReport[0] = (byte)(this._KbReport[0] | ((byte)(((int)1) << num3)));
            }
            else
            {
                for (int i = 0; i < this._KbReport.Length - 1; i++)
                {
                    if (this._KbReport[i + 1] == (byte)key)
                    {
                        break;
                    }
                    if (this._KbReport[i + 1] == 0x0)
                    {
                        num = i;
                    }
                }
                if (num < this._KbReport.Length - 1)
                {
                    this._KbReport[num + 1] = (byte)key;
                }
            }
            this._KbStream.Write(this._KbReport, 0, this._KbReport.Length);
        }
 public void KeyUp(USBC_Key key)
 {
     if (USBClientController.GetState() != USBClientController.State.Running || _KeyboardMouseClient == null)
     {
         return;
     }
     _KeyboardMouseClient.KeyUp(key);
 }
 public void KeyUp(USBC_Key key)
 {
     // This was taken from USBC_Keyboard.KeyUp() from reflector, with minor reformatting.
     if ((key >= USBC_Key.LeftCtrl) && (key <= USBC_Key.RightGUI))
     {
         byte num2 = (byte)(((int)key) - 0xe0);
         this._KbReport[0] = (byte)(this._KbReport[0] & ((byte)~(((int)0x1) << num2)));
     }
     else
     {
         for (int i = 0; i < this._KbReport.Length - 1; i++)
         {
             if (this._KbReport[i + 1] == (byte)key)
             {
                 this._KbReport[i + 1] = 0;
                 break;
             }
         }
     }
     this._KbStream.Write(this._KbReport, 0, this._KbReport.Length);
 }
 public void KeyTap(USBC_Key key)
 {
     KeyDown(key);
     KeyUp(key);
 }