123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- package sdl2
- import "core:c"
- when ODIN_OS == .Windows {
- foreign import lib "SDL2.lib"
- } else {
- foreign import lib "system:SDL2"
- }
- Joystick :: struct {}
- JoystickGUID :: struct {
- data: [16]u8,
- }
- JoystickID :: distinct i32
- JoystickType :: enum c.int {
- UNKNOWN,
- GAMECONTROLLER,
- WHEEL,
- ARCADE_STICK,
- FLIGHT_STICK,
- DANCE_PAD,
- GUITAR,
- DRUM_KIT,
- ARCADE_PAD,
- THROTTLE,
- }
- JoystickPowerLevel :: enum c.int {
- UNKNOWN = -1,
- EMPTY, /* <= 5% */
- LOW, /* <= 20% */
- MEDIUM, /* <= 70% */
- FULL, /* <= 100% */
- WIRED,
- MAX,
- }
- IPHONE_MAX_GFORCE :: 5.0
- JOYSTICK_AXIS_MAX :: +32767
- JOYSTICK_AXIS_MIN :: -32768
- HAT_CENTERED :: 0x00
- HAT_UP :: 0x01
- HAT_RIGHT :: 0x02
- HAT_DOWN :: 0x04
- HAT_LEFT :: 0x08
- HAT_RIGHTUP :: HAT_RIGHT|HAT_UP
- HAT_RIGHTDOWN :: HAT_RIGHT|HAT_DOWN
- HAT_LEFTUP :: HAT_LEFT|HAT_UP
- HAT_LEFTDOWN :: HAT_LEFT|HAT_DOWN
- @(default_calling_convention="c", link_prefix="SDL_")
- foreign lib {
- LockJoysticks :: proc() ---
- UnlockJoysticks :: proc() ---
- NumJoysticks :: proc() -> c.int ---
- JoystickNameForIndex :: proc(device_index: c.int) -> cstring ---
- JoystickGetDevicePlayerIndex :: proc(device_index: c.int) -> c.int ---
- JoystickGetDeviceGUID :: proc(device_index: c.int) -> JoystickGUID ---
- JoystickGetDeviceVendor :: proc(device_index: c.int) -> u16 ---
- JoystickGetDeviceProduct :: proc(device_index: c.int) -> u16 ---
- JoystickGetDeviceProductVersion :: proc(device_index: c.int) -> u16 ---
- JoystickGetDeviceType :: proc(device_index: c.int) -> JoystickType ---
- JoystickGetDeviceInstanceID :: proc(device_index: c.int) -> JoystickID ---
- JoystickOpen :: proc(device_index: c.int) -> ^Joystick ---
- JoystickFromInstanceID :: proc(instance_id: JoystickID ) -> ^Joystick ---
- JoystickFromPlayerIndex :: proc(player_index: c.int) -> ^Joystick ---
- JoystickAttachVirtual :: proc(type: JoystickType, naxes, nbuttons, nhats: c.int) -> c.int ---
- JoystickDetachVirtual :: proc(device_index: c.int) -> c.int ---
- JoystickIsVirtual :: proc(device_index: c.int) -> bool ---
- JoystickSetVirtualAxis :: proc(joystick: ^Joystick, axis: c.int, value: i16) -> c.int ---
- JoystickSetVirtualButton :: proc(joystick: ^Joystick, button: c.int, value: u8) -> c.int ---
- JoystickSetVirtualHat :: proc(joystick: ^Joystick, hat: c.int, value: u8) -> c.int ---
- JoystickName :: proc(joystick: ^Joystick) -> cstring ---
- JoystickGetPlayerIndex :: proc(joystick: ^Joystick) -> c.int ---
- JoystickSetPlayerIndex :: proc(joystick: ^Joystick, player_index: c.int) ---
- JoystickGetGUID :: proc(joystick: ^Joystick) -> JoystickGUID ---
- JoystickGetVendor :: proc(joystick: ^Joystick) -> u16 ---
- JoystickGetProduct :: proc(joystick: ^Joystick) -> u16 ---
- JoystickGetProductVersion :: proc(joystick: ^Joystick) -> u16 ---
- JoystickGetSerial :: proc(joystick: ^Joystick) -> cstring ---
- JoystickGetType :: proc(joystick: ^Joystick) -> JoystickType ---
- JoystickGetGUIDString :: proc(guid: JoystickGUID, pszGUID: [^]u8, cbGUID: c.int) ---
- JoystickGetGUIDFromString :: proc(pchGUID: cstring) -> JoystickGUID ---
- JoystickGetAttached :: proc(joystick: ^Joystick) -> bool ---
- JoystickInstanceID :: proc(joystick: ^Joystick) -> JoystickID ---
- JoystickNumAxes :: proc(joystick: ^Joystick) -> c.int ---
- JoystickNumBalls :: proc(joystick: ^Joystick) -> c.int ---
- JoystickNumHats :: proc(joystick: ^Joystick) -> c.int ---
- JoystickNumButtons :: proc(joystick: ^Joystick) -> c.int ---
- JoystickUpdate :: proc() ---
- JoystickEventState :: proc(state: c.int) -> c.int ---
- JoystickGetAxis :: proc(joystick: ^Joystick, axis: c.int) -> i64 ---
- JoystickGetAxisInitialState :: proc(joystick: ^Joystick, axis: c.int, state: ^i16) -> bool ---
- JoystickGetHat :: proc(joystick: ^Joystick, hat: c.int) -> u8 ---
- JoystickGetBall :: proc(joystick: ^Joystick, ball: c.int, dx, dy: ^c.int) -> c.int ---
- JoystickGetButton :: proc(joystick: ^Joystick, button: c.int) -> u8 ---
- JoystickRumble :: proc(joystick: ^Joystick, low_frequency_rumble, high_frequency_rumble: u16, duration_ms: u32) -> c.int ---
- JoystickRumbleTriggers :: proc(joystick: ^Joystick, left_rumble, right_rumble: u16, duration_ms: u32) -> c.int ---
- JoystickHasLED :: proc(joystick: ^Joystick) -> bool ---
- JoystickSetLED :: proc(joystick: ^Joystick, red, green, blue: u8) -> c.int ---
- JoystickSendEffect :: proc(joystick: ^Joystick, data: rawptr, size: c.int) -> c.int ---
- JoystickClose :: proc(joystick: ^Joystick) ---
- JoystickCurrentPowerLevel :: proc(joystick: ^Joystick) -> JoystickPowerLevel ---
- }
|