Esempio n. 1
0
        private static void ConfigureJoystick(IniFile ini, InputConfig joy, int playerIndex)
        {
            if (joy == null)
            {
                return;
            }

            string api;
            string guid = string.Empty;

            if (joy.IsXInputDevice())
            {
                api  = "XInput";
                guid = "0";
            }
            else
            {
                api = "DirectInput";
                Guid gd = joy.GetJoystickInstanceGuid();
                if (gd == Guid.Empty)
                {
                    return;
                }

                guid = gd.ToString().ToUpper();
            }

            if (playerIndex == 0)
            {
                ini.WriteValue("General", "emulate", "Wii U GamePad");
            }
            else
            {
                ini.WriteValue("General", "emulate", "Wii U Classic Controller");
            }

            ini.WriteValue("General", "api", api);
            ini.WriteValue("General", "controller", guid);

            ini.WriteValue("Controller", "rumble", "0");
            ini.WriteValue("Controller", "leftRange", "1");
            ini.WriteValue("Controller", "rightRange", "1");
            ini.WriteValue("Controller", "leftDeadzone", "0.15");
            ini.WriteValue("Controller", "rightDeadzone", "0.15");
            ini.WriteValue("Controller", "buttonThreshold", "0.5");

            Action <string, InputKey, bool> writeIni = (v, k, r) =>
            { var val = GetInputValue(joy, k, api, r); ini.WriteValue("Controller", v, val); };                 // if (val != null)

            writeIni("1", InputKey.a, false);
            writeIni("2", InputKey.b, false);
            writeIni("3", InputKey.x, false);
            writeIni("4", InputKey.y, false);

            writeIni("5", InputKey.pageup, false);
            writeIni("6", InputKey.pagedown, false);

            writeIni("7", InputKey.lefttrigger, false);
            writeIni("8", InputKey.righttrigger, false);

            writeIni("9", InputKey.start, false);
            writeIni("10", InputKey.select, false);

            writeIni("11", InputKey.up, false);
            writeIni("12", InputKey.down, false);
            writeIni("13", InputKey.left, false);
            writeIni("14", InputKey.right, false);

            if (api == "XInput")
            {
                ini.WriteValue("Controller", "15", "button_100");
                ini.WriteValue("Controller", "16", "button_200");
            }
            else
            {
                ini.WriteValue("Controller", "15", null);
                ini.WriteValue("Controller", "16", null);
            }

            writeIni("17", InputKey.joystick1up, false);
            writeIni("18", InputKey.joystick1up, true);
            writeIni("19", InputKey.joystick1left, false);
            writeIni("20", InputKey.joystick1left, true);

            writeIni("21", InputKey.joystick2up, false);
            writeIni("22", InputKey.joystick2up, true);
            writeIni("23", InputKey.joystick2left, false);
            writeIni("24", InputKey.joystick2left, true);

            /*
             * if (joy[InputKey.select] != null && !joy[InputKey.select].Equals(joy[InputKey.hotkey]))
             *  writeIni("26", InputKey.hotkey, false);
             * else*/
            ini.WriteValue("Controller", "26", null);
        }