pub use crate::{error::*, joystick::*, rwops::*, stdinc::*};
#[repr(transparent)]
pub struct SDL_GameController(c_void);
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)]
pub struct SDL_GameControllerType(pub i32);
#[allow(missing_docs)]
pub const SDL_CONTROLLER_TYPE_UNKNOWN: SDL_GameControllerType =
SDL_GameControllerType(0);
#[allow(missing_docs)]
pub const SDL_CONTROLLER_TYPE_XBOX360: SDL_GameControllerType =
SDL_GameControllerType(1);
#[allow(missing_docs)]
pub const SDL_CONTROLLER_TYPE_XBOXONE: SDL_GameControllerType =
SDL_GameControllerType(2);
#[allow(missing_docs)]
pub const SDL_CONTROLLER_TYPE_PS3: SDL_GameControllerType =
SDL_GameControllerType(3);
#[allow(missing_docs)]
pub const SDL_CONTROLLER_TYPE_PS4: SDL_GameControllerType =
SDL_GameControllerType(4);
#[allow(missing_docs)]
pub const SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO: SDL_GameControllerType =
SDL_GameControllerType(5);
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)]
pub struct SDL_GameControllerBindType(pub i32);
#[allow(missing_docs)]
pub const SDL_CONTROLLER_BINDTYPE_NONE: SDL_GameControllerBindType =
SDL_GameControllerBindType(0);
#[allow(missing_docs)]
pub const SDL_CONTROLLER_BINDTYPE_BUTTON: SDL_GameControllerBindType =
SDL_GameControllerBindType(1);
#[allow(missing_docs)]
pub const SDL_CONTROLLER_BINDTYPE_AXIS: SDL_GameControllerBindType =
SDL_GameControllerBindType(2);
#[allow(missing_docs)]
pub const SDL_CONTROLLER_BINDTYPE_HAT: SDL_GameControllerBindType =
SDL_GameControllerBindType(3);
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(C)]
#[allow(missing_docs)]
pub struct SDL_GameControllerButtonBind_hat_data {
pub hat: c_int,
pub hat_mask: c_int,
}
#[derive(Clone, Copy)]
#[repr(C, align(4))] #[allow(missing_docs)]
pub union SDL_GameControllerButtonBind_value_data {
pub button: c_int,
pub axis: c_int,
pub hat: SDL_GameControllerButtonBind_hat_data,
}
#[derive(Clone, Copy)]
#[repr(C)]
#[allow(missing_docs)]
pub struct SDL_GameControllerButtonBind {
pub bindType: SDL_GameControllerBindType,
pub value: SDL_GameControllerButtonBind_value_data,
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)]
pub struct SDL_GameControllerAxis(pub i32);
pub const SDL_CONTROLLER_AXIS_INVALID: SDL_GameControllerAxis =
SDL_GameControllerAxis(-1);
pub const SDL_CONTROLLER_AXIS_LEFTX: SDL_GameControllerAxis =
SDL_GameControllerAxis(0);
pub const SDL_CONTROLLER_AXIS_LEFTY: SDL_GameControllerAxis =
SDL_GameControllerAxis(1);
pub const SDL_CONTROLLER_AXIS_RIGHTX: SDL_GameControllerAxis =
SDL_GameControllerAxis(2);
pub const SDL_CONTROLLER_AXIS_RIGHTY: SDL_GameControllerAxis =
SDL_GameControllerAxis(3);
pub const SDL_CONTROLLER_AXIS_TRIGGERLEFT: SDL_GameControllerAxis =
SDL_GameControllerAxis(4);
pub const SDL_CONTROLLER_AXIS_TRIGGERRIGHT: SDL_GameControllerAxis =
SDL_GameControllerAxis(5);
pub const SDL_CONTROLLER_AXIS_MAX: usize = 6;
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)]
pub struct SDL_GameControllerButton(pub i32);
pub const SDL_CONTROLLER_BUTTON_INVALID: SDL_GameControllerButton =
SDL_GameControllerButton(-1);
pub const SDL_CONTROLLER_BUTTON_A: SDL_GameControllerButton =
SDL_GameControllerButton(0);
pub const SDL_CONTROLLER_BUTTON_B: SDL_GameControllerButton =
SDL_GameControllerButton(1);
pub const SDL_CONTROLLER_BUTTON_X: SDL_GameControllerButton =
SDL_GameControllerButton(2);
pub const SDL_CONTROLLER_BUTTON_Y: SDL_GameControllerButton =
SDL_GameControllerButton(3);
pub const SDL_CONTROLLER_BUTTON_BACK: SDL_GameControllerButton =
SDL_GameControllerButton(4);
pub const SDL_CONTROLLER_BUTTON_GUIDE: SDL_GameControllerButton =
SDL_GameControllerButton(5);
pub const SDL_CONTROLLER_BUTTON_START: SDL_GameControllerButton =
SDL_GameControllerButton(6);
pub const SDL_CONTROLLER_BUTTON_LEFTSTICK: SDL_GameControllerButton =
SDL_GameControllerButton(7);
pub const SDL_CONTROLLER_BUTTON_RIGHTSTICK: SDL_GameControllerButton =
SDL_GameControllerButton(8);
pub const SDL_CONTROLLER_BUTTON_LEFTSHOULDER: SDL_GameControllerButton =
SDL_GameControllerButton(9);
pub const SDL_CONTROLLER_BUTTON_RIGHTSHOULDER: SDL_GameControllerButton =
SDL_GameControllerButton(10);
pub const SDL_CONTROLLER_BUTTON_DPAD_UP: SDL_GameControllerButton =
SDL_GameControllerButton(11);
pub const SDL_CONTROLLER_BUTTON_DPAD_DOWN: SDL_GameControllerButton =
SDL_GameControllerButton(12);
pub const SDL_CONTROLLER_BUTTON_DPAD_LEFT: SDL_GameControllerButton =
SDL_GameControllerButton(13);
pub const SDL_CONTROLLER_BUTTON_DPAD_RIGHT: SDL_GameControllerButton =
SDL_GameControllerButton(14);
pub const SDL_CONTROLLER_BUTTON_MAX: usize = 15;
pub unsafe fn SDL_GameControllerAddMappingsFromFile(
file: *const c_char,
) -> c_int {
SDL_GameControllerAddMappingsFromRW(
SDL_RWFromFile(file, b"rb\0".as_ptr().cast()),
1,
)
}
extern "C" {
pub fn SDL_GameControllerAddMappingsFromRW(
rw: *mut SDL_RWops, freerw: c_int,
) -> c_int;
pub fn SDL_GameControllerAddMapping(mappingString: *const c_char) -> c_int;
pub fn SDL_GameControllerNumMappings() -> c_int;
pub fn SDL_GameControllerMappingForIndex(mapping_index: c_int)
-> *mut c_char;
pub fn SDL_GameControllerMappingForGUID(
guid: SDL_JoystickGUID,
) -> *mut c_char;
pub fn SDL_GameControllerMapping(
gamecontroller: *mut SDL_GameController,
) -> *mut c_char;
pub fn SDL_IsGameController(joystick_index: c_int) -> SDL_bool;
pub fn SDL_GameControllerNameForIndex(joystick_index: c_int)
-> *const c_char;
pub fn SDL_GameControllerTypeForIndex(
joystick_index: c_int,
) -> SDL_GameControllerType;
pub fn SDL_GameControllerMappingForDeviceIndex(
joystick_index: c_int,
) -> *mut c_char;
pub fn SDL_GameControllerOpen(
joystick_index: c_int,
) -> *mut SDL_GameController;
pub fn SDL_GameControllerFromInstanceID(
joyid: SDL_JoystickID,
) -> *mut SDL_GameController;
pub fn SDL_GameControllerFromPlayerIndex(
player_index: c_int,
) -> *mut SDL_GameController;
pub fn SDL_GameControllerName(
gamecontroller: *mut SDL_GameController,
) -> *const c_char;
pub fn SDL_GameControllerGetType(
gamecontroller: *mut SDL_GameController,
) -> SDL_GameControllerType;
pub fn SDL_GameControllerGetPlayerIndex(
gamecontroller: *mut SDL_GameController,
) -> c_int;
pub fn SDL_GameControllerSetPlayerIndex(
gamecontroller: *mut SDL_GameController, player_index: c_int,
);
pub fn SDL_GameControllerGetVendor(
gamecontroller: *mut SDL_GameController,
) -> Uint16;
pub fn SDL_GameControllerGetProduct(
gamecontroller: *mut SDL_GameController,
) -> Uint16;
pub fn SDL_GameControllerGetProductVersion(
gamecontroller: *mut SDL_GameController,
) -> Uint16;
pub fn SDL_GameControllerGetAttached(
gamecontroller: *mut SDL_GameController,
) -> SDL_bool;
pub fn SDL_GameControllerGetJoystick(
gamecontroller: *mut SDL_GameController,
) -> *mut SDL_Joystick;
pub fn SDL_GameControllerEventState(state: c_int) -> c_int;
pub fn SDL_GameControllerUpdate();
pub fn SDL_GameControllerGetAxisFromString(
pchString: *const c_char,
) -> SDL_GameControllerAxis;
pub fn SDL_GameControllerGetStringForAxis(
axis: SDL_GameControllerAxis,
) -> *const c_char;
pub fn SDL_GameControllerGetBindForAxis(
gamecontroller: *mut SDL_GameController, axis: SDL_GameControllerAxis,
) -> SDL_GameControllerButtonBind;
pub fn SDL_GameControllerGetAxis(
gamecontroller: *mut SDL_GameController, axis: SDL_GameControllerAxis,
) -> Sint16;
pub fn SDL_GameControllerGetButtonFromString(
pchString: *const c_char,
) -> SDL_GameControllerButton;
pub fn SDL_GameControllerGetStringForButton(
button: SDL_GameControllerButton,
) -> *const c_char;
pub fn SDL_GameControllerGetBindForButton(
gamecontroller: *mut SDL_GameController, button: SDL_GameControllerButton,
) -> SDL_GameControllerButtonBind;
pub fn SDL_GameControllerGetButton(
gamecontroller: *mut SDL_GameController, button: SDL_GameControllerButton,
) -> Uint8;
pub fn SDL_GameControllerRumble(
gamecontroller: *mut SDL_GameController, low_frequency_rumble: Uint16,
high_frequency_rumble: Uint16, duration_ms: Uint32,
) -> c_int;
pub fn SDL_GameControllerClose(gamecontroller: *mut SDL_GameController);
}