public KeyboardHandler(BongoManager manager, BongoInputMapping mapping) : base(manager, mapping)
        {
            TranslateMapping(mapping);

            sim = new InputSimulator();

            manager.TopRightPressed += () => sim.Keyboard.KeyDown(topRight);
            manager.BotRightPressed += () => sim.Keyboard.KeyDown(botRight);
            manager.TopLeftPressed  += () => sim.Keyboard.KeyDown(topLeft);
            manager.BotLeftPressed  += () => sim.Keyboard.KeyDown(botLeft);
            manager.MicStarted      += () => sim.Keyboard.KeyDown(mic);
            manager.StartPressed    += () => sim.Keyboard.KeyDown(start);

            manager.TopRightHeld += () => sim.Keyboard.KeyDown(topRight);
            manager.BotRightHeld += () => sim.Keyboard.KeyDown(botRight);
            manager.TopLeftHeld  += () => sim.Keyboard.KeyDown(topLeft);
            manager.BotLeftHeld  += () => sim.Keyboard.KeyDown(botLeft);
            manager.MicHeld      += () => sim.Keyboard.KeyDown(mic);
            manager.StartHeld    += () => sim.Keyboard.KeyDown(start);

            manager.TopRightReleased += () => sim.Keyboard.KeyUp(topRight);
            manager.BotRightReleased += () => sim.Keyboard.KeyUp(botLeft);
            manager.TopLeftReleased  += () => sim.Keyboard.KeyUp(topLeft);
            manager.BotLeftReleased  += () => sim.Keyboard.KeyUp(botLeft);
            manager.MicReleased      += () => sim.Keyboard.KeyUp(mic);
            manager.StartReleased    += () => sim.Keyboard.KeyUp(start);
        }
 private void TranslateMapping(BongoInputMapping mapping)
 {
     topLeft  = ParseKeyCode(mapping.topLeft);
     topRight = ParseKeyCode(mapping.topRight);
     botLeft  = ParseKeyCode(mapping.botLeft);
     botRight = ParseKeyCode(mapping.botRight);
     mic      = ParseKeyCode(mapping.mic);
     start    = ParseKeyCode(mapping.start);
 }
Пример #3
0
        private void TranslateMapping(BongoInputMapping mapping)
        {
            topLeft  = uint.Parse(mapping.topLeft);
            topRight = uint.Parse(mapping.topRight);
            botLeft  = uint.Parse(mapping.botLeft);
            botRight = uint.Parse(mapping.botRight);
            start    = uint.Parse(mapping.start);

            if (!uint.TryParse(mapping.mic, out micButton))
            {
                micButton = 255;
                Enum.TryParse("HID_USAGE_" + mapping.mic, out micAxis);
            }
        }
Пример #4
0
        public VJoyHandler(BongoManager manager, BongoInputMapping mapping, int id, int mic) : base(manager, mapping)
        {
            joystick = new vJoy();
            uint _id = (uint)id;

            micSensitivity = mic;

            if (id <= 0 | id > 16)
            {
                Program.WriteErrorToConsoleAndExit("Invalid vJoy id");
            }

            if (!joystick.vJoyEnabled())
            {
                Program.WriteErrorToConsoleAndExit("vJoy not enabled");
            }

            if (!joystick.AcquireVJD(_id))
            {
                Program.WriteErrorToConsoleAndExit("Failed to acquire vJoy device");
            }

            TranslateMapping(mapping);

            joystick.ResetVJD(_id);

            manager.TopRightPressed += () => joystick.SetBtn(true, _id, topRight);
            manager.BotRightPressed += () => joystick.SetBtn(true, _id, botRight);
            manager.TopLeftPressed  += () => joystick.SetBtn(true, _id, topLeft);
            manager.BotLeftPressed  += () => joystick.SetBtn(true, _id, botLeft);
            manager.StartPressed    += () => joystick.SetBtn(true, _id, start);

            manager.TopRightReleased += () => joystick.SetBtn(false, _id, topRight);
            manager.BotRightReleased += () => joystick.SetBtn(false, _id, botRight);
            manager.TopLeftReleased  += () => joystick.SetBtn(false, _id, topLeft);
            manager.BotLeftReleased  += () => joystick.SetBtn(false, _id, botLeft);
            manager.StartReleased    += () => joystick.SetBtn(false, _id, start);

            if (micButton == 255)
            {
                manager.MicUpdate += (int update) => joystick.SetAxis(update * micSensitivity, _id, micAxis);
            }
            else
            {
                manager.MicStarted  += () => joystick.SetBtn(true, _id, micButton);
                manager.MicReleased += () => joystick.SetBtn(false, _id, micButton);
            }
        }
Пример #5
0
 public OutputHandler(BongoManager manager, BongoInputMapping mapping)
 {
 }