// Path: src/main/java/com/github/strikerx3/jxinput/enums/XInputButton.java
// public enum XInputButton {
// 	A, B, X, Y,
// 	BACK, START,
// 	LEFT_SHOULDER, RIGHT_SHOULDER,
// 	LEFT_THUMBSTICK, RIGHT_THUMBSTICK,
// 	DPAD_UP, DPAD_DOWN, DPAD_LEFT, DPAD_RIGHT,
// 	GUIDE_BUTTON, UNKNOWN;
// }


import com.github.strikerx3.jxinput.enums.XInputButton;
package com.github.strikerx3.jxinput.listener;


/**
 * Listens to all XInput events.
 * The {@link SimpleXInputDeviceListener} class provides empty implementations of the methods in this interface
 * for easier subclassing.
 *
 * @author Ivan "StrikerX3" Oliveira
 */
public interface XInputDeviceListener {
    /**
     * Called when the device is connected.
     */
    void connected();

    /**
     * Called when the device is disconnected.
     */
    void disconnected();

    /**
     * Called when a button is pressed or released.
     *
     * @param button the button
     * @param pressed <code>true</code> if the button was pressed, <code>false</code> if released.
     */
// Path: src/main/java/com/github/strikerx3/jxinput/enums/XInputButton.java
// public enum XInputButton {
// 	A, B, X, Y,
// 	BACK, START,
// 	LEFT_SHOULDER, RIGHT_SHOULDER,
// 	LEFT_THUMBSTICK, RIGHT_THUMBSTICK,
// 	DPAD_UP, DPAD_DOWN, DPAD_LEFT, DPAD_RIGHT,
// 	GUIDE_BUTTON, UNKNOWN;
// }


// Path: src/main/java/com/github/strikerx3/jxinput/listener/XInputDeviceListener.java
import com.github.strikerx3.jxinput.enums.XInputButton;

package com.github.strikerx3.jxinput.listener;


/**
 * Listens to all XInput events.
 * The {@link SimpleXInputDeviceListener} class provides empty implementations of the methods in this interface
 * for easier subclassing.
 *
 * @author Ivan "StrikerX3" Oliveira
 */
public interface XInputDeviceListener {
    /**
     * Called when the device is connected.
     */
    void connected();

    /**
     * Called when the device is disconnected.
     */
    void disconnected();

    /**
     * Called when a button is pressed or released.
     *
     * @param button the button
     * @param pressed <code>true</code> if the button was pressed, <code>false</code> if released.
     */
    void buttonChanged(final XInputButton button, final boolean pressed);