/// <summary> /// Initializes a new instance of the XBoxControllerComponent class. /// </summary> public XBoxControllerComponent() : base("XBox Controller", "XBoxCont", "Outputs Data from a connected XBox Controller", "Firefly", "Arduino & I/O Boards") { var connectedControllers = XBoxController.GetConnectedControllers(); XBoxControllerWatcher watcher = new XBoxControllerWatcher(); watcher.ControllerConnected += (c) => Connected(c); }
static void Main(string[] args) { XBoxControllerWatcher xbcw = new XBoxControllerWatcher(); xbcw.ControllerConnected += OnControllerConnected; xbcw.ControllerDisconnected += OnControllerDisconnected; Console.WriteLine("Press any key to exit."); while (!Console.KeyAvailable) { System.Threading.Thread.Sleep(1000); foreach (var c in XBoxController.GetConnectedControllers()) { Console.WriteLine("Controller " + c.PlayerIndex.ToString() + " Thumb Left X = " + c.ThumbLeftX.ToString() + ", Y = " + c.ThumbLeftY.ToString() + ", A = " + c.ButtonAPressed.ToString()); } } }
static void Main(string[] args) { XBoxControllerWatcher xbcw = new XBoxControllerWatcher(); xbcw.ControllerConnected += OnControllerConnected; xbcw.ControllerDisconnected += OnControllerDisconnected; Point defPnt = new Point(); GetCursorPos(ref defPnt); InputSimulator input = new InputSimulator(); _x = defPnt.X; _y = defPnt.Y; int clickBuffer = 0; int rightClickBuffer = 0; int pageNavBuffer = 0; while (!Console.KeyAvailable) { System.Threading.Thread.Sleep(10); foreach (var c in XBoxController.GetConnectedControllers()) { //handle cursor position _x += trueSpeed(c.ThumbLeftX); _y -= trueSpeed(c.ThumbLeftY); SetCursorPos(_x, _y); //handle single left clicks if (c.ButtonAPressed && clickBuffer == 0) { clickBuffer += 1; //DoMouseClickLeft(); input.Mouse.LeftButtonClick(); } else if (clickBuffer != 0 && clickBuffer < 12) { clickBuffer += 1; } else //if (clickBuffer > 12) { clickBuffer = 0; } //hold left click if (c.ButtonShoulderLeftPressed) { input.Mouse.LeftButtonDown(); } //handle right clicks if (c.ButtonBPressed && rightClickBuffer == 0) { rightClickBuffer += 1; //DoMouseClickRight(); input.Mouse.RightButtonClick(); } else if (rightClickBuffer != 0 && rightClickBuffer < 21) { rightClickBuffer += 1; } else //if (clickBuffer > 21) { rightClickBuffer = 0; } //handle page scrolling if (trueSpeed(c.ThumbRightY) > 2) { MouseWheelUp(); } if (trueSpeed(c.ThumbRightY) < -2) { MouseWheelDown(); } if (trueSpeed(c.ThumbRightX) > 2) { MouseWheelRight(); } if (trueSpeed(c.ThumbRightX) < -2) { MouseWheelLeft(); } //handle page navigation if (c.ButtonLeftPressed && pageNavBuffer == 0) { pageNavBuffer += 1; input.Keyboard.KeyPress(VirtualKeyCode.BROWSER_BACK); } else if (pageNavBuffer != 0 && pageNavBuffer < 12) { pageNavBuffer += 1; } else //if (clickBuffer > 12) { pageNavBuffer = 0; } if (c.ButtonRightPressed && pageNavBuffer == 0) { pageNavBuffer += 1; input.Keyboard.KeyPress(VirtualKeyCode.BROWSER_FORWARD); } else if (pageNavBuffer != 0 && pageNavBuffer < 12) { pageNavBuffer += 1; } else //if (clickBuffer > 12) { pageNavBuffer = 0; } } } }