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
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
ModifierConstructorDescriptionprotected
AbstractController
(String name, Component[] components, AbstractController[] children, Rumbler[] rumblers) Protected constructor for a controller containing the specified axes, child controllers, and rumblers -
Method Summary
Modifier and TypeMethodDescriptionboolean
Overwritten to specifically calculate if this controller matches another controller.final Component
Returns a single component based on its identifier, or null if no component with the specified type could be found.final Component[]
Returns the components on this controller, in order of assignment priority.final AbstractController[]
Returns the controllers connected to make up this controller, or an empty array if this controller contains no child controllers.final EventQueue
Get the device event queuefinal String
getName()
Returns a human-readable name for this Controller.protected abstract boolean
getNextDeviceEvent
(Event event) int
Returns the zero-based port number for this Controller.Returns the port type for this Controller.final Rumbler[]
Returns the rumblers for sending feedback to this controller, or an empty array if there are no rumblers on this controller.getType()
Returns the type of the Controller.boolean
poll()
Polls axes for data.protected void
protected void
setDeviceEventQueueSize
(int size) Plugins override this method to adjust their internal event queue sizefinal void
setEventQueueSize
(int size) Creates a new EventQueue.toString()
Returns a non-localized string description of this controller.
-
Constructor Details
-
AbstractController
protected AbstractController(String name, Component[] components, AbstractController[] 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 Details
-
equals
Overwritten to specifically calculate if this controller matches another controller. A controller matches if it is the same type of controller as specified, regardless of which order it was plugged into a device. Therefore this cannot be used simply to check if all controllers plugged in match all ports as two controllers of the same type i.e. Two XBox One controllers would both be considered equal. Keep this in mind when doing equality comparisons with other controllers. -
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:
getControllers
in interfaceController
-
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:
getComponents
in interfaceController
-
getComponent
Returns a single component based on its identifier, or null if no component with the specified type could be found.- Specified by:
getComponent
in interfaceController
-
getRumblers
Returns the rumblers for sending feedback to this controller, or an empty array if there are no rumblers on this controller.- Specified by:
getRumblers
in interfaceController
-
getPortType
Returns the port type for this Controller.- Specified by:
getPortType
in interfaceController
- Returns:
- PortType.UNKNOWN by default, can be overridden
-
getPortNumber
public int getPortNumber()Returns the zero-based port number for this Controller.- Specified by:
getPortNumber
in interfaceController
- Returns:
- 0 by default, can be overridden
-
getName
Returns a human-readable name for this Controller.- Specified by:
getName
in interfaceController
-
toString
Returns a non-localized string description of this controller. -
getType
Returns the type of the Controller.- Specified by:
getType
in interfaceController
-
setEventQueueSize
public final void setEventQueueSize(int size) Creates a new EventQueue. Events in old queue are lost.- Specified by:
setEventQueueSize
in interfaceController
-
setDeviceEventQueueSize
Plugins override this method to adjust their internal event queue size- Throws:
IOException
-
getEventQueue
Description copied from interface:Controller
Get the device event queue- Specified by:
getEventQueue
in interfaceController
-
getNextDeviceEvent
- Throws:
IOException
-
pollDevice
- Throws:
IOException
-
poll
public boolean poll()Description copied from interface:Controller
Polls axes for data. Returns false if the controller is no longer valid. Polling reflects the current state of the device when polled.- Specified by:
poll
in interfaceController
-