{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE NoFieldSelectors #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_HADDOCK prune #-}

module SDL3.Sys.Bindgen.Haptic.FunPtr (
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_GetHaptics,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_GetHapticNameForID,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_OpenHaptic,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_GetHapticFromID,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_GetHapticID,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_GetHapticName,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_IsMouseHaptic,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_OpenHapticFromMouse,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_IsJoystickHaptic,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_OpenHapticFromJoystick,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_CloseHaptic,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_GetMaxHapticEffects,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_GetMaxHapticEffectsPlaying,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_GetHapticFeatures,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_GetNumHapticAxes,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_HapticEffectSupported,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_CreateHapticEffect,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_UpdateHapticEffect,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_RunHapticEffect,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_StopHapticEffect,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_DestroyHapticEffect,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_GetHapticEffectStatus,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_SetHapticGain,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_SetHapticAutocenter,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_PauseHaptic,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_ResumeHaptic,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_StopHapticEffects,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_HapticRumbleSupported,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_InitHapticRumble,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_PlayHapticRumble,
  SDL3.Sys.Bindgen.Haptic.FunPtr.sDL_StopHapticRumble,
)
where

import Prelude (IO, fmap)

import HsBindgen.Runtime.PtrConst qualified as PtrConst
import HsBindgen.Runtime.Support qualified as BG
import HsBindgen.Runtime.Support.CAPI qualified
import SDL3.Sys.Bindgen.Haptic
import SDL3.Sys.Bindgen.Joystick qualified
import SDL3.Sys.Bindgen.Stdinc qualified

$( HsBindgen.Runtime.Support.CAPI.addCSource
     ( HsBindgen.Runtime.Support.CAPI.unlines
         [ "#define SDL_MAIN_HANDLED"
         , "#define SDL_SLOW_MEMCPY"
         , "#define SDL_SLOW_MEMMOVE"
         , "#define SDL_SLOW_MEMSET"
         , "#include <SDL3/SDL_haptic.h>"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHaptics */"
         , "__attribute__ ((const))"
         , "SDL_HapticID *(*hs_bindgen_d1b059ba233bbd57 (void)) ("
         , "  signed int *arg1"
         , ")"
         , "{"
         , "  return &SDL_GetHaptics;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticNameForID */"
         , "__attribute__ ((const))"
         , "char const *(*hs_bindgen_001c4531a8b9b26b (void)) ("
         , "  SDL_HapticID arg1"
         , ")"
         , "{"
         , "  return &SDL_GetHapticNameForID;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_OpenHaptic */"
         , "__attribute__ ((const))"
         , "SDL_Haptic *(*hs_bindgen_90101d520a764d47 (void)) ("
         , "  SDL_HapticID arg1"
         , ")"
         , "{"
         , "  return &SDL_OpenHaptic;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticFromID */"
         , "__attribute__ ((const))"
         , "SDL_Haptic *(*hs_bindgen_3a7e21ae2b159d8e (void)) ("
         , "  SDL_HapticID arg1"
         , ")"
         , "{"
         , "  return &SDL_GetHapticFromID;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticID */"
         , "__attribute__ ((const))"
         , "SDL_HapticID (*hs_bindgen_13f07892e26e3cf7 (void)) ("
         , "  SDL_Haptic *arg1"
         , ")"
         , "{"
         , "  return &SDL_GetHapticID;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticName */"
         , "__attribute__ ((const))"
         , "char const *(*hs_bindgen_85514e3e9f32e1c1 (void)) ("
         , "  SDL_Haptic *arg1"
         , ")"
         , "{"
         , "  return &SDL_GetHapticName;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_IsMouseHaptic */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_65b6f3b19cf6ac88 (void)) (void)"
         , "{"
         , "  return &SDL_IsMouseHaptic;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_OpenHapticFromMouse */"
         , "__attribute__ ((const))"
         , "SDL_Haptic *(*hs_bindgen_b758521fa797c2c0 (void)) (void)"
         , "{"
         , "  return &SDL_OpenHapticFromMouse;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_IsJoystickHaptic */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_67654cd95ff86143 (void)) ("
         , "  SDL_Joystick *arg1"
         , ")"
         , "{"
         , "  return &SDL_IsJoystickHaptic;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_OpenHapticFromJoystick */"
         , "__attribute__ ((const))"
         , "SDL_Haptic *(*hs_bindgen_fc6652b37d40c658 (void)) ("
         , "  SDL_Joystick *arg1"
         , ")"
         , "{"
         , "  return &SDL_OpenHapticFromJoystick;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_CloseHaptic */"
         , "__attribute__ ((const))"
         , "void (*hs_bindgen_6b737e2ed08a147c (void)) ("
         , "  SDL_Haptic *arg1"
         , ")"
         , "{"
         , "  return &SDL_CloseHaptic;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetMaxHapticEffects */"
         , "__attribute__ ((const))"
         , "signed int (*hs_bindgen_31a97143613121ea (void)) ("
         , "  SDL_Haptic *arg1"
         , ")"
         , "{"
         , "  return &SDL_GetMaxHapticEffects;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetMaxHapticEffectsPlaying */"
         , "__attribute__ ((const))"
         , "signed int (*hs_bindgen_f659a245012233bf (void)) ("
         , "  SDL_Haptic *arg1"
         , ")"
         , "{"
         , "  return &SDL_GetMaxHapticEffectsPlaying;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticFeatures */"
         , "__attribute__ ((const))"
         , "Uint32 (*hs_bindgen_dbbb380d4518b29f (void)) ("
         , "  SDL_Haptic *arg1"
         , ")"
         , "{"
         , "  return &SDL_GetHapticFeatures;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetNumHapticAxes */"
         , "__attribute__ ((const))"
         , "signed int (*hs_bindgen_da903e5d3b66ca38 (void)) ("
         , "  SDL_Haptic *arg1"
         , ")"
         , "{"
         , "  return &SDL_GetNumHapticAxes;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_HapticEffectSupported */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_e66937f5ebbed3b2 (void)) ("
         , "  SDL_Haptic *arg1,"
         , "  SDL_HapticEffect const *arg2"
         , ")"
         , "{"
         , "  return &SDL_HapticEffectSupported;"
         , "}"
         , "#include <SDL3/SDL_version.h>"
         , "#if !SDL_VERSION_ATLEAST(3, 4, 0)"
         , "typedef int SDL_HapticEffectID;"
         , "#endif"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_CreateHapticEffect */"
         , "__attribute__ ((const))"
         , "SDL_HapticEffectID (*hs_bindgen_4f599110559e7af3 (void)) ("
         , "  SDL_Haptic *arg1,"
         , "  SDL_HapticEffect const *arg2"
         , ")"
         , "{"
         , "  return &SDL_CreateHapticEffect;"
         , "}"
         , "#include <SDL3/SDL_version.h>"
         , "#if !SDL_VERSION_ATLEAST(3, 4, 0)"
         , "typedef int SDL_HapticEffectID;"
         , "#endif"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_UpdateHapticEffect */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_6d9817b120393c0f (void)) ("
         , "  SDL_Haptic *arg1,"
         , "  SDL_HapticEffectID arg2,"
         , "  SDL_HapticEffect const *arg3"
         , ")"
         , "{"
         , "  return &SDL_UpdateHapticEffect;"
         , "}"
         , "#include <SDL3/SDL_version.h>"
         , "#if !SDL_VERSION_ATLEAST(3, 4, 0)"
         , "typedef int SDL_HapticEffectID;"
         , "#endif"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_RunHapticEffect */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_a02a57984673b21e (void)) ("
         , "  SDL_Haptic *arg1,"
         , "  SDL_HapticEffectID arg2,"
         , "  Uint32 arg3"
         , ")"
         , "{"
         , "  return &SDL_RunHapticEffect;"
         , "}"
         , "#include <SDL3/SDL_version.h>"
         , "#if !SDL_VERSION_ATLEAST(3, 4, 0)"
         , "typedef int SDL_HapticEffectID;"
         , "#endif"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_StopHapticEffect */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_30eca5319f79857b (void)) ("
         , "  SDL_Haptic *arg1,"
         , "  SDL_HapticEffectID arg2"
         , ")"
         , "{"
         , "  return &SDL_StopHapticEffect;"
         , "}"
         , "#include <SDL3/SDL_version.h>"
         , "#if !SDL_VERSION_ATLEAST(3, 4, 0)"
         , "typedef int SDL_HapticEffectID;"
         , "#endif"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_DestroyHapticEffect */"
         , "__attribute__ ((const))"
         , "void (*hs_bindgen_ac32175b5d132b5c (void)) ("
         , "  SDL_Haptic *arg1,"
         , "  SDL_HapticEffectID arg2"
         , ")"
         , "{"
         , "  return &SDL_DestroyHapticEffect;"
         , "}"
         , "#include <SDL3/SDL_version.h>"
         , "#if !SDL_VERSION_ATLEAST(3, 4, 0)"
         , "typedef int SDL_HapticEffectID;"
         , "#endif"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticEffectStatus */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_c5abea2492dab75a (void)) ("
         , "  SDL_Haptic *arg1,"
         , "  SDL_HapticEffectID arg2"
         , ")"
         , "{"
         , "  return &SDL_GetHapticEffectStatus;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_SetHapticGain */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_2c6528b48cffc964 (void)) ("
         , "  SDL_Haptic *arg1,"
         , "  signed int arg2"
         , ")"
         , "{"
         , "  return &SDL_SetHapticGain;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_SetHapticAutocenter */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_568d338611d0f80d (void)) ("
         , "  SDL_Haptic *arg1,"
         , "  signed int arg2"
         , ")"
         , "{"
         , "  return &SDL_SetHapticAutocenter;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_PauseHaptic */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_2300eaaf5179d227 (void)) ("
         , "  SDL_Haptic *arg1"
         , ")"
         , "{"
         , "  return &SDL_PauseHaptic;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_ResumeHaptic */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_d1b63d6dd09df218 (void)) ("
         , "  SDL_Haptic *arg1"
         , ")"
         , "{"
         , "  return &SDL_ResumeHaptic;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_StopHapticEffects */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_5cc314419a9f2703 (void)) ("
         , "  SDL_Haptic *arg1"
         , ")"
         , "{"
         , "  return &SDL_StopHapticEffects;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_HapticRumbleSupported */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_62fc953aa6c9d61a (void)) ("
         , "  SDL_Haptic *arg1"
         , ")"
         , "{"
         , "  return &SDL_HapticRumbleSupported;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_InitHapticRumble */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_7d0705a7e6ebb724 (void)) ("
         , "  SDL_Haptic *arg1"
         , ")"
         , "{"
         , "  return &SDL_InitHapticRumble;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_PlayHapticRumble */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_41c52ad08dc2e874 (void)) ("
         , "  SDL_Haptic *arg1,"
         , "  float arg2,"
         , "  Uint32 arg3"
         , ")"
         , "{"
         , "  return &SDL_PlayHapticRumble;"
         , "}"
         , "/* sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_StopHapticRumble */"
         , "__attribute__ ((const))"
         , "_Bool (*hs_bindgen_e3ee0b83eaad3e1f (void)) ("
         , "  SDL_Haptic *arg1"
         , ")"
         , "{"
         , "  return &SDL_StopHapticRumble;"
         , "}"
         ]
     )
 )

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHaptics@
foreign import ccall unsafe "hs_bindgen_d1b059ba233bbd57"
  hs_bindgen_d1b059ba233bbd57_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHaptics@
hs_bindgen_d1b059ba233bbd57 :: IO (BG.FunPtr (BG.Ptr BG.CInt -> IO (BG.Ptr SDL_HapticID)))
hs_bindgen_d1b059ba233bbd57 :: IO (FunPtr (Ptr CInt -> IO (Ptr SDL_HapticID)))
hs_bindgen_d1b059ba233bbd57 =
  (FunPtr Void -> FunPtr (Ptr CInt -> IO (Ptr SDL_HapticID)))
-> IO (FunPtr Void)
-> IO (FunPtr (Ptr CInt -> IO (Ptr SDL_HapticID)))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr CInt -> IO (Ptr SDL_HapticID))
FFIType (FunPtr (Ptr CInt -> IO (Ptr SDL_HapticID)))
-> FunPtr (Ptr CInt -> IO (Ptr SDL_HapticID))
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_d1b059ba233bbd57_base

