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 Object implements Controller
An AbstractController is a skeleton implementation of a controller that contains a fixed number of axes, controllers, and rumblers.
  • 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 controller
      components - components for the controller
      children - child controllers for the controller
      rumblers - rumblers for the controller
  • Method Details

    • equals

      public boolean equals(Object obj)
      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.
      Overrides:
      equals in class Object
    • getControllers

      public final AbstractController[] 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 interface Controller
    • 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:
      getComponents in interface Controller
    • 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:
      getComponent in interface Controller
    • 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:
      getRumblers in interface Controller
    • getPortType

      public Controller.PortType getPortType()
      Returns the port type for this Controller.
      Specified by:
      getPortType in interface Controller
      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 interface Controller
      Returns:
      0 by default, can be overridden
    • getName

      public final String getName()
      Returns a human-readable name for this Controller.
      Specified by:
      getName in interface Controller
    • toString

      public String toString()
      Returns a non-localized string description of this controller.
      Overrides:
      toString in class Object
    • getType

      public Controller.Type getType()
      Returns the type of the Controller.
      Specified by:
      getType in interface Controller
    • setEventQueueSize

      public final void setEventQueueSize(int size)
      Creates a new EventQueue. Events in old queue are lost.
      Specified by:
      setEventQueueSize in interface Controller
    • setDeviceEventQueueSize

      protected void setDeviceEventQueueSize(int size) throws IOException
      Plugins override this method to adjust their internal event queue size
      Throws:
      IOException
    • getEventQueue

      public final EventQueue getEventQueue()
      Description copied from interface: Controller
      Get the device event queue
      Specified by:
      getEventQueue in interface Controller
    • getNextDeviceEvent

      protected abstract boolean getNextDeviceEvent(Event event) throws IOException
      Throws:
      IOException
    • pollDevice

      protected void pollDevice() throws IOException
      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 interface Controller