protected ControllerInfo getControllerInfo(final Controller controller) { final List<String> axisNames = Lists.newArrayList(); final List<String> buttonNames = Lists.newArrayList(); for (int i = 0; i < controller.getAxisCount(); i++) { axisNames.add(controller.getAxisName(i)); } for (int i = 0; i < controller.getButtonCount(); i++) { buttonNames.add(controller.getButtonName(i)); } return new ControllerInfo(controller.getName(), axisNames, buttonNames); }
public synchronized void init() { if (_inited) { return; } try { Controllers.create(); for (int i = 0, max = Controllers.getControllerCount(); i < max; i++) { final Controller controller = Controllers.getController(i); _controllers.add(getControllerInfo(controller)); for (int j = 0; j < controller.getAxisCount(); j++) { ControllerState.NOTHING.set(controller.getName(), controller.getAxisName(j), 0); } for (int j = 0; j < controller.getButtonCount(); j++) { ControllerState.NOTHING.set(controller.getName(), controller.getButtonName(j), 0); } } } catch (final Exception e) { e.printStackTrace(); } finally { _inited = true; } }
public PeekingIterator<ControllerEvent> getEvents() { init(); if (!_eventsIt.hasNext()) { _eventsIt = new LwjglControllerEventIterator(); } while (Controllers.next()) { final Controller source = Controllers.getEventSource(); if (Controllers.isEventButton()) { _events.add(new ControllerEvent(Controllers.getEventNanoseconds(), source.getName(), source .getButtonName(Controllers.getEventControlIndex()), source.isButtonPressed(Controllers .getEventControlIndex()) ? 1f : 0f)); } else if (Controllers.isEventAxis()) { _events.add(new ControllerEvent(Controllers.getEventNanoseconds(), source.getName(), source .getAxisName(Controllers.getEventControlIndex()), source.getAxisValue(Controllers .getEventControlIndex()))); } else if (Controllers.isEventPovX()) { _events.add(new ControllerEvent(Controllers.getEventNanoseconds(), source.getName(), "Pov X", source .getPovX())); } else if (Controllers.isEventPovY()) { _events.add(new ControllerEvent(Controllers.getEventNanoseconds(), source.getName(), "Pov Y", source .getPovY())); } } return _eventsIt; }