{-# NOINLINE sDL_GetHaptics #-}

-- | Get a list of currently connected haptic devices.
--
--     [@count@]: a pointer filled in with the number of haptic devices returned, may be NULL.
--
--     [Returns]: a 0 terminated array of haptic device instance IDs or NULL on failure; call SDL_GetError() for more information. This should be freed with SDL_free() when it is no longer needed.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_OpenHaptic'
--
--     [C declaration]: @SDL_GetHaptics@, defined at @SDL3\/SDL_haptic.h 975:44@
sDL_GetHaptics :: BG.FunPtr (BG.Ptr BG.CInt -> IO (BG.Ptr SDL_HapticID))
sDL_GetHaptics :: FunPtr (Ptr CInt -> IO (Ptr SDL_HapticID))
sDL_GetHaptics =
  IO (FunPtr (Ptr CInt -> IO (Ptr SDL_HapticID)))
-> FunPtr (Ptr CInt -> IO (Ptr SDL_HapticID))
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr CInt -> IO (Ptr SDL_HapticID)))
hs_bindgen_d1b059ba233bbd57

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticNameForID@
foreign import ccall unsafe "hs_bindgen_001c4531a8b9b26b"
  hs_bindgen_001c4531a8b9b26b_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticNameForID@
hs_bindgen_001c4531a8b9b26b :: IO (BG.FunPtr (SDL_HapticID -> IO (PtrConst.PtrConst BG.CChar)))
hs_bindgen_001c4531a8b9b26b :: IO (FunPtr (SDL_HapticID -> IO (PtrConst CChar)))
hs_bindgen_001c4531a8b9b26b =
  (FunPtr Void -> FunPtr (SDL_HapticID -> IO (PtrConst CChar)))
-> IO (FunPtr Void)
-> IO (FunPtr (SDL_HapticID -> IO (PtrConst CChar)))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (SDL_HapticID -> IO (PtrConst CChar))
FFIType (FunPtr (SDL_HapticID -> IO (PtrConst CChar)))
-> FunPtr (SDL_HapticID -> IO (PtrConst CChar))
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_001c4531a8b9b26b_base

{-# NOINLINE sDL_GetHapticNameForID #-}

-- | Get the implementation dependent name of a haptic device.
--
--     This can be called before any haptic devices are opened.
--
--     [@instance_id@]: the haptic device instance ID.
--
--     [Returns]: the name of the selected haptic device. If no name can be found, this function returns NULL; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_GetHapticName', 'sDL_OpenHaptic'
--
--     [C declaration]: @SDL_GetHapticNameForID@, defined at @SDL3\/SDL_haptic.h 992:42@
sDL_GetHapticNameForID :: BG.FunPtr (SDL_HapticID -> IO (PtrConst.PtrConst BG.CChar))
sDL_GetHapticNameForID :: FunPtr (SDL_HapticID -> IO (PtrConst CChar))
sDL_GetHapticNameForID =
  IO (FunPtr (SDL_HapticID -> IO (PtrConst CChar)))
-> FunPtr (SDL_HapticID -> IO (PtrConst CChar))
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (SDL_HapticID -> IO (PtrConst CChar)))
hs_bindgen_001c4531a8b9b26b

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_OpenHaptic@
foreign import ccall unsafe "hs_bindgen_90101d520a764d47"
  hs_bindgen_90101d520a764d47_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_OpenHaptic@
hs_bindgen_90101d520a764d47 :: IO (BG.FunPtr (SDL_HapticID -> IO (BG.Ptr SDL_Haptic)))
hs_bindgen_90101d520a764d47 :: IO (FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic)))
hs_bindgen_90101d520a764d47 =
  (FunPtr Void -> FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic)))
-> IO (FunPtr Void)
-> IO (FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic)))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic))
FFIType (FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic)))
-> FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic))
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_90101d520a764d47_base

{-# NOINLINE sDL_OpenHaptic #-}

-- | Open a haptic device for use.
--
--     The index passed as an argument refers to the N\'th haptic device on this system.
--
--     When opening a haptic device, its gain will be set to maximum and autocenter will be disabled. To modify these values use @SDL_SetHapticGain()@ and @SDL_SetHapticAutocenter()@.
--
--     [@instance_id@]: the haptic device instance ID.
--
--     [Returns]: the device identifier or NULL on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_CloseHaptic', 'sDL_GetHaptics', 'sDL_OpenHapticFromJoystick', 'sDL_OpenHapticFromMouse', 'sDL_SetHapticAutocenter', 'sDL_SetHapticGain'
--
--     [C declaration]: @SDL_OpenHaptic@, defined at @SDL3\/SDL_haptic.h 1017:42@
sDL_OpenHaptic :: BG.FunPtr (SDL_HapticID -> IO (BG.Ptr SDL_Haptic))
sDL_OpenHaptic :: FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic))
sDL_OpenHaptic =
  IO (FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic)))
-> FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic))
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic)))
hs_bindgen_90101d520a764d47

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticFromID@
foreign import ccall unsafe "hs_bindgen_3a7e21ae2b159d8e"
  hs_bindgen_3a7e21ae2b159d8e_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticFromID@
hs_bindgen_3a7e21ae2b159d8e :: IO (BG.FunPtr (SDL_HapticID -> IO (BG.Ptr SDL_Haptic)))
hs_bindgen_3a7e21ae2b159d8e :: IO (FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic)))
hs_bindgen_3a7e21ae2b159d8e =
  (FunPtr Void -> FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic)))
-> IO (FunPtr Void)
-> IO (FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic)))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic))
FFIType (FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic)))
-> FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic))
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_3a7e21ae2b159d8e_base

{-# NOINLINE sDL_GetHapticFromID #-}

-- | Get the 'SDL_Haptic' associated with an instance ID, if it has been opened.
--
--     [@instance_id@]: the instance ID to get the 'SDL_Haptic' for.
--
--     [Returns]: an 'SDL_Haptic' on success or NULL on failure or if it hasn\'t been opened yet; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [C declaration]: @SDL_GetHapticFromID@, defined at @SDL3\/SDL_haptic.h 1029:42@
sDL_GetHapticFromID :: BG.FunPtr (SDL_HapticID -> IO (BG.Ptr SDL_Haptic))
sDL_GetHapticFromID :: FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic))
sDL_GetHapticFromID =
  IO (FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic)))
-> FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic))
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (SDL_HapticID -> IO (Ptr SDL_Haptic)))
hs_bindgen_3a7e21ae2b159d8e

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticID@
foreign import ccall unsafe "hs_bindgen_13f07892e26e3cf7"
  hs_bindgen_13f07892e26e3cf7_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticID@
hs_bindgen_13f07892e26e3cf7 :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> IO SDL_HapticID))
hs_bindgen_13f07892e26e3cf7 :: IO (FunPtr (Ptr SDL_Haptic -> IO SDL_HapticID))
hs_bindgen_13f07892e26e3cf7 =
  (FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO SDL_HapticID))
-> IO (FunPtr Void)
-> IO (FunPtr (Ptr SDL_Haptic -> IO SDL_HapticID))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO SDL_HapticID)
FFIType (FunPtr (Ptr SDL_Haptic -> IO SDL_HapticID))
-> FunPtr (Ptr SDL_Haptic -> IO SDL_HapticID)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_13f07892e26e3cf7_base

{-# NOINLINE sDL_GetHapticID #-}

-- | Get the instance ID of an opened haptic device.
--
--     [@haptic@]: the 'SDL_Haptic' device to query.
--
--     [Returns]: the instance ID of the specified haptic device on success or 0 on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [C declaration]: @SDL_GetHapticID@, defined at @SDL3\/SDL_haptic.h 1040:42@
sDL_GetHapticID :: BG.FunPtr (BG.Ptr SDL_Haptic -> IO SDL_HapticID)
sDL_GetHapticID :: FunPtr (Ptr SDL_Haptic -> IO SDL_HapticID)
sDL_GetHapticID =
  IO (FunPtr (Ptr SDL_Haptic -> IO SDL_HapticID))
-> FunPtr (Ptr SDL_Haptic -> IO SDL_HapticID)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> IO SDL_HapticID))
hs_bindgen_13f07892e26e3cf7

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticName@
foreign import ccall unsafe "hs_bindgen_85514e3e9f32e1c1"
  hs_bindgen_85514e3e9f32e1c1_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticName@
hs_bindgen_85514e3e9f32e1c1 :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> IO (PtrConst.PtrConst BG.CChar)))
hs_bindgen_85514e3e9f32e1c1 :: IO (FunPtr (Ptr SDL_Haptic -> IO (PtrConst CChar)))
hs_bindgen_85514e3e9f32e1c1 =
  (FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO (PtrConst CChar)))
-> IO (FunPtr Void)
-> IO (FunPtr (Ptr SDL_Haptic -> IO (PtrConst CChar)))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO (PtrConst CChar))
FFIType (FunPtr (Ptr SDL_Haptic -> IO (PtrConst CChar)))
-> FunPtr (Ptr SDL_Haptic -> IO (PtrConst CChar))
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_85514e3e9f32e1c1_base

{-# NOINLINE sDL_GetHapticName #-}

-- | Get the implementation dependent name of a haptic device.
--
--     [@haptic@]: the 'SDL_Haptic' obtained from SDL_OpenJoystick().
--
--     [Returns]: the name of the selected haptic device. If no name can be found, this function returns NULL; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_GetHapticNameForID'
--
--     [C declaration]: @SDL_GetHapticName@, defined at @SDL3\/SDL_haptic.h 1054:42@
sDL_GetHapticName :: BG.FunPtr (BG.Ptr SDL_Haptic -> IO (PtrConst.PtrConst BG.CChar))
sDL_GetHapticName :: FunPtr (Ptr SDL_Haptic -> IO (PtrConst CChar))
sDL_GetHapticName =
  IO (FunPtr (Ptr SDL_Haptic -> IO (PtrConst CChar)))
-> FunPtr (Ptr SDL_Haptic -> IO (PtrConst CChar))
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> IO (PtrConst CChar)))
hs_bindgen_85514e3e9f32e1c1

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_IsMouseHaptic@
foreign import ccall unsafe "hs_bindgen_65b6f3b19cf6ac88"
  hs_bindgen_65b6f3b19cf6ac88_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_IsMouseHaptic@
hs_bindgen_65b6f3b19cf6ac88 :: IO (BG.FunPtr (IO BG.CBool))
hs_bindgen_65b6f3b19cf6ac88 :: IO (FunPtr (IO CBool))
hs_bindgen_65b6f3b19cf6ac88 =
  (FunPtr Void -> FunPtr (IO CBool))
