Class SdlJoystick


  • public final class SdlJoystick
    extends Object
    Definitions from file SDL_joystick.h

    Include file for SDL joystick event handling

    The term "deviceIndex" identifies currently plugged in joystick devices between 0 and SDL_NumJoysticks(), with the exact joystick behind a deviceIndex changing as joysticks are plugged and unplugged.

    The term "instanceId" is the current instantiation of a joystick device in the system, if the joystick is removed and then re-inserted then it will get a new instanceId, instanceId's are monotonically increasing identifiers of a joystick plugged in.

    The term "playerIndex" is the number assigned to a player on a specific controller. For XInput controllers this returns the XInput user index. Many joysticks will not be able to supply this information.

    The term JoystickGUID is a stable 128-bit identifier for a joystick device that does not change over time, it identifies class of the device (a X360 wired controller for example). This identifier is platform dependent.

    In order to use these functions, SDL_Init() must have been called with the SDL_INIT_JOYSTICK flag. This causes SDL to scan the system for joysticks, and load appropriate drivers.

    If you would like to receive joystick updates while the application is in the background, you should set the following hint before calling SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS

    • Method Detail

      • SDL_LockJoysticks

        public static void SDL_LockJoysticks()
        Locking for multi-threaded access to the joystick API

        If you are using the joystick API or handling events from multiple threads you should use these locking functions to protect access to the joysticks.

        In particular, you are guaranteed that the joystick list won't change, so the API functions that take a joystick index will be valid, and joystick and game controller events will not be delivered.

        As of SDL 2.26.0, you can take the joystick lock around reinitializing the joystick subsystem, to prevent other threads from seeing joysticks in an uninitialized state. However, all open joysticks will be closed and SDL functions called with them will fail.

        Since:
        This function is available since SDL 2.0.7.
      • SDL_UnlockJoysticks

        public static void SDL_UnlockJoysticks()
        Unlocking for multi-threaded access to the joystick API

        If you are using the joystick API or handling events from multiple threads you should use these locking functions to protect access to the joysticks.

        In particular, you are guaranteed that the joystick list won't change, so the API functions that take a joystick index will be valid, and joystick and game controller events will not be delivered.

        Since:
        This function is available since SDL 2.0.7.
      • SDL_JoystickNameForIndex

        public static String SDL_JoystickNameForIndex​(int deviceIndex)
        Get the implementation dependent name of a joystick.

        This can be called before any joysticks are opened.

        Parameters:
        deviceIndex - the index of the joystick to query (the N'th joystick on the system)
        Returns:
        the name of the selected joystick. If no name can be found, this function returns null; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickName(SDL_Joystick), SDL_JoystickOpen(int)
      • SDL_JoystickPathForIndex

        public static String SDL_JoystickPathForIndex​(int deviceIndex)
        Get the implementation dependent path of a joystick.

        This can be called before any joysticks are opened.

        Parameters:
        deviceIndex - the index of the joystick to query (the N'th joystick on the system)
        Returns:
        the path of the selected joystick. If no path can be found, this function returns null; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.24.0.
        See Also:
        SDL_JoystickPath(SDL_Joystick), SDL_JoystickOpen(int)
      • SDL_JoystickGetDevicePlayerIndex

        public static int SDL_JoystickGetDevicePlayerIndex​(int deviceIndex)
        Get the player index of a joystick, or -1 if it's not available This can be called before any joysticks are opened.
        Since:
        This function is available since SDL 2.0.9.
      • SDL_JoystickGetDeviceGUID

        public static SDL_JoystickGUID SDL_JoystickGetDeviceGUID​(int deviceIndex)
        Get the implementation-dependent GUID for the joystick at a given device index.

        This function can be called before any joysticks are opened.

        Parameters:
        deviceIndex - the index of the joystick to query (the N'th joystick on the system
        Returns:
        the GUID of the selected joystick. If called on an invalid index, this function returns a zero GUID
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickGetGUID(SDL_Joystick), SDL_JoystickGetGUIDString(SDL_JoystickGUID)
      • SDL_JoystickGetDeviceVendor

        public static short SDL_JoystickGetDeviceVendor​(int deviceIndex)
        Get the USB vendor ID of a joystick, if available.

        This can be called before any joysticks are opened. If the vendor ID isn't available this function returns 0.

        Parameters:
        deviceIndex - the index of the joystick to query (the N'th joystick on the system
        Returns:
        the USB vendor ID of the selected joystick. If called on an invalid index, this function returns zero
        Since:
        This function is available since SDL 2.0.6.
      • SDL_JoystickGetDeviceProduct

        public static short SDL_JoystickGetDeviceProduct​(int deviceIndex)
        Get the USB product ID of a joystick, if available.

        This can be called before any joysticks are opened. If the product ID isn't available this function returns 0.

        Parameters:
        deviceIndex - the index of the joystick to query (the N'th joystick on the system
        Returns:
        the USB product ID of the selected joystick. If called on an invalid index, this function returns zero
        Since:
        This function is available since SDL 2.0.6.
      • SDL_JoystickGetDeviceProductVersion

        public static short SDL_JoystickGetDeviceProductVersion​(int deviceIndex)
        Get the product version of a joystick, if available.

        This can be called before any joysticks are opened. If the product version isn't available this function returns 0.

        Parameters:
        deviceIndex - the index of the joystick to query (the N'th joystick on the system
        Returns:
        the product version of the selected joystick. If called on an invalid index, this function returns zero
        Since:
        This function is available since SDL 2.0.6.
      • SDL_JoystickGetDeviceType

        public static int SDL_JoystickGetDeviceType​(int deviceIndex)
        Get the type of a joystick, if available.

        This can be called before any joysticks are opened.

        Parameters:
        deviceIndex - the index of the joystick to query (the N'th joystick on the system
        Returns:
        the SDL_JoystickType of the selected joystick. If called on an invalid index, this function returns SDL_JOYSTICK_TYPE_UNKNOWN
        Since:
        This function is available since SDL 2.0.6.
      • SDL_JoystickGetDeviceInstanceID

        public static SDL_JoystickID SDL_JoystickGetDeviceInstanceID​(int deviceIndex)
        Get the instance ID of a joystick.

        This can be called before any joysticks are opened. If the index is out of range, this function will return -1.

        Parameters:
        deviceIndex - the index of the joystick to query (the N'th joystick on the system
        Returns:
        the instance id of the selected joystick. If called on an invalid index, this function returns zero
        Since:
        This function is available since SDL 2.0.6.
      • SDL_JoystickOpen

        public static SDL_Joystick SDL_JoystickOpen​(int deviceIndex)
        Open a joystick for use.

        The deviceIndex argument refers to the N'th joystick presently recognized by SDL on the system. It is **NOT** the same as the instance ID used to identify the joystick in future events. See SDL_JoystickInstanceID() for more details about instance IDs.

        The joystick subsystem must be initialized before a joystick can be opened for use.

        Parameters:
        deviceIndex - the index of the joystick to query
        Returns:
        a joystick identifier or null if an error occurred; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickClose(SDL_Joystick), SDL_JoystickInstanceID(SDL_Joystick)
      • SDL_JoystickFromInstanceID

        public static SDL_Joystick SDL_JoystickFromInstanceID​(SDL_JoystickID instanceId)
        Get the SDL_Joystick associated with an instance id.
        Parameters:
        instanceId - the instance id to get the SDL_Joystick for
        Returns:
        an SDL_Joystick on success or null on failure; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.0.4.
      • SDL_JoystickFromPlayerIndex

        public static SDL_Joystick SDL_JoystickFromPlayerIndex​(int playerIndex)
        Get the SDL_Joystick associated with a player index.
        Parameters:
        playerIndex - the player index to get the SDL_Joystick for
        Returns:
        an SDL_Joystick on success or null on failure; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.0.12.
      • SDL_JoystickAttachVirtual

        public static int SDL_JoystickAttachVirtual​(int type,
                                                    int naxes,
                                                    int nbuttons,
                                                    int nhats)
        Attach a new virtual joystick.
        Returns:
        the joystick's device index, or -1 if an error occurred.
        Since:
        This function is available since SDL 2.0.14.
      • SDL_JoystickAttachVirtualEx

        public static int SDL_JoystickAttachVirtualEx​(SDL_VirtualJoystickDesc desc)
        Attach a new virtual joystick with extended properties.
        Returns:
        the joystick's device index, or -1 if an error occurred.
        Since:
        This function is available since SDL 2.24.0.
      • SDL_JoystickDetachVirtual

        public static int SDL_JoystickDetachVirtual​(int deviceIndex)
        Detach a virtual joystick.
        Parameters:
        deviceIndex - a value previously returned from SDL_JoystickAttachVirtual()
        Returns:
        0 on success, or -1 if an error occurred.
        Since:
        This function is available since SDL 2.0.14.
      • SDL_JoystickIsVirtual

        public static boolean SDL_JoystickIsVirtual​(int deviceIndex)
        Query whether or not the joystick at a given device index is virtual.
        Parameters:
        deviceIndex - a joystick device index.
        Returns:
        true if the joystick is virtual, false otherwise.
        Since:
        This function is available since SDL 2.0.14.
      • SDL_JoystickSetVirtualAxis

        public static int SDL_JoystickSetVirtualAxis​(SDL_Joystick joystick,
                                                     int axis,
                                                     short value)
        Set values on an opened, virtual-joystick's axis.

        Please note that values set here will not be applied until the next call to SDL_JoystickUpdate, which can either be called directly, or can be called indirectly through various other SDL APIs, including, but not limited to the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, SDL_WaitEvent.

        Note that when sending trigger axes, you should scale the value to the full range of short data type. For example, a trigger at rest would have the value of SDL_JOYSTICK_AXIS_MIN.

        Parameters:
        joystick - the virtual joystick on which to set state.
        axis - the specific axis on the virtual joystick to set.
        value - the new value for the specified axis.
        Returns:
        0 on success, -1 on error.
        Since:
        This function is available since SDL 2.0.14.
      • SDL_JoystickSetVirtualButton

        public static int SDL_JoystickSetVirtualButton​(SDL_Joystick joystick,
                                                       int button,
                                                       byte value)
        Set values on an opened, virtual-joystick's button.

        Please note that values set here will not be applied until the next call to SDL_JoystickUpdate, which can either be called directly, or can be called indirectly through various other SDL APIs, including, but not limited to the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, SDL_WaitEvent.

        Parameters:
        joystick - the virtual joystick on which to set state.
        button - the specific button on the virtual joystick to set.
        value - the new value for the specified button.
        Returns:
        0 on success, -1 on error.
        Since:
        This function is available since SDL 2.0.14.
      • SDL_JoystickSetVirtualHat

        public static int SDL_JoystickSetVirtualHat​(SDL_Joystick joystick,
                                                    int hat,
                                                    byte value)
        Set values on an opened, virtual-joystick's hat.

        Please note that values set here will not be applied until the next call to SDL_JoystickUpdate, which can either be called directly, or can be called indirectly through various other SDL APIs, including, but not limited to the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, SDL_WaitEvent.

        Parameters:
        joystick - the virtual joystick on which to set state.
        hat - the specific hat on the virtual joystick to set.
        value - the new value for the specified hat.
        Returns:
        0 on success, -1 on error.
        Since:
        This function is available since SDL 2.0.14.
      • SDL_JoystickName

        public static String SDL_JoystickName​(SDL_Joystick joystick)
        Get the implementation dependent name of a joystick.
        Parameters:
        joystick - the SDL_Joystick obtained from SDL_JoystickOpen()
        Returns:
        the name of the selected joystick. If no name can be found, this function returns null; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickNameForIndex(int), SDL_JoystickOpen(int)
      • SDL_JoystickPath

        public static String SDL_JoystickPath​(SDL_Joystick joystick)
        Get the implementation dependent path of a joystick.
        Parameters:
        joystick - the SDL_Joystick obtained from SDL_JoystickOpen()
        Returns:
        the path of the selected joystick. If no path can be found, this function returns null; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.24.0.
        See Also:
        SDL_JoystickPathForIndex(int)
      • SDL_JoystickGetPlayerIndex

        public static int SDL_JoystickGetPlayerIndex​(SDL_Joystick joystick)
        Get the player index of an opened joystick.

        For XInput controllers this returns the XInput user index. Many joysticks will not be able to supply this information.

        Parameters:
        joystick - the SDL_Joystick obtained from SDL_JoystickOpen()
        Returns:
        the player index, or -1 if it's not available.
        Since:
        This function is available since SDL 2.0.9.
      • SDL_JoystickSetPlayerIndex

        public static void SDL_JoystickSetPlayerIndex​(SDL_Joystick joystick,
                                                      int playerIndex)
        Set the player index of an opened joystick.
        Parameters:
        joystick - the SDL_Joystick obtained from SDL_JoystickOpen()
        playerIndex - Player index to assign to this joystick, or -1 to clear the player index and turn off player LEDs.
        Since:
        This function is available since SDL 2.0.12.
      • SDL_JoystickGetGUID

        public static SDL_JoystickGUID SDL_JoystickGetGUID​(SDL_Joystick joystick)
        Get the implementation-dependent GUID for the joystick.

        This function requires an open joystick.

        Parameters:
        joystick - the SDL_Joystick obtained from SDL_JoystickOpen()
        Returns:
        the GUID of the given joystick. If called on an invalid index, this function returns a zero GUID; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickGetDeviceGUID(int), SDL_JoystickGetGUIDString(SDL_JoystickGUID)
      • SDL_JoystickGetVendor

        public static short SDL_JoystickGetVendor​(SDL_Joystick joystick)
        Get the USB vendor ID of an opened joystick, if available.

        If the vendor ID isn't available this function returns 0.

        Parameters:
        joystick - the SDL_Joystick obtained from SDL_JoystickOpen()
        Returns:
        the USB vendor ID of the selected joystick, or 0 if unavailable.
        Since:
        This function is available since SDL 2.0.6.
      • SDL_JoystickGetProduct

        public static short SDL_JoystickGetProduct​(SDL_Joystick joystick)
        Get the USB product ID of an opened joystick, if available.

        If the product ID isn't available this function returns 0.

        Parameters:
        joystick - the SDL_Joystick obtained from SDL_JoystickOpen()
        Returns:
        the USB product ID of the selected joystick, or 0 if unavailable.
        Since:
        This function is available since SDL 2.0.6.
      • SDL_JoystickGetProductVersion

        public static short SDL_JoystickGetProductVersion​(SDL_Joystick joystick)
        Get the product version of an opened joystick, if available.

        If the product version isn't available this function returns 0.

        Parameters:
        joystick - the SDL_Joystick obtained from SDL_JoystickOpen()
        Returns:
        the product version of the selected joystick, or 0 if unavailable.
        Since:
        This function is available since SDL 2.0.6.
      • SDL_JoystickGetFirmwareVersion

        public static short SDL_JoystickGetFirmwareVersion​(SDL_Joystick joystick)
        Get the firmware version of an opened joystick, if available.

        If the firmware version isn't available this function returns 0.

        Parameters:
        joystick - the SDL_Joystick obtained from SDL_JoystickOpen()
        Returns:
        the firmware version of the selected joystick, or 0 if unavailable.
        Since:
        This function is available since SDL 2.24.0.
      • SDL_JoystickGetSerial

        public static String SDL_JoystickGetSerial​(SDL_Joystick joystick)
        Get the serial number of an opened joystick, if available.

        Returns the serial number of the joystick, or null if it is not available.

        Parameters:
        joystick - the SDL_Joystick obtained from SDL_JoystickOpen()
        Returns:
        the serial number of the selected joystick, or null if unavailable.
        Since:
        This function is available since SDL 2.0.14.
      • SDL_JoystickGetType

        public static int SDL_JoystickGetType​(SDL_Joystick joystick)
        Get the type of an opened joystick.
        Parameters:
        joystick - the SDL_Joystick obtained from SDL_JoystickOpen()
        Returns:
        the SDL_JoystickType of the selected joystick.
        Since:
        This function is available since SDL 2.0.6.
      • SDL_JoystickGetGUIDFromString

        public static SDL_JoystickGUID SDL_JoystickGetGUIDFromString​(String pchGUID)
        Convert a GUID string into a SDL_JoystickGUID structure.

        Performs no error checking. If this function is given a string containing an invalid GUID, the function will silently succeed, but the GUID generated will not be useful.

        Parameters:
        pchGUID - string containing an ASCII representation of a GUID
        Returns:
        a SDL_JoystickGUID structure.
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickGetGUIDString(SDL_JoystickGUID)
      • SDL_GetJoystickGUIDInfo

        public static void SDL_GetJoystickGUIDInfo​(SDL_JoystickGUID guid,
                                                   com.sun.jna.ptr.ShortByReference vendor,
                                                   com.sun.jna.ptr.ShortByReference product,
                                                   com.sun.jna.ptr.ShortByReference version,
                                                   com.sun.jna.ptr.ShortByReference crc16)
        Get the device information encoded in a SDL_JoystickGUID structure
        Parameters:
        guid - the SDL_JoystickGUID you wish to get info about
        vendor - A pointer filled in with the device VID, or 0 if not available
        product - A pointer filled in with the device PID, or 0 if not available
        version - A pointer filled in with the device version, or 0 if not available
        crc16 - A pointer filled in with a CRC used to distinguish different products with the same VID/PID, or 0 if not available
        Since:
        This function is available since SDL 2.26.0.
        See Also:
        SDL_JoystickGetDeviceGUID(int)
      • SDL_JoystickGetAttached

        public static boolean SDL_JoystickGetAttached​(SDL_Joystick joystick)
        Get the status of a specified joystick.
        Parameters:
        joystick - the joystick to query
        Returns:
        true if the joystick has been opened, false if it has not; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickClose(SDL_Joystick), SDL_JoystickOpen(int)
      • SDL_JoystickInstanceID

        public static SDL_JoystickID SDL_JoystickInstanceID​(SDL_Joystick joystick)
        Get the instance ID of an opened joystick.
        Parameters:
        joystick - an SDL_Joystick structure containing joystick information
        Returns:
        the instance ID of the specified joystick on success or a negative error code on failure; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickOpen(int)
      • SDL_JoystickNumAxes

        public static int SDL_JoystickNumAxes​(SDL_Joystick joystick)
        Get the number of general axis controls on a joystick.

        Often, the directional pad on a game controller will either look like 4 separate buttons or a POV hat, and not axes, but all of this is up to the device and platform.

        Parameters:
        joystick - an SDL_Joystick structure containing joystick information
        Returns:
        the number of axis controls/number of axes on success or a negative error code on failure; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickGetAxis(SDL_Joystick, int), SDL_JoystickOpen(int)
      • SDL_JoystickNumBalls

        public static int SDL_JoystickNumBalls​(SDL_Joystick joystick)
        Get the number of trackballs on a joystick.

        Joystick trackballs have only relative motion events associated with them and their state cannot be polled.

        Most joysticks do not have trackballs.

        Parameters:
        joystick - an SDL_Joystick structure containing joystick information
        Returns:
        the number of trackballs on success or a negative error code on failure; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickGetBall(SDL_Joystick, int, IntByReference, IntByReference)
      • SDL_JoystickNumHats

        public static int SDL_JoystickNumHats​(SDL_Joystick joystick)
        Get the number of POV hats on a joystick.
        Parameters:
        joystick - an SDL_Joystick structure containing joystick information
        Returns:
        the number of POV hats on success or a negative error code on failure; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickGetHat(SDL_Joystick, int), SDL_JoystickOpen(int)
      • SDL_JoystickNumButtons

        public static int SDL_JoystickNumButtons​(SDL_Joystick joystick)
        Get the number of buttons on a joystick.
        Parameters:
        joystick - an SDL_Joystick structure containing joystick information
        Returns:
        the number of buttons on success or a negative error code on failure; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickGetButton(SDL_Joystick, int), SDL_JoystickOpen(int)
      • SDL_JoystickUpdate

        public static void SDL_JoystickUpdate()
        Update the current state of the open joysticks.

        This is called automatically by the event loop if any joystick events are enabled.

        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickEventState(int)
      • SDL_JoystickEventState

        public static int SDL_JoystickEventState​(int state)
        Enable/disable joystick event polling.

        If joystick events are disabled, you must call SDL_JoystickUpdate() yourself and manually check the state of the joystick when you want joystick information.

        It is recommended that you leave joystick event handling enabled.

        **WARNING**: Calling this function may delete all events currently in SDL's event queue.
        Parameters:
        state - can be one of SDL_QUERY, SDL_IGNORE, or SDL_ENABLE
        Returns:
        1 if enabled, 0 if disabled, or a negative error code on failure; call SDL_GetError() for more information.

        If state is SDL_QUERY then the current state is returned, otherwise the new processing state is returned.

        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SdlGamecontroller.SDL_GameControllerEventState(int)
      • SDL_JoystickGetAxis

        public static short SDL_JoystickGetAxis​(SDL_Joystick joystick,
                                                int axis)
        Get the current state of an axis control on a joystick.

        SDL makes no promises about what part of the joystick any given axis refers to. Your game should have some sort of configuration UI to let users specify what each axis should be bound to. Alternately, SDL's higher-level Game Controller API makes a great effort to apply order to this lower-level interface, so you know that a specific axis is the "left thumb stick," etc.

        The value returned by SDL_JoystickGetAxis() is a signed integer (-32768 to 32767) representing the current position of the axis. It may be necessary to impose certain tolerances on these values to account for jitter.

        Parameters:
        joystick - an SDL_Joystick structure containing joystick information
        axis - the axis to query; the axis indices start at index 0
        Returns:
        a 16-bit signed integer representing the current position of the axis or 0 on failure; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickNumAxes(SDL_Joystick)
      • SDL_JoystickGetAxisInitialState

        public static boolean SDL_JoystickGetAxisInitialState​(SDL_Joystick joystick,
                                                              int axis,
                                                              com.sun.jna.ptr.ShortByReference state)
        Get the initial state of an axis control on a joystick.

        The state is a value ranging from -32768 to 32767.

        The axis indices start at index 0.

        Parameters:
        joystick - an SDL_Joystick structure containing joystick information
        axis - the axis to query; the axis indices start at index 0
        state - Upon return, the initial value is supplied here.
        Returns:
        true if this axis has any initial value, or false if not.
        Since:
        This function is available since SDL 2.0.6.
      • SDL_JoystickGetHat

        public static byte SDL_JoystickGetHat​(SDL_Joystick joystick,
                                              int hat)
        Get the current state of a POV hat on a joystick.

        The returned value will be one of the following positions:

        - SDL_HAT_CENTERED - SDL_HAT_UP - SDL_HAT_RIGHT - SDL_HAT_DOWN - SDL_HAT_LEFT - SDL_HAT_RIGHTUP - SDL_HAT_RIGHTDOWN - SDL_HAT_LEFTUP - SDL_HAT_LEFTDOWN
        Parameters:
        joystick - an SDL_Joystick structure containing joystick information
        hat - the hat index to get the state from; indices start at index 0
        Returns:
        the current hat position.
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickNumHats(SDL_Joystick)
      • SDL_JoystickGetBall

        public static int SDL_JoystickGetBall​(SDL_Joystick joystick,
                                              int ball,
                                              com.sun.jna.ptr.IntByReference dx,
                                              com.sun.jna.ptr.IntByReference dy)
        Get the ball axis change since the last poll.

        Trackballs can only return relative motion since the last call to SDL_JoystickGetBall(), these motion deltas are placed into dx and dy.

        Most joysticks do not have trackballs.

        Parameters:
        joystick - the SDL_Joystick to query
        ball - the ball index to query; ball indices start at index 0
        dx - stores the difference in the x axis position since the last poll
        dy - stores the difference in the y axis position since the last poll
        Returns:
        0 on success or a negative error code on failure; call SDL_GetError() for more information.
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickNumBalls(SDL_Joystick)
      • SDL_JoystickGetButton

        public static byte SDL_JoystickGetButton​(SDL_Joystick joystick,
                                                 int button)
        Get the current state of a button on a joystick.
        Parameters:
        joystick - an SDL_Joystick structure containing joystick information
        button - the button index to get the state from; indices start at index 0
        Returns:
        1 if the specified button is pressed, 0 otherwise.
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickNumButtons(SDL_Joystick)
      • SDL_JoystickRumble

        public static int SDL_JoystickRumble​(SDL_Joystick joystick,
                                             short lowFrequencyRumble,
                                             short highFrequencyRumble,
                                             int durationMs)
        Start a rumble effect.

        Each call to this function cancels any previous rumble effect, and calling it with 0 intensity stops any rumbling.

        Parameters:
        joystick - The joystick to vibrate
        lowFrequencyRumble - The intensity of the low frequency (left) rumble motor, from 0 to 0xFFFF
        highFrequencyRumble - The intensity of the high frequency (right) rumble motor, from 0 to 0xFFFF
        durationMs - The duration of the rumble effect, in milliseconds
        Returns:
        0, or -1 if rumble isn't supported on this joystick
        Since:
        This function is available since SDL 2.0.9.
        See Also:
        SDL_JoystickHasRumble(SDL_Joystick)
      • SDL_JoystickRumbleTriggers

        public static int SDL_JoystickRumbleTriggers​(SDL_Joystick joystick,
                                                     short leftRumble,
                                                     short rightRumble,
                                                     int durationMs)
        Start a rumble effect in the joystick's triggers

        Each call to this function cancels any previous trigger rumble effect, and calling it with 0 intensity stops any rumbling.

        Note that this is rumbling of the _triggers_ and not the game controller as a whole. This is currently only supported on Xbox One controllers. If you want the (more common) whole-controller rumble, use SDL_JoystickRumble() instead.

        Parameters:
        joystick - The joystick to vibrate
        leftRumble - The intensity of the left trigger rumble motor, from 0 to 0xFFFF
        rightRumble - The intensity of the right trigger rumble motor, from 0 to 0xFFFF
        durationMs - The duration of the rumble effect, in milliseconds
        Returns:
        0, or -1 if trigger rumble isn't supported on this joystick
        Since:
        This function is available since SDL 2.0.14.
        See Also:
        SDL_JoystickHasRumbleTriggers(SDL_Joystick)
      • SDL_JoystickHasLED

        public static boolean SDL_JoystickHasLED​(SDL_Joystick joystick)
        Query whether a joystick has an LED.

        An example of a joystick LED is the light on the back of a PlayStation 4's DualShock 4 controller.

        Parameters:
        joystick - The joystick to query
        Returns:
        true if the joystick has a modifiable LED, false otherwise.
        Since:
        This function is available since SDL 2.0.14.
      • SDL_JoystickHasRumble

        public static boolean SDL_JoystickHasRumble​(SDL_Joystick joystick)
        Query whether a joystick has rumble support.
        Parameters:
        joystick - The joystick to query
        Returns:
        true if the joystick has rumble, false otherwise.
        Since:
        This function is available since SDL 2.0.18.
        See Also:
        SDL_JoystickRumble(SDL_Joystick, short, short, int)
      • SDL_JoystickHasRumbleTriggers

        public static boolean SDL_JoystickHasRumbleTriggers​(SDL_Joystick joystick)
        Query whether a joystick has rumble support on triggers.
        Parameters:
        joystick - The joystick to query
        Returns:
        true if the joystick has trigger rumble, false otherwise.
        Since:
        This function is available since SDL 2.0.18.
        See Also:
        SDL_JoystickRumbleTriggers(SDL_Joystick, short, short, int)
      • SDL_JoystickSetLED

        public static int SDL_JoystickSetLED​(SDL_Joystick joystick,
                                             byte red,
                                             byte green,
                                             byte blue)
        Update a joystick's LED color.

        An example of a joystick LED is the light on the back of a PlayStation 4's DualShock 4 controller.

        Parameters:
        joystick - The joystick to update
        red - The intensity of the red LED
        green - The intensity of the green LED
        blue - The intensity of the blue LED
        Returns:
        0 on success, -1 if this joystick does not have a modifiable LED
        Since:
        This function is available since SDL 2.0.14.
      • SDL_JoystickSendEffect

        public static int SDL_JoystickSendEffect​(SDL_Joystick joystick,
                                                 com.sun.jna.Pointer data,
                                                 int size)
        Send a joystick specific effect packet
        Parameters:
        joystick - The joystick to affect
        data - The data to send to the joystick
        size - The size of the data to send to the joystick
        Returns:
        0, or -1 if this joystick or driver doesn't support effect packets
        Since:
        This function is available since SDL 2.0.16.
      • SDL_JoystickClose

        public static void SDL_JoystickClose​(SDL_Joystick joystick)
        Close a joystick previously opened with SDL_JoystickOpen().
        Parameters:
        joystick - The joystick device to close
        Since:
        This function is available since SDL 2.0.0.
        See Also:
        SDL_JoystickOpen(int)
      • SDL_JoystickCurrentPowerLevel

        public static int SDL_JoystickCurrentPowerLevel​(SDL_Joystick joystick)
        Get the battery level of a joystick as SDL_JoystickPowerLevel.
        Parameters:
        joystick - the SDL_Joystick to query
        Returns:
        the current battery level as SDL_JoystickPowerLevel on success or SDL_JOYSTICK_POWER_UNKNOWN if it is unknown
        Since:
        This function is available since SDL 2.0.4.