/******************************************************************************* * Copyright 2011 See AUTHORS file. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ package com.badlogic.gdx.controllers; import java.util.ResourceBundle.Control; import com.badlogic.gdx.math.Vector3; /** Registered with {@link Controllers} or a specific {@link Controller} instance to receive events. * @author Nathan Sweet */ public interface ControllerListener { /** A {@link Controller} got connected. * @param controller */ public void connected (Controller controller); /** A {@link Controller} got disconnected. * @param controller */ public void disconnected (Controller controller); /** A button on the {@link Controller} was pressed. The buttonCode is controller specific. The * <code>com.badlogic.gdx.controllers.mapping</code> package hosts button constants for known controllers. * @param controller * @param buttonCode * @return whether to hand the event to other listeners. */ public boolean buttonDown (Controller controller, int buttonCode); /** A button on the {@link Controller} was released. The buttonCode is controller specific. The * <code>com.badlogic.gdx.controllers.mapping</code> package hosts button constants for known controllers. * @param controller * @param buttonCode * @return whether to hand the event to other listeners. */ public boolean buttonUp (Controller controller, int buttonCode); /** An axis on the {@link Controller} moved. The axisCode is controller specific. The axis value is in the range [-1, 1]. The * <code>com.badlogic.gdx.controllers.mapping</code> package hosts axes constants for known controllers. * @param controller * @param axisCode * @param value the axis value, -1 to 1 * @return whether to hand the event to other listeners. */ public boolean axisMoved (Controller controller, int axisCode, float value); /** A POV on the {@link Controller} moved. The povCode is controller specific. The * <code>com.badlogic.gdx.controllers.mapping</code> package hosts POV constants for known controllers. * @param controller * @param povCode * @param value * @return whether to hand the event to other listeners. */ public boolean povMoved (Controller controller, int povCode, PovDirection value); /** An x-slider on the {@link Controller} moved. The sliderCode is controller specific. The * <code>com.badlogic.gdx.controllers.mapping</code> package hosts slider constants for known controllers. * @param controller * @param sliderCode * @param value * @return whether to hand the event to other listeners. */ public boolean xSliderMoved (Controller controller, int sliderCode, boolean value); /** An y-slider on the {@link Controller} moved. The sliderCode is controller specific. The * <code>com.badlogic.gdx.controllers.mapping</code> package hosts slider constants for known controllers. * @param controller * @param sliderCode * @param value * @return whether to hand the event to other listeners. */ public boolean ySliderMoved (Controller controller, int sliderCode, boolean value); /** An accelerometer value on the {@link Controller} changed. The accelerometerCode is controller specific. The * <code>com.badlogic.gdx.controllers.mapping</code> package hosts slider constants for known controllers. The value is a * {@link Vector3} representing the acceleration on a 3-axis accelerometer in m/s^2. * @param controller * @param accelerometerCode * @param value * @return whether to hand the event to other listeners. */ public boolean accelerometerMoved (Controller controller, int accelerometerCode, Vector3 value); }