-> IO (FunPtr Void) -> IO (FunPtr (IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (IO CBool)
FFIType (FunPtr (IO CBool)) -> FunPtr (IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_65b6f3b19cf6ac88_base

{-# NOINLINE sDL_IsMouseHaptic #-}

-- | Query whether or not the current mouse has haptic capabilities.
--
--     [Returns]: true if the mouse is haptic or false if it isn\'t.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_OpenHapticFromMouse'
--
--     [C declaration]: @SDL_IsMouseHaptic@, defined at @SDL3\/SDL_haptic.h 1065:34@
sDL_IsMouseHaptic :: BG.FunPtr (IO BG.CBool)
sDL_IsMouseHaptic :: FunPtr (IO CBool)
sDL_IsMouseHaptic =
  IO (FunPtr (IO CBool)) -> FunPtr (IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (IO CBool))
hs_bindgen_65b6f3b19cf6ac88

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_OpenHapticFromMouse@
foreign import ccall unsafe "hs_bindgen_b758521fa797c2c0"
  hs_bindgen_b758521fa797c2c0_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_OpenHapticFromMouse@
hs_bindgen_b758521fa797c2c0 :: IO (BG.FunPtr (IO (BG.Ptr SDL_Haptic)))
hs_bindgen_b758521fa797c2c0 :: IO (FunPtr (IO (Ptr SDL_Haptic)))
hs_bindgen_b758521fa797c2c0 =
  (FunPtr Void -> FunPtr (IO (Ptr SDL_Haptic)))
-> IO (FunPtr Void) -> IO (FunPtr (IO (Ptr SDL_Haptic)))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (IO (Ptr SDL_Haptic))
FFIType (FunPtr (IO (Ptr SDL_Haptic)))
-> FunPtr (IO (Ptr SDL_Haptic))
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_b758521fa797c2c0_base

{-# NOINLINE sDL_OpenHapticFromMouse #-}

-- | Try to open a haptic device from the current mouse.
--
--     [Returns]: the haptic device identifier or NULL on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_CloseHaptic', 'sDL_IsMouseHaptic'
--
--     [C declaration]: @SDL_OpenHapticFromMouse@, defined at @SDL3\/SDL_haptic.h 1078:42@
sDL_OpenHapticFromMouse :: BG.FunPtr (IO (BG.Ptr SDL_Haptic))
sDL_OpenHapticFromMouse :: FunPtr (IO (Ptr SDL_Haptic))
sDL_OpenHapticFromMouse =
  IO (FunPtr (IO (Ptr SDL_Haptic))) -> FunPtr (IO (Ptr SDL_Haptic))
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (IO (Ptr SDL_Haptic)))
hs_bindgen_b758521fa797c2c0

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_IsJoystickHaptic@
foreign import ccall unsafe "hs_bindgen_67654cd95ff86143"
  hs_bindgen_67654cd95ff86143_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_IsJoystickHaptic@
hs_bindgen_67654cd95ff86143
  :: IO (BG.FunPtr (BG.Ptr SDL3.Sys.Bindgen.Joystick.SDL_Joystick -> IO BG.CBool))
hs_bindgen_67654cd95ff86143 :: IO (FunPtr (Ptr SDL_Joystick -> IO CBool))
hs_bindgen_67654cd95ff86143 =
  (FunPtr Void -> FunPtr (Ptr SDL_Joystick -> IO CBool))
-> IO (FunPtr Void) -> IO (FunPtr (Ptr SDL_Joystick -> IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Joystick -> IO CBool)
FFIType (FunPtr (Ptr SDL_Joystick -> IO CBool))
-> FunPtr (Ptr SDL_Joystick -> IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_67654cd95ff86143_base

{-# NOINLINE sDL_IsJoystickHaptic #-}

-- | Query if a joystick has haptic features.
--
--     [@joystick@]: the SDL_Joystick to test for haptic capabilities.
--
--     [Returns]: true if the joystick is haptic or false if it isn\'t.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_OpenHapticFromJoystick'
--
--     [C declaration]: @SDL_IsJoystickHaptic@, defined at @SDL3\/SDL_haptic.h 1090:34@
sDL_IsJoystickHaptic :: BG.FunPtr (BG.Ptr SDL3.Sys.Bindgen.Joystick.SDL_Joystick -> IO BG.CBool)
sDL_IsJoystickHaptic :: FunPtr (Ptr SDL_Joystick -> IO CBool)
sDL_IsJoystickHaptic =
  IO (FunPtr (Ptr SDL_Joystick -> IO CBool))
-> FunPtr (Ptr SDL_Joystick -> IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Joystick -> IO CBool))
hs_bindgen_67654cd95ff86143

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_OpenHapticFromJoystick@
foreign import ccall unsafe "hs_bindgen_fc6652b37d40c658"
  hs_bindgen_fc6652b37d40c658_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_OpenHapticFromJoystick@
hs_bindgen_fc6652b37d40c658
  :: IO (BG.FunPtr (BG.Ptr SDL3.Sys.Bindgen.Joystick.SDL_Joystick -> IO (BG.Ptr SDL_Haptic)))
hs_bindgen_fc6652b37d40c658 :: IO (FunPtr (Ptr SDL_Joystick -> IO (Ptr SDL_Haptic)))
hs_bindgen_fc6652b37d40c658 =
  (FunPtr Void -> FunPtr (Ptr SDL_Joystick -> IO (Ptr SDL_Haptic)))
-> IO (FunPtr Void)
-> IO (FunPtr (Ptr SDL_Joystick -> IO (Ptr SDL_Haptic)))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Joystick -> IO (Ptr SDL_Haptic))
FFIType (FunPtr (Ptr SDL_Joystick -> IO (Ptr SDL_Haptic)))
-> FunPtr (Ptr SDL_Joystick -> IO (Ptr SDL_Haptic))
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_fc6652b37d40c658_base

{-# NOINLINE sDL_OpenHapticFromJoystick #-}

-- | Open a haptic device for use from a joystick device.
--
--     You must still close the haptic device separately. It will not be closed with the joystick.
--
--     When opened from a joystick you should first close the haptic device before closing the joystick device. If not, on some implementations the haptic device will also get unallocated and you\'ll be unable to use force feedback on that device.
--
--     [@joystick@]: the SDL_Joystick to create a haptic device from.
--
--     [Returns]: a valid haptic device identifier on success or NULL on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_CloseHaptic', 'sDL_IsJoystickHaptic'
--
--     [C declaration]: @SDL_OpenHapticFromJoystick@, defined at @SDL3\/SDL_haptic.h 1112:42@
sDL_OpenHapticFromJoystick
  :: BG.FunPtr (BG.Ptr SDL3.Sys.Bindgen.Joystick.SDL_Joystick -> IO (BG.Ptr SDL_Haptic))
sDL_OpenHapticFromJoystick :: FunPtr (Ptr SDL_Joystick -> IO (Ptr SDL_Haptic))
sDL_OpenHapticFromJoystick =
  IO (FunPtr (Ptr SDL_Joystick -> IO (Ptr SDL_Haptic)))
-> FunPtr (Ptr SDL_Joystick -> IO (Ptr SDL_Haptic))
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Joystick -> IO (Ptr SDL_Haptic)))
hs_bindgen_fc6652b37d40c658

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_CloseHaptic@
foreign import ccall unsafe "hs_bindgen_6b737e2ed08a147c"
  hs_bindgen_6b737e2ed08a147c_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_CloseHaptic@
hs_bindgen_6b737e2ed08a147c :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> IO ()))
hs_bindgen_6b737e2ed08a147c :: IO (FunPtr (Ptr SDL_Haptic -> IO ()))
hs_bindgen_6b737e2ed08a147c =
  (FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO ()))
-> IO (FunPtr Void) -> IO (FunPtr (Ptr SDL_Haptic -> IO ()))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO ())
FFIType (FunPtr (Ptr SDL_Haptic -> IO ()))
-> FunPtr (Ptr SDL_Haptic -> IO ())
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_6b737e2ed08a147c_base

{-# NOINLINE sDL_CloseHaptic #-}

-- | Close a haptic device previously opened with @SDL_OpenHaptic()@.
--
--     [@haptic@]: the 'SDL_Haptic' device to close.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_OpenHaptic'
--
--     [C declaration]: @SDL_CloseHaptic@, defined at @SDL3\/SDL_haptic.h 1123:34@
sDL_CloseHaptic :: BG.FunPtr (BG.Ptr SDL_Haptic -> IO ())
sDL_CloseHaptic :: FunPtr (Ptr SDL_Haptic -> IO ())
sDL_CloseHaptic =
  IO (FunPtr (Ptr SDL_Haptic -> IO ()))
-> FunPtr (Ptr SDL_Haptic -> IO ())
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> IO ()))
hs_bindgen_6b737e2ed08a147c

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetMaxHapticEffects@
foreign import ccall unsafe "hs_bindgen_31a97143613121ea"
  hs_bindgen_31a97143613121ea_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetMaxHapticEffects@
hs_bindgen_31a97143613121ea :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CInt))
hs_bindgen_31a97143613121ea :: IO (FunPtr (Ptr SDL_Haptic -> IO CInt))
hs_bindgen_31a97143613121ea =
  (FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CInt))
-> IO (FunPtr Void) -> IO (FunPtr (Ptr SDL_Haptic -> IO CInt))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CInt)
FFIType (FunPtr (Ptr SDL_Haptic -> IO CInt))
-> FunPtr (Ptr SDL_Haptic -> IO CInt)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_31a97143613121ea_base

{-# NOINLINE sDL_GetMaxHapticEffects #-}

-- | Get the number of effects a haptic device can store.
--
--     On some platforms this isn\'t fully supported, and therefore is an approximation. Always check to see if your created effect was actually created and do not rely solely on @SDL_GetMaxHapticEffects()@.
--
--     [@haptic@]: the 'SDL_Haptic' device to query.
--
--     [Returns]: the number of effects the haptic device can store or a negative error code on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_GetMaxHapticEffectsPlaying', 'sDL_GetHapticFeatures'
--
--     [C declaration]: @SDL_GetMaxHapticEffects@, defined at @SDL3\/SDL_haptic.h 1141:33@
sDL_GetMaxHapticEffects :: BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CInt)
sDL_GetMaxHapticEffects :: FunPtr (Ptr SDL_Haptic -> IO CInt)
sDL_GetMaxHapticEffects =
  IO (FunPtr (Ptr SDL_Haptic -> IO CInt))
-> FunPtr (Ptr SDL_Haptic -> IO CInt)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> IO CInt))
hs_bindgen_31a97143613121ea

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetMaxHapticEffectsPlaying@
foreign import ccall unsafe "hs_bindgen_f659a245012233bf"
  hs_bindgen_f659a245012233bf_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetMaxHapticEffectsPlaying@
hs_bindgen_f659a245012233bf :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CInt))
hs_bindgen_f659a245012233bf :: IO (FunPtr (Ptr SDL_Haptic -> IO CInt))
hs_bindgen_f659a245012233bf =
  (FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CInt))
-> IO (FunPtr Void) -> IO (FunPtr (Ptr SDL_Haptic -> IO CInt))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CInt)
FFIType (FunPtr (Ptr SDL_Haptic -> IO CInt))
-> FunPtr (Ptr SDL_Haptic -> IO CInt)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_f659a245012233bf_base

