public Driver() { gcn1DZ = new ControllerDeadZones(); gcn2DZ = new ControllerDeadZones(); gcn3DZ = new ControllerDeadZones(); gcn4DZ = new ControllerDeadZones(); }
public static void setJoystick(GCNState input, int joystickID, ControllerDeadZones deadZones) { int multiplier = 302; X360Controller controller = Controllers[joystickID - 1]; //32767 //analog stick controller.LeftStickX = (short)(multiplier * (128 - input.analogX)); controller.LeftStickY = (short)(multiplier * (128 - input.analogY)); //c stick controller.RightStickX = (short)(multiplier * (128 - input.cstickX)); controller.RightStickY = (short)(multiplier * (128 - input.cstickY)); //triggers controller.LeftTrigger = (byte)input.analogL; controller.RightTrigger = (byte)input.analogR; controller.Buttons = 0; //dpad button mode for DDR pad support if (input.up) { controller.Buttons |= X360Buttons.Up; } if (input.down) { controller.Buttons |= X360Buttons.Down; } if (input.left) { controller.Buttons |= X360Buttons.Left; } if (input.right) { controller.Buttons |= X360Buttons.Right; } //buttons if (input.A) { controller.Buttons |= X360Buttons.A; } if (input.B) { controller.Buttons |= X360Buttons.X; } if (input.X) { controller.Buttons |= X360Buttons.B; } if (input.Y) { controller.Buttons |= X360Buttons.Y; } if (input.Z) { controller.Buttons |= X360Buttons.Logo; } if (input.R) { controller.Buttons |= X360Buttons.RightBumper; } if (input.L) { controller.Buttons |= X360Buttons.LeftBumper; } if (input.start) { controller.Buttons |= X360Buttons.Start; } scp.Report(joystickID, controller.GetReport()); }
public static void setJoystick(ref vJoy joystick, GCNState input, uint joystickID, ControllerDeadZones deadZones) { bool res; int multiplier = 127; //32767 //analog stick if (!deadZones.analogStick.inDeadZone(input.analogX, input.analogY)) { res = joystick.SetAxis(multiplier * input.analogX, joystickID, HID_USAGES.HID_USAGE_X); res = joystick.SetAxis(multiplier * (255 - input.analogY), joystickID, HID_USAGES.HID_USAGE_Y); } else { res = joystick.SetAxis(multiplier * 129, joystickID, HID_USAGES.HID_USAGE_X); res = joystick.SetAxis(multiplier * 129, joystickID, HID_USAGES.HID_USAGE_Y); } //c stick if (!deadZones.cStick.inDeadZone(input.cstickX, input.cstickY)) { res = joystick.SetAxis(multiplier * input.cstickX, joystickID, HID_USAGES.HID_USAGE_RX); res = joystick.SetAxis(multiplier * (255 - input.cstickY), joystickID, HID_USAGES.HID_USAGE_RY); } else { res = joystick.SetAxis(multiplier * 129, joystickID, HID_USAGES.HID_USAGE_RX); res = joystick.SetAxis(multiplier * 129, joystickID, HID_USAGES.HID_USAGE_RY); } //triggers if (!deadZones.LTrigger.inDeadZone(input.analogL)) { res = joystick.SetAxis(multiplier * input.analogL, joystickID, HID_USAGES.HID_USAGE_Z); } else { res = joystick.SetAxis(0, joystickID, HID_USAGES.HID_USAGE_Z); } if (!deadZones.RTrigger.inDeadZone(input.analogR)) { res = joystick.SetAxis(multiplier * input.analogR, joystickID, HID_USAGES.HID_USAGE_RZ); } else { res = joystick.SetAxis(0, joystickID, HID_USAGES.HID_USAGE_RZ); } //dpad button mode for DDR pad support res = joystick.SetBtn(input.up, joystickID, 9); res = joystick.SetBtn(input.down, joystickID, 10); res = joystick.SetBtn(input.left, joystickID, 11); res = joystick.SetBtn(input.right, joystickID, 12); //buttons res = joystick.SetBtn(input.A, joystickID, 1); res = joystick.SetBtn(input.B, joystickID, 2); res = joystick.SetBtn(input.X, joystickID, 3); res = joystick.SetBtn(input.Y, joystickID, 4); res = joystick.SetBtn(input.Z, joystickID, 5); res = joystick.SetBtn(input.R, joystickID, 6); res = joystick.SetBtn(input.L, joystickID, 7); res = joystick.SetBtn(input.start, joystickID, 8); }