223 lines
6.7 KiB
Java
223 lines
6.7 KiB
Java
/*
|
|
* Copyright (c) 2002-2008 LWJGL Project
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are
|
|
* met:
|
|
*
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
*
|
|
* * Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
*
|
|
* * Neither the name of 'LWJGL' nor the names of
|
|
* its contributors may be used to endorse or promote products derived
|
|
* from this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
package org.lwjgl.input;
|
|
|
|
/**
|
|
* An event occuring on a controller.
|
|
*
|
|
* @author Kevin Glass
|
|
*/
|
|
class ControllerEvent {
|
|
/** Indicates the event was caused by a button */
|
|
public static final int BUTTON = 1;
|
|
/** Indicates the event was caused by a axis */
|
|
public static final int AXIS = 2;
|
|
/** Indicates the event was caused by a pov X */
|
|
public static final int POVX = 3;
|
|
/** Indicates the event was caused by a pov Y */
|
|
public static final int POVY = 4;
|
|
|
|
/** The controller generating the event */
|
|
private Controller source;
|
|
/** The index of the input (axis or button) that generated the event */
|
|
private int index;
|
|
/** Type of control that generated the event */
|
|
private int type;
|
|
/** True when a button is pressed, if this event was caused by the button */
|
|
private boolean buttonState;
|
|
/** True if this event was caused by the x axis */
|
|
private boolean xaxis;
|
|
/** True if this event was caused by the y axis */
|
|
private boolean yaxis;
|
|
/** The time stamp of this event */
|
|
private long timeStamp;
|
|
/** The value on a specified axis, if this event was caused by the x-axis */
|
|
private float xaxisValue;
|
|
/** The value on a specified axis, if this event was caused by the y-axis */
|
|
private float yaxisValue;
|
|
|
|
/**
|
|
* Create a new event
|
|
*
|
|
* @param source The source of the event
|
|
* @param timeStamp The time stamp given for this event
|
|
* @param type The type of control generating this event
|
|
* @param index The index of the input that generated the event
|
|
* @param xaxis True if this event was caused by the x-axis
|
|
* @param yaxis True if this event was caused by the y-axis
|
|
*/
|
|
ControllerEvent(Controller source,long timeStamp, int type,int index,boolean xaxis,boolean yaxis) {
|
|
this(source, timeStamp, type, index, false, xaxis, yaxis, 0, 0);
|
|
}
|
|
|
|
/**
|
|
* Create a new event
|
|
*
|
|
* @param source The source of the event
|
|
* @param timeStamp The time stamp given for this event
|
|
* @param type The type of control generating this event
|
|
* @param index The index of the input that generated the event
|
|
* @param buttonState True when a button is pressed, if this event was caused by the button
|
|
* @param xaxis True if this event was caused by the x-axis
|
|
* @param yaxis True if this event was caused by the y-axis
|
|
* @param xaxisValue The value on a specified axis, if this event was caused by the x-axis
|
|
* @param yaxisValue The value on a specified axis, if this event was caused by the y-axis
|
|
*/
|
|
ControllerEvent(Controller source,long timeStamp, int type,int index,boolean buttonState,boolean xaxis,boolean yaxis,float xaxisValue,float yaxisValue) {
|
|
this.source = source;
|
|
this.timeStamp = timeStamp;
|
|
this.type = type;
|
|
this.index = index;
|
|
this.buttonState = buttonState;
|
|
this.xaxis = xaxis;
|
|
this.yaxis = yaxis;
|
|
this.xaxisValue = xaxisValue;
|
|
this.yaxisValue = yaxisValue;
|
|
}
|
|
|
|
/**
|
|
* Get the time stamp given for this event. As with nanoTime()
|
|
* this value means nothing other than giving ordering
|
|
*
|
|
* @return The time stamp given for this event
|
|
*/
|
|
public long getTimeStamp() {
|
|
return timeStamp;
|
|
}
|
|
|
|
/**
|
|
* Get the controller that generated this event
|
|
*
|
|
* @return The controller that generated this event
|
|
*/
|
|
public Controller getSource() {
|
|
return source;
|
|
}
|
|
|
|
/**
|
|
* Get the index of the control generating this event
|
|
*
|
|
* @return The index of the control generating this event
|
|
*/
|
|
public int getControlIndex() {
|
|
return index;
|
|
}
|
|
|
|
/**
|
|
* Check if this event was generated by a button
|
|
*
|
|
* @return True if this event was generated by a button
|
|
*/
|
|
public boolean isButton() {
|
|
return type == BUTTON;
|
|
}
|
|
|
|
/**
|
|
* Check the button is pressed or not, when this event was caused
|
|
*
|
|
* @return True when a button is pressed, if this event was caused by the button
|
|
*/
|
|
public boolean getButtonState() {
|
|
return buttonState;
|
|
}
|
|
|
|
/**
|
|
* Check if this event was generated by a axis
|
|
*
|
|
* @return True if this event was generated by a axis
|
|
*/
|
|
public boolean isAxis() {
|
|
return type == AXIS;
|
|
}
|
|
|
|
/**
|
|
* Check if this event was generated by a pov
|
|
*
|
|
* @return True if this event was generated by a pov
|
|
*/
|
|
public boolean isPovY() {
|
|
return type == POVY;
|
|
}
|
|
/**
|
|
*
|
|
* Check if this event was generated by a pov
|
|
*
|
|
* @return True if this event was generated by a pov
|
|
*/
|
|
public boolean isPovX() {
|
|
return type == POVX;
|
|
}
|
|
|
|
/**
|
|
* Check if this event was caused by the X axis
|
|
*
|
|
* @return True if this event was caused by the X axis
|
|
*/
|
|
public boolean isXAxis() {
|
|
return xaxis;
|
|
}
|
|
|
|
/**
|
|
* Check if this event was caused by the Y axis
|
|
*
|
|
* @return True if this event was caused by the Y axis
|
|
*/
|
|
public boolean isYAxis() {
|
|
return yaxis;
|
|
}
|
|
|
|
/**
|
|
* Get the value on an X axis when this event was caused
|
|
*
|
|
* @return The value on a specified axis, if this event was caused by the x-axis
|
|
*/
|
|
public float getXAxisValue() {
|
|
return xaxisValue;
|
|
}
|
|
|
|
/**
|
|
* Get the value on an Y axis when this event was caused
|
|
*
|
|
* @return The value on a specified axis, if this event was caused by the y-axis
|
|
*/
|
|
public float getYAxisValue() {
|
|
return yaxisValue;
|
|
}
|
|
|
|
/*
|
|
* @see java.lang.Object#toString()
|
|
*/
|
|
public String toString() {
|
|
return "["+source+" type="+type+" xaxis="+xaxis+" yaxis="+yaxis+"]";
|
|
}
|
|
}
|