{-# NOINLINE sDL_GetMaxHapticEffectsPlaying #-}

-- | Get the number of effects a haptic device can play at the same time.
--
--     This is not supported on all platforms, but will always return a value.
--
--     [@haptic@]: the 'SDL_Haptic' device to query maximum playing effects.
--
--     [Returns]: the number of effects the haptic device can play at the same time or -1 on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_GetMaxHapticEffects', 'sDL_GetHapticFeatures'
--
--     [C declaration]: @SDL_GetMaxHapticEffectsPlaying@, defined at @SDL3\/SDL_haptic.h 1157:33@
sDL_GetMaxHapticEffectsPlaying :: BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CInt)
sDL_GetMaxHapticEffectsPlaying :: FunPtr (Ptr SDL_Haptic -> IO CInt)
sDL_GetMaxHapticEffectsPlaying =
  IO (FunPtr (Ptr SDL_Haptic -> IO CInt))
-> FunPtr (Ptr SDL_Haptic -> IO CInt)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> IO CInt))
hs_bindgen_f659a245012233bf

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticFeatures@
foreign import ccall unsafe "hs_bindgen_dbbb380d4518b29f"
  hs_bindgen_dbbb380d4518b29f_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticFeatures@
hs_bindgen_dbbb380d4518b29f
  :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> IO SDL3.Sys.Bindgen.Stdinc.Uint32))
hs_bindgen_dbbb380d4518b29f :: IO (FunPtr (Ptr SDL_Haptic -> IO Uint32))
hs_bindgen_dbbb380d4518b29f =
  (FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO Uint32))
-> IO (FunPtr Void) -> IO (FunPtr (Ptr SDL_Haptic -> IO Uint32))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO Uint32)
FFIType (FunPtr (Ptr SDL_Haptic -> IO Uint32))
-> FunPtr (Ptr SDL_Haptic -> IO Uint32)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_dbbb380d4518b29f_base

{-# NOINLINE sDL_GetHapticFeatures #-}

-- | Get the haptic device\'s supported features in bitwise manner.
--
--     [@haptic@]: the 'SDL_Haptic' device to query.
--
--     [Returns]: a list of supported haptic features in bitwise manner (OR\'d), or 0 on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_HapticEffectSupported', 'sDL_GetMaxHapticEffects'
--
--     [C declaration]: @SDL_GetHapticFeatures@, defined at @SDL3\/SDL_haptic.h 1171:36@
sDL_GetHapticFeatures :: BG.FunPtr (BG.Ptr SDL_Haptic -> IO SDL3.Sys.Bindgen.Stdinc.Uint32)
sDL_GetHapticFeatures :: FunPtr (Ptr SDL_Haptic -> IO Uint32)
sDL_GetHapticFeatures =
  IO (FunPtr (Ptr SDL_Haptic -> IO Uint32))
-> FunPtr (Ptr SDL_Haptic -> IO Uint32)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> IO Uint32))
hs_bindgen_dbbb380d4518b29f

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetNumHapticAxes@
foreign import ccall unsafe "hs_bindgen_da903e5d3b66ca38"
  hs_bindgen_da903e5d3b66ca38_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetNumHapticAxes@
hs_bindgen_da903e5d3b66ca38 :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CInt))
hs_bindgen_da903e5d3b66ca38 :: IO (FunPtr (Ptr SDL_Haptic -> IO CInt))
hs_bindgen_da903e5d3b66ca38 =
  (FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CInt))
-> IO (FunPtr Void) -> IO (FunPtr (Ptr SDL_Haptic -> IO CInt))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CInt)
FFIType (FunPtr (Ptr SDL_Haptic -> IO CInt))
-> FunPtr (Ptr SDL_Haptic -> IO CInt)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_da903e5d3b66ca38_base

{-# NOINLINE sDL_GetNumHapticAxes #-}

-- | Get the number of haptic axes the device has.
--
--     The number of haptic axes might be useful if working with the 'SDL_HapticDirection' effect.
--
--     [@haptic@]: the 'SDL_Haptic' device to query.
--
--     [Returns]: the number of axes on success or -1 on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [C declaration]: @SDL_GetNumHapticAxes@, defined at @SDL3\/SDL_haptic.h 1185:33@
sDL_GetNumHapticAxes :: BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CInt)
sDL_GetNumHapticAxes :: FunPtr (Ptr SDL_Haptic -> IO CInt)
sDL_GetNumHapticAxes =
  IO (FunPtr (Ptr SDL_Haptic -> IO CInt))
-> FunPtr (Ptr SDL_Haptic -> IO CInt)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> IO CInt))
hs_bindgen_da903e5d3b66ca38

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_HapticEffectSupported@
foreign import ccall unsafe "hs_bindgen_e66937f5ebbed3b2"
  hs_bindgen_e66937f5ebbed3b2_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_HapticEffectSupported@
hs_bindgen_e66937f5ebbed3b2
  :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> PtrConst.PtrConst SDL_HapticEffect -> IO BG.CBool))
hs_bindgen_e66937f5ebbed3b2 :: IO
  (FunPtr (Ptr SDL_Haptic -> PtrConst SDL_HapticEffect -> IO CBool))
hs_bindgen_e66937f5ebbed3b2 =
  (FunPtr Void
 -> FunPtr
      (Ptr SDL_Haptic -> PtrConst SDL_HapticEffect -> IO CBool))
