public Joycon(IntPtr handle_, bool imu, bool localize, float alpha, bool left, string path, string serialNum, int id = 0, bool isPro = false) { serial_number = serialNum; activeData = new float[6]; handle = handle_; imu_enabled = imu; do_localize = localize; rumble_obj = new Rumble(160, 320, 0); filterweight = alpha; isLeft = left; PadId = id; LED = (byte)(0x1 << PadId); this.isPro = isPro; isUSB = serialNum == "000000000001"; this.path = path; connection = isUSB ? 0x01 : 0x02; if (showAsXInput) { xin = new Xbox360Controller(Program.emClient); if (toRumble) { xin.FeedbackReceived += ReceiveRumble; } report = new Xbox360Report(); } }
public void LOCAL_SetPlayerNumber(int id) { Color c = playerMaterials [id - 1].color; playercolor = c; playerID = id; myStats = new Scorecard(id); XBox = new Xbox360Controller(id); if (nametag == null) { nametag = transform.FindChild("Nametag").GetComponent <TextMesh> (); //change player to dif color //body //transform.GetChild (0).GetChild (0).GetComponent<SpriteRenderer> ().material = playerMaterials[id - 1]; //5 for (int i = 0; i < 5; ++i) { //transform.GetChild (0).GetChild (0).GetChild (i).GetComponent<SpriteRenderer> ().material = playerMaterials[id - 1]; if (i != 4) { //transform.GetChild (0).GetChild (0).GetChild (i).GetChild(0).GetComponent<SpriteRenderer> ().material = playerMaterials[id - 1]; //transform.GetChild (0).GetChild (0).GetChild (i).GetChild(0).GetChild(0).GetComponent<SpriteRenderer> ().material = playerMaterials[id - 1]; } } //nametag.color = c; nametag.text = "P" + id.ToString(); AI = GetComponent <AIComponent>(); if (AI != null) { nametag.text = "CP" + id.ToString(); } } }
private static void Main(string[] args) { var x360 = new Xbox360Controller(); x360.FeedbackReceived += (sender, eventArgs) => Console.WriteLine( $"LM: {eventArgs.LargeMotor}, " + $"SM: {eventArgs.SmallMotor}, " + $"LED: {eventArgs.LedNumber}"); x360.PlugIn(); var report = new Xbox360Report(); report.SetButtons(Xbox360Buttons.A, Xbox360Buttons.B); report.SetAxis(Xbox360Axes.LeftTrigger, 0xFF); report.SetAxis(Xbox360Axes.RightTrigger, 0xFF); x360.SendReport(report); Console.ReadKey(); var ds4 = new DualShock4Controller(); ds4.FeedbackReceived += (sender, eventArgs) => Console.WriteLine( $"LM: {eventArgs.LargeMotor}, " + $"SM: {eventArgs.SmallMotor}, "); ds4.PlugIn(); Console.ReadKey(); }
private static void Main(string[] args) { var client = new ViGEmClient(); #if X360 var x360 = new Xbox360Controller(client); x360.FeedbackReceived += (sender, eventArgs) => Console.WriteLine( $"LM: {eventArgs.LargeMotor}, " + $"SM: {eventArgs.SmallMotor}, " + $"LED: {eventArgs.LedNumber}"); x360.Connect(); var report = new Xbox360Report(); report.SetButtons(Xbox360Buttons.A, Xbox360Buttons.B); report.SetAxis(Xbox360Axes.LeftTrigger, 0xFF); report.SetAxis(Xbox360Axes.RightTrigger, 0xFF); x360.SendReport(report); #endif var ds4 = new DualShock4Controller(client); ds4.Connect(); var report = new DualShock4Report(); report.SetButtons(DualShock4Buttons.Cross); ds4.SendReport(report); /* * var x360 = new Xbox360Controller(); * x360.FeedbackReceived += * (sender, eventArgs) => Console.WriteLine( * $"LM: {eventArgs.LargeMotor}, " + * $"SM: {eventArgs.SmallMotor}, " + * $"LED: {eventArgs.LedNumber}"); * x360.PlugIn(); * * var report = new Xbox360Report(); * report.SetButtons(Xbox360Buttons.A, Xbox360Buttons.B); * report.SetAxis(Xbox360Axes.LeftTrigger, 0xFF); * report.SetAxis(Xbox360Axes.RightTrigger, 0xFF); * * x360.SendReport(report); * * Console.ReadKey(); * * var ds4 = new DualShock4Controller(); * ds4.FeedbackReceived += * (sender, eventArgs) => Console.WriteLine( * $"LM: {eventArgs.LargeMotor}, " + * $"SM: {eventArgs.SmallMotor}, "); * ds4.PlugIn(); */ Console.ReadKey(); }
private void btnGo_Click(object sender, EventArgs e) { if (this.testClient == null && this.testController == null) { this.testClient = new ViGEmClient(); this.testController = new Xbox360Controller(this.testClient); this.testController.Connect(); button1.Enabled = false; enabledDisableMoveButtons(true); } else { this.testController.Disconnect(); this.testController.Dispose(); this.testClient.Dispose(); this.testController = null; this.testClient = null; button1.Enabled = true; enabledDisableMoveButtons(false); } }
public Joycon(IntPtr handle, bool imu, bool left, string path, int id = 0, bool isPro = false, bool usb = false) { this.handle = handle; imu_enabled = imu; rumble_obj = new Rumble(160, 320, 0); isLeft = left; PadId = id; this.isPro = isPro; isUSB = usb; this.path = path; connection = isUSB ? 0x01 : 0x02; if (showAsXInput) { xin = new Xbox360Controller(Program.emClient); if (_toRumble) { xin.FeedbackReceived += ReceiveRumble; } report = new Xbox360Report(); } }
public Joycon(IntPtr handle_, bool imu, bool localize, float alpha, bool left, int id = 0, bool isPro = false, bool usb = false) { handle = handle_; imu_enabled = imu; do_localize = localize; rumble_obj = new Rumble(160, 320, 0); filterweight = alpha; isLeft = left; PadId = id; this.isPro = isPro; isUSB = usb; connection = isUSB ? 0x01 : 0x02; if (isLeft || isPro) { xin = new Xbox360Controller(Program.emClient); if (toRumble) { xin.FeedbackReceived += ReceiveRumble; } report = new Xbox360Report(); } }
} //příznak, zda se povedlo připojit externí ovladač /// <summary> /// Vrátí první nejlépe vyhovující vnější ovládací prvek a pokud nenalezne žádný, tak vrátí softwarovou simulaci /// </summary> /// <returns>instanci představujícíc joystick</returns> public IJoystick getJoystick() { message = ""; IJoystick joystick = new Xbox360Controller(); success = joystick.inicialize(); if (!success) { joystick = new Gamepad(); success = joystick.inicialize(); } else { message = "Byl úspěšně připojen plně kompatibilní externí ovladač."; } if (!success) { message = "Nepovedlo se najít žádné kompatibilní externí ovládací zařízení. Robota je možné ovládat pomocí softwarového ovladače."; joystick = ControllView.getInstance(); } else if (message == "") { message = "Byl úspěšně připojen částečně kompatibilní externí ovladač. Některé funkce mohou být omezeny."; } return(joystick); }
// Update is called once per frame void Update() { if (x3 == null) { x3 = new Xbox360Controller(ID); } if (SignedIn) { float hor = x3.HorizontalAxis(); float ver = x3.VerticalAxis(); this.transform.position += new Vector3(hor, -ver) * speed; } else { if (x3.StartPressed()) { SignedIn = true; this.GetComponent <SpriteRenderer> ().enabled = true; select.transform.GetChild(1).GetComponent <Text> ().text = ""; select.color = desired; SignedInCount++; AudioSource.PlayClipAtPoint(GameObject.FindObjectOfType <NetworkingObjectMenu>().click, GameObject.FindGameObjectWithTag("MainCamera").transform.position); } } if (collidingLevel != null) { if (x3.PressedJump()) { LevelType level = collidingLevel.lt; GlobalProperties.LEVEL = level.ToString(); collidingLevel.GetComponent <SpriteRenderer>().color = Color.red; AudioSource.PlayClipAtPoint(collidingLevel.noise, GameObject.FindGameObjectWithTag("MainCamera").transform.position); if (prevCollidingLevel == null || prevCollidingLevel == collidingLevel) { prevCollidingLevel = collidingLevel; } else { prevCollidingLevel.GetComponent <SpriteRenderer>().color = Color.white; prevCollidingLevel = collidingLevel; } } } else if (colliding != null) { if (x3.PressedJump()) { CharacterType character = colliding.ct; GlobalProperties.PLAYERCHOICE[ID - 1] = character.ToString(); select.transform.GetChild(2).GetComponent <Image>().sprite = GameObject.FindObjectOfType <CharacterDictionary>().GetByText(character.ToString()); select.transform.GetChild(1).GetComponent <Text> ().text = "\n" + character.ToString(); select.transform.GetChild(1).GetComponent <Text> ().alignment = TextAnchor.UpperRight; AudioSource.PlayClipAtPoint(colliding.noise, GameObject.FindGameObjectWithTag("MainCamera").transform.position); } } }
protected override void OnOpen() { Xbox360Controller newController = new Xbox360Controller(Globals.client); newController.FeedbackReceived += connectClientToPort; newController.Connect(); }
/// <summary> /// Implements <see cref="IXOutputInterface.Plugin(int)"/> /// </summary> /// <param name="controllerCount">number of controller</param> /// <returns>If it was successful</returns> public bool Plugin(int controllerCount) { var controller = new Xbox360Controller(client); controller.Connect(); controllers.Add(controllerCount, controller); return(true); }
public X360(Xbox360Controller pController, int pPort, Label pLblStatus, Button pBtnDisconnect) { controller = pController; port = pPort; lblStatus = pLblStatus; btnDisconnect = pBtnDisconnect; disconnected = false; report = new Xbox360Report(); }
// Use this for initialization void Start() { x3 = new Xbox360Controller(ID); this.GetComponent <SpriteRenderer> ().enabled = false; desired = select.color; select.color = Color.white; desiredText = select.transform.GetChild(0).GetComponent <Text> ().text; //select.transform.GetChild (0).GetComponent<Text> ().text = ""; }
protected void moveStick(Direction x, Direction y, Xbox360Controller controller) { if (controller != null && (x != Direction.Down || y != Direction.Down)) { for (short i = 0; i < 32767; i++) { Xbox360Report report = new Xbox360Report(); if (x == Direction.Up) { report.LeftThumbX = i; } else if (x == Direction.Down) { report.LeftThumbX = (short)(i * -1); } if (y == Direction.Up) { report.LeftThumbY = i; } else if (y == Direction.Down) { report.LeftThumbY = (short)(i * -1); } controller.SendReport(report); } for (short i = 32767; i > 0; i--) { Xbox360Report report = new Xbox360Report(); if (x == Direction.Up) { report.LeftThumbX = i; } else if (x == Direction.Down) { report.LeftThumbX = (short)(i * -1); } if (y == Direction.Up) { report.LeftThumbY = i; } else if (y == Direction.Down) { report.LeftThumbY = (short)(i * -1); } controller.SendReport(report); } } }
//TODO: Better Controller-Platform detection. Support for Xbox360Pad on Linux (it could already work, if not just add the appropriate name in UseOnPlatform) public static void RegisterControllers() { controllers = new List <ActionController> (); //initialize correct controller var os = SystemInfo.operatingSystem; Debug.Log(os); //If a keyboard is avaliable (aka : we are on PC) add it var keyboard = new KeyboardController(); if (keyboard.useOnPlatform("keyboard")) { controllers.Add(keyboard); isOnPC = true; } //GetJoystickNames is not exported in WP8 builds because unity is dumb (it should just return 0 instead of #if) #if !UNITY_WP8 || (UNITY_WP8 && UNITY_EDITOR) //Go trough every joystick and instantiate the correct controller (if it exist) var joysticks = Input.GetJoystickNames(); Debug.Log("Found " + joysticks.Length + " joysticks"); //instantiate valid controller for every platfom foreach (var joystick in joysticks) { var Xbox360Pad = new Xbox360Controller(); if (Xbox360Pad.useOnPlatform(joystick)) { Xbox360Pad.Start(); controllers.Add(Xbox360Pad); } } #endif //If we are on a touch enabled platform instantiate a touch controller var touchSensor = new TouchController(); if (touchSensor.useOnPlatform("touch")) { controllers.Add(touchSensor); } if (controllers.Count == 1 && isOnPC) { currentController = 0; //Use keyboard if no controller and on PC } else if (isOnPC) { currentController = 1; } }
public override void Disconnect() { if (forceFeedbackCall != null) { cont.FeedbackReceived -= forceFeedbackCall; forceFeedbackCall = null; } cont.Disconnect(); cont.Dispose(); cont = null; }
public MiGamepad(HidDevice device, ViGEmClient client) { _Device = device; _Device.MonitorDeviceEvents = false; _Target = new Xbox360Controller(client); _Target.FeedbackReceived += TargetOnFeedbackReceived; // TODO mark the threads as background? _InputThread = new Thread(DeviceWorker); _CTS = new CancellationTokenSource(); }
public Keyboard2Xinput(String mappingFile) { config = new Config(mappingFile); InitializeAxesDict(); InitializeButtonsDict(); log.Debug("initialize dicts done."); // start enabled? String startEnabledStr = config.getCurrentMapping()["startup"]["enabled"]; // only start disabled if explicitly configured as such if ((startEnabledStr != null) && ("false".Equals(startEnabledStr.ToLower()))) { enabled = false; } // try to init ViGEm try { client = new ViGEmClient(); } catch (VigemBusNotFoundException e) { throw new ViGEmBusNotFoundException("ViGEm bus not found, please make sure ViGEm is correctly installed.", e); } // create pads controllers = new List <Xbox360Controller>(config.PadCount); reports = new List <Xbox360Report>(config.PadCount); for (int i = 1; i <= config.PadCount; i++) { Xbox360Controller controller = new Xbox360Controller(client); controllers.Add(controller); controller.FeedbackReceived += (sender, eventArgs) => Console.WriteLine( $"LM: {eventArgs.LargeMotor}, " + $"SM: {eventArgs.SmallMotor}, " + $"LED: {eventArgs.LedNumber}"); controller.Connect(); reports.Add(new Xbox360Report()); Thread.Sleep(1000); } // the pressed buttons (to avoid sending reports if the pressed buttons haven't changed) pressedButtons = new List <ISet <Xbox360Buttons> >(config.PadCount); for (int i = 0; i < config.PadCount; i++) { pressedButtons.Add(new HashSet <Xbox360Buttons>()); } listeners = new List <StateListener>(); }
static void Main(string[] args) { var x360 = new Xbox360Controller(); x360.PlugIn(); Console.ReadKey(); var ds4 = new DualShock4Controller(); ds4.PlugIn(); Console.ReadKey(); }
public bool Initialize(uint id) { if (id <= 0 || (id > 15 && id < 1001) || id > 1004) { throw new ArgumentException("Invalid ID!", "id"); } client = new ViGEmClient(); ctrl = new Xbox360Controller(client); ctrl.Connect(); Initialized = true; return(true); }
public MiGamepad(string device, ViGEmClient client) { _Device = HidDevices.GetDevice(device); _Device.MonitorDeviceEvents = false; _Target = new Xbox360Controller(client); _Target.FeedbackReceived += Target_OnFeedbackReceived; // TODO mark the threads as background? _InputThread = new Thread(DeviceWorker); _CTS = new CancellationTokenSource(); _Report = new Xbox360Report(); LedNumber = 0xFF; }
void LocalLogic() { Xbox360Controller xc = GetComponent <PlayerController> ().GetXBox(); if (trySteal) { if (target.GetComponent <PlayerController> ().hasStickyBomb) { target.GetComponent <PlayerController> ().hasStickyBomb = false; this.GetComponent <PlayerController> ().hasStickyBomb = true; target.GetComponent <PlayerController> ().bombStatus.GetComponent <SpriteRenderer>().sprite = target.GetComponent <PlayerController> ().noBombSprite; this.GetComponent <PlayerController> ().bombStatus.GetComponent <SpriteRenderer>().sprite = this.GetComponent <PlayerController> ().hasBombSprite; abilityAvailable = false; PopText.Create("SNATCHED!", Color.white, 60, transform.position + Vector3.up * .5f); } } }
static void Main(string[] args) { Console.CursorVisible = false; MouseHighlighter highlighter = new MouseHighlighter(); highlighter.DeviceEnabled(); Xbox360Controller x360 = new Xbox360Controller(); x360.OnMouseMoveAction = () => highlighter.DrawHighlight(); x360.OnEnableAction = () => highlighter.DeviceEnabled(); x360.OnDisableAction = () => highlighter.DeviceDisable(); while (true) { highlighter.DrawHighlight(); x360.GetControllerInput(); Thread.Sleep(10); } }
static void Main(string[] args) { var client = new ViGEmClient(); var x360 = new Xbox360Controller(client); var id = x360.ProductId; x360.FeedbackReceived += (sender, eventArgs) => Console.WriteLine( eventArgs.ToString() + $"LM: {eventArgs.LargeMotor}, " + $"SM: {eventArgs.SmallMotor}, " + $"LED: {eventArgs.LedNumber}"); x360.Connect(); var id2 = x360.ProductId; Console.ReadLine(); }
public void Start() { var client = new ViGEmClient(); X360Controller = new Xbox360Controller(client); server = new Server { Services = { XboxButtons.BindService(new XboxImpl(X360Controller)), StandardInput.BindService(new StandardInputImpl()) // this)) }, Ports = { new ServerPort(Host, Port, ServerCredentials.Insecure) } }; server.Start(); ServerStarted = true; }
void InitController() { var slot = GamepadManager.GetSlot(ControllerId); if (!slot.IsConnected) { return; } if (SnesController.IsMatch(slot)) { var snes = new SnesController(slot); Jump = snes.B; Attack = snes.Y; Dodge = snes.R; ActivateUpgrade = snes.X; Guard = snes.L; Start = snes.Start; Direction = snes.Dpad; } else if (Xbox360Controller.IsMatch(slot)) { var xbox = new Xbox360Controller(slot); Jump = xbox.A; Attack = xbox.X; Dodge = xbox.RB; ActivateUpgrade = xbox.Y; Guard = xbox.LB; Start = xbox.Start; Direction = xbox.LeftStick; } else { throw new Exception("invalid controller woh"); } }
public override bool Initialize(Action <Exception> FailedCallback) { try { myViGEmClient = new ViGEmClient(); myController = new Xbox360Controller(myViGEmClient); myController.Connect(); myController.FeedbackReceived += MyController_FeedbackReceived; return(true); } catch (Exception ex) { if (ex is Nefarius.ViGEm.Client.Exceptions.VigemBusNotFoundException) { FailedCallback.Invoke(new Exception("没有找到ViGEm虚拟手柄驱动!")); } else { FailedCallback.Invoke(ex); } return(false); } }
private void connectClientToPort(object sender, Xbox360FeedbackReceivedEventArgs eventArgs) { Xbox360Controller newController = (Xbox360Controller)sender; newController.FeedbackReceived -= connectClientToPort; Console.WriteLine(eventArgs); Console.WriteLine(eventArgs.LedNumber); // ledNumber returns 0 for player 1, 1 for player 2, 2 for player 3, 3 for player 4 // but on other computers, ledNumber returns 1 for player 1, 2 for player 2 and so on // When the first controller connects (thus when portCalculator isn't defined yet), // if the LedNumber is 0, portCalculator = 1 // else, it's 0 if (Globals.portCalculator == null) { if (eventArgs.LedNumber == 0) { Globals.portCalculator = 1; } else { Globals.portCalculator = 0; } } int port = eventArgs.LedNumber + (int)Globals.portCalculator; if (port > 4) { newController.Disconnect(); Send("Disconnect:4 controllers already connected!"); return; } Application.Current.Dispatcher.Invoke(() => { MainWindow mainWindow = (MainWindow)Application.Current.MainWindow; Label statusLabel; Button disconnectButton; switch (port) { case 1: statusLabel = mainWindow.lblController1Connected; disconnectButton = mainWindow.btnController1Disconnect; break; case 2: statusLabel = mainWindow.lblController2Connected; disconnectButton = mainWindow.btnController2Disconnect; break; case 3: statusLabel = mainWindow.lblController3Connected; disconnectButton = mainWindow.btnController3Disconnect; break; case 4: statusLabel = mainWindow.lblController4Connected; disconnectButton = mainWindow.btnController4Disconnect; break; default: return; } Globals.wssv.AddWebSocketService("/x360_port" + port, () => new X360(newController, port, statusLabel, disconnectButton)); // Example: Connected:x360_port1 Send("Connected:x360_port" + port); }); }
public void DoProcessing(IProgress <string> message, IProgress <string> xUpdate, IProgress <string> rawXUpdate, IProgress <string> yUpdate, IProgress <string> rawYUpdate, Joystick joystick, Keyboard keyboard, CancellationToken cancellationToken) { ViGEmClient client = new ViGEmClient(); Xbox360Controller controller = new Xbox360Controller(client); ControllerBindingsStorage bindingStorage = new ControllerBindingsStorage(); Dictionary <int, int> bindings = bindingStorage.load(); Xbox360Axes? analogStickAxisX = null; Xbox360Axes? analogStickAxisY = null; Xbox360Axes? digitalStickAxisX = null; Xbox360Axes? digitalStickAxisY = null; Xbox360Buttons? joystickButton0 = null; bool leftTriggerLastPressed = false; bool leftTriggerPressed = false; bool rightTriggerLastPressed = false; bool rightTriggerPressed = false; bool digitalStickUpLastPressed = false; bool digitalStickUpPressed = false; bool digitalStickDownLastPressed = false; bool digitalStickDownPressed = false; bool digitalStickLeftLastPressed = false; bool digitalStickLeftPressed = false; bool digitalStickRightLastPressed = false; bool digitalStickRightPressed = false; foreach (KeyValuePair <int, int> binding in bindings) { if (binding.Key == (int)Xbox360StorageButtons.AnalogStick) { AnalogStickBinding analogStickBinding = (AnalogStickBinding)Enum.Parse(typeof(AnalogStickBinding), binding.Value.ToString()); switch (analogStickBinding) { case AnalogStickBinding.LeftStick: analogStickAxisX = Xbox360Axes.LeftThumbX; analogStickAxisY = Xbox360Axes.LeftThumbY; digitalStickAxisX = Xbox360Axes.RightThumbX; digitalStickAxisY = Xbox360Axes.RightThumbY; break; case AnalogStickBinding.RightStick: analogStickAxisX = Xbox360Axes.RightThumbX; analogStickAxisY = Xbox360Axes.RightThumbY; digitalStickAxisX = Xbox360Axes.LeftThumbX; digitalStickAxisY = Xbox360Axes.LeftThumbY; break; } } if (binding.Value == (int)Key.JoystickButton) { joystickButton0 = (Xbox360Buttons)Enum.Parse(typeof(Xbox360Buttons), binding.Key.ToString()); } } controller.Connect(); message.Report("Virtual Xbox 360 controller created!"); Xbox360Report report = new Xbox360Report(); while (true) { if (cancellationToken.IsCancellationRequested) { controller.Disconnect(); return; } joystick.Poll(); JoystickUpdate[] updates = joystick.GetBufferedData(); foreach (JoystickUpdate update in updates) { int value = (update.Value - 32767); if (update.Offset == JoystickOffset.X || update.Offset == JoystickOffset.Y || update.Offset == JoystickOffset.Buttons0) { if (analogStickAxisX != null && analogStickAxisX.HasValue && analogStickAxisY != null && analogStickAxisY.HasValue) { if (update.Offset == JoystickOffset.X) { short x = getConstrainedValue(value); report.SetAxis(analogStickAxisX.Value, x); xUpdate.Report(x.ToString()); rawXUpdate.Report((update.Value - 32767).ToString()); } if (update.Offset == JoystickOffset.Y) { short y = getConstrainedValue(value * -1); report.SetAxis(analogStickAxisY.Value, y); yUpdate.Report(y.ToString()); rawYUpdate.Report(((update.Value - 32767) * -1).ToString()); } } if (update.Offset == JoystickOffset.Buttons0 && joystickButton0 != null && joystickButton0.HasValue) { bool buttonValue = update.Value > 0 ? true : false; report.SetButtonState(joystickButton0.Value, buttonValue); } } message.Report(update.Offset.ToString() + ": " + value.ToString()); } keyboard.Poll(); KeyboardUpdate[] keyboardUpdates = keyboard.GetBufferedData(); foreach (KeyboardUpdate keyboardUpdate in keyboardUpdates) { foreach (KeyValuePair <int, int> binding in bindings) { if ((int)keyboardUpdate.Key == binding.Value) { Xbox360Buttons?button = null; switch (binding.Key) { case (int)Xbox360StorageButtons.Guide: button = Xbox360Buttons.Guide; break; case (int)Xbox360StorageButtons.Start: button = Xbox360Buttons.Start; break; case (int)Xbox360StorageButtons.Back: button = Xbox360Buttons.Back; break; case (int)Xbox360StorageButtons.LeftShoulder: button = Xbox360Buttons.LeftShoulder; break; case (int)Xbox360StorageButtons.RightShoulder: button = Xbox360Buttons.RightShoulder; break; case (int)Xbox360StorageButtons.LeftTrigger: leftTriggerPressed = keyboardUpdate.Value == 128 ? true : false; break; case (int)Xbox360StorageButtons.RightTrigger: rightTriggerPressed = keyboardUpdate.Value == 128 ? true : false; break; case (int)Xbox360StorageButtons.A: button = Xbox360Buttons.A; break; case (int)Xbox360StorageButtons.B: button = Xbox360Buttons.B; break; case (int)Xbox360StorageButtons.X: button = Xbox360Buttons.X; break; case (int)Xbox360StorageButtons.Y: button = Xbox360Buttons.Y; break; case (int)Xbox360StorageButtons.Up: button = Xbox360Buttons.Up; break; case (int)Xbox360StorageButtons.Down: button = Xbox360Buttons.Down; break; case (int)Xbox360StorageButtons.Left: button = Xbox360Buttons.Left; break; case (int)Xbox360StorageButtons.Right: button = Xbox360Buttons.Right; break; case (int)Xbox360StorageButtons.LeftThumb: button = Xbox360Buttons.LeftThumb; break; case (int)Xbox360StorageButtons.RightThumb: button = Xbox360Buttons.RightThumb; break; case (int)Xbox360StorageButtons.DigitalStickUp: digitalStickUpPressed = keyboardUpdate.Value == 128 ? true : false; break; case (int)Xbox360StorageButtons.DigitalStickDown: digitalStickDownPressed = keyboardUpdate.Value == 128 ? true : false; break; case (int)Xbox360StorageButtons.DigitalStickLeft: digitalStickLeftPressed = keyboardUpdate.Value == 128 ? true : false; break; case (int)Xbox360StorageButtons.DigitalStickRight: digitalStickRightPressed = keyboardUpdate.Value == 128 ? true : false; break; } if (button != null && button.HasValue) { bool pressed = keyboardUpdate.Value == 128 ? true : false; report.SetButtonState(button.Value, pressed); } message.Report("Keyboard - Key: " + keyboardUpdate.Key + " Value: " + keyboardUpdate.Value); } } } if (leftTriggerPressed != leftTriggerLastPressed) { if (leftTriggerPressed) { report.LeftTrigger = 255; } else { report.LeftTrigger = 0; } leftTriggerLastPressed = leftTriggerPressed; } if (rightTriggerPressed != rightTriggerLastPressed) { if (rightTriggerPressed) { report.RightTrigger = 255; } else { report.RightTrigger = 0; } rightTriggerLastPressed = rightTriggerPressed; } if (digitalStickUpPressed != digitalStickUpLastPressed) { if (digitalStickUpPressed) { report.SetAxis(digitalStickAxisY.Value, 32767); } else { report.SetAxis(digitalStickAxisY.Value, 0); } digitalStickUpLastPressed = digitalStickUpPressed; } if (digitalStickDownPressed != digitalStickDownLastPressed) { if (digitalStickDownPressed) { report.SetAxis(digitalStickAxisY.Value, -32768); } else { report.SetAxis(digitalStickAxisY.Value, 0); } digitalStickDownLastPressed = digitalStickDownPressed; } if (digitalStickLeftPressed != digitalStickLeftLastPressed) { if (digitalStickLeftPressed) { report.SetAxis(digitalStickAxisX.Value, -32768); } else { report.SetAxis(digitalStickAxisX.Value, 0); } digitalStickLeftLastPressed = digitalStickLeftPressed; } if (digitalStickRightPressed != digitalStickRightLastPressed) { if (digitalStickRightPressed) { report.SetAxis(digitalStickAxisX.Value, 32767); } else { report.SetAxis(digitalStickAxisX.Value, 0); } digitalStickRightLastPressed = digitalStickRightPressed; } controller.SendReport(report); Thread.Sleep(1); } }
public Xbox360OutDevice(ViGEmClient client) { cont = new Xbox360Controller(client); report = new Xbox360Report(); }
public virtual bool GetButtonUp(Xbox360Controller.eXbox360ButtonId buttonId) { return GetButtonUp((BaseController.eButtonId)buttonId); }
protected void AddJoystickButtonMap(Xbox360Controller.eXbox360ButtonId buttonId, int inputKey) { AddJoystickButtonMap((BaseController.eButtonId)buttonId, inputKey); }