public Joystick[] loadJoysticks(InputManager inputManager){ ControllerEnvironment ce = ControllerEnvironment.getDefaultEnvironment(); Controller[] cs = ce.getControllers(); List<Joystick> list = new ArrayList<Joystick>(); for( Controller c : ce.getControllers() ) { if (c.getType() == Controller.Type.KEYBOARD || c.getType() == Controller.Type.MOUSE) continue; logger.log(Level.FINE, "Attempting to create joystick for: \"{0}\"", c); // Try to create it like a joystick JInputJoystick stick = new JInputJoystick(inputManager, this, c, list.size(), c.getName()); for( Component comp : c.getComponents() ) { stick.addComponent(comp); } // If it has no axes then we'll assume it's not // a joystick if( stick.getAxisCount() == 0 ) { logger.log(Level.FINE, "Not a joystick: {0}", c); continue; } joystickIndex.put(c, stick); list.add(stick); } joysticks = list.toArray( new JInputJoystick[list.size()] ); return joysticks; }
@Override public Queue<ControllerAction> getInputQueue() { Queue<ControllerAction> result = new ArrayDeque<>(); Event event = new Event(); Iterator<Controller> it = controllers.iterator(); while (it.hasNext()) { Controller c = it.next(); if (c.poll()) { EventQueue queue = c.getEventQueue(); while (queue.getNextEvent(event)) { ControllerAction action = convertEvent(c, event); if (action != null) { result.add(action); } } } else { removeController(c); } } return result; }
public void setJoyRumble(int joyId, float amount){ if( joyId >= joysticks.length ) throw new IllegalArgumentException(); Controller c = joysticks[joyId].controller; for (Rumbler r : c.getRumblers()){ r.rumble(amount); } }
private void addController(Controller c) { if (filter.contains(c.getType())) { logger.debug("Ignoring controller: " + c.getName()); return; } if (c.getControllers().length == 0) { controllers.add(c); logger.info("Registered controller: " + c.getName()); } else { for (Controller sub : c.getControllers()) { addController(sub); } } } }
/** * Removes a controller. Also works while iterating over the list. * @param controller the controller to remove */ private void removeController(Controller controller) { controllers.remove(controller); logger.info("Removed controller: " + controller.getName()); }
protected ControllerInfo getControllerInfo(final Controller controller) { final List<String> axisNames = Lists.newArrayList(); final List<String> buttonNames = Lists.newArrayList(); for (final Component comp : controller.getComponents()) { if (comp.getIdentifier() instanceof Identifier.Axis) { axisNames.add(comp.getName()); } else if (comp.getIdentifier() instanceof Identifier.Button) { buttonNames.add(comp.getName()); } } return new ControllerInfo(controller.getName(), axisNames, buttonNames); }
if (controllers[i].getType() == Controller.Type.MOUSE) { System.out.println("First mouse is: " + firstMouse.getName()); firstMouse.poll(); Component[] components = firstMouse.getComponents(); StringBuffer buffer = new StringBuffer();
public static ControllerType getControllerType(Controller controller) { boolean hasXAxis; boolean hasYAxis; boolean hasZAxis; boolean hasRXAxis; boolean hasRYAxis; boolean hasRZAxis; hasXAxis = controller.getComponent(Component.Identifier.Axis.X) != null; hasYAxis = controller.getComponent(Component.Identifier.Axis.Y) != null; hasZAxis = controller.getComponent(Component.Identifier.Axis.Z) != null; hasRXAxis = controller.getComponent(Component.Identifier.Axis.RX) != null; hasRYAxis = controller.getComponent(Component.Identifier.Axis.RY) != null; hasRZAxis = controller.getComponent(Component.Identifier.Axis.RZ) != null; boolean knownModel = controller.getName() != null && (controller.getName().equals("SpaceM") || controller.getName().equals("Space Navigator") || controller.getName().equals("SpaceMouse Pro") || controller.getName().equals("SpaceMouse Wireless Receiver")); if (hasXAxis && hasYAxis && hasZAxis && hasRXAxis && hasRYAxis && hasRZAxis && controller.getType().equals(Controller.Type.STICK) && knownModel) return ControllerType.JOYSTICK_3D; else return ControllerType.UNKNOWN; } }
public PeekingIterator<ControllerEvent> getEvents() { init(); if (!_eventsIt.hasNext()) { _eventsIt = new JInputControllerEventIterator(); } for (final Controller controller : ControllerEnvironment.getDefaultEnvironment().getControllers()) { controller.poll(); while (controller.getEventQueue().getNextEvent(_event)) { if (controller.getType() != Type.KEYBOARD && controller.getType() != Type.MOUSE) { _events.add(createControllerEvent(controller, _event)); } } } return _eventsIt; }
controllers[i].poll(); EventQueue queue = controllers[i].getEventQueue(); .getName()); buffer.append(" at "); buffer.append(event.getNanos()).append(", ");
@Override public void update() { final boolean couldPoll = this.controller.poll(); if (!couldPoll) { this.dispose(); } final Event event = new Event(); while (this.controller.getEventQueue().getNextEvent(event)) { this.handlePollEvents(event); } for (Component comp : this.controller.getComponents()) { if (Math.abs(comp.getPollData()) > this.getDeadZone(comp.getIdentifier())) { this.handlePressed(comp); } else { this.handleRelease(comp); } } }
dev.getName(), dev.getRumblers().length }; errorReporter.messageReport(list_msg); Controller.Type type = dev.getType(); name = dev.getName();
private void initializeIdentifiers() { for (Component component : joystickController.getComponents()) { identifiers.add(component.getIdentifier()); } }
@Override public void run(){ Thread.currentThread().setName("GamepadEventThread"); while(true){ while(!eventQueue.getNextEvent(event)) try{Thread.sleep(20); if(!controller.poll()){ System.err.println("WARNING: Lost contact with controller: "+controller.getName()+". Escaping poll loop..."); return; } }catch(InterruptedException e){} controllerSourceMap.get(event.getComponent()).notifyPropertyChange(event.getValue()); }//end while(true) }//end run() }//end GamepadEventThread
public void getState(WheelState state) controller.poll();
GamepadInputDevice(Controller controller){ if(controller==null) throw new NullPointerException("Passed Controller intolerably null."); this.controller = controller; controller.setEventQueueSize(256); eventQueue = controller.getEventQueue(); System.out.println("CONTROLLER: "+controller.getClass().getName()); controllerSources = new ArrayList<GamepadControllerSource>(controller.getComponents().length); //System.out.println("Rumblers: "+controller.getRumblers().length); //controller.getRumblers()[0].rumble(1f); for(net.java.games.input.Component comp : controller.getComponents()){ GamepadControllerSource gcs = new GamepadControllerSource(comp); controllerSources.add(gcs); controllerSourceMap.put(comp, gcs); nameMap.put(comp.getName(),gcs); System.out.println("Component found: "+comp.getName()); }//end for(components) gamepadEventThread.start(); }//end consructor
this.name = name; axes = c.getComponents(); trackers[0] = at; Rumbler[] rumblers = c.getRumblers(); len = rumblers.length;
controller.poll(); double lap = timer.lap(); double timeScale = lap / POLL_PERIOD_SECONDS; double dx = X_SIGN * controller.getComponent(Component.Identifier.Axis.X).getPollData() * scale * timeScale; double dy = Y_SIGN * controller.getComponent(Component.Identifier.Axis.Y).getPollData() * scale * timeScale; double dz = Z_SIGN * controller.getComponent(Component.Identifier.Axis.Z).getPollData() * scale * timeScale; double drx = RX_SIGN * controller.getComponent(Component.Identifier.Axis.RX).getPollData() * scale * timeScale; double dry = RY_SIGN * controller.getComponent(Component.Identifier.Axis.RY).getPollData() * scale * timeScale; double drz = RZ_SIGN * controller.getComponent(Component.Identifier.Axis.RZ).getPollData() * scale * timeScale;