-> IO (FunPtr Void)
-> IO
     (FunPtr (Ptr SDL_Haptic -> PtrConst SDL_HapticEffect -> IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void
-> FunPtr (Ptr SDL_Haptic -> PtrConst SDL_HapticEffect -> IO CBool)
FFIType
  (FunPtr (Ptr SDL_Haptic -> PtrConst SDL_HapticEffect -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> PtrConst SDL_HapticEffect -> IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_e66937f5ebbed3b2_base

{-# NOINLINE sDL_HapticEffectSupported #-}

-- | Check to see if an effect is supported by a haptic device.
--
--     [@haptic@]: the 'SDL_Haptic' device to query.
--
--     [@effect@]: the desired effect to query.
--
--     [Returns]: true if the effect is supported or false if it isn\'t.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_CreateHapticEffect', 'sDL_GetHapticFeatures'
--
--     [C declaration]: @SDL_HapticEffectSupported@, defined at @SDL3\/SDL_haptic.h 1199:34@
sDL_HapticEffectSupported
  :: BG.FunPtr (BG.Ptr SDL_Haptic -> PtrConst.PtrConst SDL_HapticEffect -> IO BG.CBool)
sDL_HapticEffectSupported :: FunPtr (Ptr SDL_Haptic -> PtrConst SDL_HapticEffect -> IO CBool)
sDL_HapticEffectSupported =
  IO
  (FunPtr (Ptr SDL_Haptic -> PtrConst SDL_HapticEffect -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> PtrConst SDL_HapticEffect -> IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO
  (FunPtr (Ptr SDL_Haptic -> PtrConst SDL_HapticEffect -> IO CBool))
hs_bindgen_e66937f5ebbed3b2

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_CreateHapticEffect@
foreign import ccall unsafe "hs_bindgen_4f599110559e7af3"
  hs_bindgen_4f599110559e7af3_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_CreateHapticEffect@
hs_bindgen_4f599110559e7af3
  :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> PtrConst.PtrConst SDL_HapticEffect -> IO SDL_HapticEffectID))
hs_bindgen_4f599110559e7af3 :: IO
  (FunPtr
     (Ptr SDL_Haptic
      -> PtrConst SDL_HapticEffect -> IO SDL_HapticEffectID))
hs_bindgen_4f599110559e7af3 =
  (FunPtr Void
 -> FunPtr
      (Ptr SDL_Haptic
       -> PtrConst SDL_HapticEffect -> IO SDL_HapticEffectID))
-> IO (FunPtr Void)
-> IO
     (FunPtr
        (Ptr SDL_Haptic
         -> PtrConst SDL_HapticEffect -> IO SDL_HapticEffectID))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void
-> FunPtr
     (Ptr SDL_Haptic
      -> PtrConst SDL_HapticEffect -> IO SDL_HapticEffectID)
FFIType
  (FunPtr
     (Ptr SDL_Haptic
      -> PtrConst SDL_HapticEffect -> IO SDL_HapticEffectID))
-> FunPtr
     (Ptr SDL_Haptic
      -> PtrConst SDL_HapticEffect -> IO SDL_HapticEffectID)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_4f599110559e7af3_base

{-# NOINLINE sDL_CreateHapticEffect #-}

-- | Create a new haptic effect on a specified device.
--
--     [@haptic@]: an 'SDL_Haptic' device to create the effect on.
--
--     [@effect@]: an 'SDL_HapticEffect' structure containing the properties of the effect to create.
--
--     [Returns]: the ID of the effect on success or -1 on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_DestroyHapticEffect', 'sDL_RunHapticEffect', 'sDL_UpdateHapticEffect'
--
--     [C declaration]: @SDL_CreateHapticEffect@, defined at @SDL3\/SDL_haptic.h 1216:48@
sDL_CreateHapticEffect
  :: BG.FunPtr (BG.Ptr SDL_Haptic -> PtrConst.PtrConst SDL_HapticEffect -> IO SDL_HapticEffectID)
sDL_CreateHapticEffect :: FunPtr
  (Ptr SDL_Haptic
   -> PtrConst SDL_HapticEffect -> IO SDL_HapticEffectID)
sDL_CreateHapticEffect =
  IO
  (FunPtr
     (Ptr SDL_Haptic
      -> PtrConst SDL_HapticEffect -> IO SDL_HapticEffectID))
-> FunPtr
     (Ptr SDL_Haptic
      -> PtrConst SDL_HapticEffect -> IO SDL_HapticEffectID)
forall a. IO a -> a
BG.unsafePerformIO IO
  (FunPtr
     (Ptr SDL_Haptic
      -> PtrConst SDL_HapticEffect -> IO SDL_HapticEffectID))
hs_bindgen_4f599110559e7af3

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_UpdateHapticEffect@
foreign import ccall unsafe "hs_bindgen_6d9817b120393c0f"
  hs_bindgen_6d9817b120393c0f_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_UpdateHapticEffect@
hs_bindgen_6d9817b120393c0f
  :: IO
       ( BG.FunPtr
           (BG.Ptr SDL_Haptic -> SDL_HapticEffectID -> PtrConst.PtrConst SDL_HapticEffect -> IO BG.CBool)
       )
hs_bindgen_6d9817b120393c0f :: IO
  (FunPtr
     (Ptr SDL_Haptic
      -> SDL_HapticEffectID -> PtrConst SDL_HapticEffect -> IO CBool))
hs_bindgen_6d9817b120393c0f =
  (FunPtr Void
 -> FunPtr
      (Ptr SDL_Haptic
       -> SDL_HapticEffectID -> PtrConst SDL_HapticEffect -> IO CBool))
-> IO (FunPtr Void)
-> IO
     (FunPtr
        (Ptr SDL_Haptic
         -> SDL_HapticEffectID -> PtrConst SDL_HapticEffect -> IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void
-> FunPtr
     (Ptr SDL_Haptic
      -> SDL_HapticEffectID -> PtrConst SDL_HapticEffect -> IO CBool)
FFIType
  (FunPtr
     (Ptr SDL_Haptic
      -> SDL_HapticEffectID -> PtrConst SDL_HapticEffect -> IO CBool))
-> FunPtr
     (Ptr SDL_Haptic
      -> SDL_HapticEffectID -> PtrConst SDL_HapticEffect -> IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_6d9817b120393c0f_base

{-# NOINLINE sDL_UpdateHapticEffect #-}

-- | Update the properties of an effect.
--
--     Can be used dynamically, although behavior when dynamically changing direction may be strange. Specifically the effect may re-upload itself and start playing from the start. You also cannot change the type either when running @SDL_UpdateHapticEffect()@.
--
--     [@haptic@]: the 'SDL_Haptic' device that has the effect.
--
--     [@effect@]: the identifier of the effect to update.
--
--     [@data@]: an 'SDL_HapticEffect' structure containing the new effect properties to use.
--
--     [Returns]: true on success or false on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_CreateHapticEffect', 'sDL_RunHapticEffect'
--
--     [C declaration]: @SDL_UpdateHapticEffect@, defined at @SDL3\/SDL_haptic.h 1238:34@
sDL_UpdateHapticEffect
  :: BG.FunPtr
       (BG.Ptr SDL_Haptic -> SDL_HapticEffectID -> PtrConst.PtrConst SDL_HapticEffect -> IO BG.CBool)
sDL_UpdateHapticEffect :: FunPtr
  (Ptr SDL_Haptic
   -> SDL_HapticEffectID -> PtrConst SDL_HapticEffect -> IO CBool)
sDL_UpdateHapticEffect =
  IO
  (FunPtr
     (Ptr SDL_Haptic
      -> SDL_HapticEffectID -> PtrConst SDL_HapticEffect -> IO CBool))
-> FunPtr
     (Ptr SDL_Haptic
      -> SDL_HapticEffectID -> PtrConst SDL_HapticEffect -> IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO
  (FunPtr
     (Ptr SDL_Haptic
      -> SDL_HapticEffectID -> PtrConst SDL_HapticEffect -> IO CBool))
hs_bindgen_6d9817b120393c0f

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_RunHapticEffect@
foreign import ccall unsafe "hs_bindgen_a02a57984673b21e"
  hs_bindgen_a02a57984673b21e_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_RunHapticEffect@
hs_bindgen_a02a57984673b21e
  :: IO
       (BG.FunPtr (BG.Ptr SDL_Haptic -> SDL_HapticEffectID -> SDL3.Sys.Bindgen.Stdinc.Uint32 -> IO BG.CBool))
hs_bindgen_a02a57984673b21e :: IO
  (FunPtr
     (Ptr SDL_Haptic -> SDL_HapticEffectID -> Uint32 -> IO CBool))
hs_bindgen_a02a57984673b21e =
  (FunPtr Void
 -> FunPtr
      (Ptr SDL_Haptic -> SDL_HapticEffectID -> Uint32 -> IO CBool))
-> IO (FunPtr Void)
-> IO
     (FunPtr
        (Ptr SDL_Haptic -> SDL_HapticEffectID -> Uint32 -> IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void
-> FunPtr
     (Ptr SDL_Haptic -> SDL_HapticEffectID -> Uint32 -> IO CBool)
FFIType
  (FunPtr
     (Ptr SDL_Haptic -> SDL_HapticEffectID -> Uint32 -> IO CBool))
-> FunPtr
     (Ptr SDL_Haptic -> SDL_HapticEffectID -> Uint32 -> IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_a02a57984673b21e_base

{-# NOINLINE sDL_RunHapticEffect #-}

-- | Run the haptic effect on its associated haptic device.
--
--     To repeat the effect over and over indefinitely, set @iterations@ to @'sDL_HAPTIC_INFINITY'@. (Repeats the envelope - attack and fade.) To make one instance of the effect last indefinitely (so the effect does not fade), set the effect\'s @length@ in its structure\/union to @'sDL_HAPTIC_INFINITY'@ instead.
--
--     [@haptic@]: the 'SDL_Haptic' device to run the effect on.
--
--     [@effect@]: the ID of the haptic effect to run.
--
--     [@iterations@]: the number of iterations to run the effect; use @'sDL_HAPTIC_INFINITY'@ to repeat forever.
--
--     [Returns]: true on success or false on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_GetHapticEffectStatus', 'sDL_StopHapticEffect', 'sDL_StopHapticEffects'
--
--     [C declaration]: @SDL_RunHapticEffect@, defined at @SDL3\/SDL_haptic.h 1262:34@
sDL_RunHapticEffect
  :: BG.FunPtr (BG.Ptr SDL_Haptic -> SDL_HapticEffectID -> SDL3.Sys.Bindgen.Stdinc.Uint32 -> IO BG.CBool)
sDL_RunHapticEffect :: FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> Uint32 -> IO CBool)
sDL_RunHapticEffect =
  IO
  (FunPtr
     (Ptr SDL_Haptic -> SDL_HapticEffectID -> Uint32 -> IO CBool))
-> FunPtr
     (Ptr SDL_Haptic -> SDL_HapticEffectID -> Uint32 -> IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO
  (FunPtr
     (Ptr SDL_Haptic -> SDL_HapticEffectID -> Uint32 -> IO CBool))
hs_bindgen_a02a57984673b21e

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_StopHapticEffect@
foreign import ccall unsafe "hs_bindgen_30eca5319f79857b"
  hs_bindgen_30eca5319f79857b_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_StopHapticEffect@
hs_bindgen_30eca5319f79857b
  :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> SDL_HapticEffectID -> IO BG.CBool))
hs_bindgen_30eca5319f79857b :: IO (FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool))
hs_bindgen_30eca5319f79857b =
  (FunPtr Void
 -> FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool))
-> IO (FunPtr Void)
-> IO (FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void
-> FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool)
FFIType (FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_30eca5319f79857b_base

{-# NOINLINE sDL_StopHapticEffect #-}

-- | Stop the haptic effect on its associated haptic device.
--
--     [@haptic@]: the 'SDL_Haptic' device to stop the effect on.
--
--     [@effect@]: the ID of the haptic effect to stop.
--
--     [Returns]: true on success or false on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_RunHapticEffect', 'sDL_StopHapticEffects'
--
--     [C declaration]: @SDL_StopHapticEffect@, defined at @SDL3\/SDL_haptic.h 1277:34@
sDL_StopHapticEffect :: BG.FunPtr (BG.Ptr SDL_Haptic -> SDL_HapticEffectID -> IO BG.CBool)
sDL_StopHapticEffect :: FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool)
sDL_StopHapticEffect =
  IO (FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool))
hs_bindgen_30eca5319f79857b

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_DestroyHapticEffect@
foreign import ccall unsafe "hs_bindgen_ac32175b5d132b5c"
  hs_bindgen_ac32175b5d132b5c_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_DestroyHapticEffect@
hs_bindgen_ac32175b5d132b5c :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> SDL_HapticEffectID -> IO ()))
hs_bindgen_ac32175b5d132b5c :: IO (FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO ()))
hs_bindgen_ac32175b5d132b5c =
  (FunPtr Void
 -> FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO ()))
-> IO (FunPtr Void)
-> IO (FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO ()))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void
-> FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO ())
FFIType (FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO ()))
-> FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO ())
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_ac32175b5d132b5c_base

{-# NOINLINE sDL_DestroyHapticEffect #-}

-- | Destroy a haptic effect on the device.
--
--     This will stop the effect if it\'s running. Effects are automatically destroyed when the device is closed.
--
--     [@haptic@]: the 'SDL_Haptic' device to destroy the effect on.
--
--     [@effect@]: the ID of the haptic effect to destroy.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_CreateHapticEffect'
--
--     [C declaration]: @SDL_DestroyHapticEffect@, defined at @SDL3\/SDL_haptic.h 1292:34@
sDL_DestroyHapticEffect :: BG.FunPtr (BG.Ptr SDL_Haptic -> SDL_HapticEffectID -> IO ())
sDL_DestroyHapticEffect :: FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO ())
sDL_DestroyHapticEffect =
  IO (FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO ()))
-> FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO ())
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO ()))
hs_bindgen_ac32175b5d132b5c

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticEffectStatus@
foreign import ccall unsafe "hs_bindgen_c5abea2492dab75a"
  hs_bindgen_c5abea2492dab75a_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_GetHapticEffectStatus@
