public override GamepadHardwareConfiguration[] GetGamepadHardwareConfigurations() { var hardwareConfig = new GamepadHardwareConfiguration(); hardwareConfig.productID = (int)XINPUT_DEVSUBTYPE.GAMEPAD; hardwareConfig.config = GamepadConfiguration_Micorsoft_Xbox(); var hardwareConfigurations = new GamepadHardwareConfiguration[1]; hardwareConfigurations[0] = hardwareConfig; return(hardwareConfigurations); }
public override GamepadHardwareConfiguration[] GetGamepadHardwareConfigurations() { var hardwareConfigurations = new GamepadHardwareConfiguration[1]; int c = 0; // ================ // Microsoft // ================ //var xbox360ID = Guid.Parse("028e045e-0000-0000-0000-504944564944"); //var logitechXInputID = Guid.Parse("c21d046d-0000-0000-0000-504944564944");// Logitech XInput mode //var logitechDirecInputID = Guid.Parse("c216046d-0000-0000-0000-504944564944");// Logitech DirectInput mode //var pxnArcadeStickID = Guid.Parse("187c0079-0000-0000-0000-504944564944");// PXN arcade stick /*bool isXbox360 = productID_GUID == xbox360ID || productID_GUID == logitechXInputID || productID_GUID == pxnArcadeStickID; * if * ( * isXbox360 ||// Xbox 360 * productID_GUID == Guid.Parse("02ff045e-0000-0000-0000-504944564944")// Xbox One * )*/ { // Xbox One var hardwareConfig = new GamepadHardwareConfiguration(); hardwareConfig.productID = 0x02FF; //HID\VID_045E&PID_02FF&IG_00 hardwareConfig.config = GamepadConfiguration_Micorsoft_Xbox(false); hardwareConfigurations[c++] = hardwareConfig; } /*else if (productID_GUID == logitechDirecInputID)// Logitech DirectInput mode * { * configuration.dpad_POV_Index = 0; * configuration.dpadMode = DeviceDPadMode.POV; * configuration.triggerButtonMode = DeviceTriggerButtonMode.Physical; * * // primary buttons * configuration.button1 = buttons[1]; * configuration.button2 = buttons[2]; * configuration.button3 = buttons[0]; * configuration.button4 = buttons[3]; * configuration.button1.name = "A"; * configuration.button2.name = "B"; * configuration.button3.name = "X"; * configuration.button4.name = "Y"; * * // dpad * configuration.dpadLeft = new Button(true); * configuration.dpadRight = new Button(true); * configuration.dpadDown = new Button(true); * configuration.dpadUp = new Button(true); * configuration.dpadLeft.name = "Left"; * configuration.dpadRight.name = "Right"; * configuration.dpadDown.name = "Down"; * configuration.dpadUp.name = "Up"; * * // options * configuration.menu = buttons[9]; * configuration.back = buttons[8]; * configuration.menu.name = "Start"; * configuration.back.name = "Back"; * * // bumbers * configuration.bumperLeft = buttons[4]; * configuration.bumperRight = buttons[5]; * configuration.bumperLeft.name = "BL"; * configuration.bumperRight.name = "BR"; * * // trigger buttons * configuration.triggerButtonLeft = buttons[6]; * configuration.triggerButtonRight = buttons[7]; * configuration.triggerButtonLeft.name = "TBL"; * configuration.triggerButtonRight.name = "TBR"; * * // joystick buttons * configuration.joystickButtonLeft = buttons[10]; * configuration.joystickButtonRight = buttons[11]; * configuration.joystickButtonLeft.name = "JBL"; * configuration.joystickButtonRight.name = "JBR"; * * // joysticks * configuration.joystickLeft = new Axis2D(true); * configuration.joystickRight = new Axis2D(true); * configuration.joystickLeft.name = "JL"; * configuration.joystickRight.name = "JR"; * * configuration.axis2DMaps = new DeviceAxis2DMap[2]; * configuration.axis2DMaps[0].invertAxisY = true; * configuration.axis2DMaps[0].axisX_Src = axes1D[0]; * configuration.axis2DMaps[0].axisY_Src = axes1D[1]; * configuration.axis2DMaps[0].axisDst = configuration.joystickLeft; * * configuration.axis2DMaps[1].invertAxisY = true; * configuration.axis2DMaps[1].axisX_Src = axes1D[2]; * configuration.axis2DMaps[1].axisY_Src = axes1D[3]; * configuration.axis2DMaps[1].axisDst = configuration.joystickRight; * } * * // ================ * // Sony * // ================ * var ps3ID_Wireless = Guid.Parse("0268054c-0000-0000-0000-504944564944"); * var ps3ID_Wired = Guid.Parse("63020e6f-0000-0000-0000-504944564944"); * var ps5ID = Guid.Parse("0ce6054c-0000-0000-0000-504944564944"); * if * ( * productID_GUID == Guid.Parse("05c4054c-0000-0000-0000-504944564944") ||// PS4 * productID_GUID == ps5ID ||// PS5 * productID_GUID == ps3ID_Wired// Wired PS3 controller * ) * { * configuration.dpad_POV_Index = 0; * configuration.dpadMode = DeviceDPadMode.POV; * configuration.triggerButtonMode = productID_GUID == ps3ID_Wired ? DeviceTriggerButtonMode.Physical : DeviceTriggerButtonMode.Virtual; * * // primary buttons * configuration.button1 = buttons[1]; * configuration.button2 = buttons[2]; * configuration.button3 = buttons[0]; * configuration.button4 = buttons[3]; * configuration.button1.name = "X"; * configuration.button2.name = "O"; * configuration.button3.name = "Square"; * configuration.button4.name = "Triangle"; * * // special button * if (productID_GUID != ps3ID_Wired) * { * configuration.special1 = buttons[13]; * configuration.special1.name = "Touch-Pad"; * } * * if (productID_GUID == ps5ID) * { * configuration.special2 = buttons[14]; * configuration.special2.name = "Mute"; * } * * // dpad * configuration.dpadLeft = new Button(true); * configuration.dpadRight = new Button(true); * configuration.dpadDown = new Button(true); * configuration.dpadUp = new Button(true); * configuration.dpadLeft.name = "Left"; * configuration.dpadRight.name = "Right"; * configuration.dpadDown.name = "Down"; * configuration.dpadUp.name = "Up"; * * // options * configuration.menu = buttons[9]; * configuration.back = buttons[8]; * if (productID_GUID == ps3ID_Wired) * { * configuration.menu.name = "Start"; * configuration.back.name = "Select"; * } * else * { * configuration.home = buttons[12]; * configuration.menu.name = "Options"; * configuration.back.name = "Share"; * configuration.home.name = "PS"; * } * * // bumbers * configuration.bumperLeft = buttons[4]; * configuration.bumperRight = buttons[5]; * configuration.bumperLeft.name = "BL"; * configuration.bumperRight.name = "BR"; * * // trigger buttons * if (productID_GUID == ps3ID_Wired) * { * configuration.triggerButtonLeft = buttons[6]; * configuration.triggerButtonRight = buttons[7]; * } * else * { * configuration.triggerButtonLeft = new Button(false); * configuration.triggerButtonRight = new Button(false); * } * configuration.triggerButtonLeft.name = "TBL"; * configuration.triggerButtonRight.name = "TBR"; * * // joystick buttons * configuration.joystickButtonLeft = buttons[10]; * configuration.joystickButtonRight = buttons[11]; * configuration.joystickButtonLeft.name = "JBL"; * configuration.joystickButtonRight.name = "JBR"; * * // triggers * if (productID_GUID != ps3ID_Wired) * { * configuration.triggerLeft = new Axis1D(true, Axis1DUpdateMode.FullRange_ShiftedPositive); * configuration.triggerRight = new Axis1D(true, Axis1DUpdateMode.FullRange_ShiftedPositive); * configuration.triggerLeft.name = "TL"; * configuration.triggerRight.name = "TR"; * * configuration.axis1DMaps = new DeviceAxis1DMap[2]; * configuration.axis1DMaps[0].axisSrc = axes1D[3]; * configuration.axis1DMaps[0].axisDst = configuration.triggerLeft; * configuration.axis1DMaps[1].axisSrc = axes1D[4]; * configuration.axis1DMaps[1].axisDst = configuration.triggerRight; * } * * // joysticks * configuration.joystickLeft = new Axis2D(true); * configuration.joystickRight = new Axis2D(true); * configuration.joystickLeft.name = "JL"; * configuration.joystickRight.name = "JR"; * * configuration.axis2DMaps = new DeviceAxis2DMap[2]; * configuration.axis2DMaps[0].invertAxisY = true; * configuration.axis2DMaps[0].axisX_Src = axes1D[0]; * configuration.axis2DMaps[0].axisY_Src = axes1D[1]; * configuration.axis2DMaps[0].axisDst = configuration.joystickLeft; * * configuration.axis2DMaps[1].invertAxisY = true; * configuration.axis2DMaps[1].axisX_Src = axes1D[2]; * if (productID_GUID == ps3ID_Wired) configuration.axis2DMaps[1].axisY_Src = axes1D[3]; * else configuration.axis2DMaps[1].axisY_Src = axes1D[5]; * configuration.axis2DMaps[1].axisDst = configuration.joystickRight; * } * else if (productID_GUID == ps3ID_Wireless) * { * configuration.dpad_POV_Index = 0; * configuration.dpadMode = DeviceDPadMode.Buttons; * configuration.triggerButtonMode = DeviceTriggerButtonMode.Physical; * * // primary buttons * configuration.button1 = buttons[14]; * configuration.button2 = buttons[13]; * configuration.button3 = buttons[15]; * configuration.button4 = buttons[12]; * configuration.button1.name = "X"; * configuration.button2.name = "O"; * configuration.button3.name = "Square"; * configuration.button4.name = "Triangle"; * * // dpad * configuration.dpadLeft = buttons[7]; * configuration.dpadRight = buttons[5]; * configuration.dpadDown = buttons[6]; * configuration.dpadUp = buttons[4]; * configuration.dpadLeft.name = "Left"; * configuration.dpadRight.name = "Right"; * configuration.dpadDown.name = "Down"; * configuration.dpadUp.name = "Up"; * * // options * configuration.menu = buttons[3]; * configuration.back = buttons[0]; * configuration.home = buttons[16]; * configuration.menu.name = "Start"; * configuration.back.name = "Select"; * configuration.home.name = "PS"; * * // bumbers * configuration.bumperLeft = buttons[10]; * configuration.bumperRight = buttons[11]; * configuration.bumperLeft.name = "BL"; * configuration.bumperRight.name = "BR"; * * // trigger buttons * configuration.triggerButtonLeft = buttons[8]; * configuration.triggerButtonRight = buttons[9]; * configuration.triggerButtonLeft.name = "TBL"; * configuration.triggerButtonRight.name = "TBR"; * * // joystick buttons * configuration.joystickButtonLeft = buttons[1]; * configuration.joystickButtonRight = buttons[2]; * configuration.joystickButtonLeft.name = "JBL"; * configuration.joystickButtonRight.name = "JBR"; * * // joysticks * configuration.joystickLeft = new Axis2D(true); * configuration.joystickRight = new Axis2D(true); * configuration.joystickLeft.name = "JL"; * configuration.joystickRight.name = "JR"; * * configuration.axis2DMaps = new DeviceAxis2DMap[2]; * configuration.axis2DMaps[0].invertAxisY = true; * configuration.axis2DMaps[0].axisX_Src = axes1D[0]; * configuration.axis2DMaps[0].axisY_Src = axes1D[1]; * configuration.axis2DMaps[0].axisDst = configuration.joystickLeft; * * configuration.axis2DMaps[1].invertAxisY = true; * configuration.axis2DMaps[1].axisX_Src = axes1D[2]; * configuration.axis2DMaps[1].axisY_Src = axes1D[3]; * configuration.axis2DMaps[1].axisDst = configuration.joystickRight; * } * * // ================ * // Nintendo * // ================ * var smashControllerID = Guid.Parse("01850e6f-0000-0000-0000-504944564944"); * if * ( * productID_GUID == Guid.Parse("2009057e-0000-0000-0000-504944564944") ||// Switch Pro Controller * productID_GUID == smashControllerID// Wired Smash controller for Switch * ) * { * configuration.dpad_POV_Index = 0; * configuration.dpadMode = DeviceDPadMode.POV; * configuration.triggerButtonMode = DeviceTriggerButtonMode.Physical; * * // primary buttons * if (productID_GUID == smashControllerID) * { * configuration.button1 = buttons[2]; * configuration.button2 = buttons[1]; * configuration.button3 = buttons[0]; * configuration.button4 = buttons[3]; * configuration.button1.name = "A"; * configuration.button2.name = "B"; * configuration.button3.name = "X"; * configuration.button4.name = "Y"; * } * else * { * configuration.button1 = buttons[0]; * configuration.button2 = buttons[1]; * configuration.button3 = buttons[2]; * configuration.button4 = buttons[3]; * configuration.button1.name = "B"; * configuration.button2.name = "A"; * configuration.button3.name = "X"; * configuration.button4.name = "Y"; * } * * // special button * configuration.special1 = buttons[13]; * configuration.special1.name = "Capture"; * * // dpad * configuration.dpadLeft = new Button(true); * configuration.dpadRight = new Button(true); * configuration.dpadDown = new Button(true); * configuration.dpadUp = new Button(true); * configuration.dpadLeft.name = "Left"; * configuration.dpadRight.name = "Right"; * configuration.dpadDown.name = "Down"; * configuration.dpadUp.name = "Up"; * * // options * configuration.menu = buttons[9]; * configuration.back = buttons[8]; * configuration.home = buttons[12]; * configuration.menu.name = "+"; * configuration.back.name = "-"; * configuration.home.name = "Home"; * * // bumbers * configuration.bumperLeft = buttons[4]; * configuration.bumperRight = buttons[5]; * configuration.bumperLeft.name = "BL"; * configuration.bumperRight.name = "BR"; * * // trigger buttons * configuration.triggerButtonLeft = buttons[6]; * configuration.triggerButtonRight = buttons[7]; * configuration.triggerButtonLeft.name = "TBL"; * configuration.triggerButtonRight.name = "TBR"; * * // joystick buttons * configuration.joystickButtonLeft = buttons[10]; * configuration.joystickButtonRight = buttons[11]; * configuration.joystickButtonLeft.name = "JBL"; * configuration.joystickButtonRight.name = "JBR"; * * // joysticks * configuration.joystickLeft = new Axis2D(true); * configuration.joystickRight = new Axis2D(true); * configuration.joystickLeft.name = "JL"; * configuration.joystickRight.name = "JR"; * * configuration.axis2DMaps = new DeviceAxis2DMap[2]; * configuration.axis2DMaps[0].invertAxisY = true; * configuration.axis2DMaps[0].axisX_Src = axes1D[0]; * configuration.axis2DMaps[0].axisY_Src = axes1D[1]; * configuration.axis2DMaps[0].axisDst = configuration.joystickLeft; * * configuration.axis2DMaps[1].invertAxisY = true; * configuration.axis2DMaps[1].axisX_Src = axes1D[2]; * configuration.axis2DMaps[1].axisY_Src = axes1D[3]; * configuration.axis2DMaps[1].axisDst = configuration.joystickRight; * } * else if (productID_GUID == Guid.Parse("18460079-0000-0000-0000-504944564944"))// Generic GameCube USB adapter for PC * { * configuration.dpad_POV_Index = 0; * configuration.dpadMode = DeviceDPadMode.POV; * configuration.triggerButtonMode = DeviceTriggerButtonMode.Physical; * * // primary buttons * configuration.button1 = buttons[1]; * configuration.button2 = buttons[2]; * configuration.button3 = buttons[3]; * configuration.button4 = buttons[0]; * configuration.button6 = buttons[7]; * configuration.button1.name = "A"; * configuration.button2.name = "B"; * configuration.button3.name = "X"; * configuration.button4.name = "Y"; * configuration.button6.name = "Z"; * * // special button * configuration.special1 = buttons[13]; * configuration.special1.name = "Touch-Pad"; * * // dpad * configuration.dpadLeft = new Button(true); * configuration.dpadRight = new Button(true); * configuration.dpadDown = new Button(true); * configuration.dpadUp = new Button(true); * configuration.dpadLeft.name = "Left"; * configuration.dpadRight.name = "Right"; * configuration.dpadDown.name = "Down"; * configuration.dpadUp.name = "Up"; * * // options * configuration.menu = buttons[9]; * configuration.menu.name = "Pause"; * * // bumbers * configuration.bumperLeft = buttons[4]; * configuration.bumperRight = buttons[5]; * configuration.bumperLeft.name = "BL"; * configuration.bumperRight.name = "BR"; * * // trigger buttons * configuration.triggerButtonLeft = buttons[4]; * configuration.triggerButtonRight = buttons[5]; * configuration.triggerButtonLeft.name = "TBL"; * configuration.triggerButtonRight.name = "TBR"; * * // triggers * configuration.triggerLeft = new Axis1D(true, Axis1DUpdateMode.FullRange_ShiftedPositive); * configuration.triggerRight = new Axis1D(true, Axis1DUpdateMode.FullRange_ShiftedPositive); * configuration.triggerLeft.name = "TL"; * configuration.triggerRight.name = "TR"; * * configuration.axis1DMaps = new DeviceAxis1DMap[2]; * configuration.axis1DMaps[0].axisSrc = axes1D[3]; * configuration.axis1DMaps[0].axisDst = configuration.triggerLeft; * configuration.axis1DMaps[1].axisSrc = axes1D[4]; * configuration.axis1DMaps[1].axisDst = configuration.triggerRight; * * // joysticks * configuration.joystickLeft = new Axis2D(true); * configuration.joystickRight = new Axis2D(true); * configuration.joystickLeft.name = "JL"; * configuration.joystickRight.name = "JR"; * * configuration.axis2DMaps = new DeviceAxis2DMap[2]; * configuration.axis2DMaps[0].invertAxisY = true; * configuration.axis2DMaps[0].axisX_Src = axes1D[0]; * configuration.axis2DMaps[0].axisY_Src = axes1D[1]; * configuration.axis2DMaps[0].axisDst = configuration.joystickLeft; * * configuration.axis2DMaps[1].invertAxisY = true; * configuration.axis2DMaps[1].axisX_Src = axes1D[2]; * configuration.axis2DMaps[1].axisY_Src = axes1D[5]; * configuration.axis2DMaps[1].axisDst = configuration.joystickRight; * }*/ return(hardwareConfigurations); }