Package net.java.games.input
Class AbstractController
- java.lang.Object
-
- net.java.games.input.AbstractController
-
- All Implemented Interfaces:
Controller
- Direct Known Subclasses:
Keyboard,LinuxCombinedController,Mouse,WinTabDevice
public abstract class AbstractController extends java.lang.Object implements Controller
An AbstractController is a skeleton implementation of a controller that contains a fixed number of axes, controllers, and rumblers.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface net.java.games.input.Controller
Controller.PortType, Controller.Type
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractController(java.lang.String name, Component[] components, Controller[] children, Rumbler[] rumblers)Protected constructor for a controller containing the specified axes, child controllers, and rumblers
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description ComponentgetComponent(Component.Identifier id)Returns a single component based on its identifier, or null if no component with the specified type could be found.Component[]getComponents()Returns the components on this controller, in order of assignment priority.Controller[]getControllers()Returns the controllers connected to make up this controller, or an empty array if this controller contains no child controllers.EventQueuegetEventQueue()Get the device event queuejava.lang.StringgetName()Returns a human-readable name for this Controller.protected abstract booleangetNextDeviceEvent(Event event)intgetPortNumber()Returns the zero-based port number for this Controller.Controller.PortTypegetPortType()Returns the port type for this Controller.Rumbler[]getRumblers()Returns the rumblers for sending feedback to this controller, or an empty array if there are no rumblers on this controller.Controller.TypegetType()Returns the type of the Controller.booleanpoll()Polls axes for data.protected voidpollDevice()protected voidsetDeviceEventQueueSize(int size)Plugins override this method to adjust their internal event queue sizevoidsetEventQueueSize(int size)Creates a new EventQueue.java.lang.StringtoString()Returns a non-localized string description of this controller.
-
-
-
Constructor Detail
-
AbstractController
protected AbstractController(java.lang.String name, Component[] components, Controller[] children, Rumbler[] rumblers)Protected constructor for a controller containing the specified axes, child controllers, and rumblers- Parameters:
name- name for the controllercomponents- components for the controllerchildren- child controllers for the controllerrumblers- rumblers for the controller
-
-
Method Detail
-
getControllers
public final Controller[] getControllers()
Returns the controllers connected to make up this controller, or an empty array if this controller contains no child controllers. The objects in the array are returned in order of assignment priority (primary stick, secondary buttons, etc.).- Specified by:
getControllersin interfaceController
-
getComponents
public final Component[] getComponents()
Returns the components on this controller, in order of assignment priority. For example, the button controller on a mouse returns an array containing the primary or leftmost mouse button, followed by the secondary or rightmost mouse button (if present), followed by the middle mouse button (if present). The array returned is an empty array if this controller contains no components (such as a logical grouping of child controllers).- Specified by:
getComponentsin interfaceController
-
getComponent
public final Component getComponent(Component.Identifier id)
Returns a single component based on its identifier, or null if no component with the specified type could be found.- Specified by:
getComponentin interfaceController
-
getRumblers
public final Rumbler[] getRumblers()
Returns the rumblers for sending feedback to this controller, or an empty array if there are no rumblers on this controller.- Specified by:
getRumblersin interfaceController
-
getPortType
public Controller.PortType getPortType()
Returns the port type for this Controller.- Specified by:
getPortTypein interfaceController- Returns:
- PortType.UNKNOWN by default, can be overridden
-
getPortNumber
public int getPortNumber()
Returns the zero-based port number for this Controller.- Specified by:
getPortNumberin interfaceController- Returns:
- 0 by default, can be overridden
-
getName
public final java.lang.String getName()
Returns a human-readable name for this Controller.- Specified by:
getNamein interfaceController
-
toString
public java.lang.String toString()
Returns a non-localized string description of this controller.- Overrides:
toStringin classjava.lang.Object
-
getType
public Controller.Type getType()
Returns the type of the Controller.- Specified by:
getTypein interfaceController
-
setEventQueueSize
public final void setEventQueueSize(int size)
Creates a new EventQueue. Events in old queue are lost.- Specified by:
setEventQueueSizein interfaceController
-
setDeviceEventQueueSize
protected void setDeviceEventQueueSize(int size) throws java.io.IOExceptionPlugins override this method to adjust their internal event queue size- Throws:
java.io.IOException
-
getEventQueue
public final EventQueue getEventQueue()
Description copied from interface:ControllerGet the device event queue- Specified by:
getEventQueuein interfaceController
-
getNextDeviceEvent
protected abstract boolean getNextDeviceEvent(Event event) throws java.io.IOException
- Throws:
java.io.IOException
-
pollDevice
protected void pollDevice() throws java.io.IOException- Throws:
java.io.IOException
-
poll
public boolean poll()
Description copied from interface:ControllerPolls axes for data. Returns false if the controller is no longer valid. Polling reflects the current state of the device when polled.- Specified by:
pollin interfaceController
-
-