hs_bindgen_c5abea2492dab75a
  :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> SDL_HapticEffectID -> IO BG.CBool))
hs_bindgen_c5abea2492dab75a :: IO (FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool))
hs_bindgen_c5abea2492dab75a =
  (FunPtr Void
 -> FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool))
-> IO (FunPtr Void)
-> IO (FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void
-> FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool)
FFIType (FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_c5abea2492dab75a_base

{-# NOINLINE sDL_GetHapticEffectStatus #-}

-- | Get the status of the current effect on the specified haptic device.
--
--     Device must support the SDL_HAPTIC_STATUS feature.
--
--     [@haptic@]: the 'SDL_Haptic' device to query for the effect status on.
--
--     [@effect@]: the ID of the haptic effect to query its status.
--
--     [Returns]: true if it is playing, false if it isn\'t playing or haptic status isn\'t supported.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_GetHapticFeatures'
--
--     [C declaration]: @SDL_GetHapticEffectStatus@, defined at @SDL3\/SDL_haptic.h 1308:34@
sDL_GetHapticEffectStatus :: BG.FunPtr (BG.Ptr SDL_Haptic -> SDL_HapticEffectID -> IO BG.CBool)
sDL_GetHapticEffectStatus :: FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool)
sDL_GetHapticEffectStatus =
  IO (FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> SDL_HapticEffectID -> IO CBool))
hs_bindgen_c5abea2492dab75a

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_SetHapticGain@
foreign import ccall unsafe "hs_bindgen_2c6528b48cffc964"
  hs_bindgen_2c6528b48cffc964_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_SetHapticGain@
hs_bindgen_2c6528b48cffc964 :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> BG.CInt -> IO BG.CBool))
hs_bindgen_2c6528b48cffc964 :: IO (FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool))
hs_bindgen_2c6528b48cffc964 =
  (FunPtr Void -> FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool))
-> IO (FunPtr Void)
-> IO (FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool)
FFIType (FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_2c6528b48cffc964_base

{-# NOINLINE sDL_SetHapticGain #-}

-- | Set the global gain of the specified haptic device.
--
--     Device must support the SDL_HAPTIC_GAIN feature.
--
--     The user may specify the maximum gain by setting the environment variable @SDL_HAPTIC_GAIN_MAX@ which should be between 0 and 100. All calls to @SDL_SetHapticGain()@ will scale linearly using @SDL_HAPTIC_GAIN_MAX@ as the maximum.
--
--     [@haptic@]: the 'SDL_Haptic' device to set the gain on.
--
--     [@gain@]: value to set the gain to, should be between 0 and 100 (0 - 100).
--
--     [Returns]: true on success or false on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_GetHapticFeatures'
--
--     [C declaration]: @SDL_SetHapticGain@, defined at @SDL3\/SDL_haptic.h 1330:34@
sDL_SetHapticGain :: BG.FunPtr (BG.Ptr SDL_Haptic -> BG.CInt -> IO BG.CBool)
sDL_SetHapticGain :: FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool)
sDL_SetHapticGain =
  IO (FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool))
hs_bindgen_2c6528b48cffc964

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_SetHapticAutocenter@
foreign import ccall unsafe "hs_bindgen_568d338611d0f80d"
  hs_bindgen_568d338611d0f80d_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_SetHapticAutocenter@
hs_bindgen_568d338611d0f80d :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> BG.CInt -> IO BG.CBool))
hs_bindgen_568d338611d0f80d :: IO (FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool))
hs_bindgen_568d338611d0f80d =
  (FunPtr Void -> FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool))
-> IO (FunPtr Void)
-> IO (FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool)
FFIType (FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_568d338611d0f80d_base

{-# NOINLINE sDL_SetHapticAutocenter #-}

-- | Set the global autocenter of the device.
--
--     Autocenter should be between 0 and 100. Setting it to 0 will disable autocentering.
--
--     Device must support the SDL_HAPTIC_AUTOCENTER feature.
--
--     [@haptic@]: the 'SDL_Haptic' device to set autocentering on.
--
--     [@autocenter@]: value to set autocenter to (0-100).
--
--     [Returns]: true on success or false on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_GetHapticFeatures'
--
--     [C declaration]: @SDL_SetHapticAutocenter@, defined at @SDL3\/SDL_haptic.h 1349:34@
sDL_SetHapticAutocenter :: BG.FunPtr (BG.Ptr SDL_Haptic -> BG.CInt -> IO BG.CBool)
sDL_SetHapticAutocenter :: FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool)
sDL_SetHapticAutocenter =
  IO (FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> CInt -> IO CBool))
hs_bindgen_568d338611d0f80d

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_PauseHaptic@
foreign import ccall unsafe "hs_bindgen_2300eaaf5179d227"
  hs_bindgen_2300eaaf5179d227_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_PauseHaptic@
hs_bindgen_2300eaaf5179d227 :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CBool))
hs_bindgen_2300eaaf5179d227 :: IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
hs_bindgen_2300eaaf5179d227 =
  (FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CBool))
-> IO (FunPtr Void) -> IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CBool)
FFIType (FunPtr (Ptr SDL_Haptic -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_2300eaaf5179d227_base

{-# NOINLINE sDL_PauseHaptic #-}

-- | Pause a haptic device.
--
--     Device must support the @'sDL_HAPTIC_PAUSE'@ feature. Call @SDL_ResumeHaptic()@ to resume playback.
--
--     Do not modify the effects nor add new ones while the device is paused. That can cause all sorts of weird errors.
--
--     [@haptic@]: the 'SDL_Haptic' device to pause.
--
--     [Returns]: true on success or false on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_ResumeHaptic'
--
--     [C declaration]: @SDL_PauseHaptic@, defined at @SDL3\/SDL_haptic.h 1368:34@
sDL_PauseHaptic :: BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CBool)
sDL_PauseHaptic :: FunPtr (Ptr SDL_Haptic -> IO CBool)
sDL_PauseHaptic =
  IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
hs_bindgen_2300eaaf5179d227

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_ResumeHaptic@
foreign import ccall unsafe "hs_bindgen_d1b63d6dd09df218"
  hs_bindgen_d1b63d6dd09df218_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_ResumeHaptic@
hs_bindgen_d1b63d6dd09df218 :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CBool))
hs_bindgen_d1b63d6dd09df218 :: IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
hs_bindgen_d1b63d6dd09df218 =
  (FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CBool))
