示例#1
0
        public void func()
        {
            int i = 0;

            while (true) //infinite loop to listen to keyboard keys and perform actions
            {
                i++;
                Debug.WriteLine("waiting");  //wait for a key to press
                kbd = Keyboard.Wait(keyboards);
                Debug.WriteLine("typed" + i);
                if (kbd == null)
                {
                    break;
                }

                keystroke = kbd.Read();                                                                                     //read keycode

                Dispatcher.Invoke((Action) delegate() { id_info.Text = "Id: " + kbd.ID + " pressed: " + keystroke.code; }); //reflect key info on UI


                if (kbd.ID == kbdid)
                {
                    //block all strokes of keyboard with matching kbdid and press corresponding joystick keys
                    pressjoy(keystroke);
                }
                else
                {
                    //if it was different keyboard then send this stroke to other programs
                    kbd.Write(keystroke);
                }
            }
        }
示例#2
0
        public void pressjoy(Keyboard.Stroke keystroke)
        {
            // perform actions according to keycode and keystate and joystick button assign to it
            Boolean down = false;

            if (keystroke.state == Keyboard.States.MAKE)
            {
                down = true;
            }
            else if (keystroke.state == Keyboard.States.BREAK)
            {
                down = false;
            }

            if (keystroke.state == Keyboard.States.E0)
            {
                down = true;
            }
            else if ((int)keystroke.state == 3)
            {
                down = false;
            }


            if (down)
            {
                if (keystroke.code == jy_down)
                {
                    joystick1.SetAxis(36000, joyid, HID_USAGES.HID_USAGE_Y);
                }
                else if (keystroke.code == jy_up)
                {
                    joystick1.SetAxis(0, joyid, HID_USAGES.HID_USAGE_Y);
                }
                else if (keystroke.code == jx_down)
                {
                    joystick1.SetAxis(0, joyid, HID_USAGES.HID_USAGE_X);
                }
                else if (keystroke.code == jx_up)
                {
                    joystick1.SetAxis(36000, joyid, HID_USAGES.HID_USAGE_X);
                }
            }
            else
            {
                if (keystroke.code == jy_down)
                {
                    joystick1.SetAxis(18000, joyid, HID_USAGES.HID_USAGE_Y);
                }
                else if (keystroke.code == jy_up)
                {
                    joystick1.SetAxis(18000, joyid, HID_USAGES.HID_USAGE_Y);
                }

                else if (keystroke.code == jx_down)
                {
                    joystick1.SetAxis(18000, joyid, HID_USAGES.HID_USAGE_X);
                }
                else if (keystroke.code == jx_up)
                {
                    joystick1.SetAxis(18000, joyid, HID_USAGES.HID_USAGE_X);
                }
            }

            if (keystroke.code == jbutton_1)
            {
                joystick1.SetBtn(down, joyid, 1);
            }
            else if (keystroke.code == jbutton_2)
            {
                joystick1.SetBtn(down, joyid, 2);
            }
            else if (keystroke.code == jbutton_3)
            {
                joystick1.SetBtn(down, joyid, 3);
            }
            else if (keystroke.code == jbutton_4)
            {
                joystick1.SetBtn(down, joyid, 4);
            }
            else if (keystroke.code == jbutton_5)
            {
                joystick1.SetBtn(down, joyid, 5);
            }
            else if (keystroke.code == jbutton_6)
            {
                joystick1.SetBtn(down, joyid, 6);
            }
            else if (keystroke.code == jbutton_7)
            {
                joystick1.SetBtn(down, joyid, 7);
            }
            else if (keystroke.code == jbutton_8)
            {
                joystick1.SetBtn(down, joyid, 8);
            }
        }