private void pollForButtonClicks(ButtonAssignment ba) { if (ba != null && ba.buttonIndex != -1) { if (ba.joystick != null) { try { if (ba.joystick != null) { JoystickState state = ba.joystick.GetCurrentState(); if (state != null) { Boolean click = state.Buttons[ba.buttonIndex]; if (click) { ba.hasUnprocessedClick = true; } } } } catch (Exception) { } } else if (ba.controller.guid == UDP_NETWORK_CONTROLLER_GUID) { if (PCarsUDPreader.getButtonState(ba.buttonIndex)) { ba.hasUnprocessedClick = true; } } } }
public Boolean isChannelOpen() { ButtonAssignment ba = buttonAssignments[buttonAssignmentIndexes[CHANNEL_OPEN_FUNCTION]]; if (ba != null && ba.buttonIndex != -1) { if (ba.joystick != null) { try { return(ba.joystick.GetCurrentState().Buttons[ba.buttonIndex]); } catch (Exception) { // ignore this exception } } else if (ba.controller.guid == UDP_NETWORK_CONTROLLER_GUID && CrewChief.gameDefinition.gameEnum == GameEnum.PCARS_NETWORK) { return(PCarsUDPreader.getButtonState(ba.buttonIndex)); } else if (ba.controller.guid == UDP_NETWORK_CONTROLLER_GUID && CrewChief.gameDefinition.gameEnum == GameEnum.PCARS2_NETWORK) { return(PCars2UDPreader.getButtonState(ba.buttonIndex)); } } return(false); }
public GameDataReader getGameStateReader(GameDefinition gameDefinition) { lock (this) { switch (gameDefinition.gameEnum) { case GameEnum.PCARS_NETWORK: if (pcarsUDPreader == null) { pcarsUDPreader = new PCarsUDPreader(); } return(pcarsUDPreader); case GameEnum.PCARS_32BIT: case GameEnum.PCARS_64BIT: if (pcarsSharedMemoryReader == null) { pcarsSharedMemoryReader = new PCarsSharedMemoryReader(); } return(pcarsSharedMemoryReader); case GameEnum.RACE_ROOM: if (r3eSharedMemoryReader == null) { r3eSharedMemoryReader = new R3ESharedMemoryReader(); } return(r3eSharedMemoryReader); case GameEnum.RF1: if (rf1SharedMemoryReader == null) { rf1SharedMemoryReader = new RF1SharedMemoryReader(); } return(rf1SharedMemoryReader); case GameEnum.ASSETTO_64BIT: case GameEnum.ASSETTO_32BIT: if (ascSharedMemoryReader == null) { ascSharedMemoryReader = new ACSSharedMemoryReader(); } return(ascSharedMemoryReader); case GameEnum.RF2_64BIT: if (rf2SharedMemoryReader == null) { rf2SharedMemoryReader = new RF2SharedMemoryReader(); } return(rf2SharedMemoryReader); } } return(null); }
private Boolean getFirstPressedButton(System.Windows.Forms.Form parent, ControllerData controllerData, ButtonAssignment buttonAssignment) { Boolean gotAssignment = false; if (controllerData.guid == UDP_NETWORK_CONTROLLER_GUID) { PCarsUDPreader gameDataReader = (PCarsUDPreader)GameStateReaderFactory.getInstance().getGameStateReader(GameDefinition.pCarsNetwork); int assignedButton = gameDataReader.getButtonIndexForAssignment(); if (assignedButton != -1) { removeAssignmentsForControllerAndButton(controllerData.guid, assignedButton); buttonAssignment.controller = controllerData; buttonAssignment.buttonIndex = assignedButton; listenForAssignment = false; gotAssignment = true; } } else { listenForAssignment = true; // Instantiate the joystick var joystick = new Joystick(directInput, controllerData.guid); // Acquire the joystick joystick.SetCooperativeLevel(parent, (CooperativeLevel.NonExclusive | CooperativeLevel.Background)); joystick.Properties.BufferSize = 128; joystick.Acquire(); while (listenForAssignment) { Boolean[] buttons = joystick.GetCurrentState().Buttons; for (int i = 0; i < buttons.Count(); i++) { if (buttons[i]) { Console.WriteLine("Got button at index " + i); removeAssignmentsForControllerAndButton(controllerData.guid, i); buttonAssignment.controller = controllerData; buttonAssignment.joystick = joystick; buttonAssignment.buttonIndex = i; listenForAssignment = false; gotAssignment = true; } } } if (!gotAssignment) { joystick.Unacquire(); } } return(gotAssignment); }
private void InitialiseCapture() { if (pcarsUDPreader == null) { WriteToConsole("Initialising UDP Reader"); pcarsUDPreader = new PCarsAPI.PCarsUDPreader(); } if (evHubSender == null) { WriteToConsole("Initialising Event Hub"); evHubSender = new EventHubSender(); evHubSender.Initialise(evHubConnString, evHubName); WriteToConsole("Event Hub initialised"); } StartListening(); }