-> IO (FunPtr Void) -> IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CBool)
FFIType (FunPtr (Ptr SDL_Haptic -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_d1b63d6dd09df218_base

{-# NOINLINE sDL_ResumeHaptic #-}

-- | Resume a haptic device.
--
--     Call to unpause after @SDL_PauseHaptic()@.
--
--     [@haptic@]: the 'SDL_Haptic' device to unpause.
--
--     [Returns]: true on success or false on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_PauseHaptic'
--
--     [C declaration]: @SDL_ResumeHaptic@, defined at @SDL3\/SDL_haptic.h 1383:34@
sDL_ResumeHaptic :: BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CBool)
sDL_ResumeHaptic :: FunPtr (Ptr SDL_Haptic -> IO CBool)
sDL_ResumeHaptic =
  IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
hs_bindgen_d1b63d6dd09df218

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_StopHapticEffects@
foreign import ccall unsafe "hs_bindgen_5cc314419a9f2703"
  hs_bindgen_5cc314419a9f2703_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_StopHapticEffects@
hs_bindgen_5cc314419a9f2703 :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CBool))
hs_bindgen_5cc314419a9f2703 :: IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
hs_bindgen_5cc314419a9f2703 =
  (FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CBool))
-> IO (FunPtr Void) -> IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CBool)
FFIType (FunPtr (Ptr SDL_Haptic -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_5cc314419a9f2703_base

{-# NOINLINE sDL_StopHapticEffects #-}

-- | Stop all the currently playing effects on a haptic device.
--
--     [@haptic@]: the 'SDL_Haptic' device to stop.
--
--     [Returns]: true on success or false on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_RunHapticEffect', 'sDL_StopHapticEffect'
--
--     [C declaration]: @SDL_StopHapticEffects@, defined at @SDL3\/SDL_haptic.h 1397:34@
sDL_StopHapticEffects :: BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CBool)
sDL_StopHapticEffects :: FunPtr (Ptr SDL_Haptic -> IO CBool)
sDL_StopHapticEffects =
  IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
hs_bindgen_5cc314419a9f2703

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_HapticRumbleSupported@
foreign import ccall unsafe "hs_bindgen_62fc953aa6c9d61a"
  hs_bindgen_62fc953aa6c9d61a_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_HapticRumbleSupported@
hs_bindgen_62fc953aa6c9d61a :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CBool))
hs_bindgen_62fc953aa6c9d61a :: IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
hs_bindgen_62fc953aa6c9d61a =
  (FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CBool))
-> IO (FunPtr Void) -> IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CBool)
FFIType (FunPtr (Ptr SDL_Haptic -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_62fc953aa6c9d61a_base

{-# NOINLINE sDL_HapticRumbleSupported #-}

-- | Check whether rumble is supported on a haptic device.
--
--     [@haptic@]: haptic device to check for rumble support.
--
--     [Returns]: true if the effect is supported or false if it isn\'t.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_InitHapticRumble'
--
--     [C declaration]: @SDL_HapticRumbleSupported@, defined at @SDL3\/SDL_haptic.h 1409:34@
sDL_HapticRumbleSupported :: BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CBool)
sDL_HapticRumbleSupported :: FunPtr (Ptr SDL_Haptic -> IO CBool)
sDL_HapticRumbleSupported =
  IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
hs_bindgen_62fc953aa6c9d61a

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_InitHapticRumble@
foreign import ccall unsafe "hs_bindgen_7d0705a7e6ebb724"
  hs_bindgen_7d0705a7e6ebb724_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_InitHapticRumble@
hs_bindgen_7d0705a7e6ebb724 :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CBool))
hs_bindgen_7d0705a7e6ebb724 :: IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
hs_bindgen_7d0705a7e6ebb724 =
  (FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CBool))
-> IO (FunPtr Void) -> IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CBool)
FFIType (FunPtr (Ptr SDL_Haptic -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_7d0705a7e6ebb724_base

{-# NOINLINE sDL_InitHapticRumble #-}

-- | Initialize a haptic device for simple rumble playback.
--
--     [@haptic@]: the haptic device to initialize for simple rumble playback.
--
--     [Returns]: true on success or false on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_PlayHapticRumble', 'sDL_StopHapticRumble', 'sDL_HapticRumbleSupported'
--
--     [C declaration]: @SDL_InitHapticRumble@, defined at @SDL3\/SDL_haptic.h 1424:34@
sDL_InitHapticRumble :: BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CBool)
sDL_InitHapticRumble :: FunPtr (Ptr SDL_Haptic -> IO CBool)
sDL_InitHapticRumble =
  IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
hs_bindgen_7d0705a7e6ebb724

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_PlayHapticRumble@
foreign import ccall unsafe "hs_bindgen_41c52ad08dc2e874"
  hs_bindgen_41c52ad08dc2e874_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_PlayHapticRumble@
hs_bindgen_41c52ad08dc2e874
  :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> BG.CFloat -> SDL3.Sys.Bindgen.Stdinc.Uint32 -> IO BG.CBool))
hs_bindgen_41c52ad08dc2e874 :: IO (FunPtr (Ptr SDL_Haptic -> CFloat -> Uint32 -> IO CBool))
hs_bindgen_41c52ad08dc2e874 =
  (FunPtr Void
 -> FunPtr (Ptr SDL_Haptic -> CFloat -> Uint32 -> IO CBool))
-> IO (FunPtr Void)
-> IO (FunPtr (Ptr SDL_Haptic -> CFloat -> Uint32 -> IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void
-> FunPtr (Ptr SDL_Haptic -> CFloat -> Uint32 -> IO CBool)
FFIType (FunPtr (Ptr SDL_Haptic -> CFloat -> Uint32 -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> CFloat -> Uint32 -> IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_41c52ad08dc2e874_base

{-# NOINLINE sDL_PlayHapticRumble #-}

-- | Run a simple rumble effect on a haptic device.
--
--     [@haptic@]: the haptic device to play the rumble effect on.
--
--     [@strength@]: strength of the rumble to play as a 0-1 float value.
--
--     [@length@]: length of the rumble to play in milliseconds.
--
--     [Returns]: true on success or false on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_InitHapticRumble', 'sDL_StopHapticRumble'
--
--     [C declaration]: @SDL_PlayHapticRumble@, defined at @SDL3\/SDL_haptic.h 1440:34@
sDL_PlayHapticRumble
  :: BG.FunPtr (BG.Ptr SDL_Haptic -> BG.CFloat -> SDL3.Sys.Bindgen.Stdinc.Uint32 -> IO BG.CBool)
sDL_PlayHapticRumble :: FunPtr (Ptr SDL_Haptic -> CFloat -> Uint32 -> IO CBool)
sDL_PlayHapticRumble =
  IO (FunPtr (Ptr SDL_Haptic -> CFloat -> Uint32 -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> CFloat -> Uint32 -> IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> CFloat -> Uint32 -> IO CBool))
hs_bindgen_41c52ad08dc2e874

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_StopHapticRumble@
foreign import ccall unsafe "hs_bindgen_e3ee0b83eaad3e1f"
  hs_bindgen_e3ee0b83eaad3e1f_base
    :: IO (BG.FunPtr BG.Void)

-- __unique:__ @sdl3bindgensys_SDL3.Sys.Bindgen.Haptic_get_SDL_StopHapticRumble@
hs_bindgen_e3ee0b83eaad3e1f :: IO (BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CBool))
hs_bindgen_e3ee0b83eaad3e1f :: IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
hs_bindgen_e3ee0b83eaad3e1f =
  (FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CBool))
-> IO (FunPtr Void) -> IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (Ptr SDL_Haptic -> IO CBool)
FFIType (FunPtr (Ptr SDL_Haptic -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> IO CBool)
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_e3ee0b83eaad3e1f_base

{-# NOINLINE sDL_StopHapticRumble #-}

-- | Stop the simple rumble on a haptic device.
--
--     [@haptic@]: the haptic device to stop the rumble effect on.
--
--     [Returns]: true on success or false on failure; call SDL_GetError() for more information.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_PlayHapticRumble'
--
--     [C declaration]: @SDL_StopHapticRumble@, defined at @SDL3\/SDL_haptic.h 1453:34@
sDL_StopHapticRumble :: BG.FunPtr (BG.Ptr SDL_Haptic -> IO BG.CBool)
sDL_StopHapticRumble :: FunPtr (Ptr SDL_Haptic -> IO CBool)
sDL_StopHapticRumble =
  IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
-> FunPtr (Ptr SDL_Haptic -> IO CBool)
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (Ptr SDL_Haptic -> IO CBool))
hs_bindgen_e3ee0b83eaad3e1f