{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE EmptyDataDecls #-}
{-# LANGUAGE ExplicitForAll #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UnboxedTuples #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE NoFieldSelectors #-}
{-# LANGUAGE NoImplicitPrelude #-}

-- | The SDL haptic subsystem manages haptic (force feedback) devices.
--
--     The basic usage is as follows:
--
--     * Initialize the subsystem (SDL_INIT_HAPTIC).
--
--     * Open a haptic device.
--
--     * @SDL_OpenHaptic()@ to open from index.
--
--     * @SDL_OpenHapticFromJoystick()@ to open from an existing joystick.
--
--     * Create an effect ('SDL_HapticEffect').
--
--     * Upload the effect with @SDL_CreateHapticEffect()@.
--
--     * Run the effect with @SDL_RunHapticEffect()@.
--
--     * (optional) Free the effect with @SDL_DestroyHapticEffect()@.
--
--     * Close the haptic device with @SDL_CloseHaptic()@.
--
--     Simple rumble example:
--
--     @
--     SDL_Haptic *haptic = NULL;
--
--     \/\/ Open the device
--     SDL_HapticID *haptics = SDL_GetHaptics(NULL);
--     if (haptics) {
--         haptic = SDL_OpenHaptic(haptics[0]);
--         SDL_free(haptics);
--     }
--     if (haptic == NULL)
--        return;
--
--     \/\/ Initialize simple rumble
--     if (!SDL_InitHapticRumble(haptic))
--        return;
--
--     \/\/ Play effect at 50% strength for 2 seconds
--     if (!SDL_PlayHapticRumble(haptic, 0.5, 2000))
--        return;
--     SDL_Delay(2000);
--
--     \/\/ Clean up
--     SDL_CloseHaptic(haptic);
--     @
--
--     Complete example:
--
--     @
--     bool test_haptic(SDL_Joystick *joystick)
--     {
--        SDL_Haptic *haptic;
--        SDL_HapticEffect effect;
--        SDL_HapticEffectID effect_id;
--
--        \/\/ Open the device
--        haptic = SDL_OpenHapticFromJoystick(joystick);
--        if (haptic == NULL) return false; \/\/ Most likely joystick isn\'t haptic
--
--        \/\/ See if it can do sine waves
--        if ((SDL_GetHapticFeatures(haptic) & SDL_HAPTIC_SINE)==0) {
--           SDL_CloseHaptic(haptic); \/\/ No sine effect
--           return false;
--        }
--
--        \/\/ Create the effect
--        SDL_memset(&effect, 0, sizeof(SDL_HapticEffect)); \/\/ 0 is safe default
--        effect.type = SDL_HAPTIC_SINE;
--        effect.periodic.direction.type = SDL_HAPTIC_POLAR; \/\/ Polar coordinates
--        effect.periodic.direction.dir[0] = 18000; \/\/ Force comes from south
--        effect.periodic.period = 1000; \/\/ 1000 ms
--        effect.periodic.magnitude = 20000; \/\/ 20000\/32767 strength
--        effect.periodic.length = 5000; \/\/ 5 seconds long
--        effect.periodic.attack_length = 1000; \/\/ Takes 1 second to get max strength
--        effect.periodic.fade_length = 1000; \/\/ Takes 1 second to fade away
--
--        \/\/ Upload the effect
--        effect_id = SDL_CreateHapticEffect(haptic, &effect);
--
--        \/\/ Test the effect
--        SDL_RunHapticEffect(haptic, effect_id, 1);
--        SDL_Delay(5000); \/\/ Wait for the effect to finish
--
--        \/\/ We destroy the effect, although closing the device also does this
--        SDL_DestroyHapticEffect(haptic, effect_id);
--
--        \/\/ Close the device
--        SDL_CloseHaptic(haptic);
--
--        return true; \/\/ Success
--     }
--     @
--
--     Note that the SDL haptic subsystem is not thread-safe. The haptic structure used to identify an SDL haptic.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_OpenHaptic', 'sDL_OpenHapticFromJoystick', 'sDL_CloseHaptic'
module SDL3.Sys.Bindgen.Haptic (
  SDL3.Sys.Bindgen.Haptic.SDL_Haptic,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_INFINITY,
  SDL3.Sys.Bindgen.Haptic.SDL_HapticEffectType (..),
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_CONSTANT,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_SINE,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_SQUARE,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_TRIANGLE,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_SAWTOOTHUP,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_SAWTOOTHDOWN,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_RAMP,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_SPRING,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_DAMPER,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_INERTIA,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_FRICTION,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_LEFTRIGHT,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_RESERVED1,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_RESERVED2,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_RESERVED3,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_CUSTOM,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_GAIN,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_AUTOCENTER,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_STATUS,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_PAUSE,
  SDL3.Sys.Bindgen.Haptic.SDL_HapticDirectionType (..),
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_POLAR,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_CARTESIAN,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_SPHERICAL,
  SDL3.Sys.Bindgen.Haptic.sDL_HAPTIC_STEERING_AXIS,
  SDL3.Sys.Bindgen.Haptic.SDL_HapticEffectID (..),
  SDL3.Sys.Bindgen.Haptic.SDL_HapticDirection (..),
  SDL3.Sys.Bindgen.Haptic.SDL_HapticConstant (..),
  SDL3.Sys.Bindgen.Haptic.SDL_HapticPeriodic (..),
  SDL3.Sys.Bindgen.Haptic.SDL_HapticCondition (..),
  SDL3.Sys.Bindgen.Haptic.SDL_HapticRamp (..),
  SDL3.Sys.Bindgen.Haptic.SDL_HapticLeftRight (..),
  SDL3.Sys.Bindgen.Haptic.SDL_HapticCustom (..),
  SDL3.Sys.Bindgen.Haptic.SDL_HapticEffect (..),
  SDL3.Sys.Bindgen.Haptic.SDL_HapticID (..),
)
where

import Prelude (
  Bounded,
  Enum,
  Eq,
  Int,
  Integral,
  Num,
  Ord,
  Read,
  Real,
  Show,
  pure,
  (<*>),
  (>>),
  type (~),
 )

import C.Expr.HostPlatform qualified
import HsBindgen.Runtime.ConstantArray qualified as CA
import HsBindgen.Runtime.HasCField qualified as HasCField
import HsBindgen.Runtime.Marshal qualified as Marshal
import HsBindgen.Runtime.Struct qualified as Struct
import HsBindgen.Runtime.Support qualified as BG
import HsBindgen.Runtime.Support.CompatHasField qualified as BG.CompatHasField
import HsBindgen.Runtime.Union qualified as Union
import SDL3.Sys.Bindgen.Stdinc qualified

-- | [C declaration]: @struct SDL_Haptic@, defined at @SDL3\/SDL_haptic.h 150:16@
data SDL_Haptic

-- | Used to play a device an infinite number of times.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_RunHapticEffect'
--
--     [C declaration]: @macro SDL_HAPTIC_INFINITY@, defined at @SDL3\/SDL_haptic.h 163:9@
sDL_HAPTIC_INFINITY :: BG.CUInt
sDL_HAPTIC_INFINITY :: CUInt
sDL_HAPTIC_INFINITY = (CUInt
4294967295 :: BG.CUInt)

-- | Type of haptic effect.
--
--     [C declaration]: @SDL_HapticEffectType@, defined at @SDL3\/SDL_haptic.h 181:16@
newtype SDL_HapticEffectType = SDL_HapticEffectType
  { SDL_HapticEffectType -> Uint16
unwrap :: SDL3.Sys.Bindgen.Stdinc.Uint16
  }
  deriving stock ((forall x. SDL_HapticEffectType -> Rep SDL_HapticEffectType x)
-> (forall x. Rep SDL_HapticEffectType x -> SDL_HapticEffectType)
-> Generic SDL_HapticEffectType
forall x. Rep SDL_HapticEffectType x -> SDL_HapticEffectType
forall x. SDL_HapticEffectType -> Rep SDL_HapticEffectType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_HapticEffectType -> Rep SDL_HapticEffectType x
from :: forall x. SDL_HapticEffectType -> Rep SDL_HapticEffectType x
$cto :: forall x. Rep SDL_HapticEffectType x -> SDL_HapticEffectType
to :: forall x. Rep SDL_HapticEffectType x -> SDL_HapticEffectType
BG.Generic, SDL_HapticEffectType -> SDL_HapticEffectType -> Bool
(SDL_HapticEffectType -> SDL_HapticEffectType -> Bool)
-> (SDL_HapticEffectType -> SDL_HapticEffectType -> Bool)
-> Eq SDL_HapticEffectType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_HapticEffectType -> SDL_HapticEffectType -> Bool
== :: SDL_HapticEffectType -> SDL_HapticEffectType -> Bool
$c/= :: SDL_HapticEffectType -> SDL_HapticEffectType -> Bool
/= :: SDL_HapticEffectType -> SDL_HapticEffectType -> Bool
Eq, Eq SDL_HapticEffectType
Eq SDL_HapticEffectType =>
(SDL_HapticEffectType -> SDL_HapticEffectType -> Ordering)
-> (SDL_HapticEffectType -> SDL_HapticEffectType -> Bool)
-> (SDL_HapticEffectType -> SDL_HapticEffectType -> Bool)
-> (SDL_HapticEffectType -> SDL_HapticEffectType -> Bool)
-> (SDL_HapticEffectType -> SDL_HapticEffectType -> Bool)
-> (SDL_HapticEffectType
    -> SDL_HapticEffectType -> SDL_HapticEffectType)
-> (SDL_HapticEffectType
    -> SDL_HapticEffectType -> SDL_HapticEffectType)
-> Ord SDL_HapticEffectType
SDL_HapticEffectType -> SDL_HapticEffectType -> Bool
SDL_HapticEffectType -> SDL_HapticEffectType -> Ordering
SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SDL_HapticEffectType -> SDL_HapticEffectType -> Ordering
compare :: SDL_HapticEffectType -> SDL_HapticEffectType -> Ordering
$c< :: SDL_HapticEffectType -> SDL_HapticEffectType -> Bool
< :: SDL_HapticEffectType -> SDL_HapticEffectType -> Bool
$c<= :: SDL_HapticEffectType -> SDL_HapticEffectType -> Bool
<= :: SDL_HapticEffectType -> SDL_HapticEffectType -> Bool
$c> :: SDL_HapticEffectType -> SDL_HapticEffectType -> Bool
> :: SDL_HapticEffectType -> SDL_HapticEffectType -> Bool
$c>= :: SDL_HapticEffectType -> SDL_HapticEffectType -> Bool
>= :: SDL_HapticEffectType -> SDL_HapticEffectType -> Bool
$cmax :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
max :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
$cmin :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
min :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
Ord, ReadPrec [SDL_HapticEffectType]
ReadPrec SDL_HapticEffectType
Int -> ReadS SDL_HapticEffectType
ReadS [SDL_HapticEffectType]
(Int -> ReadS SDL_HapticEffectType)
-> ReadS [SDL_HapticEffectType]
-> ReadPrec SDL_HapticEffectType
-> ReadPrec [SDL_HapticEffectType]
-> Read SDL_HapticEffectType
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS SDL_HapticEffectType
readsPrec :: Int -> ReadS SDL_HapticEffectType
$creadList :: ReadS [SDL_HapticEffectType]
readList :: ReadS [SDL_HapticEffectType]
$creadPrec :: ReadPrec SDL_HapticEffectType
readPrec :: ReadPrec SDL_HapticEffectType
$creadListPrec :: ReadPrec [SDL_HapticEffectType]
readListPrec :: ReadPrec [SDL_HapticEffectType]
Read, Int -> SDL_HapticEffectType -> ShowS
[SDL_HapticEffectType] -> ShowS
SDL_HapticEffectType -> String
(Int -> SDL_HapticEffectType -> ShowS)
-> (SDL_HapticEffectType -> String)
-> ([SDL_HapticEffectType] -> ShowS)
-> Show SDL_HapticEffectType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_HapticEffectType -> ShowS
showsPrec :: Int -> SDL_HapticEffectType -> ShowS
$cshow :: SDL_HapticEffectType -> String
show :: SDL_HapticEffectType -> String
$cshowList :: [SDL_HapticEffectType] -> ShowS
showList :: [SDL_HapticEffectType] -> ShowS
Show)
  deriving newtype
    ( Word64 -> Int -> SDL_HapticEffectType
SDL_HapticEffectType -> Int -> Word64
(SDL_HapticEffectType -> Int -> Word64)
-> (Word64 -> Int -> SDL_HapticEffectType)
-> Bitfield SDL_HapticEffectType
forall a.
(a -> Int -> Word64) -> (Word64 -> Int -> a) -> Bitfield a
$cnarrow :: SDL_HapticEffectType -> Int -> Word64
narrow :: SDL_HapticEffectType -> Int -> Word64
$cextend :: Word64 -> Int -> SDL_HapticEffectType
extend :: Word64 -> Int -> SDL_HapticEffectType
BG.Bitfield
    , Eq SDL_HapticEffectType
SDL_HapticEffectType
Eq SDL_HapticEffectType =>
(SDL_HapticEffectType
 -> SDL_HapticEffectType -> SDL_HapticEffectType)
-> (SDL_HapticEffectType
    -> SDL_HapticEffectType -> SDL_HapticEffectType)
-> (SDL_HapticEffectType
    -> SDL_HapticEffectType -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> Int -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> Int -> SDL_HapticEffectType)
-> SDL_HapticEffectType
-> (Int -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> Int -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> Int -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> Int -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> Int -> Bool)
-> (SDL_HapticEffectType -> Maybe Int)
-> (SDL_HapticEffectType -> Int)
-> (SDL_HapticEffectType -> Bool)
-> (SDL_HapticEffectType -> Int -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> Int -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> Int -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> Int -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> Int -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> Int -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> Int)
-> Bits SDL_HapticEffectType
Int -> SDL_HapticEffectType
SDL_HapticEffectType -> Bool
SDL_HapticEffectType -> Int
SDL_HapticEffectType -> Maybe Int
SDL_HapticEffectType -> SDL_HapticEffectType
SDL_HapticEffectType -> Int -> Bool
SDL_HapticEffectType -> Int -> SDL_HapticEffectType
SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
.&. :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
$c.|. :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
.|. :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
$cxor :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
xor :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
$ccomplement :: SDL_HapticEffectType -> SDL_HapticEffectType
complement :: SDL_HapticEffectType -> SDL_HapticEffectType
$cshift :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
shift :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
$crotate :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
rotate :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
$czeroBits :: SDL_HapticEffectType
zeroBits :: SDL_HapticEffectType
$cbit :: Int -> SDL_HapticEffectType
bit :: Int -> SDL_HapticEffectType
$csetBit :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
setBit :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
$cclearBit :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
clearBit :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
$ccomplementBit :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
complementBit :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
$ctestBit :: SDL_HapticEffectType -> Int -> Bool
testBit :: SDL_HapticEffectType -> Int -> Bool
$cbitSizeMaybe :: SDL_HapticEffectType -> Maybe Int
bitSizeMaybe :: SDL_HapticEffectType -> Maybe Int
$cbitSize :: SDL_HapticEffectType -> Int
bitSize :: SDL_HapticEffectType -> Int
$cisSigned :: SDL_HapticEffectType -> Bool
isSigned :: SDL_HapticEffectType -> Bool
$cshiftL :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
shiftL :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
$cunsafeShiftL :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
unsafeShiftL :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
$cshiftR :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
shiftR :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
$cunsafeShiftR :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
unsafeShiftR :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
$crotateL :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
rotateL :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
$crotateR :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
rotateR :: SDL_HapticEffectType -> Int -> SDL_HapticEffectType
$cpopCount :: SDL_HapticEffectType -> Int
popCount :: SDL_HapticEffectType -> Int
BG.Bits
    , Bits SDL_HapticEffectType
Bits SDL_HapticEffectType =>
(SDL_HapticEffectType -> Int)
-> (SDL_HapticEffectType -> Int)
-> (SDL_HapticEffectType -> Int)
-> FiniteBits SDL_HapticEffectType
SDL_HapticEffectType -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: SDL_HapticEffectType -> Int
finiteBitSize :: SDL_HapticEffectType -> Int
$ccountLeadingZeros :: SDL_HapticEffectType -> Int
countLeadingZeros :: SDL_HapticEffectType -> Int
$ccountTrailingZeros :: SDL_HapticEffectType -> Int
countTrailingZeros :: SDL_HapticEffectType -> Int
BG.FiniteBits
    , FFIType SDL_HapticEffectType -> SDL_HapticEffectType
SDL_HapticEffectType -> FFIType SDL_HapticEffectType
(SDL_HapticEffectType -> FFIType SDL_HapticEffectType)
-> (FFIType SDL_HapticEffectType -> SDL_HapticEffectType)
-> HasFFIType SDL_HapticEffectType
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_HapticEffectType -> FFIType SDL_HapticEffectType
toFFIType :: SDL_HapticEffectType -> FFIType SDL_HapticEffectType
$cfromFFIType :: FFIType SDL_HapticEffectType -> SDL_HapticEffectType
fromFFIType :: FFIType SDL_HapticEffectType -> SDL_HapticEffectType
BG.HasFFIType
    , Ord SDL_HapticEffectType
Ord SDL_HapticEffectType =>
((SDL_HapticEffectType, SDL_HapticEffectType)
 -> [SDL_HapticEffectType])
-> ((SDL_HapticEffectType, SDL_HapticEffectType)
    -> SDL_HapticEffectType -> Int)
-> ((SDL_HapticEffectType, SDL_HapticEffectType)
    -> SDL_HapticEffectType -> Int)
-> ((SDL_HapticEffectType, SDL_HapticEffectType)
    -> SDL_HapticEffectType -> Bool)
-> ((SDL_HapticEffectType, SDL_HapticEffectType) -> Int)
-> ((SDL_HapticEffectType, SDL_HapticEffectType) -> Int)
-> Ix SDL_HapticEffectType
(SDL_HapticEffectType, SDL_HapticEffectType) -> Int
(SDL_HapticEffectType, SDL_HapticEffectType)
-> [SDL_HapticEffectType]
(SDL_HapticEffectType, SDL_HapticEffectType)
-> SDL_HapticEffectType -> Bool
(SDL_HapticEffectType, SDL_HapticEffectType)
-> SDL_HapticEffectType -> Int
forall a.
Ord a =>
((a, a) -> [a])
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Bool)
-> ((a, a) -> Int)
-> ((a, a) -> Int)
-> Ix a
$crange :: (SDL_HapticEffectType, SDL_HapticEffectType)
-> [SDL_HapticEffectType]
range :: (SDL_HapticEffectType, SDL_HapticEffectType)
-> [SDL_HapticEffectType]
$cindex :: (SDL_HapticEffectType, SDL_HapticEffectType)
-> SDL_HapticEffectType -> Int
index :: (SDL_HapticEffectType, SDL_HapticEffectType)
-> SDL_HapticEffectType -> Int
$cunsafeIndex :: (SDL_HapticEffectType, SDL_HapticEffectType)
-> SDL_HapticEffectType -> Int
unsafeIndex :: (SDL_HapticEffectType, SDL_HapticEffectType)
-> SDL_HapticEffectType -> Int
$cinRange :: (SDL_HapticEffectType, SDL_HapticEffectType)
-> SDL_HapticEffectType -> Bool
inRange :: (SDL_HapticEffectType, SDL_HapticEffectType)
-> SDL_HapticEffectType -> Bool
$crangeSize :: (SDL_HapticEffectType, SDL_HapticEffectType) -> Int
rangeSize :: (SDL_HapticEffectType, SDL_HapticEffectType) -> Int
$cunsafeRangeSize :: (SDL_HapticEffectType, SDL_HapticEffectType) -> Int
unsafeRangeSize :: (SDL_HapticEffectType, SDL_HapticEffectType) -> Int
BG.Ix
    , Addr# -> Int# -> SDL_HapticEffectType
ByteArray# -> Int# -> SDL_HapticEffectType
Proxy SDL_HapticEffectType -> Int#
SDL_HapticEffectType -> Int#
(Proxy SDL_HapticEffectType -> Int#)
-> (SDL_HapticEffectType -> Int#)
-> (Proxy SDL_HapticEffectType -> Int#)
-> (SDL_HapticEffectType -> Int#)
-> (ByteArray# -> Int# -> SDL_HapticEffectType)
-> (forall s.
    MutableByteArray# s
    -> Int# -> State# s -> (# State# s, SDL_HapticEffectType #))
-> (forall s.
    MutableByteArray# s
    -> Int# -> SDL_HapticEffectType -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s
    -> Int# -> Int# -> SDL_HapticEffectType -> State# s -> State# s)
-> (Addr# -> Int# -> SDL_HapticEffectType)
-> (forall s.
    Addr# -> Int# -> State# s -> (# State# s, SDL_HapticEffectType #))
-> (forall s.
    Addr# -> Int# -> SDL_HapticEffectType -> State# s -> State# s)
-> (forall s.
    Addr#
    -> Int# -> Int# -> SDL_HapticEffectType -> State# s -> State# s)
-> Prim SDL_HapticEffectType
forall s.
Addr#
-> Int# -> Int# -> SDL_HapticEffectType -> State# s -> State# s
forall s.
Addr# -> Int# -> State# s -> (# State# s, SDL_HapticEffectType #)
forall s.
Addr# -> Int# -> SDL_HapticEffectType -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_HapticEffectType -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_HapticEffectType #)
forall s.
MutableByteArray# s
-> Int# -> SDL_HapticEffectType -> State# s -> State# s
forall a.
(Proxy a -> Int#)
-> (a -> Int#)
-> (Proxy a -> Int#)
-> (a -> Int#)
-> (ByteArray# -> Int# -> a)
-> (forall s.
    MutableByteArray# s -> Int# -> State# s -> (# State# s, a #))
-> (forall s.
    MutableByteArray# s -> Int# -> a -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s)
-> (Addr# -> Int# -> a)
-> (forall s. Addr# -> Int# -> State# s -> (# State# s, a #))
-> (forall s. Addr# -> Int# -> a -> State# s -> State# s)
-> (forall s. Addr# -> Int# -> Int# -> a -> State# s -> State# s)
-> Prim a
$csizeOfType# :: Proxy SDL_HapticEffectType -> Int#
sizeOfType# :: Proxy SDL_HapticEffectType -> Int#
$csizeOf# :: SDL_HapticEffectType -> Int#
sizeOf# :: SDL_HapticEffectType -> Int#
$calignmentOfType# :: Proxy SDL_HapticEffectType -> Int#
alignmentOfType# :: Proxy SDL_HapticEffectType -> Int#
$calignment# :: SDL_HapticEffectType -> Int#
alignment# :: SDL_HapticEffectType -> Int#
$cindexByteArray# :: ByteArray# -> Int# -> SDL_HapticEffectType
indexByteArray# :: ByteArray# -> Int# -> SDL_HapticEffectType
$creadByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_HapticEffectType #)
readByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_HapticEffectType #)
$cwriteByteArray# :: forall s.
MutableByteArray# s
-> Int# -> SDL_HapticEffectType -> State# s -> State# s
writeByteArray# :: forall s.
MutableByteArray# s
-> Int# -> SDL_HapticEffectType -> State# s -> State# s
$csetByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_HapticEffectType -> State# s -> State# s
setByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_HapticEffectType -> State# s -> State# s
$cindexOffAddr# :: Addr# -> Int# -> SDL_HapticEffectType
indexOffAddr# :: Addr# -> Int# -> SDL_HapticEffectType
$creadOffAddr# :: forall s.
Addr# -> Int# -> State# s -> (# State# s, SDL_HapticEffectType #)
readOffAddr# :: forall s.
Addr# -> Int# -> State# s -> (# State# s, SDL_HapticEffectType #)
$cwriteOffAddr# :: forall s.
Addr# -> Int# -> SDL_HapticEffectType -> State# s -> State# s
writeOffAddr# :: forall s.
Addr# -> Int# -> SDL_HapticEffectType -> State# s -> State# s
$csetOffAddr# :: forall s.
Addr#
-> Int# -> Int# -> SDL_HapticEffectType -> State# s -> State# s
setOffAddr# :: forall s.
Addr#
-> Int# -> Int# -> SDL_HapticEffectType -> State# s -> State# s
BG.Prim
    , Ptr SDL_HapticEffectType -> IO SDL_HapticEffectType
Ptr SDL_HapticEffectType -> Int -> IO SDL_HapticEffectType
Ptr SDL_HapticEffectType -> Int -> SDL_HapticEffectType -> IO ()
Ptr SDL_HapticEffectType -> SDL_HapticEffectType -> IO ()
SDL_HapticEffectType -> Int
(SDL_HapticEffectType -> Int)
-> (SDL_HapticEffectType -> Int)
-> (Ptr SDL_HapticEffectType -> Int -> IO SDL_HapticEffectType)
-> (Ptr SDL_HapticEffectType
    -> Int -> SDL_HapticEffectType -> IO ())
-> (forall b. Ptr b -> Int -> IO SDL_HapticEffectType)
-> (forall b. Ptr b -> Int -> SDL_HapticEffectType -> IO ())
-> (Ptr SDL_HapticEffectType -> IO SDL_HapticEffectType)
-> (Ptr SDL_HapticEffectType -> SDL_HapticEffectType -> IO ())
-> Storable SDL_HapticEffectType
forall b. Ptr b -> Int -> IO SDL_HapticEffectType
forall b. Ptr b -> Int -> SDL_HapticEffectType -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: SDL_HapticEffectType -> Int
sizeOf :: SDL_HapticEffectType -> Int
$calignment :: SDL_HapticEffectType -> Int
alignment :: SDL_HapticEffectType -> Int
$cpeekElemOff :: Ptr SDL_HapticEffectType -> Int -> IO SDL_HapticEffectType
peekElemOff :: Ptr SDL_HapticEffectType -> Int -> IO SDL_HapticEffectType
$cpokeElemOff :: Ptr SDL_HapticEffectType -> Int -> SDL_HapticEffectType -> IO ()
pokeElemOff :: Ptr SDL_HapticEffectType -> Int -> SDL_HapticEffectType -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SDL_HapticEffectType
peekByteOff :: forall b. Ptr b -> Int -> IO SDL_HapticEffectType
$cpokeByteOff :: forall b. Ptr b -> Int -> SDL_HapticEffectType -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> SDL_HapticEffectType -> IO ()
$cpeek :: Ptr SDL_HapticEffectType -> IO SDL_HapticEffectType
peek :: Ptr SDL_HapticEffectType -> IO SDL_HapticEffectType
$cpoke :: Ptr SDL_HapticEffectType -> SDL_HapticEffectType -> IO ()
poke :: Ptr SDL_HapticEffectType -> SDL_HapticEffectType -> IO ()
BG.Storable
    , SDL_HapticEffectType
SDL_HapticEffectType
-> SDL_HapticEffectType -> Bounded SDL_HapticEffectType
forall a. a -> a -> Bounded a
$cminBound :: SDL_HapticEffectType
minBound :: SDL_HapticEffectType
$cmaxBound :: SDL_HapticEffectType
maxBound :: SDL_HapticEffectType
Bounded
    , Int -> SDL_HapticEffectType
SDL_HapticEffectType -> Int
SDL_HapticEffectType -> [SDL_HapticEffectType]
SDL_HapticEffectType -> SDL_HapticEffectType
SDL_HapticEffectType
-> SDL_HapticEffectType -> [SDL_HapticEffectType]
SDL_HapticEffectType
-> SDL_HapticEffectType
-> SDL_HapticEffectType
-> [SDL_HapticEffectType]
(SDL_HapticEffectType -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> SDL_HapticEffectType)
-> (Int -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> Int)
-> (SDL_HapticEffectType -> [SDL_HapticEffectType])
-> (SDL_HapticEffectType
    -> SDL_HapticEffectType -> [SDL_HapticEffectType])
-> (SDL_HapticEffectType
    -> SDL_HapticEffectType -> [SDL_HapticEffectType])
-> (SDL_HapticEffectType
    -> SDL_HapticEffectType
    -> SDL_HapticEffectType
    -> [SDL_HapticEffectType])
-> Enum SDL_HapticEffectType
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: SDL_HapticEffectType -> SDL_HapticEffectType
succ :: SDL_HapticEffectType -> SDL_HapticEffectType
$cpred :: SDL_HapticEffectType -> SDL_HapticEffectType
pred :: SDL_HapticEffectType -> SDL_HapticEffectType
$ctoEnum :: Int -> SDL_HapticEffectType
toEnum :: Int -> SDL_HapticEffectType
$cfromEnum :: SDL_HapticEffectType -> Int
fromEnum :: SDL_HapticEffectType -> Int
$cenumFrom :: SDL_HapticEffectType -> [SDL_HapticEffectType]
enumFrom :: SDL_HapticEffectType -> [SDL_HapticEffectType]
$cenumFromThen :: SDL_HapticEffectType
-> SDL_HapticEffectType -> [SDL_HapticEffectType]
enumFromThen :: SDL_HapticEffectType
-> SDL_HapticEffectType -> [SDL_HapticEffectType]
$cenumFromTo :: SDL_HapticEffectType
-> SDL_HapticEffectType -> [SDL_HapticEffectType]
enumFromTo :: SDL_HapticEffectType
-> SDL_HapticEffectType -> [SDL_HapticEffectType]
$cenumFromThenTo :: SDL_HapticEffectType
-> SDL_HapticEffectType
-> SDL_HapticEffectType
-> [SDL_HapticEffectType]
enumFromThenTo :: SDL_HapticEffectType
-> SDL_HapticEffectType
-> SDL_HapticEffectType
-> [SDL_HapticEffectType]
Enum
    , Enum SDL_HapticEffectType
Real SDL_HapticEffectType
(Real SDL_HapticEffectType, Enum SDL_HapticEffectType) =>
(SDL_HapticEffectType
 -> SDL_HapticEffectType -> SDL_HapticEffectType)
-> (SDL_HapticEffectType
    -> SDL_HapticEffectType -> SDL_HapticEffectType)
-> (SDL_HapticEffectType
    -> SDL_HapticEffectType -> SDL_HapticEffectType)
-> (SDL_HapticEffectType
    -> SDL_HapticEffectType -> SDL_HapticEffectType)
-> (SDL_HapticEffectType
    -> SDL_HapticEffectType
    -> (SDL_HapticEffectType, SDL_HapticEffectType))
-> (SDL_HapticEffectType
    -> SDL_HapticEffectType
    -> (SDL_HapticEffectType, SDL_HapticEffectType))
-> (SDL_HapticEffectType -> Integer)
-> Integral SDL_HapticEffectType
SDL_HapticEffectType -> Integer
SDL_HapticEffectType
-> SDL_HapticEffectType
-> (SDL_HapticEffectType, SDL_HapticEffectType)
SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
forall a.
(Real a, Enum a) =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> (a, a))
-> (a -> a -> (a, a))
-> (a -> Integer)
-> Integral a
$cquot :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
quot :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
$crem :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
rem :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
$cdiv :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
div :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
$cmod :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
mod :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
$cquotRem :: SDL_HapticEffectType
-> SDL_HapticEffectType
-> (SDL_HapticEffectType, SDL_HapticEffectType)
quotRem :: SDL_HapticEffectType
-> SDL_HapticEffectType
-> (SDL_HapticEffectType, SDL_HapticEffectType)
$cdivMod :: SDL_HapticEffectType
-> SDL_HapticEffectType
-> (SDL_HapticEffectType, SDL_HapticEffectType)
divMod :: SDL_HapticEffectType
-> SDL_HapticEffectType
-> (SDL_HapticEffectType, SDL_HapticEffectType)
$ctoInteger :: SDL_HapticEffectType -> Integer
toInteger :: SDL_HapticEffectType -> Integer
Integral
    , Ptr SDL_HapticEffectType -> IO SDL_HapticEffectType
(Ptr SDL_HapticEffectType -> IO SDL_HapticEffectType)
-> ReadRaw SDL_HapticEffectType
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr SDL_HapticEffectType -> IO SDL_HapticEffectType
readRaw :: Ptr SDL_HapticEffectType -> IO SDL_HapticEffectType
Marshal.ReadRaw
    , Proxy SDL_HapticEffectType -> Int
(Proxy SDL_HapticEffectType -> Int)
-> (Proxy SDL_HapticEffectType -> Int)
-> StaticSize SDL_HapticEffectType
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy SDL_HapticEffectType -> Int
staticSizeOf :: Proxy SDL_HapticEffectType -> Int
$cstaticAlignment :: Proxy SDL_HapticEffectType -> Int
staticAlignment :: Proxy SDL_HapticEffectType -> Int
Marshal.StaticSize
    , Ptr SDL_HapticEffectType -> SDL_HapticEffectType -> IO ()
(Ptr SDL_HapticEffectType -> SDL_HapticEffectType -> IO ())
-> WriteRaw SDL_HapticEffectType
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr SDL_HapticEffectType -> SDL_HapticEffectType -> IO ()
writeRaw :: Ptr SDL_HapticEffectType -> SDL_HapticEffectType -> IO ()
Marshal.WriteRaw
    , Integer -> SDL_HapticEffectType
SDL_HapticEffectType -> SDL_HapticEffectType
SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
(SDL_HapticEffectType
 -> SDL_HapticEffectType -> SDL_HapticEffectType)
-> (SDL_HapticEffectType
    -> SDL_HapticEffectType -> SDL_HapticEffectType)
-> (SDL_HapticEffectType
    -> SDL_HapticEffectType -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> SDL_HapticEffectType)
-> (SDL_HapticEffectType -> SDL_HapticEffectType)
-> (Integer -> SDL_HapticEffectType)
-> Num SDL_HapticEffectType
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
+ :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
$c- :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
- :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
$c* :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
* :: SDL_HapticEffectType
-> SDL_HapticEffectType -> SDL_HapticEffectType
$cnegate :: SDL_HapticEffectType -> SDL_HapticEffectType
negate :: SDL_HapticEffectType -> SDL_HapticEffectType
$cabs :: SDL_HapticEffectType -> SDL_HapticEffectType
abs :: SDL_HapticEffectType -> SDL_HapticEffectType
$csignum :: SDL_HapticEffectType -> SDL_HapticEffectType
signum :: SDL_HapticEffectType -> SDL_HapticEffectType
$cfromInteger :: Integer -> SDL_HapticEffectType
fromInteger :: Integer -> SDL_HapticEffectType
Num
    , Num SDL_HapticEffectType
Ord SDL_HapticEffectType
(Num SDL_HapticEffectType, Ord SDL_HapticEffectType) =>
(SDL_HapticEffectType -> Rational) -> Real SDL_HapticEffectType
SDL_HapticEffectType -> Rational
forall a. (Num a, Ord a) => (a -> Rational) -> Real a
$ctoRational :: SDL_HapticEffectType -> Rational
toRational :: SDL_HapticEffectType -> Rational
Real
    )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "unwrap" SDL_HapticEffectType ty
  where
  hasField :: SDL_HapticEffectType -> (ty -> SDL_HapticEffectType, ty)
hasField =
    \SDL_HapticEffectType
x0 ->
      ( \ty
y1 ->
          SDL_HapticEffectType{unwrap :: Uint16
unwrap = ty
Uint16
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_HapticEffectType
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "unwrap" (BG.Ptr SDL_HapticEffectType) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticEffectType -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_HapticEffectType
-> Ptr (CFieldType SDL_HapticEffectType "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_HapticEffectType "unwrap" where
  type
    CFieldType SDL_HapticEffectType "unwrap" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticEffectType -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_HapticEffectType
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | Constant effect supported.
--
--     Constant haptic effect.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticCondition'
--
--     [C declaration]: @macro SDL_HAPTIC_CONSTANT@, defined at @SDL3\/SDL_haptic.h 192:9@
sDL_HAPTIC_CONSTANT :: BG.CUInt
sDL_HAPTIC_CONSTANT :: CUInt
sDL_HAPTIC_CONSTANT =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
0 :: BG.CInt)

-- | Sine wave effect supported.
--
--     Periodic haptic effect that simulates sine waves.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticPeriodic'
--
--     [C declaration]: @macro SDL_HAPTIC_SINE@, defined at @SDL3\/SDL_haptic.h 203:9@
sDL_HAPTIC_SINE :: BG.CUInt
sDL_HAPTIC_SINE :: CUInt
sDL_HAPTIC_SINE =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
1 :: BG.CInt)

-- | Square wave effect supported.
--
--     Periodic haptic effect that simulates square waves.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticPeriodic'
--
--     [C declaration]: @macro SDL_HAPTIC_SQUARE@, defined at @SDL3\/SDL_haptic.h 214:9@
sDL_HAPTIC_SQUARE :: BG.CUInt
sDL_HAPTIC_SQUARE :: CUInt
sDL_HAPTIC_SQUARE =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
2 :: BG.CInt)

-- | Triangle wave effect supported.
--
--     Periodic haptic effect that simulates triangular waves.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticPeriodic'
--
--     [C declaration]: @macro SDL_HAPTIC_TRIANGLE@, defined at @SDL3\/SDL_haptic.h 225:9@
sDL_HAPTIC_TRIANGLE :: BG.CUInt
sDL_HAPTIC_TRIANGLE :: CUInt
sDL_HAPTIC_TRIANGLE =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
3 :: BG.CInt)

-- | Sawtoothup wave effect supported.
--
--     Periodic haptic effect that simulates saw tooth up waves.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticPeriodic'
--
--     [C declaration]: @macro SDL_HAPTIC_SAWTOOTHUP@, defined at @SDL3\/SDL_haptic.h 236:9@
sDL_HAPTIC_SAWTOOTHUP :: BG.CUInt
sDL_HAPTIC_SAWTOOTHUP :: CUInt
sDL_HAPTIC_SAWTOOTHUP =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
4 :: BG.CInt)

-- | Sawtoothdown wave effect supported.
--
--     Periodic haptic effect that simulates saw tooth down waves.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticPeriodic'
--
--     [C declaration]: @macro SDL_HAPTIC_SAWTOOTHDOWN@, defined at @SDL3\/SDL_haptic.h 247:9@
sDL_HAPTIC_SAWTOOTHDOWN :: BG.CUInt
sDL_HAPTIC_SAWTOOTHDOWN :: CUInt
sDL_HAPTIC_SAWTOOTHDOWN =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
5 :: BG.CInt)

-- | Ramp effect supported.
--
--     Ramp haptic effect.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticRamp'
--
--     [C declaration]: @macro SDL_HAPTIC_RAMP@, defined at @SDL3\/SDL_haptic.h 258:9@
sDL_HAPTIC_RAMP :: BG.CUInt
sDL_HAPTIC_RAMP :: CUInt
sDL_HAPTIC_RAMP =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
6 :: BG.CInt)

-- | Spring effect supported - uses axes position.
--
--     Condition haptic effect that simulates a spring. Effect is based on the axes position.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticCondition'
--
--     [C declaration]: @macro SDL_HAPTIC_SPRING@, defined at @SDL3\/SDL_haptic.h 270:9@
sDL_HAPTIC_SPRING :: BG.CUInt
sDL_HAPTIC_SPRING :: CUInt
sDL_HAPTIC_SPRING =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
7 :: BG.CInt)

-- | Damper effect supported - uses axes velocity.
--
--     Condition haptic effect that simulates dampening. Effect is based on the axes velocity.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticCondition'
--
--     [C declaration]: @macro SDL_HAPTIC_DAMPER@, defined at @SDL3\/SDL_haptic.h 282:9@
sDL_HAPTIC_DAMPER :: BG.CUInt
sDL_HAPTIC_DAMPER :: CUInt
sDL_HAPTIC_DAMPER =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
8 :: BG.CInt)

-- | Inertia effect supported - uses axes acceleration.
--
--     Condition haptic effect that simulates inertia. Effect is based on the axes acceleration.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticCondition'
--
--     [C declaration]: @macro SDL_HAPTIC_INERTIA@, defined at @SDL3\/SDL_haptic.h 294:9@
sDL_HAPTIC_INERTIA :: BG.CUInt
sDL_HAPTIC_INERTIA :: CUInt
sDL_HAPTIC_INERTIA =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
9 :: BG.CInt)

-- | Friction effect supported - uses axes movement.
--
--     Condition haptic effect that simulates friction. Effect is based on the axes movement.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticCondition'
--
--     [C declaration]: @macro SDL_HAPTIC_FRICTION@, defined at @SDL3\/SDL_haptic.h 306:9@
sDL_HAPTIC_FRICTION :: BG.CUInt
sDL_HAPTIC_FRICTION :: CUInt
sDL_HAPTIC_FRICTION =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
10 :: BG.CInt)

-- | Left\/Right effect supported.
--
--     Haptic effect for direct control over high\/low frequency motors.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticLeftRight'
--
--     [C declaration]: @macro SDL_HAPTIC_LEFTRIGHT@, defined at @SDL3\/SDL_haptic.h 317:9@
sDL_HAPTIC_LEFTRIGHT :: BG.CUInt
sDL_HAPTIC_LEFTRIGHT :: CUInt
sDL_HAPTIC_LEFTRIGHT =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
11 :: BG.CInt)

-- | Reserved for future use.
--
--     @since 3.2.0
--
--     [C declaration]: @macro SDL_HAPTIC_RESERVED1@, defined at @SDL3\/SDL_haptic.h 324:9@
sDL_HAPTIC_RESERVED1 :: BG.CUInt
sDL_HAPTIC_RESERVED1 :: CUInt
sDL_HAPTIC_RESERVED1 =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
12 :: BG.CInt)

-- | Reserved for future use.
--
--     @since 3.2.0
--
--     [C declaration]: @macro SDL_HAPTIC_RESERVED2@, defined at @SDL3\/SDL_haptic.h 331:9@
sDL_HAPTIC_RESERVED2 :: BG.CUInt
sDL_HAPTIC_RESERVED2 :: CUInt
sDL_HAPTIC_RESERVED2 =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
13 :: BG.CInt)

-- | Reserved for future use.
--
--     @since 3.2.0
--
--     [C declaration]: @macro SDL_HAPTIC_RESERVED3@, defined at @SDL3\/SDL_haptic.h 338:9@
sDL_HAPTIC_RESERVED3 :: BG.CUInt
sDL_HAPTIC_RESERVED3 :: CUInt
sDL_HAPTIC_RESERVED3 =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
14 :: BG.CInt)

-- | Custom effect is supported.
--
--     User defined custom haptic effect.
--
--     @since 3.2.0
--
--     [C declaration]: @macro SDL_HAPTIC_CUSTOM@, defined at @SDL3\/SDL_haptic.h 347:9@
sDL_HAPTIC_CUSTOM :: BG.CUInt
sDL_HAPTIC_CUSTOM :: CUInt
sDL_HAPTIC_CUSTOM =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
15 :: BG.CInt)

-- | Device can set global gain.
--
--     Device supports setting the global gain.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_SetHapticGain'
--
--     [C declaration]: @macro SDL_HAPTIC_GAIN@, defined at @SDL3\/SDL_haptic.h 362:9@
sDL_HAPTIC_GAIN :: BG.CUInt
sDL_HAPTIC_GAIN :: CUInt
sDL_HAPTIC_GAIN =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
16 :: BG.CInt)

-- | Device can set autocenter.
--
--     Device supports setting autocenter.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_SetHapticAutocenter'
--
--     [C declaration]: @macro SDL_HAPTIC_AUTOCENTER@, defined at @SDL3\/SDL_haptic.h 373:9@
sDL_HAPTIC_AUTOCENTER :: BG.CUInt
sDL_HAPTIC_AUTOCENTER :: CUInt
sDL_HAPTIC_AUTOCENTER =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
17 :: BG.CInt)

-- | Device can be queried for effect status.
--
--     Device supports querying effect status.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_GetHapticEffectStatus'
--
--     [C declaration]: @macro SDL_HAPTIC_STATUS@, defined at @SDL3\/SDL_haptic.h 384:9@
sDL_HAPTIC_STATUS :: BG.CUInt
sDL_HAPTIC_STATUS :: CUInt
sDL_HAPTIC_STATUS =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
18 :: BG.CInt)

-- | Device can be paused.
--
--     Devices supports being paused.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_PauseHaptic', 'sDL_ResumeHaptic'
--
--     [C declaration]: @macro SDL_HAPTIC_PAUSE@, defined at @SDL3\/SDL_haptic.h 396:9@
sDL_HAPTIC_PAUSE :: BG.CUInt
sDL_HAPTIC_PAUSE :: CUInt
sDL_HAPTIC_PAUSE =
  CUInt -> CInt -> ShiftRes CUInt
forall a i. Shift a i => a -> i -> ShiftRes a
(C.Expr.HostPlatform.<<) (CUInt
1 :: BG.CUInt) (CInt
19 :: BG.CInt)

-- | Type of coordinates used for haptic direction.
--
--     [C declaration]: @SDL_HapticDirectionType@, defined at @SDL3\/SDL_haptic.h 407:15@
newtype SDL_HapticDirectionType = SDL_HapticDirectionType
  { SDL_HapticDirectionType -> Uint8
unwrap :: SDL3.Sys.Bindgen.Stdinc.Uint8
  }
  deriving stock ((forall x.
 SDL_HapticDirectionType -> Rep SDL_HapticDirectionType x)
-> (forall x.
    Rep SDL_HapticDirectionType x -> SDL_HapticDirectionType)
-> Generic SDL_HapticDirectionType
forall x. Rep SDL_HapticDirectionType x -> SDL_HapticDirectionType
forall x. SDL_HapticDirectionType -> Rep SDL_HapticDirectionType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_HapticDirectionType -> Rep SDL_HapticDirectionType x
from :: forall x. SDL_HapticDirectionType -> Rep SDL_HapticDirectionType x
$cto :: forall x. Rep SDL_HapticDirectionType x -> SDL_HapticDirectionType
to :: forall x. Rep SDL_HapticDirectionType x -> SDL_HapticDirectionType
BG.Generic, SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool
(SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool)
-> (SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool)
-> Eq SDL_HapticDirectionType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool
== :: SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool
$c/= :: SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool
/= :: SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool
Eq, Eq SDL_HapticDirectionType
Eq SDL_HapticDirectionType =>
(SDL_HapticDirectionType -> SDL_HapticDirectionType -> Ordering)
-> (SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool)
-> (SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool)
-> (SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool)
-> (SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool)
-> (SDL_HapticDirectionType
    -> SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType
    -> SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> Ord SDL_HapticDirectionType
SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool
SDL_HapticDirectionType -> SDL_HapticDirectionType -> Ordering
SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SDL_HapticDirectionType -> SDL_HapticDirectionType -> Ordering
compare :: SDL_HapticDirectionType -> SDL_HapticDirectionType -> Ordering
$c< :: SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool
< :: SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool
$c<= :: SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool
<= :: SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool
$c> :: SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool
> :: SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool
$c>= :: SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool
>= :: SDL_HapticDirectionType -> SDL_HapticDirectionType -> Bool
$cmax :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
max :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
$cmin :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
min :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
Ord, ReadPrec [SDL_HapticDirectionType]
ReadPrec SDL_HapticDirectionType
Int -> ReadS SDL_HapticDirectionType
ReadS [SDL_HapticDirectionType]
(Int -> ReadS SDL_HapticDirectionType)
-> ReadS [SDL_HapticDirectionType]
-> ReadPrec SDL_HapticDirectionType
-> ReadPrec [SDL_HapticDirectionType]
-> Read SDL_HapticDirectionType
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS SDL_HapticDirectionType
readsPrec :: Int -> ReadS SDL_HapticDirectionType
$creadList :: ReadS [SDL_HapticDirectionType]
readList :: ReadS [SDL_HapticDirectionType]
$creadPrec :: ReadPrec SDL_HapticDirectionType
readPrec :: ReadPrec SDL_HapticDirectionType
$creadListPrec :: ReadPrec [SDL_HapticDirectionType]
readListPrec :: ReadPrec [SDL_HapticDirectionType]
Read, Int -> SDL_HapticDirectionType -> ShowS
[SDL_HapticDirectionType] -> ShowS
SDL_HapticDirectionType -> String
(Int -> SDL_HapticDirectionType -> ShowS)
-> (SDL_HapticDirectionType -> String)
-> ([SDL_HapticDirectionType] -> ShowS)
-> Show SDL_HapticDirectionType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_HapticDirectionType -> ShowS
showsPrec :: Int -> SDL_HapticDirectionType -> ShowS
$cshow :: SDL_HapticDirectionType -> String
show :: SDL_HapticDirectionType -> String
$cshowList :: [SDL_HapticDirectionType] -> ShowS
showList :: [SDL_HapticDirectionType] -> ShowS
Show)
  deriving newtype
    ( Word64 -> Int -> SDL_HapticDirectionType
SDL_HapticDirectionType -> Int -> Word64
(SDL_HapticDirectionType -> Int -> Word64)
-> (Word64 -> Int -> SDL_HapticDirectionType)
-> Bitfield SDL_HapticDirectionType
forall a.
(a -> Int -> Word64) -> (Word64 -> Int -> a) -> Bitfield a
$cnarrow :: SDL_HapticDirectionType -> Int -> Word64
narrow :: SDL_HapticDirectionType -> Int -> Word64
$cextend :: Word64 -> Int -> SDL_HapticDirectionType
extend :: Word64 -> Int -> SDL_HapticDirectionType
BG.Bitfield
    , Eq SDL_HapticDirectionType
SDL_HapticDirectionType
Eq SDL_HapticDirectionType =>
(SDL_HapticDirectionType
 -> SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType
    -> SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType
    -> SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType)
-> SDL_HapticDirectionType
-> (Int -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> Int -> Bool)
-> (SDL_HapticDirectionType -> Maybe Int)
-> (SDL_HapticDirectionType -> Int)
-> (SDL_HapticDirectionType -> Bool)
-> (SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> Int)
-> Bits SDL_HapticDirectionType
Int -> SDL_HapticDirectionType
SDL_HapticDirectionType -> Bool
SDL_HapticDirectionType -> Int
SDL_HapticDirectionType -> Maybe Int
SDL_HapticDirectionType -> SDL_HapticDirectionType
SDL_HapticDirectionType -> Int -> Bool
SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
.&. :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
$c.|. :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
.|. :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
$cxor :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
xor :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
$ccomplement :: SDL_HapticDirectionType -> SDL_HapticDirectionType
complement :: SDL_HapticDirectionType -> SDL_HapticDirectionType
$cshift :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
shift :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
$crotate :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
rotate :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
$czeroBits :: SDL_HapticDirectionType
zeroBits :: SDL_HapticDirectionType
$cbit :: Int -> SDL_HapticDirectionType
bit :: Int -> SDL_HapticDirectionType
$csetBit :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
setBit :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
$cclearBit :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
clearBit :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
$ccomplementBit :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
complementBit :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
$ctestBit :: SDL_HapticDirectionType -> Int -> Bool
testBit :: SDL_HapticDirectionType -> Int -> Bool
$cbitSizeMaybe :: SDL_HapticDirectionType -> Maybe Int
bitSizeMaybe :: SDL_HapticDirectionType -> Maybe Int
$cbitSize :: SDL_HapticDirectionType -> Int
bitSize :: SDL_HapticDirectionType -> Int
$cisSigned :: SDL_HapticDirectionType -> Bool
isSigned :: SDL_HapticDirectionType -> Bool
$cshiftL :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
shiftL :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
$cunsafeShiftL :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
unsafeShiftL :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
$cshiftR :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
shiftR :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
$cunsafeShiftR :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
unsafeShiftR :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
$crotateL :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
rotateL :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
$crotateR :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
rotateR :: SDL_HapticDirectionType -> Int -> SDL_HapticDirectionType
$cpopCount :: SDL_HapticDirectionType -> Int
popCount :: SDL_HapticDirectionType -> Int
BG.Bits
    , Bits SDL_HapticDirectionType
Bits SDL_HapticDirectionType =>
(SDL_HapticDirectionType -> Int)
-> (SDL_HapticDirectionType -> Int)
-> (SDL_HapticDirectionType -> Int)
-> FiniteBits SDL_HapticDirectionType
SDL_HapticDirectionType -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: SDL_HapticDirectionType -> Int
finiteBitSize :: SDL_HapticDirectionType -> Int
$ccountLeadingZeros :: SDL_HapticDirectionType -> Int
countLeadingZeros :: SDL_HapticDirectionType -> Int
$ccountTrailingZeros :: SDL_HapticDirectionType -> Int
countTrailingZeros :: SDL_HapticDirectionType -> Int
BG.FiniteBits
    , FFIType SDL_HapticDirectionType -> SDL_HapticDirectionType
SDL_HapticDirectionType -> FFIType SDL_HapticDirectionType
(SDL_HapticDirectionType -> FFIType SDL_HapticDirectionType)
-> (FFIType SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> HasFFIType SDL_HapticDirectionType
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_HapticDirectionType -> FFIType SDL_HapticDirectionType
toFFIType :: SDL_HapticDirectionType -> FFIType SDL_HapticDirectionType
$cfromFFIType :: FFIType SDL_HapticDirectionType -> SDL_HapticDirectionType
fromFFIType :: FFIType SDL_HapticDirectionType -> SDL_HapticDirectionType
BG.HasFFIType
    , Ord SDL_HapticDirectionType
Ord SDL_HapticDirectionType =>
((SDL_HapticDirectionType, SDL_HapticDirectionType)
 -> [SDL_HapticDirectionType])
-> ((SDL_HapticDirectionType, SDL_HapticDirectionType)
    -> SDL_HapticDirectionType -> Int)
-> ((SDL_HapticDirectionType, SDL_HapticDirectionType)
    -> SDL_HapticDirectionType -> Int)
-> ((SDL_HapticDirectionType, SDL_HapticDirectionType)
    -> SDL_HapticDirectionType -> Bool)
-> ((SDL_HapticDirectionType, SDL_HapticDirectionType) -> Int)
-> ((SDL_HapticDirectionType, SDL_HapticDirectionType) -> Int)
-> Ix SDL_HapticDirectionType
(SDL_HapticDirectionType, SDL_HapticDirectionType) -> Int
(SDL_HapticDirectionType, SDL_HapticDirectionType)
-> [SDL_HapticDirectionType]
(SDL_HapticDirectionType, SDL_HapticDirectionType)
-> SDL_HapticDirectionType -> Bool
(SDL_HapticDirectionType, SDL_HapticDirectionType)
-> SDL_HapticDirectionType -> Int
forall a.
Ord a =>
((a, a) -> [a])
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Bool)
-> ((a, a) -> Int)
-> ((a, a) -> Int)
-> Ix a
$crange :: (SDL_HapticDirectionType, SDL_HapticDirectionType)
-> [SDL_HapticDirectionType]
range :: (SDL_HapticDirectionType, SDL_HapticDirectionType)
-> [SDL_HapticDirectionType]
$cindex :: (SDL_HapticDirectionType, SDL_HapticDirectionType)
-> SDL_HapticDirectionType -> Int
index :: (SDL_HapticDirectionType, SDL_HapticDirectionType)
-> SDL_HapticDirectionType -> Int
$cunsafeIndex :: (SDL_HapticDirectionType, SDL_HapticDirectionType)
-> SDL_HapticDirectionType -> Int
unsafeIndex :: (SDL_HapticDirectionType, SDL_HapticDirectionType)
-> SDL_HapticDirectionType -> Int
$cinRange :: (SDL_HapticDirectionType, SDL_HapticDirectionType)
-> SDL_HapticDirectionType -> Bool
inRange :: (SDL_HapticDirectionType, SDL_HapticDirectionType)
-> SDL_HapticDirectionType -> Bool
$crangeSize :: (SDL_HapticDirectionType, SDL_HapticDirectionType) -> Int
rangeSize :: (SDL_HapticDirectionType, SDL_HapticDirectionType) -> Int
$cunsafeRangeSize :: (SDL_HapticDirectionType, SDL_HapticDirectionType) -> Int
unsafeRangeSize :: (SDL_HapticDirectionType, SDL_HapticDirectionType) -> Int
BG.Ix
    , Addr# -> Int# -> SDL_HapticDirectionType
ByteArray# -> Int# -> SDL_HapticDirectionType
Proxy SDL_HapticDirectionType -> Int#
SDL_HapticDirectionType -> Int#
(Proxy SDL_HapticDirectionType -> Int#)
-> (SDL_HapticDirectionType -> Int#)
-> (Proxy SDL_HapticDirectionType -> Int#)
-> (SDL_HapticDirectionType -> Int#)
-> (ByteArray# -> Int# -> SDL_HapticDirectionType)
-> (forall s.
    MutableByteArray# s
    -> Int# -> State# s -> (# State# s, SDL_HapticDirectionType #))
-> (forall s.
    MutableByteArray# s
    -> Int# -> SDL_HapticDirectionType -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s
    -> Int# -> Int# -> SDL_HapticDirectionType -> State# s -> State# s)
-> (Addr# -> Int# -> SDL_HapticDirectionType)
-> (forall s.
    Addr#
    -> Int# -> State# s -> (# State# s, SDL_HapticDirectionType #))
-> (forall s.
    Addr# -> Int# -> SDL_HapticDirectionType -> State# s -> State# s)
-> (forall s.
    Addr#
    -> Int# -> Int# -> SDL_HapticDirectionType -> State# s -> State# s)
-> Prim SDL_HapticDirectionType
forall s.
Addr#
-> Int# -> Int# -> SDL_HapticDirectionType -> State# s -> State# s
forall s.
Addr#
-> Int# -> State# s -> (# State# s, SDL_HapticDirectionType #)
forall s.
Addr# -> Int# -> SDL_HapticDirectionType -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_HapticDirectionType -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_HapticDirectionType #)
forall s.
MutableByteArray# s
-> Int# -> SDL_HapticDirectionType -> State# s -> State# s
forall a.
(Proxy a -> Int#)
-> (a -> Int#)
-> (Proxy a -> Int#)
-> (a -> Int#)
-> (ByteArray# -> Int# -> a)
-> (forall s.
    MutableByteArray# s -> Int# -> State# s -> (# State# s, a #))
-> (forall s.
    MutableByteArray# s -> Int# -> a -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s)
-> (Addr# -> Int# -> a)
-> (forall s. Addr# -> Int# -> State# s -> (# State# s, a #))
-> (forall s. Addr# -> Int# -> a -> State# s -> State# s)
-> (forall s. Addr# -> Int# -> Int# -> a -> State# s -> State# s)
-> Prim a
$csizeOfType# :: Proxy SDL_HapticDirectionType -> Int#
sizeOfType# :: Proxy SDL_HapticDirectionType -> Int#
$csizeOf# :: SDL_HapticDirectionType -> Int#
sizeOf# :: SDL_HapticDirectionType -> Int#
$calignmentOfType# :: Proxy SDL_HapticDirectionType -> Int#
alignmentOfType# :: Proxy SDL_HapticDirectionType -> Int#
$calignment# :: SDL_HapticDirectionType -> Int#
alignment# :: SDL_HapticDirectionType -> Int#
$cindexByteArray# :: ByteArray# -> Int# -> SDL_HapticDirectionType
indexByteArray# :: ByteArray# -> Int# -> SDL_HapticDirectionType
$creadByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_HapticDirectionType #)
readByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_HapticDirectionType #)
$cwriteByteArray# :: forall s.
MutableByteArray# s
-> Int# -> SDL_HapticDirectionType -> State# s -> State# s
writeByteArray# :: forall s.
MutableByteArray# s
-> Int# -> SDL_HapticDirectionType -> State# s -> State# s
$csetByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_HapticDirectionType -> State# s -> State# s
setByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_HapticDirectionType -> State# s -> State# s
$cindexOffAddr# :: Addr# -> Int# -> SDL_HapticDirectionType
indexOffAddr# :: Addr# -> Int# -> SDL_HapticDirectionType
$creadOffAddr# :: forall s.
Addr#
-> Int# -> State# s -> (# State# s, SDL_HapticDirectionType #)
readOffAddr# :: forall s.
Addr#
-> Int# -> State# s -> (# State# s, SDL_HapticDirectionType #)
$cwriteOffAddr# :: forall s.
Addr# -> Int# -> SDL_HapticDirectionType -> State# s -> State# s
writeOffAddr# :: forall s.
Addr# -> Int# -> SDL_HapticDirectionType -> State# s -> State# s
$csetOffAddr# :: forall s.
Addr#
-> Int# -> Int# -> SDL_HapticDirectionType -> State# s -> State# s
setOffAddr# :: forall s.
Addr#
-> Int# -> Int# -> SDL_HapticDirectionType -> State# s -> State# s
BG.Prim
    , Ptr SDL_HapticDirectionType -> IO SDL_HapticDirectionType
Ptr SDL_HapticDirectionType -> Int -> IO SDL_HapticDirectionType
Ptr SDL_HapticDirectionType
-> Int -> SDL_HapticDirectionType -> IO ()
Ptr SDL_HapticDirectionType -> SDL_HapticDirectionType -> IO ()
SDL_HapticDirectionType -> Int
(SDL_HapticDirectionType -> Int)
-> (SDL_HapticDirectionType -> Int)
-> (Ptr SDL_HapticDirectionType
    -> Int -> IO SDL_HapticDirectionType)
-> (Ptr SDL_HapticDirectionType
    -> Int -> SDL_HapticDirectionType -> IO ())
-> (forall b. Ptr b -> Int -> IO SDL_HapticDirectionType)
-> (forall b. Ptr b -> Int -> SDL_HapticDirectionType -> IO ())
-> (Ptr SDL_HapticDirectionType -> IO SDL_HapticDirectionType)
-> (Ptr SDL_HapticDirectionType
    -> SDL_HapticDirectionType -> IO ())
-> Storable SDL_HapticDirectionType
forall b. Ptr b -> Int -> IO SDL_HapticDirectionType
forall b. Ptr b -> Int -> SDL_HapticDirectionType -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: SDL_HapticDirectionType -> Int
sizeOf :: SDL_HapticDirectionType -> Int
$calignment :: SDL_HapticDirectionType -> Int
alignment :: SDL_HapticDirectionType -> Int
$cpeekElemOff :: Ptr SDL_HapticDirectionType -> Int -> IO SDL_HapticDirectionType
peekElemOff :: Ptr SDL_HapticDirectionType -> Int -> IO SDL_HapticDirectionType
$cpokeElemOff :: Ptr SDL_HapticDirectionType
-> Int -> SDL_HapticDirectionType -> IO ()
pokeElemOff :: Ptr SDL_HapticDirectionType
-> Int -> SDL_HapticDirectionType -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SDL_HapticDirectionType
peekByteOff :: forall b. Ptr b -> Int -> IO SDL_HapticDirectionType
$cpokeByteOff :: forall b. Ptr b -> Int -> SDL_HapticDirectionType -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> SDL_HapticDirectionType -> IO ()
$cpeek :: Ptr SDL_HapticDirectionType -> IO SDL_HapticDirectionType
peek :: Ptr SDL_HapticDirectionType -> IO SDL_HapticDirectionType
$cpoke :: Ptr SDL_HapticDirectionType -> SDL_HapticDirectionType -> IO ()
poke :: Ptr SDL_HapticDirectionType -> SDL_HapticDirectionType -> IO ()
BG.Storable
    , SDL_HapticDirectionType
SDL_HapticDirectionType
-> SDL_HapticDirectionType -> Bounded SDL_HapticDirectionType
forall a. a -> a -> Bounded a
$cminBound :: SDL_HapticDirectionType
minBound :: SDL_HapticDirectionType
$cmaxBound :: SDL_HapticDirectionType
maxBound :: SDL_HapticDirectionType
Bounded
    , Int -> SDL_HapticDirectionType
SDL_HapticDirectionType -> Int
SDL_HapticDirectionType -> [SDL_HapticDirectionType]
SDL_HapticDirectionType -> SDL_HapticDirectionType
SDL_HapticDirectionType
-> SDL_HapticDirectionType -> [SDL_HapticDirectionType]
SDL_HapticDirectionType
-> SDL_HapticDirectionType
-> SDL_HapticDirectionType
-> [SDL_HapticDirectionType]
(SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (Int -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> Int)
-> (SDL_HapticDirectionType -> [SDL_HapticDirectionType])
-> (SDL_HapticDirectionType
    -> SDL_HapticDirectionType -> [SDL_HapticDirectionType])
-> (SDL_HapticDirectionType
    -> SDL_HapticDirectionType -> [SDL_HapticDirectionType])
-> (SDL_HapticDirectionType
    -> SDL_HapticDirectionType
    -> SDL_HapticDirectionType
    -> [SDL_HapticDirectionType])
-> Enum SDL_HapticDirectionType
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: SDL_HapticDirectionType -> SDL_HapticDirectionType
succ :: SDL_HapticDirectionType -> SDL_HapticDirectionType
$cpred :: SDL_HapticDirectionType -> SDL_HapticDirectionType
pred :: SDL_HapticDirectionType -> SDL_HapticDirectionType
$ctoEnum :: Int -> SDL_HapticDirectionType
toEnum :: Int -> SDL_HapticDirectionType
$cfromEnum :: SDL_HapticDirectionType -> Int
fromEnum :: SDL_HapticDirectionType -> Int
$cenumFrom :: SDL_HapticDirectionType -> [SDL_HapticDirectionType]
enumFrom :: SDL_HapticDirectionType -> [SDL_HapticDirectionType]
$cenumFromThen :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> [SDL_HapticDirectionType]
enumFromThen :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> [SDL_HapticDirectionType]
$cenumFromTo :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> [SDL_HapticDirectionType]
enumFromTo :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> [SDL_HapticDirectionType]
$cenumFromThenTo :: SDL_HapticDirectionType
-> SDL_HapticDirectionType
-> SDL_HapticDirectionType
-> [SDL_HapticDirectionType]
enumFromThenTo :: SDL_HapticDirectionType
-> SDL_HapticDirectionType
-> SDL_HapticDirectionType
-> [SDL_HapticDirectionType]
Enum
    , Enum SDL_HapticDirectionType
Real SDL_HapticDirectionType
(Real SDL_HapticDirectionType, Enum SDL_HapticDirectionType) =>
(SDL_HapticDirectionType
 -> SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType
    -> SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType
    -> SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType
    -> SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType
    -> SDL_HapticDirectionType
    -> (SDL_HapticDirectionType, SDL_HapticDirectionType))
-> (SDL_HapticDirectionType
    -> SDL_HapticDirectionType
    -> (SDL_HapticDirectionType, SDL_HapticDirectionType))
-> (SDL_HapticDirectionType -> Integer)
-> Integral SDL_HapticDirectionType
SDL_HapticDirectionType -> Integer
SDL_HapticDirectionType
-> SDL_HapticDirectionType
-> (SDL_HapticDirectionType, SDL_HapticDirectionType)
SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
forall a.
(Real a, Enum a) =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> (a, a))
-> (a -> a -> (a, a))
-> (a -> Integer)
-> Integral a
$cquot :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
quot :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
$crem :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
rem :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
$cdiv :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
div :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
$cmod :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
mod :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
$cquotRem :: SDL_HapticDirectionType
-> SDL_HapticDirectionType
-> (SDL_HapticDirectionType, SDL_HapticDirectionType)
quotRem :: SDL_HapticDirectionType
-> SDL_HapticDirectionType
-> (SDL_HapticDirectionType, SDL_HapticDirectionType)
$cdivMod :: SDL_HapticDirectionType
-> SDL_HapticDirectionType
-> (SDL_HapticDirectionType, SDL_HapticDirectionType)
divMod :: SDL_HapticDirectionType
-> SDL_HapticDirectionType
-> (SDL_HapticDirectionType, SDL_HapticDirectionType)
$ctoInteger :: SDL_HapticDirectionType -> Integer
toInteger :: SDL_HapticDirectionType -> Integer
Integral
    , Ptr SDL_HapticDirectionType -> IO SDL_HapticDirectionType
(Ptr SDL_HapticDirectionType -> IO SDL_HapticDirectionType)
-> ReadRaw SDL_HapticDirectionType
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr SDL_HapticDirectionType -> IO SDL_HapticDirectionType
readRaw :: Ptr SDL_HapticDirectionType -> IO SDL_HapticDirectionType
Marshal.ReadRaw
    , Proxy SDL_HapticDirectionType -> Int
(Proxy SDL_HapticDirectionType -> Int)
-> (Proxy SDL_HapticDirectionType -> Int)
-> StaticSize SDL_HapticDirectionType
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy SDL_HapticDirectionType -> Int
staticSizeOf :: Proxy SDL_HapticDirectionType -> Int
$cstaticAlignment :: Proxy SDL_HapticDirectionType -> Int
staticAlignment :: Proxy SDL_HapticDirectionType -> Int
Marshal.StaticSize
    , Ptr SDL_HapticDirectionType -> SDL_HapticDirectionType -> IO ()
(Ptr SDL_HapticDirectionType -> SDL_HapticDirectionType -> IO ())
-> WriteRaw SDL_HapticDirectionType
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr SDL_HapticDirectionType -> SDL_HapticDirectionType -> IO ()
writeRaw :: Ptr SDL_HapticDirectionType -> SDL_HapticDirectionType -> IO ()
Marshal.WriteRaw
    , Integer -> SDL_HapticDirectionType
SDL_HapticDirectionType -> SDL_HapticDirectionType
SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
(SDL_HapticDirectionType
 -> SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType
    -> SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType
    -> SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (SDL_HapticDirectionType -> SDL_HapticDirectionType)
-> (Integer -> SDL_HapticDirectionType)
-> Num SDL_HapticDirectionType
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
+ :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
$c- :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
- :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
$c* :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
* :: SDL_HapticDirectionType
-> SDL_HapticDirectionType -> SDL_HapticDirectionType
$cnegate :: SDL_HapticDirectionType -> SDL_HapticDirectionType
negate :: SDL_HapticDirectionType -> SDL_HapticDirectionType
$cabs :: SDL_HapticDirectionType -> SDL_HapticDirectionType
abs :: SDL_HapticDirectionType -> SDL_HapticDirectionType
$csignum :: SDL_HapticDirectionType -> SDL_HapticDirectionType
signum :: SDL_HapticDirectionType -> SDL_HapticDirectionType
$cfromInteger :: Integer -> SDL_HapticDirectionType
fromInteger :: Integer -> SDL_HapticDirectionType
Num
    , Num SDL_HapticDirectionType
Ord SDL_HapticDirectionType
(Num SDL_HapticDirectionType, Ord SDL_HapticDirectionType) =>
(SDL_HapticDirectionType -> Rational)
-> Real SDL_HapticDirectionType
SDL_HapticDirectionType -> Rational
forall a. (Num a, Ord a) => (a -> Rational) -> Real a
$ctoRational :: SDL_HapticDirectionType -> Rational
toRational :: SDL_HapticDirectionType -> Rational
Real
    )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "unwrap" SDL_HapticDirectionType ty
  where
  hasField :: SDL_HapticDirectionType -> (ty -> SDL_HapticDirectionType, ty)
hasField =
    \SDL_HapticDirectionType
x0 ->
      ( \ty
y1 ->
          SDL_HapticDirectionType{unwrap :: Uint8
unwrap = ty
Uint8
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_HapticDirectionType
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "unwrap" (BG.Ptr SDL_HapticDirectionType) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticDirectionType -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_HapticDirectionType
-> Ptr (CFieldType SDL_HapticDirectionType "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_HapticDirectionType "unwrap" where
  type
    CFieldType SDL_HapticDirectionType "unwrap" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_HapticDirectionType -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_HapticDirectionType
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | Uses polar coordinates for the direction.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticDirection'
--
--     [C declaration]: @macro SDL_HAPTIC_POLAR@, defined at @SDL3\/SDL_haptic.h 416:9@
sDL_HAPTIC_POLAR :: BG.CInt
sDL_HAPTIC_POLAR :: CInt
sDL_HAPTIC_POLAR = (CInt
0 :: BG.CInt)

-- | Uses cartesian coordinates for the direction.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticDirection'
--
--     [C declaration]: @macro SDL_HAPTIC_CARTESIAN@, defined at @SDL3\/SDL_haptic.h 425:9@
sDL_HAPTIC_CARTESIAN :: BG.CInt
sDL_HAPTIC_CARTESIAN :: CInt
sDL_HAPTIC_CARTESIAN = (CInt
1 :: BG.CInt)

-- | Uses spherical coordinates for the direction.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticDirection'
--
--     [C declaration]: @macro SDL_HAPTIC_SPHERICAL@, defined at @SDL3\/SDL_haptic.h 434:9@
sDL_HAPTIC_SPHERICAL :: BG.CInt
sDL_HAPTIC_SPHERICAL :: CInt
sDL_HAPTIC_SPHERICAL = (CInt
2 :: BG.CInt)

-- | Use this value to play an effect on the steering wheel axis.
--
--     This provides better compatibility across platforms and devices as SDL will guess the correct axis.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticDirection'
--
--     [C declaration]: @macro SDL_HAPTIC_STEERING_AXIS@, defined at @SDL3\/SDL_haptic.h 446:9@
sDL_HAPTIC_STEERING_AXIS :: BG.CInt
sDL_HAPTIC_STEERING_AXIS :: CInt
sDL_HAPTIC_STEERING_AXIS = (CInt
3 :: BG.CInt)

-- | ID for haptic effects.
--
--     This is -1 if the ID is invalid.
--
--     [See also]: 'sDL_CreateHapticEffect'
--
--     [C declaration]: @SDL_HapticEffectID@, defined at @SDL3\/SDL_haptic.h 460:13@
newtype SDL_HapticEffectID = SDL_HapticEffectID
  { SDL_HapticEffectID -> CInt
unwrap :: BG.CInt
  }
  deriving stock ((forall x. SDL_HapticEffectID -> Rep SDL_HapticEffectID x)
-> (forall x. Rep SDL_HapticEffectID x -> SDL_HapticEffectID)
-> Generic SDL_HapticEffectID
forall x. Rep SDL_HapticEffectID x -> SDL_HapticEffectID
forall x. SDL_HapticEffectID -> Rep SDL_HapticEffectID x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_HapticEffectID -> Rep SDL_HapticEffectID x
from :: forall x. SDL_HapticEffectID -> Rep SDL_HapticEffectID x
$cto :: forall x. Rep SDL_HapticEffectID x -> SDL_HapticEffectID
to :: forall x. Rep SDL_HapticEffectID x -> SDL_HapticEffectID
BG.Generic, SDL_HapticEffectID -> SDL_HapticEffectID -> Bool
(SDL_HapticEffectID -> SDL_HapticEffectID -> Bool)
-> (SDL_HapticEffectID -> SDL_HapticEffectID -> Bool)
-> Eq SDL_HapticEffectID
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_HapticEffectID -> SDL_HapticEffectID -> Bool
== :: SDL_HapticEffectID -> SDL_HapticEffectID -> Bool
$c/= :: SDL_HapticEffectID -> SDL_HapticEffectID -> Bool
/= :: SDL_HapticEffectID -> SDL_HapticEffectID -> Bool
Eq, Eq SDL_HapticEffectID
Eq SDL_HapticEffectID =>
(SDL_HapticEffectID -> SDL_HapticEffectID -> Ordering)
-> (SDL_HapticEffectID -> SDL_HapticEffectID -> Bool)
-> (SDL_HapticEffectID -> SDL_HapticEffectID -> Bool)
-> (SDL_HapticEffectID -> SDL_HapticEffectID -> Bool)
-> (SDL_HapticEffectID -> SDL_HapticEffectID -> Bool)
-> (SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID)
-> Ord SDL_HapticEffectID
SDL_HapticEffectID -> SDL_HapticEffectID -> Bool
SDL_HapticEffectID -> SDL_HapticEffectID -> Ordering
SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SDL_HapticEffectID -> SDL_HapticEffectID -> Ordering
compare :: SDL_HapticEffectID -> SDL_HapticEffectID -> Ordering
$c< :: SDL_HapticEffectID -> SDL_HapticEffectID -> Bool
< :: SDL_HapticEffectID -> SDL_HapticEffectID -> Bool
$c<= :: SDL_HapticEffectID -> SDL_HapticEffectID -> Bool
<= :: SDL_HapticEffectID -> SDL_HapticEffectID -> Bool
$c> :: SDL_HapticEffectID -> SDL_HapticEffectID -> Bool
> :: SDL_HapticEffectID -> SDL_HapticEffectID -> Bool
$c>= :: SDL_HapticEffectID -> SDL_HapticEffectID -> Bool
>= :: SDL_HapticEffectID -> SDL_HapticEffectID -> Bool
$cmax :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
max :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
$cmin :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
min :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
Ord, ReadPrec [SDL_HapticEffectID]
ReadPrec SDL_HapticEffectID
Int -> ReadS SDL_HapticEffectID
ReadS [SDL_HapticEffectID]
(Int -> ReadS SDL_HapticEffectID)
-> ReadS [SDL_HapticEffectID]
-> ReadPrec SDL_HapticEffectID
-> ReadPrec [SDL_HapticEffectID]
-> Read SDL_HapticEffectID
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS SDL_HapticEffectID
readsPrec :: Int -> ReadS SDL_HapticEffectID
$creadList :: ReadS [SDL_HapticEffectID]
readList :: ReadS [SDL_HapticEffectID]
$creadPrec :: ReadPrec SDL_HapticEffectID
readPrec :: ReadPrec SDL_HapticEffectID
$creadListPrec :: ReadPrec [SDL_HapticEffectID]
readListPrec :: ReadPrec [SDL_HapticEffectID]
Read, Int -> SDL_HapticEffectID -> ShowS
[SDL_HapticEffectID] -> ShowS
SDL_HapticEffectID -> String
(Int -> SDL_HapticEffectID -> ShowS)
-> (SDL_HapticEffectID -> String)
-> ([SDL_HapticEffectID] -> ShowS)
-> Show SDL_HapticEffectID
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_HapticEffectID -> ShowS
showsPrec :: Int -> SDL_HapticEffectID -> ShowS
$cshow :: SDL_HapticEffectID -> String
show :: SDL_HapticEffectID -> String
$cshowList :: [SDL_HapticEffectID] -> ShowS
showList :: [SDL_HapticEffectID] -> ShowS
Show)
  deriving newtype
    ( Word64 -> Int -> SDL_HapticEffectID
SDL_HapticEffectID -> Int -> Word64
(SDL_HapticEffectID -> Int -> Word64)
-> (Word64 -> Int -> SDL_HapticEffectID)
-> Bitfield SDL_HapticEffectID
forall a.
(a -> Int -> Word64) -> (Word64 -> Int -> a) -> Bitfield a
$cnarrow :: SDL_HapticEffectID -> Int -> Word64
narrow :: SDL_HapticEffectID -> Int -> Word64
$cextend :: Word64 -> Int -> SDL_HapticEffectID
extend :: Word64 -> Int -> SDL_HapticEffectID
BG.Bitfield
    , Eq SDL_HapticEffectID
SDL_HapticEffectID
Eq SDL_HapticEffectID =>
(SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> Int -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> Int -> SDL_HapticEffectID)
-> SDL_HapticEffectID
-> (Int -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> Int -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> Int -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> Int -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> Int -> Bool)
-> (SDL_HapticEffectID -> Maybe Int)
-> (SDL_HapticEffectID -> Int)
-> (SDL_HapticEffectID -> Bool)
-> (SDL_HapticEffectID -> Int -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> Int -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> Int -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> Int -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> Int -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> Int -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> Int)
-> Bits SDL_HapticEffectID
Int -> SDL_HapticEffectID
SDL_HapticEffectID -> Bool
SDL_HapticEffectID -> Int
SDL_HapticEffectID -> Maybe Int
SDL_HapticEffectID -> SDL_HapticEffectID
SDL_HapticEffectID -> Int -> Bool
SDL_HapticEffectID -> Int -> SDL_HapticEffectID
SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
.&. :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
$c.|. :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
.|. :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
$cxor :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
xor :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
$ccomplement :: SDL_HapticEffectID -> SDL_HapticEffectID
complement :: SDL_HapticEffectID -> SDL_HapticEffectID
$cshift :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
shift :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
$crotate :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
rotate :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
$czeroBits :: SDL_HapticEffectID
zeroBits :: SDL_HapticEffectID
$cbit :: Int -> SDL_HapticEffectID
bit :: Int -> SDL_HapticEffectID
$csetBit :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
setBit :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
$cclearBit :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
clearBit :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
$ccomplementBit :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
complementBit :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
$ctestBit :: SDL_HapticEffectID -> Int -> Bool
testBit :: SDL_HapticEffectID -> Int -> Bool
$cbitSizeMaybe :: SDL_HapticEffectID -> Maybe Int
bitSizeMaybe :: SDL_HapticEffectID -> Maybe Int
$cbitSize :: SDL_HapticEffectID -> Int
bitSize :: SDL_HapticEffectID -> Int
$cisSigned :: SDL_HapticEffectID -> Bool
isSigned :: SDL_HapticEffectID -> Bool
$cshiftL :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
shiftL :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
$cunsafeShiftL :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
unsafeShiftL :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
$cshiftR :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
shiftR :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
$cunsafeShiftR :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
unsafeShiftR :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
$crotateL :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
rotateL :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
$crotateR :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
rotateR :: SDL_HapticEffectID -> Int -> SDL_HapticEffectID
$cpopCount :: SDL_HapticEffectID -> Int
popCount :: SDL_HapticEffectID -> Int
BG.Bits
    , Bits SDL_HapticEffectID
Bits SDL_HapticEffectID =>
(SDL_HapticEffectID -> Int)
-> (SDL_HapticEffectID -> Int)
-> (SDL_HapticEffectID -> Int)
-> FiniteBits SDL_HapticEffectID
SDL_HapticEffectID -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: SDL_HapticEffectID -> Int
finiteBitSize :: SDL_HapticEffectID -> Int
$ccountLeadingZeros :: SDL_HapticEffectID -> Int
countLeadingZeros :: SDL_HapticEffectID -> Int
$ccountTrailingZeros :: SDL_HapticEffectID -> Int
countTrailingZeros :: SDL_HapticEffectID -> Int
BG.FiniteBits
    , FFIType SDL_HapticEffectID -> SDL_HapticEffectID
SDL_HapticEffectID -> FFIType SDL_HapticEffectID
(SDL_HapticEffectID -> FFIType SDL_HapticEffectID)
-> (FFIType SDL_HapticEffectID -> SDL_HapticEffectID)
-> HasFFIType SDL_HapticEffectID
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_HapticEffectID -> FFIType SDL_HapticEffectID
toFFIType :: SDL_HapticEffectID -> FFIType SDL_HapticEffectID
$cfromFFIType :: FFIType SDL_HapticEffectID -> SDL_HapticEffectID
fromFFIType :: FFIType SDL_HapticEffectID -> SDL_HapticEffectID
BG.HasFFIType
    , Ord SDL_HapticEffectID
Ord SDL_HapticEffectID =>
((SDL_HapticEffectID, SDL_HapticEffectID) -> [SDL_HapticEffectID])
-> ((SDL_HapticEffectID, SDL_HapticEffectID)
    -> SDL_HapticEffectID -> Int)
-> ((SDL_HapticEffectID, SDL_HapticEffectID)
    -> SDL_HapticEffectID -> Int)
-> ((SDL_HapticEffectID, SDL_HapticEffectID)
    -> SDL_HapticEffectID -> Bool)
-> ((SDL_HapticEffectID, SDL_HapticEffectID) -> Int)
-> ((SDL_HapticEffectID, SDL_HapticEffectID) -> Int)
-> Ix SDL_HapticEffectID
(SDL_HapticEffectID, SDL_HapticEffectID) -> Int
(SDL_HapticEffectID, SDL_HapticEffectID) -> [SDL_HapticEffectID]
(SDL_HapticEffectID, SDL_HapticEffectID)
-> SDL_HapticEffectID -> Bool
(SDL_HapticEffectID, SDL_HapticEffectID)
-> SDL_HapticEffectID -> Int
forall a.
Ord a =>
((a, a) -> [a])
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Bool)
-> ((a, a) -> Int)
-> ((a, a) -> Int)
-> Ix a
$crange :: (SDL_HapticEffectID, SDL_HapticEffectID) -> [SDL_HapticEffectID]
range :: (SDL_HapticEffectID, SDL_HapticEffectID) -> [SDL_HapticEffectID]
$cindex :: (SDL_HapticEffectID, SDL_HapticEffectID)
-> SDL_HapticEffectID -> Int
index :: (SDL_HapticEffectID, SDL_HapticEffectID)
-> SDL_HapticEffectID -> Int
$cunsafeIndex :: (SDL_HapticEffectID, SDL_HapticEffectID)
-> SDL_HapticEffectID -> Int
unsafeIndex :: (SDL_HapticEffectID, SDL_HapticEffectID)
-> SDL_HapticEffectID -> Int
$cinRange :: (SDL_HapticEffectID, SDL_HapticEffectID)
-> SDL_HapticEffectID -> Bool
inRange :: (SDL_HapticEffectID, SDL_HapticEffectID)
-> SDL_HapticEffectID -> Bool
$crangeSize :: (SDL_HapticEffectID, SDL_HapticEffectID) -> Int
rangeSize :: (SDL_HapticEffectID, SDL_HapticEffectID) -> Int
$cunsafeRangeSize :: (SDL_HapticEffectID, SDL_HapticEffectID) -> Int
unsafeRangeSize :: (SDL_HapticEffectID, SDL_HapticEffectID) -> Int
BG.Ix
    , Addr# -> Int# -> SDL_HapticEffectID
ByteArray# -> Int# -> SDL_HapticEffectID
Proxy SDL_HapticEffectID -> Int#
SDL_HapticEffectID -> Int#
(Proxy SDL_HapticEffectID -> Int#)
-> (SDL_HapticEffectID -> Int#)
-> (Proxy SDL_HapticEffectID -> Int#)
-> (SDL_HapticEffectID -> Int#)
-> (ByteArray# -> Int# -> SDL_HapticEffectID)
-> (forall s.
    MutableByteArray# s
    -> Int# -> State# s -> (# State# s, SDL_HapticEffectID #))
-> (forall s.
    MutableByteArray# s
    -> Int# -> SDL_HapticEffectID -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s
    -> Int# -> Int# -> SDL_HapticEffectID -> State# s -> State# s)
-> (Addr# -> Int# -> SDL_HapticEffectID)
-> (forall s.
    Addr# -> Int# -> State# s -> (# State# s, SDL_HapticEffectID #))
-> (forall s.
    Addr# -> Int# -> SDL_HapticEffectID -> State# s -> State# s)
-> (forall s.
    Addr#
    -> Int# -> Int# -> SDL_HapticEffectID -> State# s -> State# s)
-> Prim SDL_HapticEffectID
forall s.
Addr# -> Int# -> Int# -> SDL_HapticEffectID -> State# s -> State# s
forall s.
Addr# -> Int# -> State# s -> (# State# s, SDL_HapticEffectID #)
forall s.
Addr# -> Int# -> SDL_HapticEffectID -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_HapticEffectID -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_HapticEffectID #)
forall s.
MutableByteArray# s
-> Int# -> SDL_HapticEffectID -> State# s -> State# s
forall a.
(Proxy a -> Int#)
-> (a -> Int#)
-> (Proxy a -> Int#)
-> (a -> Int#)
-> (ByteArray# -> Int# -> a)
-> (forall s.
    MutableByteArray# s -> Int# -> State# s -> (# State# s, a #))
-> (forall s.
    MutableByteArray# s -> Int# -> a -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s)
-> (Addr# -> Int# -> a)
-> (forall s. Addr# -> Int# -> State# s -> (# State# s, a #))
-> (forall s. Addr# -> Int# -> a -> State# s -> State# s)
-> (forall s. Addr# -> Int# -> Int# -> a -> State# s -> State# s)
-> Prim a
$csizeOfType# :: Proxy SDL_HapticEffectID -> Int#
sizeOfType# :: Proxy SDL_HapticEffectID -> Int#
$csizeOf# :: SDL_HapticEffectID -> Int#
sizeOf# :: SDL_HapticEffectID -> Int#
$calignmentOfType# :: Proxy SDL_HapticEffectID -> Int#
alignmentOfType# :: Proxy SDL_HapticEffectID -> Int#
$calignment# :: SDL_HapticEffectID -> Int#
alignment# :: SDL_HapticEffectID -> Int#
$cindexByteArray# :: ByteArray# -> Int# -> SDL_HapticEffectID
indexByteArray# :: ByteArray# -> Int# -> SDL_HapticEffectID
$creadByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_HapticEffectID #)
readByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_HapticEffectID #)
$cwriteByteArray# :: forall s.
MutableByteArray# s
-> Int# -> SDL_HapticEffectID -> State# s -> State# s
writeByteArray# :: forall s.
MutableByteArray# s
-> Int# -> SDL_HapticEffectID -> State# s -> State# s
$csetByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_HapticEffectID -> State# s -> State# s
setByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_HapticEffectID -> State# s -> State# s
$cindexOffAddr# :: Addr# -> Int# -> SDL_HapticEffectID
indexOffAddr# :: Addr# -> Int# -> SDL_HapticEffectID
$creadOffAddr# :: forall s.
Addr# -> Int# -> State# s -> (# State# s, SDL_HapticEffectID #)
readOffAddr# :: forall s.
Addr# -> Int# -> State# s -> (# State# s, SDL_HapticEffectID #)
$cwriteOffAddr# :: forall s.
Addr# -> Int# -> SDL_HapticEffectID -> State# s -> State# s
writeOffAddr# :: forall s.
Addr# -> Int# -> SDL_HapticEffectID -> State# s -> State# s
$csetOffAddr# :: forall s.
Addr# -> Int# -> Int# -> SDL_HapticEffectID -> State# s -> State# s
setOffAddr# :: forall s.
Addr# -> Int# -> Int# -> SDL_HapticEffectID -> State# s -> State# s
BG.Prim
    , Ptr SDL_HapticEffectID -> IO SDL_HapticEffectID
Ptr SDL_HapticEffectID -> Int -> IO SDL_HapticEffectID
Ptr SDL_HapticEffectID -> Int -> SDL_HapticEffectID -> IO ()
Ptr SDL_HapticEffectID -> SDL_HapticEffectID -> IO ()
SDL_HapticEffectID -> Int
(SDL_HapticEffectID -> Int)
-> (SDL_HapticEffectID -> Int)
-> (Ptr SDL_HapticEffectID -> Int -> IO SDL_HapticEffectID)
-> (Ptr SDL_HapticEffectID -> Int -> SDL_HapticEffectID -> IO ())
-> (forall b. Ptr b -> Int -> IO SDL_HapticEffectID)
-> (forall b. Ptr b -> Int -> SDL_HapticEffectID -> IO ())
-> (Ptr SDL_HapticEffectID -> IO SDL_HapticEffectID)
-> (Ptr SDL_HapticEffectID -> SDL_HapticEffectID -> IO ())
-> Storable SDL_HapticEffectID
forall b. Ptr b -> Int -> IO SDL_HapticEffectID
forall b. Ptr b -> Int -> SDL_HapticEffectID -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: SDL_HapticEffectID -> Int
sizeOf :: SDL_HapticEffectID -> Int
$calignment :: SDL_HapticEffectID -> Int
alignment :: SDL_HapticEffectID -> Int
$cpeekElemOff :: Ptr SDL_HapticEffectID -> Int -> IO SDL_HapticEffectID
peekElemOff :: Ptr SDL_HapticEffectID -> Int -> IO SDL_HapticEffectID
$cpokeElemOff :: Ptr SDL_HapticEffectID -> Int -> SDL_HapticEffectID -> IO ()
pokeElemOff :: Ptr SDL_HapticEffectID -> Int -> SDL_HapticEffectID -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SDL_HapticEffectID
peekByteOff :: forall b. Ptr b -> Int -> IO SDL_HapticEffectID
$cpokeByteOff :: forall b. Ptr b -> Int -> SDL_HapticEffectID -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> SDL_HapticEffectID -> IO ()
$cpeek :: Ptr SDL_HapticEffectID -> IO SDL_HapticEffectID
peek :: Ptr SDL_HapticEffectID -> IO SDL_HapticEffectID
$cpoke :: Ptr SDL_HapticEffectID -> SDL_HapticEffectID -> IO ()
poke :: Ptr SDL_HapticEffectID -> SDL_HapticEffectID -> IO ()
BG.Storable
    , SDL_HapticEffectID
SDL_HapticEffectID
-> SDL_HapticEffectID -> Bounded SDL_HapticEffectID
forall a. a -> a -> Bounded a
$cminBound :: SDL_HapticEffectID
minBound :: SDL_HapticEffectID
$cmaxBound :: SDL_HapticEffectID
maxBound :: SDL_HapticEffectID
Bounded
    , Int -> SDL_HapticEffectID
SDL_HapticEffectID -> Int
SDL_HapticEffectID -> [SDL_HapticEffectID]
SDL_HapticEffectID -> SDL_HapticEffectID
SDL_HapticEffectID -> SDL_HapticEffectID -> [SDL_HapticEffectID]
SDL_HapticEffectID
-> SDL_HapticEffectID -> SDL_HapticEffectID -> [SDL_HapticEffectID]
(SDL_HapticEffectID -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> SDL_HapticEffectID)
-> (Int -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> Int)
-> (SDL_HapticEffectID -> [SDL_HapticEffectID])
-> (SDL_HapticEffectID
    -> SDL_HapticEffectID -> [SDL_HapticEffectID])
-> (SDL_HapticEffectID
    -> SDL_HapticEffectID -> [SDL_HapticEffectID])
-> (SDL_HapticEffectID
    -> SDL_HapticEffectID
    -> SDL_HapticEffectID
    -> [SDL_HapticEffectID])
-> Enum SDL_HapticEffectID
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: SDL_HapticEffectID -> SDL_HapticEffectID
succ :: SDL_HapticEffectID -> SDL_HapticEffectID
$cpred :: SDL_HapticEffectID -> SDL_HapticEffectID
pred :: SDL_HapticEffectID -> SDL_HapticEffectID
$ctoEnum :: Int -> SDL_HapticEffectID
toEnum :: Int -> SDL_HapticEffectID
$cfromEnum :: SDL_HapticEffectID -> Int
fromEnum :: SDL_HapticEffectID -> Int
$cenumFrom :: SDL_HapticEffectID -> [SDL_HapticEffectID]
enumFrom :: SDL_HapticEffectID -> [SDL_HapticEffectID]
$cenumFromThen :: SDL_HapticEffectID -> SDL_HapticEffectID -> [SDL_HapticEffectID]
enumFromThen :: SDL_HapticEffectID -> SDL_HapticEffectID -> [SDL_HapticEffectID]
$cenumFromTo :: SDL_HapticEffectID -> SDL_HapticEffectID -> [SDL_HapticEffectID]
enumFromTo :: SDL_HapticEffectID -> SDL_HapticEffectID -> [SDL_HapticEffectID]
$cenumFromThenTo :: SDL_HapticEffectID
-> SDL_HapticEffectID -> SDL_HapticEffectID -> [SDL_HapticEffectID]
enumFromThenTo :: SDL_HapticEffectID
-> SDL_HapticEffectID -> SDL_HapticEffectID -> [SDL_HapticEffectID]
Enum
    , Enum SDL_HapticEffectID
Real SDL_HapticEffectID
(Real SDL_HapticEffectID, Enum SDL_HapticEffectID) =>
(SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID)
-> (SDL_HapticEffectID
    -> SDL_HapticEffectID -> (SDL_HapticEffectID, SDL_HapticEffectID))
-> (SDL_HapticEffectID
    -> SDL_HapticEffectID -> (SDL_HapticEffectID, SDL_HapticEffectID))
-> (SDL_HapticEffectID -> Integer)
-> Integral SDL_HapticEffectID
SDL_HapticEffectID -> Integer
SDL_HapticEffectID
-> SDL_HapticEffectID -> (SDL_HapticEffectID, SDL_HapticEffectID)
SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
forall a.
(Real a, Enum a) =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> (a, a))
-> (a -> a -> (a, a))
-> (a -> Integer)
-> Integral a
$cquot :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
quot :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
$crem :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
rem :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
$cdiv :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
div :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
$cmod :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
mod :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
$cquotRem :: SDL_HapticEffectID
-> SDL_HapticEffectID -> (SDL_HapticEffectID, SDL_HapticEffectID)
quotRem :: SDL_HapticEffectID
-> SDL_HapticEffectID -> (SDL_HapticEffectID, SDL_HapticEffectID)
$cdivMod :: SDL_HapticEffectID
-> SDL_HapticEffectID -> (SDL_HapticEffectID, SDL_HapticEffectID)
divMod :: SDL_HapticEffectID
-> SDL_HapticEffectID -> (SDL_HapticEffectID, SDL_HapticEffectID)
$ctoInteger :: SDL_HapticEffectID -> Integer
toInteger :: SDL_HapticEffectID -> Integer
Integral
    , Ptr SDL_HapticEffectID -> IO SDL_HapticEffectID
(Ptr SDL_HapticEffectID -> IO SDL_HapticEffectID)
-> ReadRaw SDL_HapticEffectID
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr SDL_HapticEffectID -> IO SDL_HapticEffectID
readRaw :: Ptr SDL_HapticEffectID -> IO SDL_HapticEffectID
Marshal.ReadRaw
    , Proxy SDL_HapticEffectID -> Int
(Proxy SDL_HapticEffectID -> Int)
-> (Proxy SDL_HapticEffectID -> Int)
-> StaticSize SDL_HapticEffectID
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy SDL_HapticEffectID -> Int
staticSizeOf :: Proxy SDL_HapticEffectID -> Int
$cstaticAlignment :: Proxy SDL_HapticEffectID -> Int
staticAlignment :: Proxy SDL_HapticEffectID -> Int
Marshal.StaticSize
    , Ptr SDL_HapticEffectID -> SDL_HapticEffectID -> IO ()
(Ptr SDL_HapticEffectID -> SDL_HapticEffectID -> IO ())
-> WriteRaw SDL_HapticEffectID
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr SDL_HapticEffectID -> SDL_HapticEffectID -> IO ()
writeRaw :: Ptr SDL_HapticEffectID -> SDL_HapticEffectID -> IO ()
Marshal.WriteRaw
    , Integer -> SDL_HapticEffectID
SDL_HapticEffectID -> SDL_HapticEffectID
SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
(SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> SDL_HapticEffectID)
-> (SDL_HapticEffectID -> SDL_HapticEffectID)
-> (Integer -> SDL_HapticEffectID)
-> Num SDL_HapticEffectID
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
+ :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
$c- :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
- :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
$c* :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
* :: SDL_HapticEffectID -> SDL_HapticEffectID -> SDL_HapticEffectID
$cnegate :: SDL_HapticEffectID -> SDL_HapticEffectID
negate :: SDL_HapticEffectID -> SDL_HapticEffectID
$cabs :: SDL_HapticEffectID -> SDL_HapticEffectID
abs :: SDL_HapticEffectID -> SDL_HapticEffectID
$csignum :: SDL_HapticEffectID -> SDL_HapticEffectID
signum :: SDL_HapticEffectID -> SDL_HapticEffectID
$cfromInteger :: Integer -> SDL_HapticEffectID
fromInteger :: Integer -> SDL_HapticEffectID
Num
    , Num SDL_HapticEffectID
Ord SDL_HapticEffectID
(Num SDL_HapticEffectID, Ord SDL_HapticEffectID) =>
(SDL_HapticEffectID -> Rational) -> Real SDL_HapticEffectID
SDL_HapticEffectID -> Rational
forall a. (Num a, Ord a) => (a -> Rational) -> Real a
$ctoRational :: SDL_HapticEffectID -> Rational
toRational :: SDL_HapticEffectID -> Rational
Real
    )

instance
  (ty ~ BG.CInt)
  => BG.CompatHasField.HasField "unwrap" SDL_HapticEffectID ty
  where
  hasField :: SDL_HapticEffectID -> (ty -> SDL_HapticEffectID, ty)
hasField =
    \SDL_HapticEffectID
x0 ->
      ( \ty
y1 ->
          SDL_HapticEffectID{unwrap :: CInt
unwrap = ty
CInt
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_HapticEffectID
x0
      )

instance
  (ty ~ BG.CInt)
  => BG.HasField "unwrap" (BG.Ptr SDL_HapticEffectID) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticEffectID -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_HapticEffectID
-> Ptr (CFieldType SDL_HapticEffectID "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_HapticEffectID "unwrap" where
  type CFieldType SDL_HapticEffectID "unwrap" = BG.CInt

  offset# :: Proxy# SDL_HapticEffectID -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_HapticEffectID
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | Structure that represents a haptic direction.
--
--     This is the direction where the force comes from, instead of the direction in which the force is exerted.
--
--     Directions can be specified by:
--
--     * SDL_HAPTIC_POLAR : Specified by polar coordinates.
--
--     * SDL_HAPTIC_CARTESIAN : Specified by cartesian coordinates.
--
--     * SDL_HAPTIC_SPHERICAL : Specified by spherical coordinates.
--
--     Cardinal directions of the haptic device are relative to the positioning of the device. North is considered to be away from the user.
--
--     The following diagram represents the cardinal directions:
--
--     @
--                   .--.
--                   |__| .-------.
--                   |=.| |.-----.|
--                   |--| ||     ||
--                   |  | |\'-----\'|
--                   |__|~\')_____(\'
--                     [ COMPUTER ]
--
--
--                       North (0,-1)
--                           ^
--                           |
--                           |
--     (-1,0)  West \<----[ HAPTIC ]----> East (1,0)
--                           |
--                           |
--                           v
--                        South (0,1)
--
--
--                        [ USER ]
--                          \\|||\/
--                          (o o)
--                    ---ooO-(_)-Ooo---
--     @
--
--     If type is SDL_HAPTIC_POLAR, direction is encoded by hundredths of a degree starting north and turning clockwise. SDL_HAPTIC_POLAR only uses the first @dir@ parameter. The cardinal directions would be:
--
--     * North: 0 (0 degrees)
--
--     * East: 9000 (90 degrees)
--
--     * South: 18000 (180 degrees)
--
--     * West: 27000 (270 degrees)
--
--     If type is SDL_HAPTIC_CARTESIAN, direction is encoded by three positions (X axis, Y axis and Z axis (with 3 axes)). SDL_HAPTIC_CARTESIAN uses the first three @dir@ parameters. The cardinal directions would be:
--
--     * North: 0,-1, 0
--
--     * East: 1, 0, 0
--
--     * South: 0, 1, 0
--
--     * West: -1, 0, 0
--
--     The Z axis represents the height of the effect if supported, otherwise it\'s unused. In cartesian encoding (1, 2) would be the same as (2, 4), you can use any multiple you want, only the direction matters.
--
--     If type is SDL_HAPTIC_SPHERICAL, direction is encoded by two rotations. The first two @dir@ parameters are used. The @dir@ parameters are as follows (all values are in hundredths of degrees):
--
--     * Degrees from (1, 0) rotated towards (0, 1).
--
--     * Degrees towards (0, 0, 1) (device needs at least 3 axes).
--
--     Example of force coming from the south with all encodings (force coming from the south means the user will have to pull the stick to counteract):
--
--     @
--     SDL_HapticDirection direction;
--
--     \/\/ Cartesian directions
--     direction.type = SDL_HAPTIC_CARTESIAN; \/\/ Using cartesian direction encoding.
--     direction.dir[0] = 0; \/\/ X position
--     direction.dir[1] = 1; \/\/ Y position
--     \/\/ Assuming the device has 2 axes, we don\'t need to specify third parameter.
--
--     \/\/ Polar directions
--     direction.type = SDL_HAPTIC_POLAR; \/\/ We\'ll be using polar direction encoding.
--     direction.dir[0] = 18000; \/\/ Polar only uses first parameter
--
--     \/\/ Spherical coordinates
--     direction.type = SDL_HAPTIC_SPHERICAL; \/\/ Spherical encoding
--     direction.dir[0] = 9000; \/\/ Since we only have two axes we don\'t need more parameters.
--     @
--
--     @since 3.2.0
--
--     [See also]: 'sDL_HAPTIC_POLAR', 'sDL_HAPTIC_CARTESIAN', 'sDL_HAPTIC_SPHERICAL', 'sDL_HAPTIC_STEERING_AXIS', 'SDL_HapticEffect', 'sDL_GetNumHapticAxes'
--
--     [C declaration]: @struct SDL_HapticDirection@, defined at @SDL3\/SDL_haptic.h 566:16@
data SDL_HapticDirection = SDL_HapticDirection
  { SDL_HapticDirection -> SDL_HapticDirectionType
type' :: SDL_HapticDirectionType
  -- ^ The type of encoding.
  --
  --          [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 568:29@
  , SDL_HapticDirection -> ConstantArray 3 Sint32
dir :: CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint32
  -- ^ The encoded direction.
  --
  --          [C declaration]: @dir@, defined at @SDL3\/SDL_haptic.h 569:12@
  }
  deriving stock ((forall x. SDL_HapticDirection -> Rep SDL_HapticDirection x)
-> (forall x. Rep SDL_HapticDirection x -> SDL_HapticDirection)
-> Generic SDL_HapticDirection
forall x. Rep SDL_HapticDirection x -> SDL_HapticDirection
forall x. SDL_HapticDirection -> Rep SDL_HapticDirection x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_HapticDirection -> Rep SDL_HapticDirection x
from :: forall x. SDL_HapticDirection -> Rep SDL_HapticDirection x
$cto :: forall x. Rep SDL_HapticDirection x -> SDL_HapticDirection
to :: forall x. Rep SDL_HapticDirection x -> SDL_HapticDirection
BG.Generic, SDL_HapticDirection -> SDL_HapticDirection -> Bool
(SDL_HapticDirection -> SDL_HapticDirection -> Bool)
-> (SDL_HapticDirection -> SDL_HapticDirection -> Bool)
-> Eq SDL_HapticDirection
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_HapticDirection -> SDL_HapticDirection -> Bool
== :: SDL_HapticDirection -> SDL_HapticDirection -> Bool
$c/= :: SDL_HapticDirection -> SDL_HapticDirection -> Bool
/= :: SDL_HapticDirection -> SDL_HapticDirection -> Bool
Eq, Int -> SDL_HapticDirection -> ShowS
[SDL_HapticDirection] -> ShowS
SDL_HapticDirection -> String
(Int -> SDL_HapticDirection -> ShowS)
-> (SDL_HapticDirection -> String)
-> ([SDL_HapticDirection] -> ShowS)
-> Show SDL_HapticDirection
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_HapticDirection -> ShowS
showsPrec :: Int -> SDL_HapticDirection -> ShowS
$cshow :: SDL_HapticDirection -> String
show :: SDL_HapticDirection -> String
$cshowList :: [SDL_HapticDirection] -> ShowS
showList :: [SDL_HapticDirection] -> ShowS
Show)

instance Marshal.StaticSize SDL_HapticDirection where
  staticSizeOf :: Proxy SDL_HapticDirection -> Int
staticSizeOf = \Proxy SDL_HapticDirection
_ -> (Int
16 :: Int)

  staticAlignment :: Proxy SDL_HapticDirection -> Int
staticAlignment = \Proxy SDL_HapticDirection
_ -> (Int
4 :: Int)

instance Marshal.ReadRaw SDL_HapticDirection where
  readRaw :: Ptr SDL_HapticDirection -> IO SDL_HapticDirection
readRaw =
    \Ptr SDL_HapticDirection
ptr0 ->
      (SDL_HapticDirectionType
 -> ConstantArray 3 Sint32 -> SDL_HapticDirection)
-> IO
     (SDL_HapticDirectionType
      -> ConstantArray 3 Sint32 -> SDL_HapticDirection)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SDL_HapticDirectionType
-> ConstantArray 3 Sint32 -> SDL_HapticDirection
SDL_HapticDirection
        IO
  (SDL_HapticDirectionType
   -> ConstantArray 3 Sint32 -> SDL_HapticDirection)
-> IO SDL_HapticDirectionType
-> IO (ConstantArray 3 Sint32 -> SDL_HapticDirection)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "type'"
-> Ptr SDL_HapticDirection
-> IO (CFieldType SDL_HapticDirection "type'")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'") Ptr SDL_HapticDirection
ptr0
        IO (ConstantArray 3 Sint32 -> SDL_HapticDirection)
-> IO (ConstantArray 3 Sint32) -> IO SDL_HapticDirection
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "dir"
-> Ptr SDL_HapticDirection
-> IO (CFieldType SDL_HapticDirection "dir")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"dir") Ptr SDL_HapticDirection
ptr0

instance Marshal.WriteRaw SDL_HapticDirection where
  writeRaw :: Ptr SDL_HapticDirection -> SDL_HapticDirection -> IO ()
writeRaw =
    \Ptr SDL_HapticDirection
ptr0 ->
      \SDL_HapticDirection
s1 ->
        case SDL_HapticDirection
s1 of
          SDL_HapticDirection SDL_HapticDirectionType
type'2 ConstantArray 3 Sint32
dir3 ->
            Proxy "type'"
-> Ptr SDL_HapticDirection
-> CFieldType SDL_HapticDirection "type'"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'") Ptr SDL_HapticDirection
ptr0 CFieldType SDL_HapticDirection "type'"
SDL_HapticDirectionType
type'2
              IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "dir"
-> Ptr SDL_HapticDirection
-> CFieldType SDL_HapticDirection "dir"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"dir") Ptr SDL_HapticDirection
ptr0 CFieldType SDL_HapticDirection "dir"
ConstantArray 3 Sint32
dir3

deriving via Marshal.EquivStorable SDL_HapticDirection instance BG.Storable SDL_HapticDirection

deriving via
  Struct.IsStructViaReadRaw SDL_HapticDirection
  instance
    Struct.IsStruct SDL_HapticDirection

-- | The type of encoding.
--
--     [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 568:29@
instance
  (ty ~ SDL_HapticDirectionType)
  => BG.CompatHasField.HasField "type'" SDL_HapticDirection ty
  where
  hasField :: SDL_HapticDirection -> (ty -> SDL_HapticDirection, ty)
hasField =
    \SDL_HapticDirection
x0 ->
      ( \ty
y1 ->
          SDL_HapticDirection{type' :: SDL_HapticDirectionType
type' = ty
SDL_HapticDirectionType
y1, dir :: ConstantArray 3 Sint32
dir = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"dir" SDL_HapticDirection
x0}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticDirection
x0
      )

instance
  (ty ~ SDL_HapticDirectionType)
  => BG.HasField "type'" (BG.Ptr SDL_HapticDirection) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticDirection -> Ptr ty
getField = Proxy "type'"
-> Ptr SDL_HapticDirection
-> Ptr (CFieldType SDL_HapticDirection "type'")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'")

instance HasCField.HasCField SDL_HapticDirection "type'" where
  type
    CFieldType SDL_HapticDirection "type'" =
      SDL_HapticDirectionType

  offset# :: Proxy# SDL_HapticDirection -> Proxy# "type'" -> Int
offset# = \Proxy# SDL_HapticDirection
_ -> \Proxy# "type'"
_ -> Int
0

-- | The encoded direction.
--
--     [C declaration]: @dir@, defined at @SDL3\/SDL_haptic.h 569:12@
instance
  (ty ~ CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint32)
  => BG.CompatHasField.HasField "dir" SDL_HapticDirection ty
  where
  hasField :: SDL_HapticDirection -> (ty -> SDL_HapticDirection, ty)
hasField =
    \SDL_HapticDirection
x0 ->
      ( \ty
y1 ->
          SDL_HapticDirection{dir :: ConstantArray 3 Sint32
dir = ty
ConstantArray 3 Sint32
y1, type' :: SDL_HapticDirectionType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticDirection
x0}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"dir" SDL_HapticDirection
x0
      )

instance
  (ty ~ CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint32)
  => BG.HasField "dir" (BG.Ptr SDL_HapticDirection) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticDirection -> Ptr ty
getField = Proxy "dir"
-> Ptr SDL_HapticDirection
-> Ptr (CFieldType SDL_HapticDirection "dir")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"dir")

instance HasCField.HasCField SDL_HapticDirection "dir" where
  type
    CFieldType SDL_HapticDirection "dir" =
      CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint32

  offset# :: Proxy# SDL_HapticDirection -> Proxy# "dir" -> Int
offset# = \Proxy# SDL_HapticDirection
_ -> \Proxy# "dir"
_ -> Int
4

-- | A structure containing a template for a Constant effect.
--
--     This struct is exclusively for the SDL_HAPTIC_CONSTANT effect.
--
--     A constant effect applies a constant force in the specified direction to the joystick.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_HAPTIC_CONSTANT', 'SDL_HapticEffect'
--
--     [C declaration]: @struct SDL_HapticConstant@, defined at @SDL3\/SDL_haptic.h 586:16@
data SDL_HapticConstant = SDL_HapticConstant
  { SDL_HapticConstant -> SDL_HapticEffectType
type' :: SDL_HapticEffectType
  -- ^ SDL_HAPTIC_CONSTANT
  --
  --          [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 589:26@
  , SDL_HapticConstant -> SDL_HapticDirection
direction :: SDL_HapticDirection
  -- ^ Direction of the effect.
  --
  --          [C declaration]: @direction@, defined at @SDL3\/SDL_haptic.h 590:25@
  , SDL_HapticConstant -> Uint32
length :: SDL3.Sys.Bindgen.Stdinc.Uint32
  -- ^ Duration of the effect.
  --
  --          [C declaration]: @length@, defined at @SDL3\/SDL_haptic.h 593:12@
  , SDL_HapticConstant -> Uint16
delay :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Delay before starting the effect.
  --
  --          [C declaration]: @delay@, defined at @SDL3\/SDL_haptic.h 594:12@
  , SDL_HapticConstant -> Uint16
button :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Button that triggers the effect.
  --
  --          [C declaration]: @button@, defined at @SDL3\/SDL_haptic.h 597:12@
  , SDL_HapticConstant -> Uint16
interval :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ How soon it can be triggered again after button.
  --
  --          [C declaration]: @interval@, defined at @SDL3\/SDL_haptic.h 598:12@
  , SDL_HapticConstant -> Sint16
level :: SDL3.Sys.Bindgen.Stdinc.Sint16
  -- ^ Strength of the constant effect.
  --
  --          [C declaration]: @level@, defined at @SDL3\/SDL_haptic.h 601:12@
  , SDL_HapticConstant -> Uint16
attack_length :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Duration of the attack.
  --
  --          [C declaration]: @attack_length@, defined at @SDL3\/SDL_haptic.h 604:12@
  , SDL_HapticConstant -> Uint16
attack_level :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Level at the start of the attack.
  --
  --          [C declaration]: @attack_level@, defined at @SDL3\/SDL_haptic.h 605:12@
  , SDL_HapticConstant -> Uint16
fade_length :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Duration of the fade.
  --
  --          [C declaration]: @fade_length@, defined at @SDL3\/SDL_haptic.h 606:12@
  , SDL_HapticConstant -> Uint16
fade_level :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Level at the end of the fade.
  --
  --          [C declaration]: @fade_level@, defined at @SDL3\/SDL_haptic.h 607:12@
  }
  deriving stock ((forall x. SDL_HapticConstant -> Rep SDL_HapticConstant x)
-> (forall x. Rep SDL_HapticConstant x -> SDL_HapticConstant)
-> Generic SDL_HapticConstant
forall x. Rep SDL_HapticConstant x -> SDL_HapticConstant
forall x. SDL_HapticConstant -> Rep SDL_HapticConstant x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_HapticConstant -> Rep SDL_HapticConstant x
from :: forall x. SDL_HapticConstant -> Rep SDL_HapticConstant x
$cto :: forall x. Rep SDL_HapticConstant x -> SDL_HapticConstant
to :: forall x. Rep SDL_HapticConstant x -> SDL_HapticConstant
BG.Generic, SDL_HapticConstant -> SDL_HapticConstant -> Bool
(SDL_HapticConstant -> SDL_HapticConstant -> Bool)
-> (SDL_HapticConstant -> SDL_HapticConstant -> Bool)
-> Eq SDL_HapticConstant
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_HapticConstant -> SDL_HapticConstant -> Bool
== :: SDL_HapticConstant -> SDL_HapticConstant -> Bool
$c/= :: SDL_HapticConstant -> SDL_HapticConstant -> Bool
/= :: SDL_HapticConstant -> SDL_HapticConstant -> Bool
Eq, Int -> SDL_HapticConstant -> ShowS
[SDL_HapticConstant] -> ShowS
SDL_HapticConstant -> String
(Int -> SDL_HapticConstant -> ShowS)
-> (SDL_HapticConstant -> String)
-> ([SDL_HapticConstant] -> ShowS)
-> Show SDL_HapticConstant
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_HapticConstant -> ShowS
showsPrec :: Int -> SDL_HapticConstant -> ShowS
$cshow :: SDL_HapticConstant -> String
show :: SDL_HapticConstant -> String
$cshowList :: [SDL_HapticConstant] -> ShowS
showList :: [SDL_HapticConstant] -> ShowS
Show)

instance Marshal.StaticSize SDL_HapticConstant where
  staticSizeOf :: Proxy SDL_HapticConstant -> Int
staticSizeOf = \Proxy SDL_HapticConstant
_ -> (Int
40 :: Int)

  staticAlignment :: Proxy SDL_HapticConstant -> Int
staticAlignment = \Proxy SDL_HapticConstant
_ -> (Int
4 :: Int)

instance Marshal.ReadRaw SDL_HapticConstant where
  readRaw :: Ptr SDL_HapticConstant -> IO SDL_HapticConstant
readRaw =
    \Ptr SDL_HapticConstant
ptr0 ->
      (SDL_HapticEffectType
 -> SDL_HapticDirection
 -> Uint32
 -> Uint16
 -> Uint16
 -> Uint16
 -> Sint16
 -> Uint16
 -> Uint16
 -> Uint16
 -> Uint16
 -> SDL_HapticConstant)
-> IO
     (SDL_HapticEffectType
      -> SDL_HapticDirection
      -> Uint32
      -> Uint16
      -> Uint16
      -> Uint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticConstant)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SDL_HapticEffectType
-> SDL_HapticDirection
-> Uint32
-> Uint16
-> Uint16
-> Uint16
-> Sint16
-> Uint16
-> Uint16
-> Uint16
-> Uint16
-> SDL_HapticConstant
SDL_HapticConstant
        IO
  (SDL_HapticEffectType
   -> SDL_HapticDirection
   -> Uint32
   -> Uint16
   -> Uint16
   -> Uint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticConstant)
-> IO SDL_HapticEffectType
-> IO
     (SDL_HapticDirection
      -> Uint32
      -> Uint16
      -> Uint16
      -> Uint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticConstant)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "type'"
-> Ptr SDL_HapticConstant
-> IO (CFieldType SDL_HapticConstant "type'")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'") Ptr SDL_HapticConstant
ptr0
        IO
  (SDL_HapticDirection
   -> Uint32
   -> Uint16
   -> Uint16
   -> Uint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticConstant)
-> IO SDL_HapticDirection
-> IO
     (Uint32
      -> Uint16
      -> Uint16
      -> Uint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticConstant)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "direction"
-> Ptr SDL_HapticConstant
-> IO (CFieldType SDL_HapticConstant "direction")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"direction") Ptr SDL_HapticConstant
ptr0
        IO
  (Uint32
   -> Uint16
   -> Uint16
   -> Uint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticConstant)
-> IO Uint32
-> IO
     (Uint16
      -> Uint16
      -> Uint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticConstant)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "length"
-> Ptr SDL_HapticConstant
-> IO (CFieldType SDL_HapticConstant "length")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length") Ptr SDL_HapticConstant
ptr0
        IO
  (Uint16
   -> Uint16
   -> Uint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticConstant)
-> IO Uint16
-> IO
     (Uint16
      -> Uint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticConstant)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "delay"
-> Ptr SDL_HapticConstant
-> IO (CFieldType SDL_HapticConstant "delay")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"delay") Ptr SDL_HapticConstant
ptr0
        IO
  (Uint16
   -> Uint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticConstant)
-> IO Uint16
-> IO
     (Uint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticConstant)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "button"
-> Ptr SDL_HapticConstant
-> IO (CFieldType SDL_HapticConstant "button")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"button") Ptr SDL_HapticConstant
ptr0
        IO
  (Uint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticConstant)
-> IO Uint16
-> IO
     (Sint16
      -> Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticConstant)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "interval"
-> Ptr SDL_HapticConstant
-> IO (CFieldType SDL_HapticConstant "interval")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"interval") Ptr SDL_HapticConstant
ptr0
        IO
  (Sint16
   -> Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticConstant)
-> IO Sint16
-> IO (Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticConstant)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "level"
-> Ptr SDL_HapticConstant
-> IO (CFieldType SDL_HapticConstant "level")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"level") Ptr SDL_HapticConstant
ptr0
        IO (Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticConstant)
-> IO Uint16
-> IO (Uint16 -> Uint16 -> Uint16 -> SDL_HapticConstant)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "attack_length"
-> Ptr SDL_HapticConstant
-> IO (CFieldType SDL_HapticConstant "attack_length")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_length") Ptr SDL_HapticConstant
ptr0
        IO (Uint16 -> Uint16 -> Uint16 -> SDL_HapticConstant)
-> IO Uint16 -> IO (Uint16 -> Uint16 -> SDL_HapticConstant)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "attack_level"
-> Ptr SDL_HapticConstant
-> IO (CFieldType SDL_HapticConstant "attack_level")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_level") Ptr SDL_HapticConstant
ptr0
        IO (Uint16 -> Uint16 -> SDL_HapticConstant)
-> IO Uint16 -> IO (Uint16 -> SDL_HapticConstant)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "fade_length"
-> Ptr SDL_HapticConstant
-> IO (CFieldType SDL_HapticConstant "fade_length")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_length") Ptr SDL_HapticConstant
ptr0
        IO (Uint16 -> SDL_HapticConstant)
-> IO Uint16 -> IO SDL_HapticConstant
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "fade_level"
-> Ptr SDL_HapticConstant
-> IO (CFieldType SDL_HapticConstant "fade_level")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_level") Ptr SDL_HapticConstant
ptr0

instance Marshal.WriteRaw SDL_HapticConstant where
  writeRaw :: Ptr SDL_HapticConstant -> SDL_HapticConstant -> IO ()
writeRaw =
    \Ptr SDL_HapticConstant
ptr0 ->
      \SDL_HapticConstant
s1 ->
        case SDL_HapticConstant
s1 of
          SDL_HapticConstant
            SDL_HapticEffectType
type'2
            SDL_HapticDirection
direction3
            Uint32
length4
            Uint16
delay5
            Uint16
button6
            Uint16
interval7
            Sint16
level8
            Uint16
attack_length9
            Uint16
attack_level10
            Uint16
fade_length11
            Uint16
fade_level12 ->
              Proxy "type'"
-> Ptr SDL_HapticConstant
-> CFieldType SDL_HapticConstant "type'"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'") Ptr SDL_HapticConstant
ptr0 CFieldType SDL_HapticConstant "type'"
SDL_HapticEffectType
type'2
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "direction"
-> Ptr SDL_HapticConstant
-> CFieldType SDL_HapticConstant "direction"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"direction") Ptr SDL_HapticConstant
ptr0 CFieldType SDL_HapticConstant "direction"
SDL_HapticDirection
direction3
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "length"
-> Ptr SDL_HapticConstant
-> CFieldType SDL_HapticConstant "length"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length") Ptr SDL_HapticConstant
ptr0 CFieldType SDL_HapticConstant "length"
Uint32
length4
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "delay"
-> Ptr SDL_HapticConstant
-> CFieldType SDL_HapticConstant "delay"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"delay") Ptr SDL_HapticConstant
ptr0 CFieldType SDL_HapticConstant "delay"
Uint16
delay5
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "button"
-> Ptr SDL_HapticConstant
-> CFieldType SDL_HapticConstant "button"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"button") Ptr SDL_HapticConstant
ptr0 CFieldType SDL_HapticConstant "button"
Uint16
button6
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "interval"
-> Ptr SDL_HapticConstant
-> CFieldType SDL_HapticConstant "interval"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"interval") Ptr SDL_HapticConstant
ptr0 CFieldType SDL_HapticConstant "interval"
Uint16
interval7
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "level"
-> Ptr SDL_HapticConstant
-> CFieldType SDL_HapticConstant "level"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"level") Ptr SDL_HapticConstant
ptr0 CFieldType SDL_HapticConstant "level"
Sint16
level8
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "attack_length"
-> Ptr SDL_HapticConstant
-> CFieldType SDL_HapticConstant "attack_length"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_length") Ptr SDL_HapticConstant
ptr0 CFieldType SDL_HapticConstant "attack_length"
Uint16
attack_length9
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "attack_level"
-> Ptr SDL_HapticConstant
-> CFieldType SDL_HapticConstant "attack_level"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_level") Ptr SDL_HapticConstant
ptr0 CFieldType SDL_HapticConstant "attack_level"
Uint16
attack_level10
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "fade_length"
-> Ptr SDL_HapticConstant
-> CFieldType SDL_HapticConstant "fade_length"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_length") Ptr SDL_HapticConstant
ptr0 CFieldType SDL_HapticConstant "fade_length"
Uint16
fade_length11
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "fade_level"
-> Ptr SDL_HapticConstant
-> CFieldType SDL_HapticConstant "fade_level"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_level") Ptr SDL_HapticConstant
ptr0 CFieldType SDL_HapticConstant "fade_level"
Uint16
fade_level12

deriving via Marshal.EquivStorable SDL_HapticConstant instance BG.Storable SDL_HapticConstant

deriving via
  Struct.IsStructViaReadRaw SDL_HapticConstant
  instance
    Struct.IsStruct SDL_HapticConstant

-- | SDL_HAPTIC_CONSTANT
--
--     [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 589:26@
instance
  (ty ~ SDL_HapticEffectType)
  => BG.CompatHasField.HasField "type'" SDL_HapticConstant ty
  where
  hasField :: SDL_HapticConstant -> (ty -> SDL_HapticConstant, ty)
hasField =
    \SDL_HapticConstant
x0 ->
      ( \ty
y1 ->
          SDL_HapticConstant
            { type' :: SDL_HapticEffectType
type' = ty
SDL_HapticEffectType
y1
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticConstant
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticConstant
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticConstant
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticConstant
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticConstant
x0
            , level :: Sint16
level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"level" SDL_HapticConstant
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticConstant
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticConstant
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticConstant
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticConstant
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticConstant
x0
      )

instance
  (ty ~ SDL_HapticEffectType)
  => BG.HasField "type'" (BG.Ptr SDL_HapticConstant) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticConstant -> Ptr ty
getField = Proxy "type'"
-> Ptr SDL_HapticConstant
-> Ptr (CFieldType SDL_HapticConstant "type'")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'")

instance HasCField.HasCField SDL_HapticConstant "type'" where
  type
    CFieldType SDL_HapticConstant "type'" =
      SDL_HapticEffectType

  offset# :: Proxy# SDL_HapticConstant -> Proxy# "type'" -> Int
offset# = \Proxy# SDL_HapticConstant
_ -> \Proxy# "type'"
_ -> Int
0

-- | Direction of the effect.
--
--     [C declaration]: @direction@, defined at @SDL3\/SDL_haptic.h 590:25@
instance
  (ty ~ SDL_HapticDirection)
  => BG.CompatHasField.HasField "direction" SDL_HapticConstant ty
  where
  hasField :: SDL_HapticConstant -> (ty -> SDL_HapticConstant, ty)
hasField =
    \SDL_HapticConstant
x0 ->
      ( \ty
y1 ->
          SDL_HapticConstant
            { direction :: SDL_HapticDirection
direction = ty
SDL_HapticDirection
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticConstant
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticConstant
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticConstant
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticConstant
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticConstant
x0
            , level :: Sint16
level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"level" SDL_HapticConstant
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticConstant
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticConstant
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticConstant
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticConstant
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticConstant
x0
      )

instance
  (ty ~ SDL_HapticDirection)
  => BG.HasField "direction" (BG.Ptr SDL_HapticConstant) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticConstant -> Ptr ty
getField = Proxy "direction"
-> Ptr SDL_HapticConstant
-> Ptr (CFieldType SDL_HapticConstant "direction")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"direction")

instance HasCField.HasCField SDL_HapticConstant "direction" where
  type
    CFieldType SDL_HapticConstant "direction" =
      SDL_HapticDirection

  offset# :: Proxy# SDL_HapticConstant -> Proxy# "direction" -> Int
offset# = \Proxy# SDL_HapticConstant
_ -> \Proxy# "direction"
_ -> Int
4

-- | Duration of the effect.
--
--     [C declaration]: @length@, defined at @SDL3\/SDL_haptic.h 593:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "length" SDL_HapticConstant ty
  where
  hasField :: SDL_HapticConstant -> (ty -> SDL_HapticConstant, ty)
hasField =
    \SDL_HapticConstant
x0 ->
      ( \ty
y1 ->
          SDL_HapticConstant
            { length :: Uint32
length = ty
Uint32
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticConstant
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticConstant
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticConstant
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticConstant
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticConstant
x0
            , level :: Sint16
level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"level" SDL_HapticConstant
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticConstant
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticConstant
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticConstant
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticConstant
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticConstant
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.HasField "length" (BG.Ptr SDL_HapticConstant) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticConstant -> Ptr ty
getField = Proxy "length"
-> Ptr SDL_HapticConstant
-> Ptr (CFieldType SDL_HapticConstant "length")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length")

instance HasCField.HasCField SDL_HapticConstant "length" where
  type
    CFieldType SDL_HapticConstant "length" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

  offset# :: Proxy# SDL_HapticConstant -> Proxy# "length" -> Int
offset# = \Proxy# SDL_HapticConstant
_ -> \Proxy# "length"
_ -> Int
20

-- | Delay before starting the effect.
--
--     [C declaration]: @delay@, defined at @SDL3\/SDL_haptic.h 594:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "delay" SDL_HapticConstant ty
  where
  hasField :: SDL_HapticConstant -> (ty -> SDL_HapticConstant, ty)
hasField =
    \SDL_HapticConstant
x0 ->
      ( \ty
y1 ->
          SDL_HapticConstant
            { delay :: Uint16
delay = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticConstant
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticConstant
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticConstant
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticConstant
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticConstant
x0
            , level :: Sint16
level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"level" SDL_HapticConstant
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticConstant
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticConstant
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticConstant
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticConstant
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticConstant
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "delay" (BG.Ptr SDL_HapticConstant) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticConstant -> Ptr ty
getField = Proxy "delay"
-> Ptr SDL_HapticConstant
-> Ptr (CFieldType SDL_HapticConstant "delay")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"delay")

instance HasCField.HasCField SDL_HapticConstant "delay" where
  type
    CFieldType SDL_HapticConstant "delay" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticConstant -> Proxy# "delay" -> Int
offset# = \Proxy# SDL_HapticConstant
_ -> \Proxy# "delay"
_ -> Int
24

-- | Button that triggers the effect.
--
--     [C declaration]: @button@, defined at @SDL3\/SDL_haptic.h 597:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "button" SDL_HapticConstant ty
  where
  hasField :: SDL_HapticConstant -> (ty -> SDL_HapticConstant, ty)
hasField =
    \SDL_HapticConstant
x0 ->
      ( \ty
y1 ->
          SDL_HapticConstant
            { button :: Uint16
button = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticConstant
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticConstant
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticConstant
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticConstant
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticConstant
x0
            , level :: Sint16
level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"level" SDL_HapticConstant
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticConstant
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticConstant
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticConstant
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticConstant
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticConstant
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "button" (BG.Ptr SDL_HapticConstant) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticConstant -> Ptr ty
getField = Proxy "button"
-> Ptr SDL_HapticConstant
-> Ptr (CFieldType SDL_HapticConstant "button")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"button")

instance HasCField.HasCField SDL_HapticConstant "button" where
  type
    CFieldType SDL_HapticConstant "button" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticConstant -> Proxy# "button" -> Int
offset# = \Proxy# SDL_HapticConstant
_ -> \Proxy# "button"
_ -> Int
26

-- | How soon it can be triggered again after button.
--
--     [C declaration]: @interval@, defined at @SDL3\/SDL_haptic.h 598:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "interval" SDL_HapticConstant ty
  where
  hasField :: SDL_HapticConstant -> (ty -> SDL_HapticConstant, ty)
hasField =
    \SDL_HapticConstant
x0 ->
      ( \ty
y1 ->
          SDL_HapticConstant
            { interval :: Uint16
interval = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticConstant
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticConstant
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticConstant
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticConstant
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticConstant
x0
            , level :: Sint16
level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"level" SDL_HapticConstant
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticConstant
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticConstant
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticConstant
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticConstant
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticConstant
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "interval" (BG.Ptr SDL_HapticConstant) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticConstant -> Ptr ty
getField = Proxy "interval"
-> Ptr SDL_HapticConstant
-> Ptr (CFieldType SDL_HapticConstant "interval")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"interval")

instance HasCField.HasCField SDL_HapticConstant "interval" where
  type
    CFieldType SDL_HapticConstant "interval" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticConstant -> Proxy# "interval" -> Int
offset# = \Proxy# SDL_HapticConstant
_ -> \Proxy# "interval"
_ -> Int
28

-- | Strength of the constant effect.
--
--     [C declaration]: @level@, defined at @SDL3\/SDL_haptic.h 601:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.CompatHasField.HasField "level" SDL_HapticConstant ty
  where
  hasField :: SDL_HapticConstant -> (ty -> SDL_HapticConstant, ty)
hasField =
    \SDL_HapticConstant
x0 ->
      ( \ty
y1 ->
          SDL_HapticConstant
            { level :: Sint16
level = ty
Sint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticConstant
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticConstant
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticConstant
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticConstant
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticConstant
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticConstant
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticConstant
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticConstant
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticConstant
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticConstant
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"level" SDL_HapticConstant
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.HasField "level" (BG.Ptr SDL_HapticConstant) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticConstant -> Ptr ty
getField = Proxy "level"
-> Ptr SDL_HapticConstant
-> Ptr (CFieldType SDL_HapticConstant "level")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"level")

instance HasCField.HasCField SDL_HapticConstant "level" where
  type
    CFieldType SDL_HapticConstant "level" =
      SDL3.Sys.Bindgen.Stdinc.Sint16

  offset# :: Proxy# SDL_HapticConstant -> Proxy# "level" -> Int
offset# = \Proxy# SDL_HapticConstant
_ -> \Proxy# "level"
_ -> Int
30

-- | Duration of the attack.
--
--     [C declaration]: @attack_length@, defined at @SDL3\/SDL_haptic.h 604:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "attack_length" SDL_HapticConstant ty
  where
  hasField :: SDL_HapticConstant -> (ty -> SDL_HapticConstant, ty)
hasField =
    \SDL_HapticConstant
x0 ->
      ( \ty
y1 ->
          SDL_HapticConstant
            { attack_length :: Uint16
attack_length = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticConstant
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticConstant
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticConstant
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticConstant
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticConstant
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticConstant
x0
            , level :: Sint16
level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"level" SDL_HapticConstant
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticConstant
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticConstant
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticConstant
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticConstant
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "attack_length" (BG.Ptr SDL_HapticConstant) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticConstant -> Ptr ty
getField =
    Proxy "attack_length"
-> Ptr SDL_HapticConstant
-> Ptr (CFieldType SDL_HapticConstant "attack_length")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_length")

instance HasCField.HasCField SDL_HapticConstant "attack_length" where
  type
    CFieldType SDL_HapticConstant "attack_length" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticConstant -> Proxy# "attack_length" -> Int
offset# = \Proxy# SDL_HapticConstant
_ -> \Proxy# "attack_length"
_ -> Int
32

-- | Level at the start of the attack.
--
--     [C declaration]: @attack_level@, defined at @SDL3\/SDL_haptic.h 605:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "attack_level" SDL_HapticConstant ty
  where
  hasField :: SDL_HapticConstant -> (ty -> SDL_HapticConstant, ty)
hasField =
    \SDL_HapticConstant
x0 ->
      ( \ty
y1 ->
          SDL_HapticConstant
            { attack_level :: Uint16
attack_level = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticConstant
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticConstant
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticConstant
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticConstant
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticConstant
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticConstant
x0
            , level :: Sint16
level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"level" SDL_HapticConstant
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticConstant
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticConstant
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticConstant
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticConstant
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "attack_level" (BG.Ptr SDL_HapticConstant) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticConstant -> Ptr ty
getField =
    Proxy "attack_level"
-> Ptr SDL_HapticConstant
-> Ptr (CFieldType SDL_HapticConstant "attack_level")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_level")

instance HasCField.HasCField SDL_HapticConstant "attack_level" where
  type
    CFieldType SDL_HapticConstant "attack_level" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticConstant -> Proxy# "attack_level" -> Int
offset# = \Proxy# SDL_HapticConstant
_ -> \Proxy# "attack_level"
_ -> Int
34

-- | Duration of the fade.
--
--     [C declaration]: @fade_length@, defined at @SDL3\/SDL_haptic.h 606:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "fade_length" SDL_HapticConstant ty
  where
  hasField :: SDL_HapticConstant -> (ty -> SDL_HapticConstant, ty)
hasField =
    \SDL_HapticConstant
x0 ->
      ( \ty
y1 ->
          SDL_HapticConstant
            { fade_length :: Uint16
fade_length = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticConstant
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticConstant
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticConstant
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticConstant
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticConstant
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticConstant
x0
            , level :: Sint16
level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"level" SDL_HapticConstant
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticConstant
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticConstant
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticConstant
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticConstant
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "fade_length" (BG.Ptr SDL_HapticConstant) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticConstant -> Ptr ty
getField =
    Proxy "fade_length"
-> Ptr SDL_HapticConstant
-> Ptr (CFieldType SDL_HapticConstant "fade_length")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_length")

instance HasCField.HasCField SDL_HapticConstant "fade_length" where
  type
    CFieldType SDL_HapticConstant "fade_length" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticConstant -> Proxy# "fade_length" -> Int
offset# = \Proxy# SDL_HapticConstant
_ -> \Proxy# "fade_length"
_ -> Int
36

-- | Level at the end of the fade.
--
--     [C declaration]: @fade_level@, defined at @SDL3\/SDL_haptic.h 607:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "fade_level" SDL_HapticConstant ty
  where
  hasField :: SDL_HapticConstant -> (ty -> SDL_HapticConstant, ty)
hasField =
    \SDL_HapticConstant
x0 ->
      ( \ty
y1 ->
          SDL_HapticConstant
            { fade_level :: Uint16
fade_level = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticConstant
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticConstant
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticConstant
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticConstant
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticConstant
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticConstant
x0
            , level :: Sint16
level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"level" SDL_HapticConstant
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticConstant
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticConstant
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticConstant
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticConstant
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "fade_level" (BG.Ptr SDL_HapticConstant) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticConstant -> Ptr ty
getField = Proxy "fade_level"
-> Ptr SDL_HapticConstant
-> Ptr (CFieldType SDL_HapticConstant "fade_level")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_level")

instance HasCField.HasCField SDL_HapticConstant "fade_level" where
  type
    CFieldType SDL_HapticConstant "fade_level" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticConstant -> Proxy# "fade_level" -> Int
offset# = \Proxy# SDL_HapticConstant
_ -> \Proxy# "fade_level"
_ -> Int
38

-- | A structure containing a template for a Periodic effect.
--
--     The struct handles the following effects:
--
--     * SDL_HAPTIC_SINE
--
--     * SDL_HAPTIC_SQUARE
--
--     * SDL_HAPTIC_TRIANGLE
--
--     * SDL_HAPTIC_SAWTOOTHUP
--
--     * SDL_HAPTIC_SAWTOOTHDOWN
--
--     A periodic effect consists in a wave-shaped effect that repeats itself over time. The type determines the shape of the wave and the parameters determine the dimensions of the wave.
--
--     Phase is given by hundredth of a degree meaning that giving the phase a value of 9000 will displace it 25% of its period. Here are sample values:
--
--     * 0: No phase displacement.
--
--     * 9000: Displaced 25% of its period.
--
--     * 18000: Displaced 50% of its period.
--
--     * 27000: Displaced 75% of its period.
--
--     * 36000: Displaced 100% of its period, same as 0, but 0 is preferred.
--
--     Examples:
--
--     @
--     SDL_HAPTIC_SINE
--       __      __      __      __
--      \/  \\    \/  \\    \/  \\    \/
--     \/    \\__\/    \\__\/    \\__\/
--
--     SDL_HAPTIC_SQUARE
--      __    __    __    __    __
--     |  |  |  |  |  |  |  |  |  |
--     |  |__|  |__|  |__|  |__|  |
--
--     SDL_HAPTIC_TRIANGLE
--       \/\\    \/\\    \/\\    \/\\    \/\\
--      \/  \\  \/  \\  \/  \\  \/  \\  \/
--     \/    \\\/    \\\/    \\\/    \\\/
--
--     SDL_HAPTIC_SAWTOOTHUP
--       \/|  \/|  \/|  \/|  \/|  \/|  \/|
--      \/ | \/ | \/ | \/ | \/ | \/ | \/ |
--     \/  |\/  |\/  |\/  |\/  |\/  |\/  |
--
--     SDL_HAPTIC_SAWTOOTHDOWN
--     \\  |\\  |\\  |\\  |\\  |\\  |\\  |
--      \\ | \\ | \\ | \\ | \\ | \\ | \\ |
--       \\|  \\|  \\|  \\|  \\|  \\|  \\|
--     @
--
--     @since 3.2.0
--
--     [See also]: 'sDL_HAPTIC_SINE', 'sDL_HAPTIC_SQUARE', 'sDL_HAPTIC_TRIANGLE', 'sDL_HAPTIC_SAWTOOTHUP', 'sDL_HAPTIC_SAWTOOTHDOWN', 'SDL_HapticEffect'
--
--     [C declaration]: @struct SDL_HapticPeriodic@, defined at @SDL3\/SDL_haptic.h 672:16@
data SDL_HapticPeriodic = SDL_HapticPeriodic
  { SDL_HapticPeriodic -> SDL_HapticEffectType
type' :: SDL_HapticEffectType
  -- ^ SDL_HAPTIC_SINE, SDL_HAPTIC_SQUARE SDL_HAPTIC_TRIANGLE, SDL_HAPTIC_SAWTOOTHUP or SDL_HAPTIC_SAWTOOTHDOWN
  --
  --          [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 675:26@
  , SDL_HapticPeriodic -> SDL_HapticDirection
direction :: SDL_HapticDirection
  -- ^ Direction of the effect.
  --
  --          [C declaration]: @direction@, defined at @SDL3\/SDL_haptic.h 678:25@
  , SDL_HapticPeriodic -> Uint32
length :: SDL3.Sys.Bindgen.Stdinc.Uint32
  -- ^ Duration of the effect.
  --
  --          [C declaration]: @length@, defined at @SDL3\/SDL_haptic.h 681:12@
  , SDL_HapticPeriodic -> Uint16
delay :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Delay before starting the effect.
  --
  --          [C declaration]: @delay@, defined at @SDL3\/SDL_haptic.h 682:12@
  , SDL_HapticPeriodic -> Uint16
button :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Button that triggers the effect.
  --
  --          [C declaration]: @button@, defined at @SDL3\/SDL_haptic.h 685:12@
  , SDL_HapticPeriodic -> Uint16
interval :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ How soon it can be triggered again after button.
  --
  --          [C declaration]: @interval@, defined at @SDL3\/SDL_haptic.h 686:12@
  , SDL_HapticPeriodic -> Uint16
period :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Period of the wave.
  --
  --          [C declaration]: @period@, defined at @SDL3\/SDL_haptic.h 689:12@
  , SDL_HapticPeriodic -> Sint16
magnitude :: SDL3.Sys.Bindgen.Stdinc.Sint16
  -- ^ Peak value; if negative, equivalent to 180 degrees extra phase shift.
  --
  --          [C declaration]: @magnitude@, defined at @SDL3\/SDL_haptic.h 690:12@
  , SDL_HapticPeriodic -> Sint16
offset :: SDL3.Sys.Bindgen.Stdinc.Sint16
  -- ^ Mean value of the wave.
  --
  --          [C declaration]: @offset@, defined at @SDL3\/SDL_haptic.h 691:12@
  , SDL_HapticPeriodic -> Uint16
phase :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Positive phase shift given by hundredth of a degree.
  --
  --          [C declaration]: @phase@, defined at @SDL3\/SDL_haptic.h 692:12@
  , SDL_HapticPeriodic -> Uint16
attack_length :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Duration of the attack.
  --
  --          [C declaration]: @attack_length@, defined at @SDL3\/SDL_haptic.h 695:12@
  , SDL_HapticPeriodic -> Uint16
attack_level :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Level at the start of the attack.
  --
  --          [C declaration]: @attack_level@, defined at @SDL3\/SDL_haptic.h 696:12@
  , SDL_HapticPeriodic -> Uint16
fade_length :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Duration of the fade.
  --
  --          [C declaration]: @fade_length@, defined at @SDL3\/SDL_haptic.h 697:12@
  , SDL_HapticPeriodic -> Uint16
fade_level :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Level at the end of the fade.
  --
  --          [C declaration]: @fade_level@, defined at @SDL3\/SDL_haptic.h 698:12@
  }
  deriving stock ((forall x. SDL_HapticPeriodic -> Rep SDL_HapticPeriodic x)
-> (forall x. Rep SDL_HapticPeriodic x -> SDL_HapticPeriodic)
-> Generic SDL_HapticPeriodic
forall x. Rep SDL_HapticPeriodic x -> SDL_HapticPeriodic
forall x. SDL_HapticPeriodic -> Rep SDL_HapticPeriodic x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_HapticPeriodic -> Rep SDL_HapticPeriodic x
from :: forall x. SDL_HapticPeriodic -> Rep SDL_HapticPeriodic x
$cto :: forall x. Rep SDL_HapticPeriodic x -> SDL_HapticPeriodic
to :: forall x. Rep SDL_HapticPeriodic x -> SDL_HapticPeriodic
BG.Generic, SDL_HapticPeriodic -> SDL_HapticPeriodic -> Bool
(SDL_HapticPeriodic -> SDL_HapticPeriodic -> Bool)
-> (SDL_HapticPeriodic -> SDL_HapticPeriodic -> Bool)
-> Eq SDL_HapticPeriodic
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_HapticPeriodic -> SDL_HapticPeriodic -> Bool
== :: SDL_HapticPeriodic -> SDL_HapticPeriodic -> Bool
$c/= :: SDL_HapticPeriodic -> SDL_HapticPeriodic -> Bool
/= :: SDL_HapticPeriodic -> SDL_HapticPeriodic -> Bool
Eq, Int -> SDL_HapticPeriodic -> ShowS
[SDL_HapticPeriodic] -> ShowS
SDL_HapticPeriodic -> String
(Int -> SDL_HapticPeriodic -> ShowS)
-> (SDL_HapticPeriodic -> String)
-> ([SDL_HapticPeriodic] -> ShowS)
-> Show SDL_HapticPeriodic
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_HapticPeriodic -> ShowS
showsPrec :: Int -> SDL_HapticPeriodic -> ShowS
$cshow :: SDL_HapticPeriodic -> String
show :: SDL_HapticPeriodic -> String
$cshowList :: [SDL_HapticPeriodic] -> ShowS
showList :: [SDL_HapticPeriodic] -> ShowS
Show)

instance Marshal.StaticSize SDL_HapticPeriodic where
  staticSizeOf :: Proxy SDL_HapticPeriodic -> Int
staticSizeOf = \Proxy SDL_HapticPeriodic
_ -> (Int
48 :: Int)

  staticAlignment :: Proxy SDL_HapticPeriodic -> Int
staticAlignment = \Proxy SDL_HapticPeriodic
_ -> (Int
4 :: Int)

instance Marshal.ReadRaw SDL_HapticPeriodic where
  readRaw :: Ptr SDL_HapticPeriodic -> IO SDL_HapticPeriodic
readRaw =
    \Ptr SDL_HapticPeriodic
ptr0 ->
      (SDL_HapticEffectType
 -> SDL_HapticDirection
 -> Uint32
 -> Uint16
 -> Uint16
 -> Uint16
 -> Uint16
 -> Sint16
 -> Sint16
 -> Uint16
 -> Uint16
 -> Uint16
 -> Uint16
 -> Uint16
 -> SDL_HapticPeriodic)
-> IO
     (SDL_HapticEffectType
      -> SDL_HapticDirection
      -> Uint32
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Sint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticPeriodic)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SDL_HapticEffectType
-> SDL_HapticDirection
-> Uint32
-> Uint16
-> Uint16
-> Uint16
-> Uint16
-> Sint16
-> Sint16
-> Uint16
-> Uint16
-> Uint16
-> Uint16
-> Uint16
-> SDL_HapticPeriodic
SDL_HapticPeriodic
        IO
  (SDL_HapticEffectType
   -> SDL_HapticDirection
   -> Uint32
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Sint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticPeriodic)
-> IO SDL_HapticEffectType
-> IO
     (SDL_HapticDirection
      -> Uint32
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Sint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticPeriodic)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "type'"
-> Ptr SDL_HapticPeriodic
-> IO (CFieldType SDL_HapticPeriodic "type'")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'") Ptr SDL_HapticPeriodic
ptr0
        IO
  (SDL_HapticDirection
   -> Uint32
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Sint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticPeriodic)
-> IO SDL_HapticDirection
-> IO
     (Uint32
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Sint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticPeriodic)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "direction"
-> Ptr SDL_HapticPeriodic
-> IO (CFieldType SDL_HapticPeriodic "direction")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"direction") Ptr SDL_HapticPeriodic
ptr0
        IO
  (Uint32
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Sint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticPeriodic)
-> IO Uint32
-> IO
     (Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Sint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticPeriodic)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "length"
-> Ptr SDL_HapticPeriodic
-> IO (CFieldType SDL_HapticPeriodic "length")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length") Ptr SDL_HapticPeriodic
ptr0
        IO
  (Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Sint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticPeriodic)
-> IO Uint16
-> IO
     (Uint16
      -> Uint16
      -> Uint16
      -> Sint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticPeriodic)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "delay"
-> Ptr SDL_HapticPeriodic
-> IO (CFieldType SDL_HapticPeriodic "delay")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"delay") Ptr SDL_HapticPeriodic
ptr0
        IO
  (Uint16
   -> Uint16
   -> Uint16
   -> Sint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticPeriodic)
-> IO Uint16
-> IO
     (Uint16
      -> Uint16
      -> Sint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticPeriodic)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "button"
-> Ptr SDL_HapticPeriodic
-> IO (CFieldType SDL_HapticPeriodic "button")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"button") Ptr SDL_HapticPeriodic
ptr0
        IO
  (Uint16
   -> Uint16
   -> Sint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticPeriodic)
-> IO Uint16
-> IO
     (Uint16
      -> Sint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticPeriodic)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "interval"
-> Ptr SDL_HapticPeriodic
-> IO (CFieldType SDL_HapticPeriodic "interval")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"interval") Ptr SDL_HapticPeriodic
ptr0
        IO
  (Uint16
   -> Sint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticPeriodic)
-> IO Uint16
-> IO
     (Sint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticPeriodic)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "period"
-> Ptr SDL_HapticPeriodic
-> IO (CFieldType SDL_HapticPeriodic "period")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"period") Ptr SDL_HapticPeriodic
ptr0
        IO
  (Sint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticPeriodic)
-> IO Sint16
-> IO
     (Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticPeriodic)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "magnitude"
-> Ptr SDL_HapticPeriodic
-> IO (CFieldType SDL_HapticPeriodic "magnitude")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"magnitude") Ptr SDL_HapticPeriodic
ptr0
        IO
  (Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticPeriodic)
-> IO Sint16
-> IO
     (Uint16
      -> Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticPeriodic)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "offset"
-> Ptr SDL_HapticPeriodic
-> IO (CFieldType SDL_HapticPeriodic "offset")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"offset") Ptr SDL_HapticPeriodic
ptr0
        IO
  (Uint16
   -> Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticPeriodic)
-> IO Uint16
-> IO (Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticPeriodic)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "phase"
-> Ptr SDL_HapticPeriodic
-> IO (CFieldType SDL_HapticPeriodic "phase")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"phase") Ptr SDL_HapticPeriodic
ptr0
        IO (Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticPeriodic)
-> IO Uint16
-> IO (Uint16 -> Uint16 -> Uint16 -> SDL_HapticPeriodic)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "attack_length"
-> Ptr SDL_HapticPeriodic
-> IO (CFieldType SDL_HapticPeriodic "attack_length")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_length") Ptr SDL_HapticPeriodic
ptr0
        IO (Uint16 -> Uint16 -> Uint16 -> SDL_HapticPeriodic)
-> IO Uint16 -> IO (Uint16 -> Uint16 -> SDL_HapticPeriodic)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "attack_level"
-> Ptr SDL_HapticPeriodic
-> IO (CFieldType SDL_HapticPeriodic "attack_level")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_level") Ptr SDL_HapticPeriodic
ptr0
        IO (Uint16 -> Uint16 -> SDL_HapticPeriodic)
-> IO Uint16 -> IO (Uint16 -> SDL_HapticPeriodic)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "fade_length"
-> Ptr SDL_HapticPeriodic
-> IO (CFieldType SDL_HapticPeriodic "fade_length")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_length") Ptr SDL_HapticPeriodic
ptr0
        IO (Uint16 -> SDL_HapticPeriodic)
-> IO Uint16 -> IO SDL_HapticPeriodic
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "fade_level"
-> Ptr SDL_HapticPeriodic
-> IO (CFieldType SDL_HapticPeriodic "fade_level")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_level") Ptr SDL_HapticPeriodic
ptr0

instance Marshal.WriteRaw SDL_HapticPeriodic where
  writeRaw :: Ptr SDL_HapticPeriodic -> SDL_HapticPeriodic -> IO ()
writeRaw =
    \Ptr SDL_HapticPeriodic
ptr0 ->
      \SDL_HapticPeriodic
s1 ->
        case SDL_HapticPeriodic
s1 of
          SDL_HapticPeriodic
            SDL_HapticEffectType
type'2
            SDL_HapticDirection
direction3
            Uint32
length4
            Uint16
delay5
            Uint16
button6
            Uint16
interval7
            Uint16
period8
            Sint16
magnitude9
            Sint16
offset10
            Uint16
phase11
            Uint16
attack_length12
            Uint16
attack_level13
            Uint16
fade_length14
            Uint16
fade_level15 ->
              Proxy "type'"
-> Ptr SDL_HapticPeriodic
-> CFieldType SDL_HapticPeriodic "type'"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'") Ptr SDL_HapticPeriodic
ptr0 CFieldType SDL_HapticPeriodic "type'"
SDL_HapticEffectType
type'2
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "direction"
-> Ptr SDL_HapticPeriodic
-> CFieldType SDL_HapticPeriodic "direction"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"direction") Ptr SDL_HapticPeriodic
ptr0 CFieldType SDL_HapticPeriodic "direction"
SDL_HapticDirection
direction3
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "length"
-> Ptr SDL_HapticPeriodic
-> CFieldType SDL_HapticPeriodic "length"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length") Ptr SDL_HapticPeriodic
ptr0 CFieldType SDL_HapticPeriodic "length"
Uint32
length4
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "delay"
-> Ptr SDL_HapticPeriodic
-> CFieldType SDL_HapticPeriodic "delay"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"delay") Ptr SDL_HapticPeriodic
ptr0 CFieldType SDL_HapticPeriodic "delay"
Uint16
delay5
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "button"
-> Ptr SDL_HapticPeriodic
-> CFieldType SDL_HapticPeriodic "button"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"button") Ptr SDL_HapticPeriodic
ptr0 CFieldType SDL_HapticPeriodic "button"
Uint16
button6
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "interval"
-> Ptr SDL_HapticPeriodic
-> CFieldType SDL_HapticPeriodic "interval"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"interval") Ptr SDL_HapticPeriodic
ptr0 CFieldType SDL_HapticPeriodic "interval"
Uint16
interval7
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "period"
-> Ptr SDL_HapticPeriodic
-> CFieldType SDL_HapticPeriodic "period"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"period") Ptr SDL_HapticPeriodic
ptr0 CFieldType SDL_HapticPeriodic "period"
Uint16
period8
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "magnitude"
-> Ptr SDL_HapticPeriodic
-> CFieldType SDL_HapticPeriodic "magnitude"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"magnitude") Ptr SDL_HapticPeriodic
ptr0 CFieldType SDL_HapticPeriodic "magnitude"
Sint16
magnitude9
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "offset"
-> Ptr SDL_HapticPeriodic
-> CFieldType SDL_HapticPeriodic "offset"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"offset") Ptr SDL_HapticPeriodic
ptr0 CFieldType SDL_HapticPeriodic "offset"
Sint16
offset10
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "phase"
-> Ptr SDL_HapticPeriodic
-> CFieldType SDL_HapticPeriodic "phase"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"phase") Ptr SDL_HapticPeriodic
ptr0 CFieldType SDL_HapticPeriodic "phase"
Uint16
phase11
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "attack_length"
-> Ptr SDL_HapticPeriodic
-> CFieldType SDL_HapticPeriodic "attack_length"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_length") Ptr SDL_HapticPeriodic
ptr0 CFieldType SDL_HapticPeriodic "attack_length"
Uint16
attack_length12
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "attack_level"
-> Ptr SDL_HapticPeriodic
-> CFieldType SDL_HapticPeriodic "attack_level"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_level") Ptr SDL_HapticPeriodic
ptr0 CFieldType SDL_HapticPeriodic "attack_level"
Uint16
attack_level13
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "fade_length"
-> Ptr SDL_HapticPeriodic
-> CFieldType SDL_HapticPeriodic "fade_length"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_length") Ptr SDL_HapticPeriodic
ptr0 CFieldType SDL_HapticPeriodic "fade_length"
Uint16
fade_length14
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "fade_level"
-> Ptr SDL_HapticPeriodic
-> CFieldType SDL_HapticPeriodic "fade_level"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_level") Ptr SDL_HapticPeriodic
ptr0 CFieldType SDL_HapticPeriodic "fade_level"
Uint16
fade_level15

deriving via Marshal.EquivStorable SDL_HapticPeriodic instance BG.Storable SDL_HapticPeriodic

deriving via
  Struct.IsStructViaReadRaw SDL_HapticPeriodic
  instance
    Struct.IsStruct SDL_HapticPeriodic

-- | SDL_HAPTIC_SINE, SDL_HAPTIC_SQUARE SDL_HAPTIC_TRIANGLE, SDL_HAPTIC_SAWTOOTHUP or SDL_HAPTIC_SAWTOOTHDOWN
--
--     [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 675:26@
instance
  (ty ~ SDL_HapticEffectType)
  => BG.CompatHasField.HasField "type'" SDL_HapticPeriodic ty
  where
  hasField :: SDL_HapticPeriodic -> (ty -> SDL_HapticPeriodic, ty)
hasField =
    \SDL_HapticPeriodic
x0 ->
      ( \ty
y1 ->
          SDL_HapticPeriodic
            { type' :: SDL_HapticEffectType
type' = ty
SDL_HapticEffectType
y1
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticPeriodic
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticPeriodic
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticPeriodic
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticPeriodic
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticPeriodic
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticPeriodic
x0
            , magnitude :: Sint16
magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"magnitude" SDL_HapticPeriodic
x0
            , offset :: Sint16
offset = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"offset" SDL_HapticPeriodic
x0
            , phase :: Uint16
phase = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"phase" SDL_HapticPeriodic
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticPeriodic
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticPeriodic
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticPeriodic
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticPeriodic
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticPeriodic
x0
      )

instance
  (ty ~ SDL_HapticEffectType)
  => BG.HasField "type'" (BG.Ptr SDL_HapticPeriodic) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticPeriodic -> Ptr ty
getField = Proxy "type'"
-> Ptr SDL_HapticPeriodic
-> Ptr (CFieldType SDL_HapticPeriodic "type'")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'")

instance HasCField.HasCField SDL_HapticPeriodic "type'" where
  type
    CFieldType SDL_HapticPeriodic "type'" =
      SDL_HapticEffectType

  offset# :: Proxy# SDL_HapticPeriodic -> Proxy# "type'" -> Int
offset# = \Proxy# SDL_HapticPeriodic
_ -> \Proxy# "type'"
_ -> Int
0

-- | Direction of the effect.
--
--     [C declaration]: @direction@, defined at @SDL3\/SDL_haptic.h 678:25@
instance
  (ty ~ SDL_HapticDirection)
  => BG.CompatHasField.HasField "direction" SDL_HapticPeriodic ty
  where
  hasField :: SDL_HapticPeriodic -> (ty -> SDL_HapticPeriodic, ty)
hasField =
    \SDL_HapticPeriodic
x0 ->
      ( \ty
y1 ->
          SDL_HapticPeriodic
            { direction :: SDL_HapticDirection
direction = ty
SDL_HapticDirection
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticPeriodic
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticPeriodic
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticPeriodic
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticPeriodic
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticPeriodic
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticPeriodic
x0
            , magnitude :: Sint16
magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"magnitude" SDL_HapticPeriodic
x0
            , offset :: Sint16
offset = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"offset" SDL_HapticPeriodic
x0
            , phase :: Uint16
phase = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"phase" SDL_HapticPeriodic
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticPeriodic
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticPeriodic
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticPeriodic
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticPeriodic
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticPeriodic
x0
      )

instance
  (ty ~ SDL_HapticDirection)
  => BG.HasField "direction" (BG.Ptr SDL_HapticPeriodic) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticPeriodic -> Ptr ty
getField = Proxy "direction"
-> Ptr SDL_HapticPeriodic
-> Ptr (CFieldType SDL_HapticPeriodic "direction")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"direction")

instance HasCField.HasCField SDL_HapticPeriodic "direction" where
  type
    CFieldType SDL_HapticPeriodic "direction" =
      SDL_HapticDirection

  offset# :: Proxy# SDL_HapticPeriodic -> Proxy# "direction" -> Int
offset# = \Proxy# SDL_HapticPeriodic
_ -> \Proxy# "direction"
_ -> Int
4

-- | Duration of the effect.
--
--     [C declaration]: @length@, defined at @SDL3\/SDL_haptic.h 681:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "length" SDL_HapticPeriodic ty
  where
  hasField :: SDL_HapticPeriodic -> (ty -> SDL_HapticPeriodic, ty)
hasField =
    \SDL_HapticPeriodic
x0 ->
      ( \ty
y1 ->
          SDL_HapticPeriodic
            { length :: Uint32
length = ty
Uint32
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticPeriodic
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticPeriodic
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticPeriodic
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticPeriodic
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticPeriodic
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticPeriodic
x0
            , magnitude :: Sint16
magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"magnitude" SDL_HapticPeriodic
x0
            , offset :: Sint16
offset = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"offset" SDL_HapticPeriodic
x0
            , phase :: Uint16
phase = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"phase" SDL_HapticPeriodic
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticPeriodic
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticPeriodic
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticPeriodic
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticPeriodic
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticPeriodic
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.HasField "length" (BG.Ptr SDL_HapticPeriodic) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticPeriodic -> Ptr ty
getField = Proxy "length"
-> Ptr SDL_HapticPeriodic
-> Ptr (CFieldType SDL_HapticPeriodic "length")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length")

instance HasCField.HasCField SDL_HapticPeriodic "length" where
  type
    CFieldType SDL_HapticPeriodic "length" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

  offset# :: Proxy# SDL_HapticPeriodic -> Proxy# "length" -> Int
offset# = \Proxy# SDL_HapticPeriodic
_ -> \Proxy# "length"
_ -> Int
20

-- | Delay before starting the effect.
--
--     [C declaration]: @delay@, defined at @SDL3\/SDL_haptic.h 682:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "delay" SDL_HapticPeriodic ty
  where
  hasField :: SDL_HapticPeriodic -> (ty -> SDL_HapticPeriodic, ty)
hasField =
    \SDL_HapticPeriodic
x0 ->
      ( \ty
y1 ->
          SDL_HapticPeriodic
            { delay :: Uint16
delay = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticPeriodic
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticPeriodic
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticPeriodic
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticPeriodic
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticPeriodic
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticPeriodic
x0
            , magnitude :: Sint16
magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"magnitude" SDL_HapticPeriodic
x0
            , offset :: Sint16
offset = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"offset" SDL_HapticPeriodic
x0
            , phase :: Uint16
phase = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"phase" SDL_HapticPeriodic
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticPeriodic
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticPeriodic
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticPeriodic
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticPeriodic
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticPeriodic
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "delay" (BG.Ptr SDL_HapticPeriodic) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticPeriodic -> Ptr ty
getField = Proxy "delay"
-> Ptr SDL_HapticPeriodic
-> Ptr (CFieldType SDL_HapticPeriodic "delay")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"delay")

instance HasCField.HasCField SDL_HapticPeriodic "delay" where
  type
    CFieldType SDL_HapticPeriodic "delay" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticPeriodic -> Proxy# "delay" -> Int
offset# = \Proxy# SDL_HapticPeriodic
_ -> \Proxy# "delay"
_ -> Int
24

-- | Button that triggers the effect.
--
--     [C declaration]: @button@, defined at @SDL3\/SDL_haptic.h 685:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "button" SDL_HapticPeriodic ty
  where
  hasField :: SDL_HapticPeriodic -> (ty -> SDL_HapticPeriodic, ty)
hasField =
    \SDL_HapticPeriodic
x0 ->
      ( \ty
y1 ->
          SDL_HapticPeriodic
            { button :: Uint16
button = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticPeriodic
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticPeriodic
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticPeriodic
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticPeriodic
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticPeriodic
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticPeriodic
x0
            , magnitude :: Sint16
magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"magnitude" SDL_HapticPeriodic
x0
            , offset :: Sint16
offset = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"offset" SDL_HapticPeriodic
x0
            , phase :: Uint16
phase = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"phase" SDL_HapticPeriodic
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticPeriodic
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticPeriodic
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticPeriodic
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticPeriodic
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticPeriodic
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "button" (BG.Ptr SDL_HapticPeriodic) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticPeriodic -> Ptr ty
getField = Proxy "button"
-> Ptr SDL_HapticPeriodic
-> Ptr (CFieldType SDL_HapticPeriodic "button")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"button")

instance HasCField.HasCField SDL_HapticPeriodic "button" where
  type
    CFieldType SDL_HapticPeriodic "button" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticPeriodic -> Proxy# "button" -> Int
offset# = \Proxy# SDL_HapticPeriodic
_ -> \Proxy# "button"
_ -> Int
26

-- | How soon it can be triggered again after button.
--
--     [C declaration]: @interval@, defined at @SDL3\/SDL_haptic.h 686:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "interval" SDL_HapticPeriodic ty
  where
  hasField :: SDL_HapticPeriodic -> (ty -> SDL_HapticPeriodic, ty)
hasField =
    \SDL_HapticPeriodic
x0 ->
      ( \ty
y1 ->
          SDL_HapticPeriodic
            { interval :: Uint16
interval = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticPeriodic
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticPeriodic
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticPeriodic
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticPeriodic
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticPeriodic
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticPeriodic
x0
            , magnitude :: Sint16
magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"magnitude" SDL_HapticPeriodic
x0
            , offset :: Sint16
offset = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"offset" SDL_HapticPeriodic
x0
            , phase :: Uint16
phase = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"phase" SDL_HapticPeriodic
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticPeriodic
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticPeriodic
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticPeriodic
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticPeriodic
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticPeriodic
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "interval" (BG.Ptr SDL_HapticPeriodic) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticPeriodic -> Ptr ty
getField = Proxy "interval"
-> Ptr SDL_HapticPeriodic
-> Ptr (CFieldType SDL_HapticPeriodic "interval")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"interval")

instance HasCField.HasCField SDL_HapticPeriodic "interval" where
  type
    CFieldType SDL_HapticPeriodic "interval" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticPeriodic -> Proxy# "interval" -> Int
offset# = \Proxy# SDL_HapticPeriodic
_ -> \Proxy# "interval"
_ -> Int
28

-- | Period of the wave.
--
--     [C declaration]: @period@, defined at @SDL3\/SDL_haptic.h 689:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "period" SDL_HapticPeriodic ty
  where
  hasField :: SDL_HapticPeriodic -> (ty -> SDL_HapticPeriodic, ty)
hasField =
    \SDL_HapticPeriodic
x0 ->
      ( \ty
y1 ->
          SDL_HapticPeriodic
            { period :: Uint16
period = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticPeriodic
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticPeriodic
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticPeriodic
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticPeriodic
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticPeriodic
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticPeriodic
x0
            , magnitude :: Sint16
magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"magnitude" SDL_HapticPeriodic
x0
            , offset :: Sint16
offset = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"offset" SDL_HapticPeriodic
x0
            , phase :: Uint16
phase = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"phase" SDL_HapticPeriodic
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticPeriodic
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticPeriodic
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticPeriodic
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticPeriodic
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticPeriodic
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "period" (BG.Ptr SDL_HapticPeriodic) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticPeriodic -> Ptr ty
getField = Proxy "period"
-> Ptr SDL_HapticPeriodic
-> Ptr (CFieldType SDL_HapticPeriodic "period")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"period")

instance HasCField.HasCField SDL_HapticPeriodic "period" where
  type
    CFieldType SDL_HapticPeriodic "period" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticPeriodic -> Proxy# "period" -> Int
offset# = \Proxy# SDL_HapticPeriodic
_ -> \Proxy# "period"
_ -> Int
30

-- | Peak value; if negative, equivalent to 180 degrees extra phase shift.
--
--     [C declaration]: @magnitude@, defined at @SDL3\/SDL_haptic.h 690:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.CompatHasField.HasField "magnitude" SDL_HapticPeriodic ty
  where
  hasField :: SDL_HapticPeriodic -> (ty -> SDL_HapticPeriodic, ty)
hasField =
    \SDL_HapticPeriodic
x0 ->
      ( \ty
y1 ->
          SDL_HapticPeriodic
            { magnitude :: Sint16
magnitude = ty
Sint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticPeriodic
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticPeriodic
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticPeriodic
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticPeriodic
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticPeriodic
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticPeriodic
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticPeriodic
x0
            , offset :: Sint16
offset = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"offset" SDL_HapticPeriodic
x0
            , phase :: Uint16
phase = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"phase" SDL_HapticPeriodic
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticPeriodic
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticPeriodic
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticPeriodic
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticPeriodic
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"magnitude" SDL_HapticPeriodic
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.HasField "magnitude" (BG.Ptr SDL_HapticPeriodic) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticPeriodic -> Ptr ty
getField = Proxy "magnitude"
-> Ptr SDL_HapticPeriodic
-> Ptr (CFieldType SDL_HapticPeriodic "magnitude")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"magnitude")

instance HasCField.HasCField SDL_HapticPeriodic "magnitude" where
  type
    CFieldType SDL_HapticPeriodic "magnitude" =
      SDL3.Sys.Bindgen.Stdinc.Sint16

  offset# :: Proxy# SDL_HapticPeriodic -> Proxy# "magnitude" -> Int
offset# = \Proxy# SDL_HapticPeriodic
_ -> \Proxy# "magnitude"
_ -> Int
32

-- | Mean value of the wave.
--
--     [C declaration]: @offset@, defined at @SDL3\/SDL_haptic.h 691:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.CompatHasField.HasField "offset" SDL_HapticPeriodic ty
  where
  hasField :: SDL_HapticPeriodic -> (ty -> SDL_HapticPeriodic, ty)
hasField =
    \SDL_HapticPeriodic
x0 ->
      ( \ty
y1 ->
          SDL_HapticPeriodic
            { offset :: Sint16
offset = ty
Sint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticPeriodic
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticPeriodic
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticPeriodic
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticPeriodic
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticPeriodic
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticPeriodic
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticPeriodic
x0
            , magnitude :: Sint16
magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"magnitude" SDL_HapticPeriodic
x0
            , phase :: Uint16
phase = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"phase" SDL_HapticPeriodic
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticPeriodic
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticPeriodic
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticPeriodic
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticPeriodic
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"offset" SDL_HapticPeriodic
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.HasField "offset" (BG.Ptr SDL_HapticPeriodic) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticPeriodic -> Ptr ty
getField = Proxy "offset"
-> Ptr SDL_HapticPeriodic
-> Ptr (CFieldType SDL_HapticPeriodic "offset")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"offset")

instance HasCField.HasCField SDL_HapticPeriodic "offset" where
  type
    CFieldType SDL_HapticPeriodic "offset" =
      SDL3.Sys.Bindgen.Stdinc.Sint16

  offset# :: Proxy# SDL_HapticPeriodic -> Proxy# "offset" -> Int
offset# = \Proxy# SDL_HapticPeriodic
_ -> \Proxy# "offset"
_ -> Int
34

-- | Positive phase shift given by hundredth of a degree.
--
--     [C declaration]: @phase@, defined at @SDL3\/SDL_haptic.h 692:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "phase" SDL_HapticPeriodic ty
  where
  hasField :: SDL_HapticPeriodic -> (ty -> SDL_HapticPeriodic, ty)
hasField =
    \SDL_HapticPeriodic
x0 ->
      ( \ty
y1 ->
          SDL_HapticPeriodic
            { phase :: Uint16
phase = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticPeriodic
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticPeriodic
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticPeriodic
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticPeriodic
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticPeriodic
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticPeriodic
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticPeriodic
x0
            , magnitude :: Sint16
magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"magnitude" SDL_HapticPeriodic
x0
            , offset :: Sint16
offset = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"offset" SDL_HapticPeriodic
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticPeriodic
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticPeriodic
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticPeriodic
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticPeriodic
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"phase" SDL_HapticPeriodic
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "phase" (BG.Ptr SDL_HapticPeriodic) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticPeriodic -> Ptr ty
getField = Proxy "phase"
-> Ptr SDL_HapticPeriodic
-> Ptr (CFieldType SDL_HapticPeriodic "phase")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"phase")

instance HasCField.HasCField SDL_HapticPeriodic "phase" where
  type
    CFieldType SDL_HapticPeriodic "phase" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticPeriodic -> Proxy# "phase" -> Int
offset# = \Proxy# SDL_HapticPeriodic
_ -> \Proxy# "phase"
_ -> Int
36

-- | Duration of the attack.
--
--     [C declaration]: @attack_length@, defined at @SDL3\/SDL_haptic.h 695:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "attack_length" SDL_HapticPeriodic ty
  where
  hasField :: SDL_HapticPeriodic -> (ty -> SDL_HapticPeriodic, ty)
hasField =
    \SDL_HapticPeriodic
x0 ->
      ( \ty
y1 ->
          SDL_HapticPeriodic
            { attack_length :: Uint16
attack_length = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticPeriodic
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticPeriodic
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticPeriodic
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticPeriodic
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticPeriodic
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticPeriodic
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticPeriodic
x0
            , magnitude :: Sint16
magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"magnitude" SDL_HapticPeriodic
x0
            , offset :: Sint16
offset = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"offset" SDL_HapticPeriodic
x0
            , phase :: Uint16
phase = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"phase" SDL_HapticPeriodic
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticPeriodic
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticPeriodic
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticPeriodic
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticPeriodic
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "attack_length" (BG.Ptr SDL_HapticPeriodic) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticPeriodic -> Ptr ty
getField =
    Proxy "attack_length"
-> Ptr SDL_HapticPeriodic
-> Ptr (CFieldType SDL_HapticPeriodic "attack_length")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_length")

instance HasCField.HasCField SDL_HapticPeriodic "attack_length" where
  type
    CFieldType SDL_HapticPeriodic "attack_length" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticPeriodic -> Proxy# "attack_length" -> Int
offset# = \Proxy# SDL_HapticPeriodic
_ -> \Proxy# "attack_length"
_ -> Int
38

-- | Level at the start of the attack.
--
--     [C declaration]: @attack_level@, defined at @SDL3\/SDL_haptic.h 696:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "attack_level" SDL_HapticPeriodic ty
  where
  hasField :: SDL_HapticPeriodic -> (ty -> SDL_HapticPeriodic, ty)
hasField =
    \SDL_HapticPeriodic
x0 ->
      ( \ty
y1 ->
          SDL_HapticPeriodic
            { attack_level :: Uint16
attack_level = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticPeriodic
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticPeriodic
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticPeriodic
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticPeriodic
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticPeriodic
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticPeriodic
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticPeriodic
x0
            , magnitude :: Sint16
magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"magnitude" SDL_HapticPeriodic
x0
            , offset :: Sint16
offset = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"offset" SDL_HapticPeriodic
x0
            , phase :: Uint16
phase = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"phase" SDL_HapticPeriodic
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticPeriodic
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticPeriodic
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticPeriodic
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticPeriodic
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "attack_level" (BG.Ptr SDL_HapticPeriodic) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticPeriodic -> Ptr ty
getField =
    Proxy "attack_level"
-> Ptr SDL_HapticPeriodic
-> Ptr (CFieldType SDL_HapticPeriodic "attack_level")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_level")

instance HasCField.HasCField SDL_HapticPeriodic "attack_level" where
  type
    CFieldType SDL_HapticPeriodic "attack_level" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticPeriodic -> Proxy# "attack_level" -> Int
offset# = \Proxy# SDL_HapticPeriodic
_ -> \Proxy# "attack_level"
_ -> Int
40

-- | Duration of the fade.
--
--     [C declaration]: @fade_length@, defined at @SDL3\/SDL_haptic.h 697:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "fade_length" SDL_HapticPeriodic ty
  where
  hasField :: SDL_HapticPeriodic -> (ty -> SDL_HapticPeriodic, ty)
hasField =
    \SDL_HapticPeriodic
x0 ->
      ( \ty
y1 ->
          SDL_HapticPeriodic
            { fade_length :: Uint16
fade_length = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticPeriodic
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticPeriodic
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticPeriodic
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticPeriodic
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticPeriodic
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticPeriodic
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticPeriodic
x0
            , magnitude :: Sint16
magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"magnitude" SDL_HapticPeriodic
x0
            , offset :: Sint16
offset = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"offset" SDL_HapticPeriodic
x0
            , phase :: Uint16
phase = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"phase" SDL_HapticPeriodic
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticPeriodic
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticPeriodic
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticPeriodic
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticPeriodic
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "fade_length" (BG.Ptr SDL_HapticPeriodic) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticPeriodic -> Ptr ty
getField =
    Proxy "fade_length"
-> Ptr SDL_HapticPeriodic
-> Ptr (CFieldType SDL_HapticPeriodic "fade_length")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_length")

instance HasCField.HasCField SDL_HapticPeriodic "fade_length" where
  type
    CFieldType SDL_HapticPeriodic "fade_length" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticPeriodic -> Proxy# "fade_length" -> Int
offset# = \Proxy# SDL_HapticPeriodic
_ -> \Proxy# "fade_length"
_ -> Int
42

-- | Level at the end of the fade.
--
--     [C declaration]: @fade_level@, defined at @SDL3\/SDL_haptic.h 698:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "fade_level" SDL_HapticPeriodic ty
  where
  hasField :: SDL_HapticPeriodic -> (ty -> SDL_HapticPeriodic, ty)
hasField =
    \SDL_HapticPeriodic
x0 ->
      ( \ty
y1 ->
          SDL_HapticPeriodic
            { fade_level :: Uint16
fade_level = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticPeriodic
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticPeriodic
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticPeriodic
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticPeriodic
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticPeriodic
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticPeriodic
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticPeriodic
x0
            , magnitude :: Sint16
magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"magnitude" SDL_HapticPeriodic
x0
            , offset :: Sint16
offset = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"offset" SDL_HapticPeriodic
x0
            , phase :: Uint16
phase = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"phase" SDL_HapticPeriodic
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticPeriodic
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticPeriodic
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticPeriodic
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticPeriodic
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "fade_level" (BG.Ptr SDL_HapticPeriodic) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticPeriodic -> Ptr ty
getField = Proxy "fade_level"
-> Ptr SDL_HapticPeriodic
-> Ptr (CFieldType SDL_HapticPeriodic "fade_level")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_level")

instance HasCField.HasCField SDL_HapticPeriodic "fade_level" where
  type
    CFieldType SDL_HapticPeriodic "fade_level" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticPeriodic -> Proxy# "fade_level" -> Int
offset# = \Proxy# SDL_HapticPeriodic
_ -> \Proxy# "fade_level"
_ -> Int
44

-- | A structure containing a template for a Condition effect.
--
--     The struct handles the following effects:
--
--     * SDL_HAPTIC_SPRING: Effect based on axes position.
--
--     * SDL_HAPTIC_DAMPER: Effect based on axes velocity.
--
--     * SDL_HAPTIC_INERTIA: Effect based on axes acceleration.
--
--     * SDL_HAPTIC_FRICTION: Effect based on axes movement.
--
--     Direction is handled by condition internals instead of a direction member. The condition effect specific members have three parameters. The first refers to the X axis, the second refers to the Y axis and the third refers to the Z axis. The right terms refer to the positive side of the axis and the left terms refer to the negative side of the axis. Please refer to the 'SDL_HapticDirection' diagram for which side is positive and which is negative.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticDirection', 'sDL_HAPTIC_SPRING', 'sDL_HAPTIC_DAMPER', 'sDL_HAPTIC_INERTIA', 'sDL_HAPTIC_FRICTION', 'SDL_HapticEffect'
--
--     [C declaration]: @struct SDL_HapticCondition@, defined at @SDL3\/SDL_haptic.h 728:16@
data SDL_HapticCondition = SDL_HapticCondition
  { SDL_HapticCondition -> SDL_HapticEffectType
type' :: SDL_HapticEffectType
  -- ^ SDL_HAPTIC_SPRING, SDL_HAPTIC_DAMPER, SDL_HAPTIC_INERTIA or SDL_HAPTIC_FRICTION
  --
  --          [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 731:26@
  , SDL_HapticCondition -> SDL_HapticDirection
direction :: SDL_HapticDirection
  -- ^ Direction of the effect.
  --
  --          [C declaration]: @direction@, defined at @SDL3\/SDL_haptic.h 733:25@
  , SDL_HapticCondition -> Uint32
length :: SDL3.Sys.Bindgen.Stdinc.Uint32
  -- ^ Duration of the effect.
  --
  --          [C declaration]: @length@, defined at @SDL3\/SDL_haptic.h 736:12@
  , SDL_HapticCondition -> Uint16
delay :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Delay before starting the effect.
  --
  --          [C declaration]: @delay@, defined at @SDL3\/SDL_haptic.h 737:12@
  , SDL_HapticCondition -> Uint16
button :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Button that triggers the effect.
  --
  --          [C declaration]: @button@, defined at @SDL3\/SDL_haptic.h 740:12@
  , SDL_HapticCondition -> Uint16
interval :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ How soon it can be triggered again after button.
  --
  --          [C declaration]: @interval@, defined at @SDL3\/SDL_haptic.h 741:12@
  , SDL_HapticCondition -> ConstantArray 3 Uint16
right_sat :: CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Level when joystick is to the positive side; max 0xFFFF.
  --
  --          [C declaration]: @right_sat@, defined at @SDL3\/SDL_haptic.h 744:12@
  , SDL_HapticCondition -> ConstantArray 3 Uint16
left_sat :: CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Level when joystick is to the negative side; max 0xFFFF.
  --
  --          [C declaration]: @left_sat@, defined at @SDL3\/SDL_haptic.h 745:12@
  , SDL_HapticCondition -> ConstantArray 3 Sint16
right_coeff :: CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint16
  -- ^ How fast to increase the force towards the positive side.
  --
  --          [C declaration]: @right_coeff@, defined at @SDL3\/SDL_haptic.h 746:12@
  , SDL_HapticCondition -> ConstantArray 3 Sint16
left_coeff :: CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint16
  -- ^ How fast to increase the force towards the negative side.
  --
  --          [C declaration]: @left_coeff@, defined at @SDL3\/SDL_haptic.h 747:12@
  , SDL_HapticCondition -> ConstantArray 3 Uint16
deadband :: CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Size of the dead zone; max 0xFFFF: whole axis-range when 0-centered.
  --
  --          [C declaration]: @deadband@, defined at @SDL3\/SDL_haptic.h 748:12@
  , SDL_HapticCondition -> ConstantArray 3 Sint16
center :: CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint16
  -- ^ Position of the dead zone.
  --
  --          [C declaration]: @center@, defined at @SDL3\/SDL_haptic.h 749:12@
  }
  deriving stock ((forall x. SDL_HapticCondition -> Rep SDL_HapticCondition x)
-> (forall x. Rep SDL_HapticCondition x -> SDL_HapticCondition)
-> Generic SDL_HapticCondition
forall x. Rep SDL_HapticCondition x -> SDL_HapticCondition
forall x. SDL_HapticCondition -> Rep SDL_HapticCondition x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_HapticCondition -> Rep SDL_HapticCondition x
from :: forall x. SDL_HapticCondition -> Rep SDL_HapticCondition x
$cto :: forall x. Rep SDL_HapticCondition x -> SDL_HapticCondition
to :: forall x. Rep SDL_HapticCondition x -> SDL_HapticCondition
BG.Generic, SDL_HapticCondition -> SDL_HapticCondition -> Bool
(SDL_HapticCondition -> SDL_HapticCondition -> Bool)
-> (SDL_HapticCondition -> SDL_HapticCondition -> Bool)
-> Eq SDL_HapticCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_HapticCondition -> SDL_HapticCondition -> Bool
== :: SDL_HapticCondition -> SDL_HapticCondition -> Bool
$c/= :: SDL_HapticCondition -> SDL_HapticCondition -> Bool
/= :: SDL_HapticCondition -> SDL_HapticCondition -> Bool
Eq, Int -> SDL_HapticCondition -> ShowS
[SDL_HapticCondition] -> ShowS
SDL_HapticCondition -> String
(Int -> SDL_HapticCondition -> ShowS)
-> (SDL_HapticCondition -> String)
-> ([SDL_HapticCondition] -> ShowS)
-> Show SDL_HapticCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_HapticCondition -> ShowS
showsPrec :: Int -> SDL_HapticCondition -> ShowS
$cshow :: SDL_HapticCondition -> String
show :: SDL_HapticCondition -> String
$cshowList :: [SDL_HapticCondition] -> ShowS
showList :: [SDL_HapticCondition] -> ShowS
Show)

instance Marshal.StaticSize SDL_HapticCondition where
  staticSizeOf :: Proxy SDL_HapticCondition -> Int
staticSizeOf = \Proxy SDL_HapticCondition
_ -> (Int
68 :: Int)

  staticAlignment :: Proxy SDL_HapticCondition -> Int
staticAlignment = \Proxy SDL_HapticCondition
_ -> (Int
4 :: Int)

instance Marshal.ReadRaw SDL_HapticCondition where
  readRaw :: Ptr SDL_HapticCondition -> IO SDL_HapticCondition
readRaw =
    \Ptr SDL_HapticCondition
ptr0 ->
      (SDL_HapticEffectType
 -> SDL_HapticDirection
 -> Uint32
 -> Uint16
 -> Uint16
 -> Uint16
 -> ConstantArray 3 Uint16
 -> ConstantArray 3 Uint16
 -> ConstantArray 3 Sint16
 -> ConstantArray 3 Sint16
 -> ConstantArray 3 Uint16
 -> ConstantArray 3 Sint16
 -> SDL_HapticCondition)
-> IO
     (SDL_HapticEffectType
      -> SDL_HapticDirection
      -> Uint32
      -> Uint16
      -> Uint16
      -> Uint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> SDL_HapticCondition)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SDL_HapticEffectType
-> SDL_HapticDirection
-> Uint32
-> Uint16
-> Uint16
-> Uint16
-> ConstantArray 3 Uint16
-> ConstantArray 3 Uint16
-> ConstantArray 3 Sint16
-> ConstantArray 3 Sint16
-> ConstantArray 3 Uint16
-> ConstantArray 3 Sint16
-> SDL_HapticCondition
SDL_HapticCondition
        IO
  (SDL_HapticEffectType
   -> SDL_HapticDirection
   -> Uint32
   -> Uint16
   -> Uint16
   -> Uint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> SDL_HapticCondition)
-> IO SDL_HapticEffectType
-> IO
     (SDL_HapticDirection
      -> Uint32
      -> Uint16
      -> Uint16
      -> Uint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> SDL_HapticCondition)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "type'"
-> Ptr SDL_HapticCondition
-> IO (CFieldType SDL_HapticCondition "type'")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'") Ptr SDL_HapticCondition
ptr0
        IO
  (SDL_HapticDirection
   -> Uint32
   -> Uint16
   -> Uint16
   -> Uint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> SDL_HapticCondition)
-> IO SDL_HapticDirection
-> IO
     (Uint32
      -> Uint16
      -> Uint16
      -> Uint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> SDL_HapticCondition)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "direction"
-> Ptr SDL_HapticCondition
-> IO (CFieldType SDL_HapticCondition "direction")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"direction") Ptr SDL_HapticCondition
ptr0
        IO
  (Uint32
   -> Uint16
   -> Uint16
   -> Uint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> SDL_HapticCondition)
-> IO Uint32
-> IO
     (Uint16
      -> Uint16
      -> Uint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> SDL_HapticCondition)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "length"
-> Ptr SDL_HapticCondition
-> IO (CFieldType SDL_HapticCondition "length")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length") Ptr SDL_HapticCondition
ptr0
        IO
  (Uint16
   -> Uint16
   -> Uint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> SDL_HapticCondition)
-> IO Uint16
-> IO
     (Uint16
      -> Uint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> SDL_HapticCondition)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "delay"
-> Ptr SDL_HapticCondition
-> IO (CFieldType SDL_HapticCondition "delay")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"delay") Ptr SDL_HapticCondition
ptr0
        IO
  (Uint16
   -> Uint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> SDL_HapticCondition)
-> IO Uint16
-> IO
     (Uint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> SDL_HapticCondition)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "button"
-> Ptr SDL_HapticCondition
-> IO (CFieldType SDL_HapticCondition "button")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"button") Ptr SDL_HapticCondition
ptr0
        IO
  (Uint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> SDL_HapticCondition)
-> IO Uint16
-> IO
     (ConstantArray 3 Uint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> SDL_HapticCondition)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "interval"
-> Ptr SDL_HapticCondition
-> IO (CFieldType SDL_HapticCondition "interval")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"interval") Ptr SDL_HapticCondition
ptr0
        IO
  (ConstantArray 3 Uint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> SDL_HapticCondition)
-> IO (ConstantArray 3 Uint16)
-> IO
     (ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> SDL_HapticCondition)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "right_sat"
-> Ptr SDL_HapticCondition
-> IO (CFieldType SDL_HapticCondition "right_sat")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"right_sat") Ptr SDL_HapticCondition
ptr0
        IO
  (ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> SDL_HapticCondition)
-> IO (ConstantArray 3 Uint16)
-> IO
     (ConstantArray 3 Sint16
      -> ConstantArray 3 Sint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> SDL_HapticCondition)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "left_sat"
-> Ptr SDL_HapticCondition
-> IO (CFieldType SDL_HapticCondition "left_sat")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"left_sat") Ptr SDL_HapticCondition
ptr0
        IO
  (ConstantArray 3 Sint16
   -> ConstantArray 3 Sint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> SDL_HapticCondition)
-> IO (ConstantArray 3 Sint16)
-> IO
     (ConstantArray 3 Sint16
      -> ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16
      -> SDL_HapticCondition)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "right_coeff"
-> Ptr SDL_HapticCondition
-> IO (CFieldType SDL_HapticCondition "right_coeff")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"right_coeff") Ptr SDL_HapticCondition
ptr0
        IO
  (ConstantArray 3 Sint16
   -> ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16
   -> SDL_HapticCondition)
-> IO (ConstantArray 3 Sint16)
-> IO
     (ConstantArray 3 Uint16
      -> ConstantArray 3 Sint16 -> SDL_HapticCondition)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "left_coeff"
-> Ptr SDL_HapticCondition
-> IO (CFieldType SDL_HapticCondition "left_coeff")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"left_coeff") Ptr SDL_HapticCondition
ptr0
        IO
  (ConstantArray 3 Uint16
   -> ConstantArray 3 Sint16 -> SDL_HapticCondition)
-> IO (ConstantArray 3 Uint16)
-> IO (ConstantArray 3 Sint16 -> SDL_HapticCondition)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "deadband"
-> Ptr SDL_HapticCondition
-> IO (CFieldType SDL_HapticCondition "deadband")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"deadband") Ptr SDL_HapticCondition
ptr0
        IO (ConstantArray 3 Sint16 -> SDL_HapticCondition)
-> IO (ConstantArray 3 Sint16) -> IO SDL_HapticCondition
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "center"
-> Ptr SDL_HapticCondition
-> IO (CFieldType SDL_HapticCondition "center")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"center") Ptr SDL_HapticCondition
ptr0

instance Marshal.WriteRaw SDL_HapticCondition where
  writeRaw :: Ptr SDL_HapticCondition -> SDL_HapticCondition -> IO ()
writeRaw =
    \Ptr SDL_HapticCondition
ptr0 ->
      \SDL_HapticCondition
s1 ->
        case SDL_HapticCondition
s1 of
          SDL_HapticCondition
            SDL_HapticEffectType
type'2
            SDL_HapticDirection
direction3
            Uint32
length4
            Uint16
delay5
            Uint16
button6
            Uint16
interval7
            ConstantArray 3 Uint16
right_sat8
            ConstantArray 3 Uint16
left_sat9
            ConstantArray 3 Sint16
right_coeff10
            ConstantArray 3 Sint16
left_coeff11
            ConstantArray 3 Uint16
deadband12
            ConstantArray 3 Sint16
center13 ->
              Proxy "type'"
-> Ptr SDL_HapticCondition
-> CFieldType SDL_HapticCondition "type'"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'") Ptr SDL_HapticCondition
ptr0 CFieldType SDL_HapticCondition "type'"
SDL_HapticEffectType
type'2
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "direction"
-> Ptr SDL_HapticCondition
-> CFieldType SDL_HapticCondition "direction"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"direction") Ptr SDL_HapticCondition
ptr0 CFieldType SDL_HapticCondition "direction"
SDL_HapticDirection
direction3
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "length"
-> Ptr SDL_HapticCondition
-> CFieldType SDL_HapticCondition "length"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length") Ptr SDL_HapticCondition
ptr0 CFieldType SDL_HapticCondition "length"
Uint32
length4
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "delay"
-> Ptr SDL_HapticCondition
-> CFieldType SDL_HapticCondition "delay"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"delay") Ptr SDL_HapticCondition
ptr0 CFieldType SDL_HapticCondition "delay"
Uint16
delay5
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "button"
-> Ptr SDL_HapticCondition
-> CFieldType SDL_HapticCondition "button"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"button") Ptr SDL_HapticCondition
ptr0 CFieldType SDL_HapticCondition "button"
Uint16
button6
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "interval"
-> Ptr SDL_HapticCondition
-> CFieldType SDL_HapticCondition "interval"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"interval") Ptr SDL_HapticCondition
ptr0 CFieldType SDL_HapticCondition "interval"
Uint16
interval7
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "right_sat"
-> Ptr SDL_HapticCondition
-> CFieldType SDL_HapticCondition "right_sat"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"right_sat") Ptr SDL_HapticCondition
ptr0 CFieldType SDL_HapticCondition "right_sat"
ConstantArray 3 Uint16
right_sat8
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "left_sat"
-> Ptr SDL_HapticCondition
-> CFieldType SDL_HapticCondition "left_sat"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"left_sat") Ptr SDL_HapticCondition
ptr0 CFieldType SDL_HapticCondition "left_sat"
ConstantArray 3 Uint16
left_sat9
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "right_coeff"
-> Ptr SDL_HapticCondition
-> CFieldType SDL_HapticCondition "right_coeff"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"right_coeff") Ptr SDL_HapticCondition
ptr0 CFieldType SDL_HapticCondition "right_coeff"
ConstantArray 3 Sint16
right_coeff10
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "left_coeff"
-> Ptr SDL_HapticCondition
-> CFieldType SDL_HapticCondition "left_coeff"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"left_coeff") Ptr SDL_HapticCondition
ptr0 CFieldType SDL_HapticCondition "left_coeff"
ConstantArray 3 Sint16
left_coeff11
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "deadband"
-> Ptr SDL_HapticCondition
-> CFieldType SDL_HapticCondition "deadband"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"deadband") Ptr SDL_HapticCondition
ptr0 CFieldType SDL_HapticCondition "deadband"
ConstantArray 3 Uint16
deadband12
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "center"
-> Ptr SDL_HapticCondition
-> CFieldType SDL_HapticCondition "center"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"center") Ptr SDL_HapticCondition
ptr0 CFieldType SDL_HapticCondition "center"
ConstantArray 3 Sint16
center13

deriving via Marshal.EquivStorable SDL_HapticCondition instance BG.Storable SDL_HapticCondition

deriving via
  Struct.IsStructViaReadRaw SDL_HapticCondition
  instance
    Struct.IsStruct SDL_HapticCondition

-- | SDL_HAPTIC_SPRING, SDL_HAPTIC_DAMPER, SDL_HAPTIC_INERTIA or SDL_HAPTIC_FRICTION
--
--     [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 731:26@
instance
  (ty ~ SDL_HapticEffectType)
  => BG.CompatHasField.HasField "type'" SDL_HapticCondition ty
  where
  hasField :: SDL_HapticCondition -> (ty -> SDL_HapticCondition, ty)
hasField =
    \SDL_HapticCondition
x0 ->
      ( \ty
y1 ->
          SDL_HapticCondition
            { type' :: SDL_HapticEffectType
type' = ty
SDL_HapticEffectType
y1
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCondition
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCondition
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCondition
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCondition
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCondition
x0
            , right_sat :: ConstantArray 3 Uint16
right_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_sat" SDL_HapticCondition
x0
            , left_sat :: ConstantArray 3 Uint16
left_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_sat" SDL_HapticCondition
x0
            , right_coeff :: ConstantArray 3 Sint16
right_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_coeff" SDL_HapticCondition
x0
            , left_coeff :: ConstantArray 3 Sint16
left_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_coeff" SDL_HapticCondition
x0
            , deadband :: ConstantArray 3 Uint16
deadband = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"deadband" SDL_HapticCondition
x0
            , center :: ConstantArray 3 Sint16
center = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"center" SDL_HapticCondition
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCondition
x0
      )

instance
  (ty ~ SDL_HapticEffectType)
  => BG.HasField "type'" (BG.Ptr SDL_HapticCondition) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCondition -> Ptr ty
getField = Proxy "type'"
-> Ptr SDL_HapticCondition
-> Ptr (CFieldType SDL_HapticCondition "type'")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'")

instance HasCField.HasCField SDL_HapticCondition "type'" where
  type
    CFieldType SDL_HapticCondition "type'" =
      SDL_HapticEffectType

  offset# :: Proxy# SDL_HapticCondition -> Proxy# "type'" -> Int
offset# = \Proxy# SDL_HapticCondition
_ -> \Proxy# "type'"
_ -> Int
0

-- | Direction of the effect.
--
--     [C declaration]: @direction@, defined at @SDL3\/SDL_haptic.h 733:25@
instance
  (ty ~ SDL_HapticDirection)
  => BG.CompatHasField.HasField "direction" SDL_HapticCondition ty
  where
  hasField :: SDL_HapticCondition -> (ty -> SDL_HapticCondition, ty)
hasField =
    \SDL_HapticCondition
x0 ->
      ( \ty
y1 ->
          SDL_HapticCondition
            { direction :: SDL_HapticDirection
direction = ty
SDL_HapticDirection
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCondition
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCondition
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCondition
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCondition
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCondition
x0
            , right_sat :: ConstantArray 3 Uint16
right_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_sat" SDL_HapticCondition
x0
            , left_sat :: ConstantArray 3 Uint16
left_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_sat" SDL_HapticCondition
x0
            , right_coeff :: ConstantArray 3 Sint16
right_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_coeff" SDL_HapticCondition
x0
            , left_coeff :: ConstantArray 3 Sint16
left_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_coeff" SDL_HapticCondition
x0
            , deadband :: ConstantArray 3 Uint16
deadband = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"deadband" SDL_HapticCondition
x0
            , center :: ConstantArray 3 Sint16
center = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"center" SDL_HapticCondition
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCondition
x0
      )

instance
  (ty ~ SDL_HapticDirection)
  => BG.HasField "direction" (BG.Ptr SDL_HapticCondition) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCondition -> Ptr ty
getField = Proxy "direction"
-> Ptr SDL_HapticCondition
-> Ptr (CFieldType SDL_HapticCondition "direction")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"direction")

instance HasCField.HasCField SDL_HapticCondition "direction" where
  type
    CFieldType SDL_HapticCondition "direction" =
      SDL_HapticDirection

  offset# :: Proxy# SDL_HapticCondition -> Proxy# "direction" -> Int
offset# = \Proxy# SDL_HapticCondition
_ -> \Proxy# "direction"
_ -> Int
4

-- | Duration of the effect.
--
--     [C declaration]: @length@, defined at @SDL3\/SDL_haptic.h 736:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "length" SDL_HapticCondition ty
  where
  hasField :: SDL_HapticCondition -> (ty -> SDL_HapticCondition, ty)
hasField =
    \SDL_HapticCondition
x0 ->
      ( \ty
y1 ->
          SDL_HapticCondition
            { length :: Uint32
length = ty
Uint32
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCondition
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCondition
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCondition
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCondition
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCondition
x0
            , right_sat :: ConstantArray 3 Uint16
right_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_sat" SDL_HapticCondition
x0
            , left_sat :: ConstantArray 3 Uint16
left_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_sat" SDL_HapticCondition
x0
            , right_coeff :: ConstantArray 3 Sint16
right_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_coeff" SDL_HapticCondition
x0
            , left_coeff :: ConstantArray 3 Sint16
left_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_coeff" SDL_HapticCondition
x0
            , deadband :: ConstantArray 3 Uint16
deadband = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"deadband" SDL_HapticCondition
x0
            , center :: ConstantArray 3 Sint16
center = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"center" SDL_HapticCondition
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCondition
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.HasField "length" (BG.Ptr SDL_HapticCondition) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCondition -> Ptr ty
getField = Proxy "length"
-> Ptr SDL_HapticCondition
-> Ptr (CFieldType SDL_HapticCondition "length")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length")

instance HasCField.HasCField SDL_HapticCondition "length" where
  type
    CFieldType SDL_HapticCondition "length" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

  offset# :: Proxy# SDL_HapticCondition -> Proxy# "length" -> Int
offset# = \Proxy# SDL_HapticCondition
_ -> \Proxy# "length"
_ -> Int
20

-- | Delay before starting the effect.
--
--     [C declaration]: @delay@, defined at @SDL3\/SDL_haptic.h 737:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "delay" SDL_HapticCondition ty
  where
  hasField :: SDL_HapticCondition -> (ty -> SDL_HapticCondition, ty)
hasField =
    \SDL_HapticCondition
x0 ->
      ( \ty
y1 ->
          SDL_HapticCondition
            { delay :: Uint16
delay = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCondition
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCondition
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCondition
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCondition
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCondition
x0
            , right_sat :: ConstantArray 3 Uint16
right_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_sat" SDL_HapticCondition
x0
            , left_sat :: ConstantArray 3 Uint16
left_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_sat" SDL_HapticCondition
x0
            , right_coeff :: ConstantArray 3 Sint16
right_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_coeff" SDL_HapticCondition
x0
            , left_coeff :: ConstantArray 3 Sint16
left_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_coeff" SDL_HapticCondition
x0
            , deadband :: ConstantArray 3 Uint16
deadband = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"deadband" SDL_HapticCondition
x0
            , center :: ConstantArray 3 Sint16
center = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"center" SDL_HapticCondition
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCondition
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "delay" (BG.Ptr SDL_HapticCondition) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCondition -> Ptr ty
getField = Proxy "delay"
-> Ptr SDL_HapticCondition
-> Ptr (CFieldType SDL_HapticCondition "delay")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"delay")

instance HasCField.HasCField SDL_HapticCondition "delay" where
  type
    CFieldType SDL_HapticCondition "delay" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCondition -> Proxy# "delay" -> Int
offset# = \Proxy# SDL_HapticCondition
_ -> \Proxy# "delay"
_ -> Int
24

-- | Button that triggers the effect.
--
--     [C declaration]: @button@, defined at @SDL3\/SDL_haptic.h 740:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "button" SDL_HapticCondition ty
  where
  hasField :: SDL_HapticCondition -> (ty -> SDL_HapticCondition, ty)
hasField =
    \SDL_HapticCondition
x0 ->
      ( \ty
y1 ->
          SDL_HapticCondition
            { button :: Uint16
button = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCondition
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCondition
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCondition
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCondition
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCondition
x0
            , right_sat :: ConstantArray 3 Uint16
right_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_sat" SDL_HapticCondition
x0
            , left_sat :: ConstantArray 3 Uint16
left_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_sat" SDL_HapticCondition
x0
            , right_coeff :: ConstantArray 3 Sint16
right_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_coeff" SDL_HapticCondition
x0
            , left_coeff :: ConstantArray 3 Sint16
left_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_coeff" SDL_HapticCondition
x0
            , deadband :: ConstantArray 3 Uint16
deadband = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"deadband" SDL_HapticCondition
x0
            , center :: ConstantArray 3 Sint16
center = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"center" SDL_HapticCondition
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCondition
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "button" (BG.Ptr SDL_HapticCondition) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCondition -> Ptr ty
getField = Proxy "button"
-> Ptr SDL_HapticCondition
-> Ptr (CFieldType SDL_HapticCondition "button")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"button")

instance HasCField.HasCField SDL_HapticCondition "button" where
  type
    CFieldType SDL_HapticCondition "button" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCondition -> Proxy# "button" -> Int
offset# = \Proxy# SDL_HapticCondition
_ -> \Proxy# "button"
_ -> Int
26

-- | How soon it can be triggered again after button.
--
--     [C declaration]: @interval@, defined at @SDL3\/SDL_haptic.h 741:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "interval" SDL_HapticCondition ty
  where
  hasField :: SDL_HapticCondition -> (ty -> SDL_HapticCondition, ty)
hasField =
    \SDL_HapticCondition
x0 ->
      ( \ty
y1 ->
          SDL_HapticCondition
            { interval :: Uint16
interval = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCondition
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCondition
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCondition
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCondition
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCondition
x0
            , right_sat :: ConstantArray 3 Uint16
right_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_sat" SDL_HapticCondition
x0
            , left_sat :: ConstantArray 3 Uint16
left_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_sat" SDL_HapticCondition
x0
            , right_coeff :: ConstantArray 3 Sint16
right_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_coeff" SDL_HapticCondition
x0
            , left_coeff :: ConstantArray 3 Sint16
left_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_coeff" SDL_HapticCondition
x0
            , deadband :: ConstantArray 3 Uint16
deadband = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"deadband" SDL_HapticCondition
x0
            , center :: ConstantArray 3 Sint16
center = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"center" SDL_HapticCondition
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCondition
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "interval" (BG.Ptr SDL_HapticCondition) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCondition -> Ptr ty
getField = Proxy "interval"
-> Ptr SDL_HapticCondition
-> Ptr (CFieldType SDL_HapticCondition "interval")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"interval")

instance HasCField.HasCField SDL_HapticCondition "interval" where
  type
    CFieldType SDL_HapticCondition "interval" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCondition -> Proxy# "interval" -> Int
offset# = \Proxy# SDL_HapticCondition
_ -> \Proxy# "interval"
_ -> Int
28

-- | Level when joystick is to the positive side; max 0xFFFF.
--
--     [C declaration]: @right_sat@, defined at @SDL3\/SDL_haptic.h 744:12@
instance
  (ty ~ CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "right_sat" SDL_HapticCondition ty
  where
  hasField :: SDL_HapticCondition -> (ty -> SDL_HapticCondition, ty)
hasField =
    \SDL_HapticCondition
x0 ->
      ( \ty
y1 ->
          SDL_HapticCondition
            { right_sat :: ConstantArray 3 Uint16
right_sat = ty
ConstantArray 3 Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCondition
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCondition
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCondition
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCondition
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCondition
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCondition
x0
            , left_sat :: ConstantArray 3 Uint16
left_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_sat" SDL_HapticCondition
x0
            , right_coeff :: ConstantArray 3 Sint16
right_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_coeff" SDL_HapticCondition
x0
            , left_coeff :: ConstantArray 3 Sint16
left_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_coeff" SDL_HapticCondition
x0
            , deadband :: ConstantArray 3 Uint16
deadband = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"deadband" SDL_HapticCondition
x0
            , center :: ConstantArray 3 Sint16
center = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"center" SDL_HapticCondition
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_sat" SDL_HapticCondition
x0
      )

instance
  (ty ~ CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "right_sat" (BG.Ptr SDL_HapticCondition) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCondition -> Ptr ty
getField = Proxy "right_sat"
-> Ptr SDL_HapticCondition
-> Ptr (CFieldType SDL_HapticCondition "right_sat")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"right_sat")

instance HasCField.HasCField SDL_HapticCondition "right_sat" where
  type
    CFieldType SDL_HapticCondition "right_sat" =
      CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCondition -> Proxy# "right_sat" -> Int
offset# = \Proxy# SDL_HapticCondition
_ -> \Proxy# "right_sat"
_ -> Int
30

-- | Level when joystick is to the negative side; max 0xFFFF.
--
--     [C declaration]: @left_sat@, defined at @SDL3\/SDL_haptic.h 745:12@
instance
  (ty ~ CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "left_sat" SDL_HapticCondition ty
  where
  hasField :: SDL_HapticCondition -> (ty -> SDL_HapticCondition, ty)
hasField =
    \SDL_HapticCondition
x0 ->
      ( \ty
y1 ->
          SDL_HapticCondition
            { left_sat :: ConstantArray 3 Uint16
left_sat = ty
ConstantArray 3 Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCondition
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCondition
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCondition
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCondition
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCondition
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCondition
x0
            , right_sat :: ConstantArray 3 Uint16
right_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_sat" SDL_HapticCondition
x0
            , right_coeff :: ConstantArray 3 Sint16
right_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_coeff" SDL_HapticCondition
x0
            , left_coeff :: ConstantArray 3 Sint16
left_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_coeff" SDL_HapticCondition
x0
            , deadband :: ConstantArray 3 Uint16
deadband = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"deadband" SDL_HapticCondition
x0
            , center :: ConstantArray 3 Sint16
center = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"center" SDL_HapticCondition
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_sat" SDL_HapticCondition
x0
      )

instance
  (ty ~ CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "left_sat" (BG.Ptr SDL_HapticCondition) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCondition -> Ptr ty
getField = Proxy "left_sat"
-> Ptr SDL_HapticCondition
-> Ptr (CFieldType SDL_HapticCondition "left_sat")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"left_sat")

instance HasCField.HasCField SDL_HapticCondition "left_sat" where
  type
    CFieldType SDL_HapticCondition "left_sat" =
      CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCondition -> Proxy# "left_sat" -> Int
offset# = \Proxy# SDL_HapticCondition
_ -> \Proxy# "left_sat"
_ -> Int
36

-- | How fast to increase the force towards the positive side.
--
--     [C declaration]: @right_coeff@, defined at @SDL3\/SDL_haptic.h 746:12@
instance
  (ty ~ CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.CompatHasField.HasField "right_coeff" SDL_HapticCondition ty
  where
  hasField :: SDL_HapticCondition -> (ty -> SDL_HapticCondition, ty)
hasField =
    \SDL_HapticCondition
x0 ->
      ( \ty
y1 ->
          SDL_HapticCondition
            { right_coeff :: ConstantArray 3 Sint16
right_coeff = ty
ConstantArray 3 Sint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCondition
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCondition
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCondition
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCondition
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCondition
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCondition
x0
            , right_sat :: ConstantArray 3 Uint16
right_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_sat" SDL_HapticCondition
x0
            , left_sat :: ConstantArray 3 Uint16
left_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_sat" SDL_HapticCondition
x0
            , left_coeff :: ConstantArray 3 Sint16
left_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_coeff" SDL_HapticCondition
x0
            , deadband :: ConstantArray 3 Uint16
deadband = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"deadband" SDL_HapticCondition
x0
            , center :: ConstantArray 3 Sint16
center = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"center" SDL_HapticCondition
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_coeff" SDL_HapticCondition
x0
      )

instance
  (ty ~ CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.HasField "right_coeff" (BG.Ptr SDL_HapticCondition) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCondition -> Ptr ty
getField =
    Proxy "right_coeff"
-> Ptr SDL_HapticCondition
-> Ptr (CFieldType SDL_HapticCondition "right_coeff")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"right_coeff")

instance HasCField.HasCField SDL_HapticCondition "right_coeff" where
  type
    CFieldType SDL_HapticCondition "right_coeff" =
      CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint16

  offset# :: Proxy# SDL_HapticCondition -> Proxy# "right_coeff" -> Int
offset# = \Proxy# SDL_HapticCondition
_ -> \Proxy# "right_coeff"
_ -> Int
42

-- | How fast to increase the force towards the negative side.
--
--     [C declaration]: @left_coeff@, defined at @SDL3\/SDL_haptic.h 747:12@
instance
  (ty ~ CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.CompatHasField.HasField "left_coeff" SDL_HapticCondition ty
  where
  hasField :: SDL_HapticCondition -> (ty -> SDL_HapticCondition, ty)
hasField =
    \SDL_HapticCondition
x0 ->
      ( \ty
y1 ->
          SDL_HapticCondition
            { left_coeff :: ConstantArray 3 Sint16
left_coeff = ty
ConstantArray 3 Sint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCondition
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCondition
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCondition
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCondition
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCondition
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCondition
x0
            , right_sat :: ConstantArray 3 Uint16
right_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_sat" SDL_HapticCondition
x0
            , left_sat :: ConstantArray 3 Uint16
left_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_sat" SDL_HapticCondition
x0
            , right_coeff :: ConstantArray 3 Sint16
right_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_coeff" SDL_HapticCondition
x0
            , deadband :: ConstantArray 3 Uint16
deadband = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"deadband" SDL_HapticCondition
x0
            , center :: ConstantArray 3 Sint16
center = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"center" SDL_HapticCondition
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_coeff" SDL_HapticCondition
x0
      )

instance
  (ty ~ CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.HasField "left_coeff" (BG.Ptr SDL_HapticCondition) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCondition -> Ptr ty
getField = Proxy "left_coeff"
-> Ptr SDL_HapticCondition
-> Ptr (CFieldType SDL_HapticCondition "left_coeff")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"left_coeff")

instance HasCField.HasCField SDL_HapticCondition "left_coeff" where
  type
    CFieldType SDL_HapticCondition "left_coeff" =
      CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint16

  offset# :: Proxy# SDL_HapticCondition -> Proxy# "left_coeff" -> Int
offset# = \Proxy# SDL_HapticCondition
_ -> \Proxy# "left_coeff"
_ -> Int
48

-- | Size of the dead zone; max 0xFFFF: whole axis-range when 0-centered.
--
--     [C declaration]: @deadband@, defined at @SDL3\/SDL_haptic.h 748:12@
instance
  (ty ~ CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "deadband" SDL_HapticCondition ty
  where
  hasField :: SDL_HapticCondition -> (ty -> SDL_HapticCondition, ty)
hasField =
    \SDL_HapticCondition
x0 ->
      ( \ty
y1 ->
          SDL_HapticCondition
            { deadband :: ConstantArray 3 Uint16
deadband = ty
ConstantArray 3 Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCondition
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCondition
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCondition
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCondition
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCondition
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCondition
x0
            , right_sat :: ConstantArray 3 Uint16
right_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_sat" SDL_HapticCondition
x0
            , left_sat :: ConstantArray 3 Uint16
left_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_sat" SDL_HapticCondition
x0
            , right_coeff :: ConstantArray 3 Sint16
right_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_coeff" SDL_HapticCondition
x0
            , left_coeff :: ConstantArray 3 Sint16
left_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_coeff" SDL_HapticCondition
x0
            , center :: ConstantArray 3 Sint16
center = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"center" SDL_HapticCondition
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"deadband" SDL_HapticCondition
x0
      )

instance
  (ty ~ CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "deadband" (BG.Ptr SDL_HapticCondition) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCondition -> Ptr ty
getField = Proxy "deadband"
-> Ptr SDL_HapticCondition
-> Ptr (CFieldType SDL_HapticCondition "deadband")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"deadband")

instance HasCField.HasCField SDL_HapticCondition "deadband" where
  type
    CFieldType SDL_HapticCondition "deadband" =
      CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCondition -> Proxy# "deadband" -> Int
offset# = \Proxy# SDL_HapticCondition
_ -> \Proxy# "deadband"
_ -> Int
54

-- | Position of the dead zone.
--
--     [C declaration]: @center@, defined at @SDL3\/SDL_haptic.h 749:12@
instance
  (ty ~ CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.CompatHasField.HasField "center" SDL_HapticCondition ty
  where
  hasField :: SDL_HapticCondition -> (ty -> SDL_HapticCondition, ty)
hasField =
    \SDL_HapticCondition
x0 ->
      ( \ty
y1 ->
          SDL_HapticCondition
            { center :: ConstantArray 3 Sint16
center = ty
ConstantArray 3 Sint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCondition
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCondition
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCondition
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCondition
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCondition
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCondition
x0
            , right_sat :: ConstantArray 3 Uint16
right_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_sat" SDL_HapticCondition
x0
            , left_sat :: ConstantArray 3 Uint16
left_sat = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_sat" SDL_HapticCondition
x0
            , right_coeff :: ConstantArray 3 Sint16
right_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"right_coeff" SDL_HapticCondition
x0
            , left_coeff :: ConstantArray 3 Sint16
left_coeff = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"left_coeff" SDL_HapticCondition
x0
            , deadband :: ConstantArray 3 Uint16
deadband = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"deadband" SDL_HapticCondition
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"center" SDL_HapticCondition
x0
      )

instance
  (ty ~ CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.HasField "center" (BG.Ptr SDL_HapticCondition) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCondition -> Ptr ty
getField = Proxy "center"
-> Ptr SDL_HapticCondition
-> Ptr (CFieldType SDL_HapticCondition "center")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"center")

instance HasCField.HasCField SDL_HapticCondition "center" where
  type
    CFieldType SDL_HapticCondition "center" =
      CA.ConstantArray 3 SDL3.Sys.Bindgen.Stdinc.Sint16

  offset# :: Proxy# SDL_HapticCondition -> Proxy# "center" -> Int
offset# = \Proxy# SDL_HapticCondition
_ -> \Proxy# "center"
_ -> Int
60

-- | A structure containing a template for a Ramp effect.
--
--     This struct is exclusively for the SDL_HAPTIC_RAMP effect.
--
--     The ramp effect starts at start strength and ends at end strength. It augments in linear fashion. If you use attack and fade with a ramp the effects get added to the ramp effect making the effect become quadratic instead of linear.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_HAPTIC_RAMP', 'SDL_HapticEffect'
--
--     [C declaration]: @struct SDL_HapticRamp@, defined at @SDL3\/SDL_haptic.h 767:16@
data SDL_HapticRamp = SDL_HapticRamp
  { SDL_HapticRamp -> SDL_HapticEffectType
type' :: SDL_HapticEffectType
  -- ^ SDL_HAPTIC_RAMP
  --
  --          [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 770:26@
  , SDL_HapticRamp -> SDL_HapticDirection
direction :: SDL_HapticDirection
  -- ^ Direction of the effect.
  --
  --          [C declaration]: @direction@, defined at @SDL3\/SDL_haptic.h 771:25@
  , SDL_HapticRamp -> Uint32
length :: SDL3.Sys.Bindgen.Stdinc.Uint32
  -- ^ Duration of the effect.
  --
  --          [C declaration]: @length@, defined at @SDL3\/SDL_haptic.h 774:12@
  , SDL_HapticRamp -> Uint16
delay :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Delay before starting the effect.
  --
  --          [C declaration]: @delay@, defined at @SDL3\/SDL_haptic.h 775:12@
  , SDL_HapticRamp -> Uint16
button :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Button that triggers the effect.
  --
  --          [C declaration]: @button@, defined at @SDL3\/SDL_haptic.h 778:12@
  , SDL_HapticRamp -> Uint16
interval :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ How soon it can be triggered again after button.
  --
  --          [C declaration]: @interval@, defined at @SDL3\/SDL_haptic.h 779:12@
  , SDL_HapticRamp -> Sint16
start :: SDL3.Sys.Bindgen.Stdinc.Sint16
  -- ^ Beginning strength level.
  --
  --          [C declaration]: @start@, defined at @SDL3\/SDL_haptic.h 782:12@
  , SDL_HapticRamp -> Sint16
end :: SDL3.Sys.Bindgen.Stdinc.Sint16
  -- ^ Ending strength level.
  --
  --          [C declaration]: @end@, defined at @SDL3\/SDL_haptic.h 783:12@
  , SDL_HapticRamp -> Uint16
attack_length :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Duration of the attack.
  --
  --          [C declaration]: @attack_length@, defined at @SDL3\/SDL_haptic.h 786:12@
  , SDL_HapticRamp -> Uint16
attack_level :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Level at the start of the attack.
  --
  --          [C declaration]: @attack_level@, defined at @SDL3\/SDL_haptic.h 787:12@
  , SDL_HapticRamp -> Uint16
fade_length :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Duration of the fade.
  --
  --          [C declaration]: @fade_length@, defined at @SDL3\/SDL_haptic.h 788:12@
  , SDL_HapticRamp -> Uint16
fade_level :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Level at the end of the fade.
  --
  --          [C declaration]: @fade_level@, defined at @SDL3\/SDL_haptic.h 789:12@
  }
  deriving stock ((forall x. SDL_HapticRamp -> Rep SDL_HapticRamp x)
-> (forall x. Rep SDL_HapticRamp x -> SDL_HapticRamp)
-> Generic SDL_HapticRamp
forall x. Rep SDL_HapticRamp x -> SDL_HapticRamp
forall x. SDL_HapticRamp -> Rep SDL_HapticRamp x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_HapticRamp -> Rep SDL_HapticRamp x
from :: forall x. SDL_HapticRamp -> Rep SDL_HapticRamp x
$cto :: forall x. Rep SDL_HapticRamp x -> SDL_HapticRamp
to :: forall x. Rep SDL_HapticRamp x -> SDL_HapticRamp
BG.Generic, SDL_HapticRamp -> SDL_HapticRamp -> Bool
(SDL_HapticRamp -> SDL_HapticRamp -> Bool)
-> (SDL_HapticRamp -> SDL_HapticRamp -> Bool) -> Eq SDL_HapticRamp
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_HapticRamp -> SDL_HapticRamp -> Bool
== :: SDL_HapticRamp -> SDL_HapticRamp -> Bool
$c/= :: SDL_HapticRamp -> SDL_HapticRamp -> Bool
/= :: SDL_HapticRamp -> SDL_HapticRamp -> Bool
Eq, Int -> SDL_HapticRamp -> ShowS
[SDL_HapticRamp] -> ShowS
SDL_HapticRamp -> String
(Int -> SDL_HapticRamp -> ShowS)
-> (SDL_HapticRamp -> String)
-> ([SDL_HapticRamp] -> ShowS)
-> Show SDL_HapticRamp
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_HapticRamp -> ShowS
showsPrec :: Int -> SDL_HapticRamp -> ShowS
$cshow :: SDL_HapticRamp -> String
show :: SDL_HapticRamp -> String
$cshowList :: [SDL_HapticRamp] -> ShowS
showList :: [SDL_HapticRamp] -> ShowS
Show)

instance Marshal.StaticSize SDL_HapticRamp where
  staticSizeOf :: Proxy SDL_HapticRamp -> Int
staticSizeOf = \Proxy SDL_HapticRamp
_ -> (Int
44 :: Int)

  staticAlignment :: Proxy SDL_HapticRamp -> Int
staticAlignment = \Proxy SDL_HapticRamp
_ -> (Int
4 :: Int)

instance Marshal.ReadRaw SDL_HapticRamp where
  readRaw :: Ptr SDL_HapticRamp -> IO SDL_HapticRamp
readRaw =
    \Ptr SDL_HapticRamp
ptr0 ->
      (SDL_HapticEffectType
 -> SDL_HapticDirection
 -> Uint32
 -> Uint16
 -> Uint16
 -> Uint16
 -> Sint16
 -> Sint16
 -> Uint16
 -> Uint16
 -> Uint16
 -> Uint16
 -> SDL_HapticRamp)
-> IO
     (SDL_HapticEffectType
      -> SDL_HapticDirection
      -> Uint32
      -> Uint16
      -> Uint16
      -> Uint16
      -> Sint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticRamp)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SDL_HapticEffectType
-> SDL_HapticDirection
-> Uint32
-> Uint16
-> Uint16
-> Uint16
-> Sint16
-> Sint16
-> Uint16
-> Uint16
-> Uint16
-> Uint16
-> SDL_HapticRamp
SDL_HapticRamp
        IO
  (SDL_HapticEffectType
   -> SDL_HapticDirection
   -> Uint32
   -> Uint16
   -> Uint16
   -> Uint16
   -> Sint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticRamp)
-> IO SDL_HapticEffectType
-> IO
     (SDL_HapticDirection
      -> Uint32
      -> Uint16
      -> Uint16
      -> Uint16
      -> Sint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticRamp)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "type'"
-> Ptr SDL_HapticRamp -> IO (CFieldType SDL_HapticRamp "type'")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'") Ptr SDL_HapticRamp
ptr0
        IO
  (SDL_HapticDirection
   -> Uint32
   -> Uint16
   -> Uint16
   -> Uint16
   -> Sint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticRamp)
-> IO SDL_HapticDirection
-> IO
     (Uint32
      -> Uint16
      -> Uint16
      -> Uint16
      -> Sint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticRamp)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "direction"
-> Ptr SDL_HapticRamp -> IO (CFieldType SDL_HapticRamp "direction")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"direction") Ptr SDL_HapticRamp
ptr0
        IO
  (Uint32
   -> Uint16
   -> Uint16
   -> Uint16
   -> Sint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticRamp)
-> IO Uint32
-> IO
     (Uint16
      -> Uint16
      -> Uint16
      -> Sint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticRamp)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "length"
-> Ptr SDL_HapticRamp -> IO (CFieldType SDL_HapticRamp "length")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length") Ptr SDL_HapticRamp
ptr0
        IO
  (Uint16
   -> Uint16
   -> Uint16
   -> Sint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticRamp)
-> IO Uint16
-> IO
     (Uint16
      -> Uint16
      -> Sint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticRamp)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "delay"
-> Ptr SDL_HapticRamp -> IO (CFieldType SDL_HapticRamp "delay")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"delay") Ptr SDL_HapticRamp
ptr0
        IO
  (Uint16
   -> Uint16
   -> Sint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticRamp)
-> IO Uint16
-> IO
     (Uint16
      -> Sint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticRamp)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "button"
-> Ptr SDL_HapticRamp -> IO (CFieldType SDL_HapticRamp "button")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"button") Ptr SDL_HapticRamp
ptr0
        IO
  (Uint16
   -> Sint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticRamp)
-> IO Uint16
-> IO
     (Sint16
      -> Sint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticRamp)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "interval"
-> Ptr SDL_HapticRamp -> IO (CFieldType SDL_HapticRamp "interval")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"interval") Ptr SDL_HapticRamp
ptr0
        IO
  (Sint16
   -> Sint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticRamp)
-> IO Sint16
-> IO
     (Sint16 -> Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticRamp)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "start"
-> Ptr SDL_HapticRamp -> IO (CFieldType SDL_HapticRamp "start")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"start") Ptr SDL_HapticRamp
ptr0
        IO
  (Sint16 -> Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticRamp)
-> IO Sint16
-> IO (Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticRamp)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "end"
-> Ptr SDL_HapticRamp -> IO (CFieldType SDL_HapticRamp "end")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"end") Ptr SDL_HapticRamp
ptr0
        IO (Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticRamp)
-> IO Uint16 -> IO (Uint16 -> Uint16 -> Uint16 -> SDL_HapticRamp)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "attack_length"
-> Ptr SDL_HapticRamp
-> IO (CFieldType SDL_HapticRamp "attack_length")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_length") Ptr SDL_HapticRamp
ptr0
        IO (Uint16 -> Uint16 -> Uint16 -> SDL_HapticRamp)
-> IO Uint16 -> IO (Uint16 -> Uint16 -> SDL_HapticRamp)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "attack_level"
-> Ptr SDL_HapticRamp
-> IO (CFieldType SDL_HapticRamp "attack_level")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_level") Ptr SDL_HapticRamp
ptr0
        IO (Uint16 -> Uint16 -> SDL_HapticRamp)
-> IO Uint16 -> IO (Uint16 -> SDL_HapticRamp)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "fade_length"
-> Ptr SDL_HapticRamp
-> IO (CFieldType SDL_HapticRamp "fade_length")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_length") Ptr SDL_HapticRamp
ptr0
        IO (Uint16 -> SDL_HapticRamp) -> IO Uint16 -> IO SDL_HapticRamp
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "fade_level"
-> Ptr SDL_HapticRamp
-> IO (CFieldType SDL_HapticRamp "fade_level")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_level") Ptr SDL_HapticRamp
ptr0

instance Marshal.WriteRaw SDL_HapticRamp where
  writeRaw :: Ptr SDL_HapticRamp -> SDL_HapticRamp -> IO ()
writeRaw =
    \Ptr SDL_HapticRamp
ptr0 ->
      \SDL_HapticRamp
s1 ->
        case SDL_HapticRamp
s1 of
          SDL_HapticRamp
            SDL_HapticEffectType
type'2
            SDL_HapticDirection
direction3
            Uint32
length4
            Uint16
delay5
            Uint16
button6
            Uint16
interval7
            Sint16
start8
            Sint16
end9
            Uint16
attack_length10
            Uint16
attack_level11
            Uint16
fade_length12
            Uint16
fade_level13 ->
              Proxy "type'"
-> Ptr SDL_HapticRamp -> CFieldType SDL_HapticRamp "type'" -> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'") Ptr SDL_HapticRamp
ptr0 CFieldType SDL_HapticRamp "type'"
SDL_HapticEffectType
type'2
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "direction"
-> Ptr SDL_HapticRamp
-> CFieldType SDL_HapticRamp "direction"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"direction") Ptr SDL_HapticRamp
ptr0 CFieldType SDL_HapticRamp "direction"
SDL_HapticDirection
direction3
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "length"
-> Ptr SDL_HapticRamp
-> CFieldType SDL_HapticRamp "length"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length") Ptr SDL_HapticRamp
ptr0 CFieldType SDL_HapticRamp "length"
Uint32
length4
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "delay"
-> Ptr SDL_HapticRamp -> CFieldType SDL_HapticRamp "delay" -> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"delay") Ptr SDL_HapticRamp
ptr0 CFieldType SDL_HapticRamp "delay"
Uint16
delay5
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "button"
-> Ptr SDL_HapticRamp
-> CFieldType SDL_HapticRamp "button"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"button") Ptr SDL_HapticRamp
ptr0 CFieldType SDL_HapticRamp "button"
Uint16
button6
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "interval"
-> Ptr SDL_HapticRamp
-> CFieldType SDL_HapticRamp "interval"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"interval") Ptr SDL_HapticRamp
ptr0 CFieldType SDL_HapticRamp "interval"
Uint16
interval7
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "start"
-> Ptr SDL_HapticRamp -> CFieldType SDL_HapticRamp "start" -> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"start") Ptr SDL_HapticRamp
ptr0 CFieldType SDL_HapticRamp "start"
Sint16
start8
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "end"
-> Ptr SDL_HapticRamp -> CFieldType SDL_HapticRamp "end" -> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"end") Ptr SDL_HapticRamp
ptr0 CFieldType SDL_HapticRamp "end"
Sint16
end9
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "attack_length"
-> Ptr SDL_HapticRamp
-> CFieldType SDL_HapticRamp "attack_length"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_length") Ptr SDL_HapticRamp
ptr0 CFieldType SDL_HapticRamp "attack_length"
Uint16
attack_length10
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "attack_level"
-> Ptr SDL_HapticRamp
-> CFieldType SDL_HapticRamp "attack_level"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_level") Ptr SDL_HapticRamp
ptr0 CFieldType SDL_HapticRamp "attack_level"
Uint16
attack_level11
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "fade_length"
-> Ptr SDL_HapticRamp
-> CFieldType SDL_HapticRamp "fade_length"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_length") Ptr SDL_HapticRamp
ptr0 CFieldType SDL_HapticRamp "fade_length"
Uint16
fade_length12
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "fade_level"
-> Ptr SDL_HapticRamp
-> CFieldType SDL_HapticRamp "fade_level"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_level") Ptr SDL_HapticRamp
ptr0 CFieldType SDL_HapticRamp "fade_level"
Uint16
fade_level13

deriving via Marshal.EquivStorable SDL_HapticRamp instance BG.Storable SDL_HapticRamp

deriving via Struct.IsStructViaReadRaw SDL_HapticRamp instance Struct.IsStruct SDL_HapticRamp

-- | SDL_HAPTIC_RAMP
--
--     [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 770:26@
instance
  (ty ~ SDL_HapticEffectType)
  => BG.CompatHasField.HasField "type'" SDL_HapticRamp ty
  where
  hasField :: SDL_HapticRamp -> (ty -> SDL_HapticRamp, ty)
hasField =
    \SDL_HapticRamp
x0 ->
      ( \ty
y1 ->
          SDL_HapticRamp
            { type' :: SDL_HapticEffectType
type' = ty
SDL_HapticEffectType
y1
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticRamp
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticRamp
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticRamp
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticRamp
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticRamp
x0
            , start :: Sint16
start = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"start" SDL_HapticRamp
x0
            , end :: Sint16
end = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"end" SDL_HapticRamp
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticRamp
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticRamp
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticRamp
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticRamp
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticRamp
x0
      )

instance
  (ty ~ SDL_HapticEffectType)
  => BG.HasField "type'" (BG.Ptr SDL_HapticRamp) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticRamp -> Ptr ty
getField = Proxy "type'"
-> Ptr SDL_HapticRamp -> Ptr (CFieldType SDL_HapticRamp "type'")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'")

instance HasCField.HasCField SDL_HapticRamp "type'" where
  type
    CFieldType SDL_HapticRamp "type'" =
      SDL_HapticEffectType

  offset# :: Proxy# SDL_HapticRamp -> Proxy# "type'" -> Int
offset# = \Proxy# SDL_HapticRamp
_ -> \Proxy# "type'"
_ -> Int
0

-- | Direction of the effect.
--
--     [C declaration]: @direction@, defined at @SDL3\/SDL_haptic.h 771:25@
instance
  (ty ~ SDL_HapticDirection)
  => BG.CompatHasField.HasField "direction" SDL_HapticRamp ty
  where
  hasField :: SDL_HapticRamp -> (ty -> SDL_HapticRamp, ty)
hasField =
    \SDL_HapticRamp
x0 ->
      ( \ty
y1 ->
          SDL_HapticRamp
            { direction :: SDL_HapticDirection
direction = ty
SDL_HapticDirection
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticRamp
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticRamp
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticRamp
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticRamp
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticRamp
x0
            , start :: Sint16
start = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"start" SDL_HapticRamp
x0
            , end :: Sint16
end = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"end" SDL_HapticRamp
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticRamp
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticRamp
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticRamp
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticRamp
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticRamp
x0
      )

instance
  (ty ~ SDL_HapticDirection)
  => BG.HasField "direction" (BG.Ptr SDL_HapticRamp) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticRamp -> Ptr ty
getField = Proxy "direction"
-> Ptr SDL_HapticRamp
-> Ptr (CFieldType SDL_HapticRamp "direction")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"direction")

instance HasCField.HasCField SDL_HapticRamp "direction" where
  type
    CFieldType SDL_HapticRamp "direction" =
      SDL_HapticDirection

  offset# :: Proxy# SDL_HapticRamp -> Proxy# "direction" -> Int
offset# = \Proxy# SDL_HapticRamp
_ -> \Proxy# "direction"
_ -> Int
4

-- | Duration of the effect.
--
--     [C declaration]: @length@, defined at @SDL3\/SDL_haptic.h 774:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "length" SDL_HapticRamp ty
  where
  hasField :: SDL_HapticRamp -> (ty -> SDL_HapticRamp, ty)
hasField =
    \SDL_HapticRamp
x0 ->
      ( \ty
y1 ->
          SDL_HapticRamp
            { length :: Uint32
length = ty
Uint32
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticRamp
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticRamp
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticRamp
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticRamp
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticRamp
x0
            , start :: Sint16
start = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"start" SDL_HapticRamp
x0
            , end :: Sint16
end = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"end" SDL_HapticRamp
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticRamp
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticRamp
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticRamp
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticRamp
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticRamp
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.HasField "length" (BG.Ptr SDL_HapticRamp) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticRamp -> Ptr ty
getField = Proxy "length"
-> Ptr SDL_HapticRamp -> Ptr (CFieldType SDL_HapticRamp "length")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length")

instance HasCField.HasCField SDL_HapticRamp "length" where
  type
    CFieldType SDL_HapticRamp "length" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

  offset# :: Proxy# SDL_HapticRamp -> Proxy# "length" -> Int
offset# = \Proxy# SDL_HapticRamp
_ -> \Proxy# "length"
_ -> Int
20

-- | Delay before starting the effect.
--
--     [C declaration]: @delay@, defined at @SDL3\/SDL_haptic.h 775:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "delay" SDL_HapticRamp ty
  where
  hasField :: SDL_HapticRamp -> (ty -> SDL_HapticRamp, ty)
hasField =
    \SDL_HapticRamp
x0 ->
      ( \ty
y1 ->
          SDL_HapticRamp
            { delay :: Uint16
delay = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticRamp
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticRamp
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticRamp
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticRamp
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticRamp
x0
            , start :: Sint16
start = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"start" SDL_HapticRamp
x0
            , end :: Sint16
end = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"end" SDL_HapticRamp
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticRamp
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticRamp
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticRamp
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticRamp
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticRamp
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "delay" (BG.Ptr SDL_HapticRamp) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticRamp -> Ptr ty
getField = Proxy "delay"
-> Ptr SDL_HapticRamp -> Ptr (CFieldType SDL_HapticRamp "delay")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"delay")

instance HasCField.HasCField SDL_HapticRamp "delay" where
  type
    CFieldType SDL_HapticRamp "delay" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticRamp -> Proxy# "delay" -> Int
offset# = \Proxy# SDL_HapticRamp
_ -> \Proxy# "delay"
_ -> Int
24

-- | Button that triggers the effect.
--
--     [C declaration]: @button@, defined at @SDL3\/SDL_haptic.h 778:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "button" SDL_HapticRamp ty
  where
  hasField :: SDL_HapticRamp -> (ty -> SDL_HapticRamp, ty)
hasField =
    \SDL_HapticRamp
x0 ->
      ( \ty
y1 ->
          SDL_HapticRamp
            { button :: Uint16
button = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticRamp
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticRamp
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticRamp
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticRamp
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticRamp
x0
            , start :: Sint16
start = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"start" SDL_HapticRamp
x0
            , end :: Sint16
end = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"end" SDL_HapticRamp
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticRamp
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticRamp
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticRamp
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticRamp
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticRamp
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "button" (BG.Ptr SDL_HapticRamp) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticRamp -> Ptr ty
getField = Proxy "button"
-> Ptr SDL_HapticRamp -> Ptr (CFieldType SDL_HapticRamp "button")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"button")

instance HasCField.HasCField SDL_HapticRamp "button" where
  type
    CFieldType SDL_HapticRamp "button" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticRamp -> Proxy# "button" -> Int
offset# = \Proxy# SDL_HapticRamp
_ -> \Proxy# "button"
_ -> Int
26

-- | How soon it can be triggered again after button.
--
--     [C declaration]: @interval@, defined at @SDL3\/SDL_haptic.h 779:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "interval" SDL_HapticRamp ty
  where
  hasField :: SDL_HapticRamp -> (ty -> SDL_HapticRamp, ty)
hasField =
    \SDL_HapticRamp
x0 ->
      ( \ty
y1 ->
          SDL_HapticRamp
            { interval :: Uint16
interval = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticRamp
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticRamp
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticRamp
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticRamp
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticRamp
x0
            , start :: Sint16
start = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"start" SDL_HapticRamp
x0
            , end :: Sint16
end = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"end" SDL_HapticRamp
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticRamp
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticRamp
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticRamp
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticRamp
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticRamp
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "interval" (BG.Ptr SDL_HapticRamp) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticRamp -> Ptr ty
getField = Proxy "interval"
-> Ptr SDL_HapticRamp -> Ptr (CFieldType SDL_HapticRamp "interval")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"interval")

instance HasCField.HasCField SDL_HapticRamp "interval" where
  type
    CFieldType SDL_HapticRamp "interval" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticRamp -> Proxy# "interval" -> Int
offset# = \Proxy# SDL_HapticRamp
_ -> \Proxy# "interval"
_ -> Int
28

-- | Beginning strength level.
--
--     [C declaration]: @start@, defined at @SDL3\/SDL_haptic.h 782:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.CompatHasField.HasField "start" SDL_HapticRamp ty
  where
  hasField :: SDL_HapticRamp -> (ty -> SDL_HapticRamp, ty)
hasField =
    \SDL_HapticRamp
x0 ->
      ( \ty
y1 ->
          SDL_HapticRamp
            { start :: Sint16
start = ty
Sint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticRamp
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticRamp
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticRamp
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticRamp
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticRamp
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticRamp
x0
            , end :: Sint16
end = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"end" SDL_HapticRamp
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticRamp
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticRamp
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticRamp
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticRamp
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"start" SDL_HapticRamp
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.HasField "start" (BG.Ptr SDL_HapticRamp) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticRamp -> Ptr ty
getField = Proxy "start"
-> Ptr SDL_HapticRamp -> Ptr (CFieldType SDL_HapticRamp "start")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"start")

instance HasCField.HasCField SDL_HapticRamp "start" where
  type
    CFieldType SDL_HapticRamp "start" =
      SDL3.Sys.Bindgen.Stdinc.Sint16

  offset# :: Proxy# SDL_HapticRamp -> Proxy# "start" -> Int
offset# = \Proxy# SDL_HapticRamp
_ -> \Proxy# "start"
_ -> Int
30

-- | Ending strength level.
--
--     [C declaration]: @end@, defined at @SDL3\/SDL_haptic.h 783:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.CompatHasField.HasField "end" SDL_HapticRamp ty
  where
  hasField :: SDL_HapticRamp -> (ty -> SDL_HapticRamp, ty)
hasField =
    \SDL_HapticRamp
x0 ->
      ( \ty
y1 ->
          SDL_HapticRamp
            { end :: Sint16
end = ty
Sint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticRamp
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticRamp
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticRamp
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticRamp
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticRamp
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticRamp
x0
            , start :: Sint16
start = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"start" SDL_HapticRamp
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticRamp
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticRamp
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticRamp
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticRamp
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"end" SDL_HapticRamp
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Sint16)
  => BG.HasField "end" (BG.Ptr SDL_HapticRamp) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticRamp -> Ptr ty
getField = Proxy "end"
-> Ptr SDL_HapticRamp -> Ptr (CFieldType SDL_HapticRamp "end")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"end")

instance HasCField.HasCField SDL_HapticRamp "end" where
  type
    CFieldType SDL_HapticRamp "end" =
      SDL3.Sys.Bindgen.Stdinc.Sint16

  offset# :: Proxy# SDL_HapticRamp -> Proxy# "end" -> Int
offset# = \Proxy# SDL_HapticRamp
_ -> \Proxy# "end"
_ -> Int
32

-- | Duration of the attack.
--
--     [C declaration]: @attack_length@, defined at @SDL3\/SDL_haptic.h 786:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "attack_length" SDL_HapticRamp ty
  where
  hasField :: SDL_HapticRamp -> (ty -> SDL_HapticRamp, ty)
hasField =
    \SDL_HapticRamp
x0 ->
      ( \ty
y1 ->
          SDL_HapticRamp
            { attack_length :: Uint16
attack_length = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticRamp
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticRamp
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticRamp
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticRamp
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticRamp
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticRamp
x0
            , start :: Sint16
start = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"start" SDL_HapticRamp
x0
            , end :: Sint16
end = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"end" SDL_HapticRamp
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticRamp
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticRamp
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticRamp
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticRamp
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "attack_length" (BG.Ptr SDL_HapticRamp) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticRamp -> Ptr ty
getField =
    Proxy "attack_length"
-> Ptr SDL_HapticRamp
-> Ptr (CFieldType SDL_HapticRamp "attack_length")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_length")

instance HasCField.HasCField SDL_HapticRamp "attack_length" where
  type
    CFieldType SDL_HapticRamp "attack_length" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticRamp -> Proxy# "attack_length" -> Int
offset# = \Proxy# SDL_HapticRamp
_ -> \Proxy# "attack_length"
_ -> Int
34

-- | Level at the start of the attack.
--
--     [C declaration]: @attack_level@, defined at @SDL3\/SDL_haptic.h 787:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "attack_level" SDL_HapticRamp ty
  where
  hasField :: SDL_HapticRamp -> (ty -> SDL_HapticRamp, ty)
hasField =
    \SDL_HapticRamp
x0 ->
      ( \ty
y1 ->
          SDL_HapticRamp
            { attack_level :: Uint16
attack_level = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticRamp
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticRamp
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticRamp
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticRamp
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticRamp
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticRamp
x0
            , start :: Sint16
start = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"start" SDL_HapticRamp
x0
            , end :: Sint16
end = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"end" SDL_HapticRamp
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticRamp
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticRamp
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticRamp
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticRamp
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "attack_level" (BG.Ptr SDL_HapticRamp) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticRamp -> Ptr ty
getField =
    Proxy "attack_level"
-> Ptr SDL_HapticRamp
-> Ptr (CFieldType SDL_HapticRamp "attack_level")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_level")

instance HasCField.HasCField SDL_HapticRamp "attack_level" where
  type
    CFieldType SDL_HapticRamp "attack_level" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticRamp -> Proxy# "attack_level" -> Int
offset# = \Proxy# SDL_HapticRamp
_ -> \Proxy# "attack_level"
_ -> Int
36

-- | Duration of the fade.
--
--     [C declaration]: @fade_length@, defined at @SDL3\/SDL_haptic.h 788:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "fade_length" SDL_HapticRamp ty
  where
  hasField :: SDL_HapticRamp -> (ty -> SDL_HapticRamp, ty)
hasField =
    \SDL_HapticRamp
x0 ->
      ( \ty
y1 ->
          SDL_HapticRamp
            { fade_length :: Uint16
fade_length = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticRamp
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticRamp
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticRamp
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticRamp
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticRamp
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticRamp
x0
            , start :: Sint16
start = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"start" SDL_HapticRamp
x0
            , end :: Sint16
end = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"end" SDL_HapticRamp
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticRamp
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticRamp
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticRamp
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticRamp
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "fade_length" (BG.Ptr SDL_HapticRamp) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticRamp -> Ptr ty
getField =
    Proxy "fade_length"
-> Ptr SDL_HapticRamp
-> Ptr (CFieldType SDL_HapticRamp "fade_length")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_length")

instance HasCField.HasCField SDL_HapticRamp "fade_length" where
  type
    CFieldType SDL_HapticRamp "fade_length" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticRamp -> Proxy# "fade_length" -> Int
offset# = \Proxy# SDL_HapticRamp
_ -> \Proxy# "fade_length"
_ -> Int
38

-- | Level at the end of the fade.
--
--     [C declaration]: @fade_level@, defined at @SDL3\/SDL_haptic.h 789:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "fade_level" SDL_HapticRamp ty
  where
  hasField :: SDL_HapticRamp -> (ty -> SDL_HapticRamp, ty)
hasField =
    \SDL_HapticRamp
x0 ->
      ( \ty
y1 ->
          SDL_HapticRamp
            { fade_level :: Uint16
fade_level = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticRamp
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticRamp
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticRamp
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticRamp
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticRamp
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticRamp
x0
            , start :: Sint16
start = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"start" SDL_HapticRamp
x0
            , end :: Sint16
end = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"end" SDL_HapticRamp
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticRamp
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticRamp
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticRamp
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticRamp
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "fade_level" (BG.Ptr SDL_HapticRamp) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticRamp -> Ptr ty
getField = Proxy "fade_level"
-> Ptr SDL_HapticRamp
-> Ptr (CFieldType SDL_HapticRamp "fade_level")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_level")

instance HasCField.HasCField SDL_HapticRamp "fade_level" where
  type
    CFieldType SDL_HapticRamp "fade_level" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticRamp -> Proxy# "fade_level" -> Int
offset# = \Proxy# SDL_HapticRamp
_ -> \Proxy# "fade_level"
_ -> Int
40

-- | A structure containing a template for a Left\/Right effect.
--
--     This struct is exclusively for the SDL_HAPTIC_LEFTRIGHT effect.
--
--     The Left\/Right effect is used to explicitly control the large and small motors, commonly found in modern game controllers. The small (right) motor is high frequency, and the large (left) motor is low frequency.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_HAPTIC_LEFTRIGHT', 'SDL_HapticEffect'
--
--     [C declaration]: @struct SDL_HapticLeftRight@, defined at @SDL3\/SDL_haptic.h 806:16@
data SDL_HapticLeftRight = SDL_HapticLeftRight
  { SDL_HapticLeftRight -> SDL_HapticEffectType
type' :: SDL_HapticEffectType
  -- ^ SDL_HAPTIC_LEFTRIGHT
  --
  --          [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 809:26@
  , SDL_HapticLeftRight -> Uint32
length :: SDL3.Sys.Bindgen.Stdinc.Uint32
  -- ^ Duration of the effect in milliseconds.
  --
  --          [C declaration]: @length@, defined at @SDL3\/SDL_haptic.h 812:12@
  , SDL_HapticLeftRight -> Uint16
large_magnitude :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Control of the large controller motor.
  --
  --          [C declaration]: @large_magnitude@, defined at @SDL3\/SDL_haptic.h 815:12@
  , SDL_HapticLeftRight -> Uint16
small_magnitude :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Control of the small controller motor.
  --
  --          [C declaration]: @small_magnitude@, defined at @SDL3\/SDL_haptic.h 816:12@
  }
  deriving stock ((forall x. SDL_HapticLeftRight -> Rep SDL_HapticLeftRight x)
-> (forall x. Rep SDL_HapticLeftRight x -> SDL_HapticLeftRight)
-> Generic SDL_HapticLeftRight
forall x. Rep SDL_HapticLeftRight x -> SDL_HapticLeftRight
forall x. SDL_HapticLeftRight -> Rep SDL_HapticLeftRight x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_HapticLeftRight -> Rep SDL_HapticLeftRight x
from :: forall x. SDL_HapticLeftRight -> Rep SDL_HapticLeftRight x
$cto :: forall x. Rep SDL_HapticLeftRight x -> SDL_HapticLeftRight
to :: forall x. Rep SDL_HapticLeftRight x -> SDL_HapticLeftRight
BG.Generic, SDL_HapticLeftRight -> SDL_HapticLeftRight -> Bool
(SDL_HapticLeftRight -> SDL_HapticLeftRight -> Bool)
-> (SDL_HapticLeftRight -> SDL_HapticLeftRight -> Bool)
-> Eq SDL_HapticLeftRight
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_HapticLeftRight -> SDL_HapticLeftRight -> Bool
== :: SDL_HapticLeftRight -> SDL_HapticLeftRight -> Bool
$c/= :: SDL_HapticLeftRight -> SDL_HapticLeftRight -> Bool
/= :: SDL_HapticLeftRight -> SDL_HapticLeftRight -> Bool
Eq, Int -> SDL_HapticLeftRight -> ShowS
[SDL_HapticLeftRight] -> ShowS
SDL_HapticLeftRight -> String
(Int -> SDL_HapticLeftRight -> ShowS)
-> (SDL_HapticLeftRight -> String)
-> ([SDL_HapticLeftRight] -> ShowS)
-> Show SDL_HapticLeftRight
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_HapticLeftRight -> ShowS
showsPrec :: Int -> SDL_HapticLeftRight -> ShowS
$cshow :: SDL_HapticLeftRight -> String
show :: SDL_HapticLeftRight -> String
$cshowList :: [SDL_HapticLeftRight] -> ShowS
showList :: [SDL_HapticLeftRight] -> ShowS
Show)

instance Marshal.StaticSize SDL_HapticLeftRight where
  staticSizeOf :: Proxy SDL_HapticLeftRight -> Int
staticSizeOf = \Proxy SDL_HapticLeftRight
_ -> (Int
12 :: Int)

  staticAlignment :: Proxy SDL_HapticLeftRight -> Int
staticAlignment = \Proxy SDL_HapticLeftRight
_ -> (Int
4 :: Int)

instance Marshal.ReadRaw SDL_HapticLeftRight where
  readRaw :: Ptr SDL_HapticLeftRight -> IO SDL_HapticLeftRight
readRaw =
    \Ptr SDL_HapticLeftRight
ptr0 ->
      (SDL_HapticEffectType
 -> Uint32 -> Uint16 -> Uint16 -> SDL_HapticLeftRight)
-> IO
     (SDL_HapticEffectType
      -> Uint32 -> Uint16 -> Uint16 -> SDL_HapticLeftRight)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SDL_HapticEffectType
-> Uint32 -> Uint16 -> Uint16 -> SDL_HapticLeftRight
SDL_HapticLeftRight
        IO
  (SDL_HapticEffectType
   -> Uint32 -> Uint16 -> Uint16 -> SDL_HapticLeftRight)
-> IO SDL_HapticEffectType
-> IO (Uint32 -> Uint16 -> Uint16 -> SDL_HapticLeftRight)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "type'"
-> Ptr SDL_HapticLeftRight
-> IO (CFieldType SDL_HapticLeftRight "type'")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'") Ptr SDL_HapticLeftRight
ptr0
        IO (Uint32 -> Uint16 -> Uint16 -> SDL_HapticLeftRight)
-> IO Uint32 -> IO (Uint16 -> Uint16 -> SDL_HapticLeftRight)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "length"
-> Ptr SDL_HapticLeftRight
-> IO (CFieldType SDL_HapticLeftRight "length")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length") Ptr SDL_HapticLeftRight
ptr0
        IO (Uint16 -> Uint16 -> SDL_HapticLeftRight)
-> IO Uint16 -> IO (Uint16 -> SDL_HapticLeftRight)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "large_magnitude"
-> Ptr SDL_HapticLeftRight
-> IO (CFieldType SDL_HapticLeftRight "large_magnitude")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"large_magnitude") Ptr SDL_HapticLeftRight
ptr0
        IO (Uint16 -> SDL_HapticLeftRight)
-> IO Uint16 -> IO SDL_HapticLeftRight
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "small_magnitude"
-> Ptr SDL_HapticLeftRight
-> IO (CFieldType SDL_HapticLeftRight "small_magnitude")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"small_magnitude") Ptr SDL_HapticLeftRight
ptr0

instance Marshal.WriteRaw SDL_HapticLeftRight where
  writeRaw :: Ptr SDL_HapticLeftRight -> SDL_HapticLeftRight -> IO ()
writeRaw =
    \Ptr SDL_HapticLeftRight
ptr0 ->
      \SDL_HapticLeftRight
s1 ->
        case SDL_HapticLeftRight
s1 of
          SDL_HapticLeftRight SDL_HapticEffectType
type'2 Uint32
length3 Uint16
large_magnitude4 Uint16
small_magnitude5 ->
            Proxy "type'"
-> Ptr SDL_HapticLeftRight
-> CFieldType SDL_HapticLeftRight "type'"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'") Ptr SDL_HapticLeftRight
ptr0 CFieldType SDL_HapticLeftRight "type'"
SDL_HapticEffectType
type'2
              IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "length"
-> Ptr SDL_HapticLeftRight
-> CFieldType SDL_HapticLeftRight "length"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length") Ptr SDL_HapticLeftRight
ptr0 CFieldType SDL_HapticLeftRight "length"
Uint32
length3
              IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "large_magnitude"
-> Ptr SDL_HapticLeftRight
-> CFieldType SDL_HapticLeftRight "large_magnitude"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"large_magnitude") Ptr SDL_HapticLeftRight
ptr0 CFieldType SDL_HapticLeftRight "large_magnitude"
Uint16
large_magnitude4
              IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "small_magnitude"
-> Ptr SDL_HapticLeftRight
-> CFieldType SDL_HapticLeftRight "small_magnitude"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"small_magnitude") Ptr SDL_HapticLeftRight
ptr0 CFieldType SDL_HapticLeftRight "small_magnitude"
Uint16
small_magnitude5

deriving via Marshal.EquivStorable SDL_HapticLeftRight instance BG.Storable SDL_HapticLeftRight

deriving via
  Struct.IsStructViaReadRaw SDL_HapticLeftRight
  instance
    Struct.IsStruct SDL_HapticLeftRight

-- | SDL_HAPTIC_LEFTRIGHT
--
--     [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 809:26@
instance
  (ty ~ SDL_HapticEffectType)
  => BG.CompatHasField.HasField "type'" SDL_HapticLeftRight ty
  where
  hasField :: SDL_HapticLeftRight -> (ty -> SDL_HapticLeftRight, ty)
hasField =
    \SDL_HapticLeftRight
x0 ->
      ( \ty
y1 ->
          SDL_HapticLeftRight
            { type' :: SDL_HapticEffectType
type' = ty
SDL_HapticEffectType
y1
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticLeftRight
x0
            , large_magnitude :: Uint16
large_magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"large_magnitude" SDL_HapticLeftRight
x0
            , small_magnitude :: Uint16
small_magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"small_magnitude" SDL_HapticLeftRight
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticLeftRight
x0
      )

instance
  (ty ~ SDL_HapticEffectType)
  => BG.HasField "type'" (BG.Ptr SDL_HapticLeftRight) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticLeftRight -> Ptr ty
getField = Proxy "type'"
-> Ptr SDL_HapticLeftRight
-> Ptr (CFieldType SDL_HapticLeftRight "type'")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'")

instance HasCField.HasCField SDL_HapticLeftRight "type'" where
  type
    CFieldType SDL_HapticLeftRight "type'" =
      SDL_HapticEffectType

  offset# :: Proxy# SDL_HapticLeftRight -> Proxy# "type'" -> Int
offset# = \Proxy# SDL_HapticLeftRight
_ -> \Proxy# "type'"
_ -> Int
0

-- | Duration of the effect in milliseconds.
--
--     [C declaration]: @length@, defined at @SDL3\/SDL_haptic.h 812:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "length" SDL_HapticLeftRight ty
  where
  hasField :: SDL_HapticLeftRight -> (ty -> SDL_HapticLeftRight, ty)
hasField =
    \SDL_HapticLeftRight
x0 ->
      ( \ty
y1 ->
          SDL_HapticLeftRight
            { length :: Uint32
length = ty
Uint32
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticLeftRight
x0
            , large_magnitude :: Uint16
large_magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"large_magnitude" SDL_HapticLeftRight
x0
            , small_magnitude :: Uint16
small_magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"small_magnitude" SDL_HapticLeftRight
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticLeftRight
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.HasField "length" (BG.Ptr SDL_HapticLeftRight) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticLeftRight -> Ptr ty
getField = Proxy "length"
-> Ptr SDL_HapticLeftRight
-> Ptr (CFieldType SDL_HapticLeftRight "length")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length")

instance HasCField.HasCField SDL_HapticLeftRight "length" where
  type
    CFieldType SDL_HapticLeftRight "length" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

  offset# :: Proxy# SDL_HapticLeftRight -> Proxy# "length" -> Int
offset# = \Proxy# SDL_HapticLeftRight
_ -> \Proxy# "length"
_ -> Int
4

-- | Control of the large controller motor.
--
--     [C declaration]: @large_magnitude@, defined at @SDL3\/SDL_haptic.h 815:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "large_magnitude" SDL_HapticLeftRight ty
  where
  hasField :: SDL_HapticLeftRight -> (ty -> SDL_HapticLeftRight, ty)
hasField =
    \SDL_HapticLeftRight
x0 ->
      ( \ty
y1 ->
          SDL_HapticLeftRight
            { large_magnitude :: Uint16
large_magnitude = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticLeftRight
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticLeftRight
x0
            , small_magnitude :: Uint16
small_magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"small_magnitude" SDL_HapticLeftRight
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"large_magnitude" SDL_HapticLeftRight
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "large_magnitude" (BG.Ptr SDL_HapticLeftRight) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticLeftRight -> Ptr ty
getField =
    Proxy "large_magnitude"
-> Ptr SDL_HapticLeftRight
-> Ptr (CFieldType SDL_HapticLeftRight "large_magnitude")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"large_magnitude")

instance HasCField.HasCField SDL_HapticLeftRight "large_magnitude" where
  type
    CFieldType SDL_HapticLeftRight "large_magnitude" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticLeftRight -> Proxy# "large_magnitude" -> Int
offset# = \Proxy# SDL_HapticLeftRight
_ -> \Proxy# "large_magnitude"
_ -> Int
8

-- | Control of the small controller motor.
--
--     [C declaration]: @small_magnitude@, defined at @SDL3\/SDL_haptic.h 816:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "small_magnitude" SDL_HapticLeftRight ty
  where
  hasField :: SDL_HapticLeftRight -> (ty -> SDL_HapticLeftRight, ty)
hasField =
    \SDL_HapticLeftRight
x0 ->
      ( \ty
y1 ->
          SDL_HapticLeftRight
            { small_magnitude :: Uint16
small_magnitude = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticLeftRight
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticLeftRight
x0
            , large_magnitude :: Uint16
large_magnitude = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"large_magnitude" SDL_HapticLeftRight
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"small_magnitude" SDL_HapticLeftRight
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "small_magnitude" (BG.Ptr SDL_HapticLeftRight) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticLeftRight -> Ptr ty
getField =
    Proxy "small_magnitude"
-> Ptr SDL_HapticLeftRight
-> Ptr (CFieldType SDL_HapticLeftRight "small_magnitude")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"small_magnitude")

instance HasCField.HasCField SDL_HapticLeftRight "small_magnitude" where
  type
    CFieldType SDL_HapticLeftRight "small_magnitude" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticLeftRight -> Proxy# "small_magnitude" -> Int
offset# = \Proxy# SDL_HapticLeftRight
_ -> \Proxy# "small_magnitude"
_ -> Int
10

-- | A structure containing a template for the SDL_HAPTIC_CUSTOM effect.
--
--     This struct is exclusively for the SDL_HAPTIC_CUSTOM effect.
--
--     A custom force feedback effect is much like a periodic effect, where the application can define its exact shape. You will have to allocate the data yourself. Data should consist of channels * samples Uint16 samples.
--
--     If channels is one, the effect is rotated using the defined direction. Otherwise it uses the samples in data for the different axes.
--
--     @since 3.2.0
--
--     [See also]: 'sDL_HAPTIC_CUSTOM', 'SDL_HapticEffect'
--
--     [C declaration]: @struct SDL_HapticCustom@, defined at @SDL3\/SDL_haptic.h 836:16@
data SDL_HapticCustom = SDL_HapticCustom
  { SDL_HapticCustom -> SDL_HapticEffectType
type' :: SDL_HapticEffectType
  -- ^ SDL_HAPTIC_CUSTOM
  --
  --          [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 839:26@
  , SDL_HapticCustom -> SDL_HapticDirection
direction :: SDL_HapticDirection
  -- ^ Direction of the effect.
  --
  --          [C declaration]: @direction@, defined at @SDL3\/SDL_haptic.h 840:25@
  , SDL_HapticCustom -> Uint32
length :: SDL3.Sys.Bindgen.Stdinc.Uint32
  -- ^ Duration of the effect.
  --
  --          [C declaration]: @length@, defined at @SDL3\/SDL_haptic.h 843:12@
  , SDL_HapticCustom -> Uint16
delay :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Delay before starting the effect.
  --
  --          [C declaration]: @delay@, defined at @SDL3\/SDL_haptic.h 844:12@
  , SDL_HapticCustom -> Uint16
button :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Button that triggers the effect.
  --
  --          [C declaration]: @button@, defined at @SDL3\/SDL_haptic.h 847:12@
  , SDL_HapticCustom -> Uint16
interval :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ How soon it can be triggered again after button.
  --
  --          [C declaration]: @interval@, defined at @SDL3\/SDL_haptic.h 848:12@
  , SDL_HapticCustom -> Uint8
channels :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ Axes to use, minimum of one.
  --
  --          [C declaration]: @channels@, defined at @SDL3\/SDL_haptic.h 851:11@
  , SDL_HapticCustom -> Uint16
period :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Sample periods.
  --
  --          [C declaration]: @period@, defined at @SDL3\/SDL_haptic.h 852:12@
  , SDL_HapticCustom -> Uint16
samples :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Amount of samples.
  --
  --          [C declaration]: @samples@, defined at @SDL3\/SDL_haptic.h 853:12@
  , SDL_HapticCustom -> Ptr Uint16
data' :: BG.Ptr SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Should contain channels*samples items.
  --
  --          [C declaration]: @data@, defined at @SDL3\/SDL_haptic.h 854:13@
  , SDL_HapticCustom -> Uint16
attack_length :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Duration of the attack.
  --
  --          [C declaration]: @attack_length@, defined at @SDL3\/SDL_haptic.h 857:12@
  , SDL_HapticCustom -> Uint16
attack_level :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Level at the start of the attack.
  --
  --          [C declaration]: @attack_level@, defined at @SDL3\/SDL_haptic.h 858:12@
  , SDL_HapticCustom -> Uint16
fade_length :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Duration of the fade.
  --
  --          [C declaration]: @fade_length@, defined at @SDL3\/SDL_haptic.h 859:12@
  , SDL_HapticCustom -> Uint16
fade_level :: SDL3.Sys.Bindgen.Stdinc.Uint16
  -- ^ Level at the end of the fade.
  --
  --          [C declaration]: @fade_level@, defined at @SDL3\/SDL_haptic.h 860:12@
  }
  deriving stock ((forall x. SDL_HapticCustom -> Rep SDL_HapticCustom x)
-> (forall x. Rep SDL_HapticCustom x -> SDL_HapticCustom)
-> Generic SDL_HapticCustom
forall x. Rep SDL_HapticCustom x -> SDL_HapticCustom
forall x. SDL_HapticCustom -> Rep SDL_HapticCustom x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_HapticCustom -> Rep SDL_HapticCustom x
from :: forall x. SDL_HapticCustom -> Rep SDL_HapticCustom x
$cto :: forall x. Rep SDL_HapticCustom x -> SDL_HapticCustom
to :: forall x. Rep SDL_HapticCustom x -> SDL_HapticCustom
BG.Generic, SDL_HapticCustom -> SDL_HapticCustom -> Bool
(SDL_HapticCustom -> SDL_HapticCustom -> Bool)
-> (SDL_HapticCustom -> SDL_HapticCustom -> Bool)
-> Eq SDL_HapticCustom
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_HapticCustom -> SDL_HapticCustom -> Bool
== :: SDL_HapticCustom -> SDL_HapticCustom -> Bool
$c/= :: SDL_HapticCustom -> SDL_HapticCustom -> Bool
/= :: SDL_HapticCustom -> SDL_HapticCustom -> Bool
Eq, Int -> SDL_HapticCustom -> ShowS
[SDL_HapticCustom] -> ShowS
SDL_HapticCustom -> String
(Int -> SDL_HapticCustom -> ShowS)
-> (SDL_HapticCustom -> String)
-> ([SDL_HapticCustom] -> ShowS)
-> Show SDL_HapticCustom
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_HapticCustom -> ShowS
showsPrec :: Int -> SDL_HapticCustom -> ShowS
$cshow :: SDL_HapticCustom -> String
show :: SDL_HapticCustom -> String
$cshowList :: [SDL_HapticCustom] -> ShowS
showList :: [SDL_HapticCustom] -> ShowS
Show)

instance Marshal.StaticSize SDL_HapticCustom where
  staticSizeOf :: Proxy SDL_HapticCustom -> Int
staticSizeOf = \Proxy SDL_HapticCustom
_ -> (Int
56 :: Int)

  staticAlignment :: Proxy SDL_HapticCustom -> Int
staticAlignment = \Proxy SDL_HapticCustom
_ -> (Int
8 :: Int)

instance Marshal.ReadRaw SDL_HapticCustom where
  readRaw :: Ptr SDL_HapticCustom -> IO SDL_HapticCustom
readRaw =
    \Ptr SDL_HapticCustom
ptr0 ->
      (SDL_HapticEffectType
 -> SDL_HapticDirection
 -> Uint32
 -> Uint16
 -> Uint16
 -> Uint16
 -> Uint8
 -> Uint16
 -> Uint16
 -> Ptr Uint16
 -> Uint16
 -> Uint16
 -> Uint16
 -> Uint16
 -> SDL_HapticCustom)
-> IO
     (SDL_HapticEffectType
      -> SDL_HapticDirection
      -> Uint32
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint8
      -> Uint16
      -> Uint16
      -> Ptr Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticCustom)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SDL_HapticEffectType
-> SDL_HapticDirection
-> Uint32
-> Uint16
-> Uint16
-> Uint16
-> Uint8
-> Uint16
-> Uint16
-> Ptr Uint16
-> Uint16
-> Uint16
-> Uint16
-> Uint16
-> SDL_HapticCustom
SDL_HapticCustom
        IO
  (SDL_HapticEffectType
   -> SDL_HapticDirection
   -> Uint32
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint8
   -> Uint16
   -> Uint16
   -> Ptr Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticCustom)
-> IO SDL_HapticEffectType
-> IO
     (SDL_HapticDirection
      -> Uint32
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint8
      -> Uint16
      -> Uint16
      -> Ptr Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticCustom)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "type'"
-> Ptr SDL_HapticCustom -> IO (CFieldType SDL_HapticCustom "type'")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'") Ptr SDL_HapticCustom
ptr0
        IO
  (SDL_HapticDirection
   -> Uint32
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint8
   -> Uint16
   -> Uint16
   -> Ptr Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticCustom)
-> IO SDL_HapticDirection
-> IO
     (Uint32
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint8
      -> Uint16
      -> Uint16
      -> Ptr Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticCustom)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "direction"
-> Ptr SDL_HapticCustom
-> IO (CFieldType SDL_HapticCustom "direction")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"direction") Ptr SDL_HapticCustom
ptr0
        IO
  (Uint32
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint8
   -> Uint16
   -> Uint16
   -> Ptr Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticCustom)
-> IO Uint32
-> IO
     (Uint16
      -> Uint16
      -> Uint16
      -> Uint8
      -> Uint16
      -> Uint16
      -> Ptr Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticCustom)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "length"
-> Ptr SDL_HapticCustom
-> IO (CFieldType SDL_HapticCustom "length")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length") Ptr SDL_HapticCustom
ptr0
        IO
  (Uint16
   -> Uint16
   -> Uint16
   -> Uint8
   -> Uint16
   -> Uint16
   -> Ptr Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticCustom)
-> IO Uint16
-> IO
     (Uint16
      -> Uint16
      -> Uint8
      -> Uint16
      -> Uint16
      -> Ptr Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticCustom)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "delay"
-> Ptr SDL_HapticCustom -> IO (CFieldType SDL_HapticCustom "delay")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"delay") Ptr SDL_HapticCustom
ptr0
        IO
  (Uint16
   -> Uint16
   -> Uint8
   -> Uint16
   -> Uint16
   -> Ptr Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticCustom)
-> IO Uint16
-> IO
     (Uint16
      -> Uint8
      -> Uint16
      -> Uint16
      -> Ptr Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticCustom)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "button"
-> Ptr SDL_HapticCustom
-> IO (CFieldType SDL_HapticCustom "button")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"button") Ptr SDL_HapticCustom
ptr0
        IO
  (Uint16
   -> Uint8
   -> Uint16
   -> Uint16
   -> Ptr Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticCustom)
-> IO Uint16
-> IO
     (Uint8
      -> Uint16
      -> Uint16
      -> Ptr Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticCustom)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "interval"
-> Ptr SDL_HapticCustom
-> IO (CFieldType SDL_HapticCustom "interval")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"interval") Ptr SDL_HapticCustom
ptr0
        IO
  (Uint8
   -> Uint16
   -> Uint16
   -> Ptr Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticCustom)
-> IO Uint8
-> IO
     (Uint16
      -> Uint16
      -> Ptr Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticCustom)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "channels"
-> Ptr SDL_HapticCustom
-> IO (CFieldType SDL_HapticCustom "channels")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"channels") Ptr SDL_HapticCustom
ptr0
        IO
  (Uint16
   -> Uint16
   -> Ptr Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticCustom)
-> IO Uint16
-> IO
     (Uint16
      -> Ptr Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> Uint16
      -> SDL_HapticCustom)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "period"
-> Ptr SDL_HapticCustom
-> IO (CFieldType SDL_HapticCustom "period")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"period") Ptr SDL_HapticCustom
ptr0
        IO
  (Uint16
   -> Ptr Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> Uint16
   -> SDL_HapticCustom)
-> IO Uint16
-> IO
     (Ptr Uint16
      -> Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticCustom)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "samples"
-> Ptr SDL_HapticCustom
-> IO (CFieldType SDL_HapticCustom "samples")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"samples") Ptr SDL_HapticCustom
ptr0
        IO
  (Ptr Uint16
   -> Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticCustom)
-> IO (Ptr Uint16)
-> IO (Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticCustom)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "data'"
-> Ptr SDL_HapticCustom -> IO (CFieldType SDL_HapticCustom "data'")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"data'") Ptr SDL_HapticCustom
ptr0
        IO (Uint16 -> Uint16 -> Uint16 -> Uint16 -> SDL_HapticCustom)
-> IO Uint16 -> IO (Uint16 -> Uint16 -> Uint16 -> SDL_HapticCustom)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "attack_length"
-> Ptr SDL_HapticCustom
-> IO (CFieldType SDL_HapticCustom "attack_length")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_length") Ptr SDL_HapticCustom
ptr0
        IO (Uint16 -> Uint16 -> Uint16 -> SDL_HapticCustom)
-> IO Uint16 -> IO (Uint16 -> Uint16 -> SDL_HapticCustom)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "attack_level"
-> Ptr SDL_HapticCustom
-> IO (CFieldType SDL_HapticCustom "attack_level")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_level") Ptr SDL_HapticCustom
ptr0
        IO (Uint16 -> Uint16 -> SDL_HapticCustom)
-> IO Uint16 -> IO (Uint16 -> SDL_HapticCustom)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "fade_length"
-> Ptr SDL_HapticCustom
-> IO (CFieldType SDL_HapticCustom "fade_length")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_length") Ptr SDL_HapticCustom
ptr0
        IO (Uint16 -> SDL_HapticCustom) -> IO Uint16 -> IO SDL_HapticCustom
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "fade_level"
-> Ptr SDL_HapticCustom
-> IO (CFieldType SDL_HapticCustom "fade_level")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_level") Ptr SDL_HapticCustom
ptr0

instance Marshal.WriteRaw SDL_HapticCustom where
  writeRaw :: Ptr SDL_HapticCustom -> SDL_HapticCustom -> IO ()
writeRaw =
    \Ptr SDL_HapticCustom
ptr0 ->
      \SDL_HapticCustom
s1 ->
        case SDL_HapticCustom
s1 of
          SDL_HapticCustom
            SDL_HapticEffectType
type'2
            SDL_HapticDirection
direction3
            Uint32
length4
            Uint16
delay5
            Uint16
button6
            Uint16
interval7
            Uint8
channels8
            Uint16
period9
            Uint16
samples10
            Ptr Uint16
data'11
            Uint16
attack_length12
            Uint16
attack_level13
            Uint16
fade_length14
            Uint16
fade_level15 ->
              Proxy "type'"
-> Ptr SDL_HapticCustom
-> CFieldType SDL_HapticCustom "type'"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'") Ptr SDL_HapticCustom
ptr0 CFieldType SDL_HapticCustom "type'"
SDL_HapticEffectType
type'2
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "direction"
-> Ptr SDL_HapticCustom
-> CFieldType SDL_HapticCustom "direction"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"direction") Ptr SDL_HapticCustom
ptr0 CFieldType SDL_HapticCustom "direction"
SDL_HapticDirection
direction3
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "length"
-> Ptr SDL_HapticCustom
-> CFieldType SDL_HapticCustom "length"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length") Ptr SDL_HapticCustom
ptr0 CFieldType SDL_HapticCustom "length"
Uint32
length4
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "delay"
-> Ptr SDL_HapticCustom
-> CFieldType SDL_HapticCustom "delay"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"delay") Ptr SDL_HapticCustom
ptr0 CFieldType SDL_HapticCustom "delay"
Uint16
delay5
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "button"
-> Ptr SDL_HapticCustom
-> CFieldType SDL_HapticCustom "button"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"button") Ptr SDL_HapticCustom
ptr0 CFieldType SDL_HapticCustom "button"
Uint16
button6
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "interval"
-> Ptr SDL_HapticCustom
-> CFieldType SDL_HapticCustom "interval"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"interval") Ptr SDL_HapticCustom
ptr0 CFieldType SDL_HapticCustom "interval"
Uint16
interval7
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "channels"
-> Ptr SDL_HapticCustom
-> CFieldType SDL_HapticCustom "channels"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"channels") Ptr SDL_HapticCustom
ptr0 CFieldType SDL_HapticCustom "channels"
Uint8
channels8
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "period"
-> Ptr SDL_HapticCustom
-> CFieldType SDL_HapticCustom "period"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"period") Ptr SDL_HapticCustom
ptr0 CFieldType SDL_HapticCustom "period"
Uint16
period9
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "samples"
-> Ptr SDL_HapticCustom
-> CFieldType SDL_HapticCustom "samples"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"samples") Ptr SDL_HapticCustom
ptr0 CFieldType SDL_HapticCustom "samples"
Uint16
samples10
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "data'"
-> Ptr SDL_HapticCustom
-> CFieldType SDL_HapticCustom "data'"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"data'") Ptr SDL_HapticCustom
ptr0 Ptr Uint16
CFieldType SDL_HapticCustom "data'"
data'11
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "attack_length"
-> Ptr SDL_HapticCustom
-> CFieldType SDL_HapticCustom "attack_length"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_length") Ptr SDL_HapticCustom
ptr0 CFieldType SDL_HapticCustom "attack_length"
Uint16
attack_length12
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "attack_level"
-> Ptr SDL_HapticCustom
-> CFieldType SDL_HapticCustom "attack_level"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_level") Ptr SDL_HapticCustom
ptr0 CFieldType SDL_HapticCustom "attack_level"
Uint16
attack_level13
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "fade_length"
-> Ptr SDL_HapticCustom
-> CFieldType SDL_HapticCustom "fade_length"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_length") Ptr SDL_HapticCustom
ptr0 CFieldType SDL_HapticCustom "fade_length"
Uint16
fade_length14
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "fade_level"
-> Ptr SDL_HapticCustom
-> CFieldType SDL_HapticCustom "fade_level"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_level") Ptr SDL_HapticCustom
ptr0 CFieldType SDL_HapticCustom "fade_level"
Uint16
fade_level15

deriving via Marshal.EquivStorable SDL_HapticCustom instance BG.Storable SDL_HapticCustom

deriving via Struct.IsStructViaReadRaw SDL_HapticCustom instance Struct.IsStruct SDL_HapticCustom

-- | SDL_HAPTIC_CUSTOM
--
--     [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 839:26@
instance
  (ty ~ SDL_HapticEffectType)
  => BG.CompatHasField.HasField "type'" SDL_HapticCustom ty
  where
  hasField :: SDL_HapticCustom -> (ty -> SDL_HapticCustom, ty)
hasField =
    \SDL_HapticCustom
x0 ->
      ( \ty
y1 ->
          SDL_HapticCustom
            { type' :: SDL_HapticEffectType
type' = ty
SDL_HapticEffectType
y1
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCustom
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCustom
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCustom
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCustom
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCustom
x0
            , channels :: Uint8
channels = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"channels" SDL_HapticCustom
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticCustom
x0
            , samples :: Uint16
samples = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"samples" SDL_HapticCustom
x0
            , data' :: Ptr Uint16
data' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"data'" SDL_HapticCustom
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticCustom
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticCustom
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticCustom
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticCustom
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCustom
x0
      )

instance
  (ty ~ SDL_HapticEffectType)
  => BG.HasField "type'" (BG.Ptr SDL_HapticCustom) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCustom -> Ptr ty
getField = Proxy "type'"
-> Ptr SDL_HapticCustom
-> Ptr (CFieldType SDL_HapticCustom "type'")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'")

instance HasCField.HasCField SDL_HapticCustom "type'" where
  type
    CFieldType SDL_HapticCustom "type'" =
      SDL_HapticEffectType

  offset# :: Proxy# SDL_HapticCustom -> Proxy# "type'" -> Int
offset# = \Proxy# SDL_HapticCustom
_ -> \Proxy# "type'"
_ -> Int
0

-- | Direction of the effect.
--
--     [C declaration]: @direction@, defined at @SDL3\/SDL_haptic.h 840:25@
instance
  (ty ~ SDL_HapticDirection)
  => BG.CompatHasField.HasField "direction" SDL_HapticCustom ty
  where
  hasField :: SDL_HapticCustom -> (ty -> SDL_HapticCustom, ty)
hasField =
    \SDL_HapticCustom
x0 ->
      ( \ty
y1 ->
          SDL_HapticCustom
            { direction :: SDL_HapticDirection
direction = ty
SDL_HapticDirection
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCustom
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCustom
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCustom
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCustom
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCustom
x0
            , channels :: Uint8
channels = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"channels" SDL_HapticCustom
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticCustom
x0
            , samples :: Uint16
samples = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"samples" SDL_HapticCustom
x0
            , data' :: Ptr Uint16
data' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"data'" SDL_HapticCustom
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticCustom
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticCustom
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticCustom
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticCustom
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCustom
x0
      )

instance
  (ty ~ SDL_HapticDirection)
  => BG.HasField "direction" (BG.Ptr SDL_HapticCustom) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCustom -> Ptr ty
getField = Proxy "direction"
-> Ptr SDL_HapticCustom
-> Ptr (CFieldType SDL_HapticCustom "direction")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"direction")

instance HasCField.HasCField SDL_HapticCustom "direction" where
  type
    CFieldType SDL_HapticCustom "direction" =
      SDL_HapticDirection

  offset# :: Proxy# SDL_HapticCustom -> Proxy# "direction" -> Int
offset# = \Proxy# SDL_HapticCustom
_ -> \Proxy# "direction"
_ -> Int
4

-- | Duration of the effect.
--
--     [C declaration]: @length@, defined at @SDL3\/SDL_haptic.h 843:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "length" SDL_HapticCustom ty
  where
  hasField :: SDL_HapticCustom -> (ty -> SDL_HapticCustom, ty)
hasField =
    \SDL_HapticCustom
x0 ->
      ( \ty
y1 ->
          SDL_HapticCustom
            { length :: Uint32
length = ty
Uint32
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCustom
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCustom
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCustom
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCustom
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCustom
x0
            , channels :: Uint8
channels = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"channels" SDL_HapticCustom
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticCustom
x0
            , samples :: Uint16
samples = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"samples" SDL_HapticCustom
x0
            , data' :: Ptr Uint16
data' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"data'" SDL_HapticCustom
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticCustom
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticCustom
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticCustom
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticCustom
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCustom
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.HasField "length" (BG.Ptr SDL_HapticCustom) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCustom -> Ptr ty
getField = Proxy "length"
-> Ptr SDL_HapticCustom
-> Ptr (CFieldType SDL_HapticCustom "length")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"length")

instance HasCField.HasCField SDL_HapticCustom "length" where
  type
    CFieldType SDL_HapticCustom "length" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

  offset# :: Proxy# SDL_HapticCustom -> Proxy# "length" -> Int
offset# = \Proxy# SDL_HapticCustom
_ -> \Proxy# "length"
_ -> Int
20

-- | Delay before starting the effect.
--
--     [C declaration]: @delay@, defined at @SDL3\/SDL_haptic.h 844:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "delay" SDL_HapticCustom ty
  where
  hasField :: SDL_HapticCustom -> (ty -> SDL_HapticCustom, ty)
hasField =
    \SDL_HapticCustom
x0 ->
      ( \ty
y1 ->
          SDL_HapticCustom
            { delay :: Uint16
delay = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCustom
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCustom
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCustom
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCustom
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCustom
x0
            , channels :: Uint8
channels = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"channels" SDL_HapticCustom
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticCustom
x0
            , samples :: Uint16
samples = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"samples" SDL_HapticCustom
x0
            , data' :: Ptr Uint16
data' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"data'" SDL_HapticCustom
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticCustom
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticCustom
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticCustom
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticCustom
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCustom
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "delay" (BG.Ptr SDL_HapticCustom) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCustom -> Ptr ty
getField = Proxy "delay"
-> Ptr SDL_HapticCustom
-> Ptr (CFieldType SDL_HapticCustom "delay")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"delay")

instance HasCField.HasCField SDL_HapticCustom "delay" where
  type
    CFieldType SDL_HapticCustom "delay" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCustom -> Proxy# "delay" -> Int
offset# = \Proxy# SDL_HapticCustom
_ -> \Proxy# "delay"
_ -> Int
24

-- | Button that triggers the effect.
--
--     [C declaration]: @button@, defined at @SDL3\/SDL_haptic.h 847:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "button" SDL_HapticCustom ty
  where
  hasField :: SDL_HapticCustom -> (ty -> SDL_HapticCustom, ty)
hasField =
    \SDL_HapticCustom
x0 ->
      ( \ty
y1 ->
          SDL_HapticCustom
            { button :: Uint16
button = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCustom
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCustom
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCustom
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCustom
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCustom
x0
            , channels :: Uint8
channels = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"channels" SDL_HapticCustom
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticCustom
x0
            , samples :: Uint16
samples = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"samples" SDL_HapticCustom
x0
            , data' :: Ptr Uint16
data' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"data'" SDL_HapticCustom
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticCustom
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticCustom
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticCustom
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticCustom
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCustom
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "button" (BG.Ptr SDL_HapticCustom) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCustom -> Ptr ty
getField = Proxy "button"
-> Ptr SDL_HapticCustom
-> Ptr (CFieldType SDL_HapticCustom "button")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"button")

instance HasCField.HasCField SDL_HapticCustom "button" where
  type
    CFieldType SDL_HapticCustom "button" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCustom -> Proxy# "button" -> Int
offset# = \Proxy# SDL_HapticCustom
_ -> \Proxy# "button"
_ -> Int
26

-- | How soon it can be triggered again after button.
--
--     [C declaration]: @interval@, defined at @SDL3\/SDL_haptic.h 848:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "interval" SDL_HapticCustom ty
  where
  hasField :: SDL_HapticCustom -> (ty -> SDL_HapticCustom, ty)
hasField =
    \SDL_HapticCustom
x0 ->
      ( \ty
y1 ->
          SDL_HapticCustom
            { interval :: Uint16
interval = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCustom
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCustom
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCustom
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCustom
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCustom
x0
            , channels :: Uint8
channels = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"channels" SDL_HapticCustom
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticCustom
x0
            , samples :: Uint16
samples = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"samples" SDL_HapticCustom
x0
            , data' :: Ptr Uint16
data' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"data'" SDL_HapticCustom
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticCustom
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticCustom
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticCustom
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticCustom
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCustom
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "interval" (BG.Ptr SDL_HapticCustom) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCustom -> Ptr ty
getField = Proxy "interval"
-> Ptr SDL_HapticCustom
-> Ptr (CFieldType SDL_HapticCustom "interval")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"interval")

instance HasCField.HasCField SDL_HapticCustom "interval" where
  type
    CFieldType SDL_HapticCustom "interval" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCustom -> Proxy# "interval" -> Int
offset# = \Proxy# SDL_HapticCustom
_ -> \Proxy# "interval"
_ -> Int
28

-- | Axes to use, minimum of one.
--
--     [C declaration]: @channels@, defined at @SDL3\/SDL_haptic.h 851:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "channels" SDL_HapticCustom ty
  where
  hasField :: SDL_HapticCustom -> (ty -> SDL_HapticCustom, ty)
hasField =
    \SDL_HapticCustom
x0 ->
      ( \ty
y1 ->
          SDL_HapticCustom
            { channels :: Uint8
channels = ty
Uint8
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCustom
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCustom
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCustom
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCustom
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCustom
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCustom
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticCustom
x0
            , samples :: Uint16
samples = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"samples" SDL_HapticCustom
x0
            , data' :: Ptr Uint16
data' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"data'" SDL_HapticCustom
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticCustom
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticCustom
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticCustom
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticCustom
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"channels" SDL_HapticCustom
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "channels" (BG.Ptr SDL_HapticCustom) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCustom -> Ptr ty
getField = Proxy "channels"
-> Ptr SDL_HapticCustom
-> Ptr (CFieldType SDL_HapticCustom "channels")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"channels")

instance HasCField.HasCField SDL_HapticCustom "channels" where
  type
    CFieldType SDL_HapticCustom "channels" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_HapticCustom -> Proxy# "channels" -> Int
offset# = \Proxy# SDL_HapticCustom
_ -> \Proxy# "channels"
_ -> Int
30

-- | Sample periods.
--
--     [C declaration]: @period@, defined at @SDL3\/SDL_haptic.h 852:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "period" SDL_HapticCustom ty
  where
  hasField :: SDL_HapticCustom -> (ty -> SDL_HapticCustom, ty)
hasField =
    \SDL_HapticCustom
x0 ->
      ( \ty
y1 ->
          SDL_HapticCustom
            { period :: Uint16
period = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCustom
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCustom
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCustom
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCustom
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCustom
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCustom
x0
            , channels :: Uint8
channels = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"channels" SDL_HapticCustom
x0
            , samples :: Uint16
samples = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"samples" SDL_HapticCustom
x0
            , data' :: Ptr Uint16
data' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"data'" SDL_HapticCustom
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticCustom
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticCustom
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticCustom
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticCustom
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticCustom
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "period" (BG.Ptr SDL_HapticCustom) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCustom -> Ptr ty
getField = Proxy "period"
-> Ptr SDL_HapticCustom
-> Ptr (CFieldType SDL_HapticCustom "period")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"period")

instance HasCField.HasCField SDL_HapticCustom "period" where
  type
    CFieldType SDL_HapticCustom "period" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCustom -> Proxy# "period" -> Int
offset# = \Proxy# SDL_HapticCustom
_ -> \Proxy# "period"
_ -> Int
32

-- | Amount of samples.
--
--     [C declaration]: @samples@, defined at @SDL3\/SDL_haptic.h 853:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "samples" SDL_HapticCustom ty
  where
  hasField :: SDL_HapticCustom -> (ty -> SDL_HapticCustom, ty)
hasField =
    \SDL_HapticCustom
x0 ->
      ( \ty
y1 ->
          SDL_HapticCustom
            { samples :: Uint16
samples = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCustom
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCustom
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCustom
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCustom
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCustom
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCustom
x0
            , channels :: Uint8
channels = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"channels" SDL_HapticCustom
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticCustom
x0
            , data' :: Ptr Uint16
data' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"data'" SDL_HapticCustom
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticCustom
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticCustom
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticCustom
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticCustom
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"samples" SDL_HapticCustom
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "samples" (BG.Ptr SDL_HapticCustom) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCustom -> Ptr ty
getField = Proxy "samples"
-> Ptr SDL_HapticCustom
-> Ptr (CFieldType SDL_HapticCustom "samples")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"samples")

instance HasCField.HasCField SDL_HapticCustom "samples" where
  type
    CFieldType SDL_HapticCustom "samples" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCustom -> Proxy# "samples" -> Int
offset# = \Proxy# SDL_HapticCustom
_ -> \Proxy# "samples"
_ -> Int
34

-- | Should contain channels*samples items.
--
--     [C declaration]: @data@, defined at @SDL3\/SDL_haptic.h 854:13@
instance
  (ty ~ BG.Ptr SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "data'" SDL_HapticCustom ty
  where
  hasField :: SDL_HapticCustom -> (ty -> SDL_HapticCustom, ty)
hasField =
    \SDL_HapticCustom
x0 ->
      ( \ty
y1 ->
          SDL_HapticCustom
            { data' :: Ptr Uint16
data' = ty
Ptr Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCustom
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCustom
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCustom
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCustom
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCustom
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCustom
x0
            , channels :: Uint8
channels = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"channels" SDL_HapticCustom
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticCustom
x0
            , samples :: Uint16
samples = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"samples" SDL_HapticCustom
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticCustom
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticCustom
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticCustom
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticCustom
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"data'" SDL_HapticCustom
x0
      )

instance
  (ty ~ BG.Ptr SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "data'" (BG.Ptr SDL_HapticCustom) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCustom -> Ptr ty
getField = Proxy "data'"
-> Ptr SDL_HapticCustom
-> Ptr (CFieldType SDL_HapticCustom "data'")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"data'")

instance HasCField.HasCField SDL_HapticCustom "data'" where
  type
    CFieldType SDL_HapticCustom "data'" =
      BG.Ptr SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCustom -> Proxy# "data'" -> Int
offset# = \Proxy# SDL_HapticCustom
_ -> \Proxy# "data'"
_ -> Int
40

-- | Duration of the attack.
--
--     [C declaration]: @attack_length@, defined at @SDL3\/SDL_haptic.h 857:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "attack_length" SDL_HapticCustom ty
  where
  hasField :: SDL_HapticCustom -> (ty -> SDL_HapticCustom, ty)
hasField =
    \SDL_HapticCustom
x0 ->
      ( \ty
y1 ->
          SDL_HapticCustom
            { attack_length :: Uint16
attack_length = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCustom
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCustom
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCustom
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCustom
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCustom
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCustom
x0
            , channels :: Uint8
channels = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"channels" SDL_HapticCustom
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticCustom
x0
            , samples :: Uint16
samples = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"samples" SDL_HapticCustom
x0
            , data' :: Ptr Uint16
data' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"data'" SDL_HapticCustom
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticCustom
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticCustom
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticCustom
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticCustom
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "attack_length" (BG.Ptr SDL_HapticCustom) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCustom -> Ptr ty
getField =
    Proxy "attack_length"
-> Ptr SDL_HapticCustom
-> Ptr (CFieldType SDL_HapticCustom "attack_length")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_length")

instance HasCField.HasCField SDL_HapticCustom "attack_length" where
  type
    CFieldType SDL_HapticCustom "attack_length" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCustom -> Proxy# "attack_length" -> Int
offset# = \Proxy# SDL_HapticCustom
_ -> \Proxy# "attack_length"
_ -> Int
48

-- | Level at the start of the attack.
--
--     [C declaration]: @attack_level@, defined at @SDL3\/SDL_haptic.h 858:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "attack_level" SDL_HapticCustom ty
  where
  hasField :: SDL_HapticCustom -> (ty -> SDL_HapticCustom, ty)
hasField =
    \SDL_HapticCustom
x0 ->
      ( \ty
y1 ->
          SDL_HapticCustom
            { attack_level :: Uint16
attack_level = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCustom
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCustom
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCustom
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCustom
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCustom
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCustom
x0
            , channels :: Uint8
channels = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"channels" SDL_HapticCustom
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticCustom
x0
            , samples :: Uint16
samples = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"samples" SDL_HapticCustom
x0
            , data' :: Ptr Uint16
data' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"data'" SDL_HapticCustom
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticCustom
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticCustom
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticCustom
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticCustom
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "attack_level" (BG.Ptr SDL_HapticCustom) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCustom -> Ptr ty
getField =
    Proxy "attack_level"
-> Ptr SDL_HapticCustom
-> Ptr (CFieldType SDL_HapticCustom "attack_level")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"attack_level")

instance HasCField.HasCField SDL_HapticCustom "attack_level" where
  type
    CFieldType SDL_HapticCustom "attack_level" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCustom -> Proxy# "attack_level" -> Int
offset# = \Proxy# SDL_HapticCustom
_ -> \Proxy# "attack_level"
_ -> Int
50

-- | Duration of the fade.
--
--     [C declaration]: @fade_length@, defined at @SDL3\/SDL_haptic.h 859:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "fade_length" SDL_HapticCustom ty
  where
  hasField :: SDL_HapticCustom -> (ty -> SDL_HapticCustom, ty)
hasField =
    \SDL_HapticCustom
x0 ->
      ( \ty
y1 ->
          SDL_HapticCustom
            { fade_length :: Uint16
fade_length = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCustom
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCustom
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCustom
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCustom
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCustom
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCustom
x0
            , channels :: Uint8
channels = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"channels" SDL_HapticCustom
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticCustom
x0
            , samples :: Uint16
samples = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"samples" SDL_HapticCustom
x0
            , data' :: Ptr Uint16
data' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"data'" SDL_HapticCustom
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticCustom
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticCustom
x0
            , fade_level :: Uint16
fade_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticCustom
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticCustom
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "fade_length" (BG.Ptr SDL_HapticCustom) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCustom -> Ptr ty
getField =
    Proxy "fade_length"
-> Ptr SDL_HapticCustom
-> Ptr (CFieldType SDL_HapticCustom "fade_length")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_length")

instance HasCField.HasCField SDL_HapticCustom "fade_length" where
  type
    CFieldType SDL_HapticCustom "fade_length" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCustom -> Proxy# "fade_length" -> Int
offset# = \Proxy# SDL_HapticCustom
_ -> \Proxy# "fade_length"
_ -> Int
52

-- | Level at the end of the fade.
--
--     [C declaration]: @fade_level@, defined at @SDL3\/SDL_haptic.h 860:12@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.CompatHasField.HasField "fade_level" SDL_HapticCustom ty
  where
  hasField :: SDL_HapticCustom -> (ty -> SDL_HapticCustom, ty)
hasField =
    \SDL_HapticCustom
x0 ->
      ( \ty
y1 ->
          SDL_HapticCustom
            { fade_level :: Uint16
fade_level = ty
Uint16
y1
            , type' :: SDL_HapticEffectType
type' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticCustom
x0
            , direction :: SDL_HapticDirection
direction = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"direction" SDL_HapticCustom
x0
            , length :: Uint32
length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"length" SDL_HapticCustom
x0
            , delay :: Uint16
delay = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"delay" SDL_HapticCustom
x0
            , button :: Uint16
button = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"button" SDL_HapticCustom
x0
            , interval :: Uint16
interval = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"interval" SDL_HapticCustom
x0
            , channels :: Uint8
channels = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"channels" SDL_HapticCustom
x0
            , period :: Uint16
period = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"period" SDL_HapticCustom
x0
            , samples :: Uint16
samples = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"samples" SDL_HapticCustom
x0
            , data' :: Ptr Uint16
data' = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"data'" SDL_HapticCustom
x0
            , attack_length :: Uint16
attack_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_length" SDL_HapticCustom
x0
            , attack_level :: Uint16
attack_level = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"attack_level" SDL_HapticCustom
x0
            , fade_length :: Uint16
fade_length = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_length" SDL_HapticCustom
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"fade_level" SDL_HapticCustom
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint16)
  => BG.HasField "fade_level" (BG.Ptr SDL_HapticCustom) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticCustom -> Ptr ty
getField = Proxy "fade_level"
-> Ptr SDL_HapticCustom
-> Ptr (CFieldType SDL_HapticCustom "fade_level")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"fade_level")

instance HasCField.HasCField SDL_HapticCustom "fade_level" where
  type
    CFieldType SDL_HapticCustom "fade_level" =
      SDL3.Sys.Bindgen.Stdinc.Uint16

  offset# :: Proxy# SDL_HapticCustom -> Proxy# "fade_level" -> Int
offset# = \Proxy# SDL_HapticCustom
_ -> \Proxy# "fade_level"
_ -> Int
54

-- | The generic template for any haptic effect.
--
--     All values max at 32767 (0x7FFF). Signed values also can be negative. Time values unless specified otherwise are in milliseconds.
--
--     You can also pass SDL_HAPTIC_INFINITY to length instead of a 0-32767 value. Neither delay, interval, attack_length nor fade_length support SDL_HAPTIC_INFINITY. Fade will also not be used since effect never ends.
--
--     Additionally, the SDL_HAPTIC_RAMP effect does not support a duration of SDL_HAPTIC_INFINITY.
--
--     Button triggers may not be supported on all devices, it is advised to not use them if possible. Buttons start at index 1 instead of index 0 like the joystick.
--
--     If both attack_length and fade_level are 0, the envelope is not used, otherwise both values are used.
--
--     Common parts:
--
--     @
--     \/\/ Replay - All effects have this
--     Uint32 length;        \/\/ Duration of effect (ms).
--     Uint16 delay;         \/\/ Delay before starting effect.
--
--     \/\/ Trigger - All effects have this
--     Uint16 button;        \/\/ Button that triggers effect.
--     Uint16 interval;      \/\/ How soon before effect can be triggered again.
--
--     \/\/ Envelope - All effects except condition effects have this
--     Uint16 attack_length; \/\/ Duration of the attack (ms).
--     Uint16 attack_level;  \/\/ Level at the start of the attack.
--     Uint16 fade_length;   \/\/ Duration of the fade out (ms).
--     Uint16 fade_level;    \/\/ Level at the end of the fade.
--     @
--
--     Here we have an example of a constant effect evolution in time:
--
--     @
--     Strength
--     ^
--     |
--     |    effect level -->  _________________
--     |                     \/                 \\
--     |                    \/                   \\
--     |                   \/                     \\
--     |                  \/                       \\
--     | attack_level --> |                        \\
--     |                  |                        |  \<---  fade_level
--     |
--     +--------------------------------------------------> Time
--                        [--]                 [---]
--                        attack_length        fade_length
--
--     [------------------][-----------------------]
--     delay               length
--     @
--
--     Note either the attack_level or the fade_level may be above the actual effect level.
--
--     @since 3.2.0
--
--     [See also]: 'SDL_HapticConstant', 'SDL_HapticPeriodic', 'SDL_HapticCondition', 'SDL_HapticRamp', 'SDL_HapticLeftRight', 'SDL_HapticCustom'
--
--     [C declaration]: @union SDL_HapticEffect@, defined at @SDL3\/SDL_haptic.h 935:15@
newtype SDL_HapticEffect = SDL_HapticEffect
  { SDL_HapticEffect -> ByteArray
unwrap :: BG.ByteArray
  }
  deriving stock ((forall x. SDL_HapticEffect -> Rep SDL_HapticEffect x)
-> (forall x. Rep SDL_HapticEffect x -> SDL_HapticEffect)
-> Generic SDL_HapticEffect
forall x. Rep SDL_HapticEffect x -> SDL_HapticEffect
forall x. SDL_HapticEffect -> Rep SDL_HapticEffect x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_HapticEffect -> Rep SDL_HapticEffect x
from :: forall x. SDL_HapticEffect -> Rep SDL_HapticEffect x
$cto :: forall x. Rep SDL_HapticEffect x -> SDL_HapticEffect
to :: forall x. Rep SDL_HapticEffect x -> SDL_HapticEffect
BG.Generic)

deriving via BG.SizedByteArray 72 8 instance Marshal.StaticSize SDL_HapticEffect

deriving via BG.SizedByteArray 72 8 instance Marshal.ReadRaw SDL_HapticEffect

deriving via BG.SizedByteArray 72 8 instance Marshal.WriteRaw SDL_HapticEffect

deriving via Marshal.EquivStorable SDL_HapticEffect instance BG.Storable SDL_HapticEffect

deriving via BG.SizedByteArray 72 8 instance Union.IsUnion SDL_HapticEffect

-- | Effect type.
--
--     [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 938:26@
instance
  (ty ~ SDL_HapticEffectType)
  => BG.HasField "type'" SDL_HapticEffect ty
  where
  getField :: SDL_HapticEffect -> ty
getField = SDL_HapticEffect -> ty
forall payload union.
(Storable payload, Coercible union ByteArray) =>
union -> payload
BG.getUnionPayload

-- | Effect type.
--
--     [C declaration]: @type@, defined at @SDL3\/SDL_haptic.h 938:26@
instance
  (ty ~ SDL_HapticEffectType)
  => BG.CompatHasField.HasField "type'" SDL_HapticEffect ty
  where
  hasField :: SDL_HapticEffect -> (ty -> SDL_HapticEffect, ty)
hasField =
    \SDL_HapticEffect
x0 ->
      ( \ty
y1 ->
          ty -> SDL_HapticEffect -> SDL_HapticEffect
forall payload union.
(Storable payload, Coercible union ByteArray) =>
payload -> union -> union
BG.setUnionPayload ty
y1 SDL_HapticEffect
x0
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"type'" SDL_HapticEffect
x0
      )

instance
  (ty ~ SDL_HapticEffectType)
  => BG.HasField "type'" (BG.Ptr SDL_HapticEffect) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticEffect -> Ptr ty
getField = Proxy "type'"
-> Ptr SDL_HapticEffect
-> Ptr (CFieldType SDL_HapticEffect "type'")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"type'")

instance HasCField.HasCField SDL_HapticEffect "type'" where
  type
    CFieldType SDL_HapticEffect "type'" =
      SDL_HapticEffectType

  offset# :: Proxy# SDL_HapticEffect -> Proxy# "type'" -> Int
offset# = \Proxy# SDL_HapticEffect
_ -> \Proxy# "type'"
_ -> Int
0

-- | Constant effect.
--
--     [C declaration]: @constant@, defined at @SDL3\/SDL_haptic.h 939:24@
instance
  (ty ~ SDL_HapticConstant)
  => BG.HasField "constant" SDL_HapticEffect ty
  where
  getField :: SDL_HapticEffect -> ty
getField = SDL_HapticEffect -> ty
forall payload union.
(Storable payload, Coercible union ByteArray) =>
union -> payload
BG.getUnionPayload

-- | Constant effect.
--
--     [C declaration]: @constant@, defined at @SDL3\/SDL_haptic.h 939:24@
instance
  (ty ~ SDL_HapticConstant)
  => BG.CompatHasField.HasField "constant" SDL_HapticEffect ty
  where
  hasField :: SDL_HapticEffect -> (ty -> SDL_HapticEffect, ty)
hasField =
    \SDL_HapticEffect
x0 ->
      ( \ty
y1 ->
          ty -> SDL_HapticEffect -> SDL_HapticEffect
forall payload union.
(Storable payload, Coercible union ByteArray) =>
payload -> union -> union
BG.setUnionPayload ty
y1 SDL_HapticEffect
x0
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"constant" SDL_HapticEffect
x0
      )

instance
  (ty ~ SDL_HapticConstant)
  => BG.HasField "constant" (BG.Ptr SDL_HapticEffect) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticEffect -> Ptr ty
getField = Proxy "constant"
-> Ptr SDL_HapticEffect
-> Ptr (CFieldType SDL_HapticEffect "constant")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"constant")

instance HasCField.HasCField SDL_HapticEffect "constant" where
  type
    CFieldType SDL_HapticEffect "constant" =
      SDL_HapticConstant

  offset# :: Proxy# SDL_HapticEffect -> Proxy# "constant" -> Int
offset# = \Proxy# SDL_HapticEffect
_ -> \Proxy# "constant"
_ -> Int
0

-- | Periodic effect.
--
--     [C declaration]: @periodic@, defined at @SDL3\/SDL_haptic.h 940:24@
instance
  (ty ~ SDL_HapticPeriodic)
  => BG.HasField "periodic" SDL_HapticEffect ty
  where
  getField :: SDL_HapticEffect -> ty
getField = SDL_HapticEffect -> ty
forall payload union.
(Storable payload, Coercible union ByteArray) =>
union -> payload
BG.getUnionPayload

-- | Periodic effect.
--
--     [C declaration]: @periodic@, defined at @SDL3\/SDL_haptic.h 940:24@
instance
  (ty ~ SDL_HapticPeriodic)
  => BG.CompatHasField.HasField "periodic" SDL_HapticEffect ty
  where
  hasField :: SDL_HapticEffect -> (ty -> SDL_HapticEffect, ty)
hasField =
    \SDL_HapticEffect
x0 ->
      ( \ty
y1 ->
          ty -> SDL_HapticEffect -> SDL_HapticEffect
forall payload union.
(Storable payload, Coercible union ByteArray) =>
payload -> union -> union
BG.setUnionPayload ty
y1 SDL_HapticEffect
x0
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"periodic" SDL_HapticEffect
x0
      )

instance
  (ty ~ SDL_HapticPeriodic)
  => BG.HasField "periodic" (BG.Ptr SDL_HapticEffect) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticEffect -> Ptr ty
getField = Proxy "periodic"
-> Ptr SDL_HapticEffect
-> Ptr (CFieldType SDL_HapticEffect "periodic")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"periodic")

instance HasCField.HasCField SDL_HapticEffect "periodic" where
  type
    CFieldType SDL_HapticEffect "periodic" =
      SDL_HapticPeriodic

  offset# :: Proxy# SDL_HapticEffect -> Proxy# "periodic" -> Int
offset# = \Proxy# SDL_HapticEffect
_ -> \Proxy# "periodic"
_ -> Int
0

-- | Condition effect.
--
--     [C declaration]: @condition@, defined at @SDL3\/SDL_haptic.h 941:25@
instance
  (ty ~ SDL_HapticCondition)
  => BG.HasField "condition" SDL_HapticEffect ty
  where
  getField :: SDL_HapticEffect -> ty
getField = SDL_HapticEffect -> ty
forall payload union.
(Storable payload, Coercible union ByteArray) =>
union -> payload
BG.getUnionPayload

-- | Condition effect.
--
--     [C declaration]: @condition@, defined at @SDL3\/SDL_haptic.h 941:25@
instance
  (ty ~ SDL_HapticCondition)
  => BG.CompatHasField.HasField "condition" SDL_HapticEffect ty
  where
  hasField :: SDL_HapticEffect -> (ty -> SDL_HapticEffect, ty)
hasField =
    \SDL_HapticEffect
x0 ->
      ( \ty
y1 ->
          ty -> SDL_HapticEffect -> SDL_HapticEffect
forall payload union.
(Storable payload, Coercible union ByteArray) =>
payload -> union -> union
BG.setUnionPayload ty
y1 SDL_HapticEffect
x0
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"condition" SDL_HapticEffect
x0
      )

instance
  (ty ~ SDL_HapticCondition)
  => BG.HasField "condition" (BG.Ptr SDL_HapticEffect) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticEffect -> Ptr ty
getField = Proxy "condition"
-> Ptr SDL_HapticEffect
-> Ptr (CFieldType SDL_HapticEffect "condition")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"condition")

instance HasCField.HasCField SDL_HapticEffect "condition" where
  type
    CFieldType SDL_HapticEffect "condition" =
      SDL_HapticCondition

  offset# :: Proxy# SDL_HapticEffect -> Proxy# "condition" -> Int
offset# = \Proxy# SDL_HapticEffect
_ -> \Proxy# "condition"
_ -> Int
0

-- | Ramp effect.
--
--     [C declaration]: @ramp@, defined at @SDL3\/SDL_haptic.h 942:20@
instance (ty ~ SDL_HapticRamp) => BG.HasField "ramp" SDL_HapticEffect ty where
  getField :: SDL_HapticEffect -> ty
getField = SDL_HapticEffect -> ty
forall payload union.
(Storable payload, Coercible union ByteArray) =>
union -> payload
BG.getUnionPayload

-- | Ramp effect.
--
--     [C declaration]: @ramp@, defined at @SDL3\/SDL_haptic.h 942:20@
instance
  (ty ~ SDL_HapticRamp)
  => BG.CompatHasField.HasField "ramp" SDL_HapticEffect ty
  where
  hasField :: SDL_HapticEffect -> (ty -> SDL_HapticEffect, ty)
hasField =
    \SDL_HapticEffect
x0 ->
      ( \ty
y1 ->
          ty -> SDL_HapticEffect -> SDL_HapticEffect
forall payload union.
(Storable payload, Coercible union ByteArray) =>
payload -> union -> union
BG.setUnionPayload ty
y1 SDL_HapticEffect
x0
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"ramp" SDL_HapticEffect
x0
      )

instance
  (ty ~ SDL_HapticRamp)
  => BG.HasField "ramp" (BG.Ptr SDL_HapticEffect) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticEffect -> Ptr ty
getField = Proxy "ramp"
-> Ptr SDL_HapticEffect -> Ptr (CFieldType SDL_HapticEffect "ramp")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"ramp")

instance HasCField.HasCField SDL_HapticEffect "ramp" where
  type
    CFieldType SDL_HapticEffect "ramp" =
      SDL_HapticRamp

  offset# :: Proxy# SDL_HapticEffect -> Proxy# "ramp" -> Int
offset# = \Proxy# SDL_HapticEffect
_ -> \Proxy# "ramp"
_ -> Int
0

-- | Left\/Right effect.
--
--     [C declaration]: @leftright@, defined at @SDL3\/SDL_haptic.h 943:25@
instance
  (ty ~ SDL_HapticLeftRight)
  => BG.HasField "leftright" SDL_HapticEffect ty
  where
  getField :: SDL_HapticEffect -> ty
getField = SDL_HapticEffect -> ty
forall payload union.
(Storable payload, Coercible union ByteArray) =>
union -> payload
BG.getUnionPayload

-- | Left\/Right effect.
--
--     [C declaration]: @leftright@, defined at @SDL3\/SDL_haptic.h 943:25@
instance
  (ty ~ SDL_HapticLeftRight)
  => BG.CompatHasField.HasField "leftright" SDL_HapticEffect ty
  where
  hasField :: SDL_HapticEffect -> (ty -> SDL_HapticEffect, ty)
hasField =
    \SDL_HapticEffect
x0 ->
      ( \ty
y1 ->
          ty -> SDL_HapticEffect -> SDL_HapticEffect
forall payload union.
(Storable payload, Coercible union ByteArray) =>
payload -> union -> union
BG.setUnionPayload ty
y1 SDL_HapticEffect
x0
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"leftright" SDL_HapticEffect
x0
      )

instance
  (ty ~ SDL_HapticLeftRight)
  => BG.HasField "leftright" (BG.Ptr SDL_HapticEffect) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticEffect -> Ptr ty
getField = Proxy "leftright"
-> Ptr SDL_HapticEffect
-> Ptr (CFieldType SDL_HapticEffect "leftright")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"leftright")

instance HasCField.HasCField SDL_HapticEffect "leftright" where
  type
    CFieldType SDL_HapticEffect "leftright" =
      SDL_HapticLeftRight

  offset# :: Proxy# SDL_HapticEffect -> Proxy# "leftright" -> Int
offset# = \Proxy# SDL_HapticEffect
_ -> \Proxy# "leftright"
_ -> Int
0

-- | Custom effect.
--
--     [C declaration]: @custom@, defined at @SDL3\/SDL_haptic.h 944:22@
instance
  (ty ~ SDL_HapticCustom)
  => BG.HasField "custom" SDL_HapticEffect ty
  where
  getField :: SDL_HapticEffect -> ty
getField = SDL_HapticEffect -> ty
forall payload union.
(Storable payload, Coercible union ByteArray) =>
union -> payload
BG.getUnionPayload

-- | Custom effect.
--
--     [C declaration]: @custom@, defined at @SDL3\/SDL_haptic.h 944:22@
instance
  (ty ~ SDL_HapticCustom)
  => BG.CompatHasField.HasField "custom" SDL_HapticEffect ty
  where
  hasField :: SDL_HapticEffect -> (ty -> SDL_HapticEffect, ty)
hasField =
    \SDL_HapticEffect
x0 ->
      ( \ty
y1 ->
          ty -> SDL_HapticEffect -> SDL_HapticEffect
forall payload union.
(Storable payload, Coercible union ByteArray) =>
payload -> union -> union
BG.setUnionPayload ty
y1 SDL_HapticEffect
x0
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"custom" SDL_HapticEffect
x0
      )

instance
  (ty ~ SDL_HapticCustom)
  => BG.HasField "custom" (BG.Ptr SDL_HapticEffect) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticEffect -> Ptr ty
getField = Proxy "custom"
-> Ptr SDL_HapticEffect
-> Ptr (CFieldType SDL_HapticEffect "custom")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"custom")

instance HasCField.HasCField SDL_HapticEffect "custom" where
  type
    CFieldType SDL_HapticEffect "custom" =
      SDL_HapticCustom

  offset# :: Proxy# SDL_HapticEffect -> Proxy# "custom" -> Int
offset# = \Proxy# SDL_HapticEffect
_ -> \Proxy# "custom"
_ -> Int
0

-- | This is a unique ID for a haptic device for the time it is connected to the system, and is never reused for the lifetime of the application.
--
--     If the haptic device is disconnected and reconnected, it will get a new ID.
--
--     The value 0 is an invalid ID.
--
--     @since 3.2.0
--
--     [C declaration]: @SDL_HapticID@, defined at @SDL3\/SDL_haptic.h 957:16@
newtype SDL_HapticID = SDL_HapticID
  { SDL_HapticID -> Uint32
unwrap :: SDL3.Sys.Bindgen.Stdinc.Uint32
  }
  deriving stock ((forall x. SDL_HapticID -> Rep SDL_HapticID x)
-> (forall x. Rep SDL_HapticID x -> SDL_HapticID)
-> Generic SDL_HapticID
forall x. Rep SDL_HapticID x -> SDL_HapticID
forall x. SDL_HapticID -> Rep SDL_HapticID x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_HapticID -> Rep SDL_HapticID x
from :: forall x. SDL_HapticID -> Rep SDL_HapticID x
$cto :: forall x. Rep SDL_HapticID x -> SDL_HapticID
to :: forall x. Rep SDL_HapticID x -> SDL_HapticID
BG.Generic, SDL_HapticID -> SDL_HapticID -> Bool
(SDL_HapticID -> SDL_HapticID -> Bool)
-> (SDL_HapticID -> SDL_HapticID -> Bool) -> Eq SDL_HapticID
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_HapticID -> SDL_HapticID -> Bool
== :: SDL_HapticID -> SDL_HapticID -> Bool
$c/= :: SDL_HapticID -> SDL_HapticID -> Bool
/= :: SDL_HapticID -> SDL_HapticID -> Bool
Eq, Eq SDL_HapticID
Eq SDL_HapticID =>
(SDL_HapticID -> SDL_HapticID -> Ordering)
-> (SDL_HapticID -> SDL_HapticID -> Bool)
-> (SDL_HapticID -> SDL_HapticID -> Bool)
-> (SDL_HapticID -> SDL_HapticID -> Bool)
-> (SDL_HapticID -> SDL_HapticID -> Bool)
-> (SDL_HapticID -> SDL_HapticID -> SDL_HapticID)
-> (SDL_HapticID -> SDL_HapticID -> SDL_HapticID)
-> Ord SDL_HapticID
SDL_HapticID -> SDL_HapticID -> Bool
SDL_HapticID -> SDL_HapticID -> Ordering
SDL_HapticID -> SDL_HapticID -> SDL_HapticID
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SDL_HapticID -> SDL_HapticID -> Ordering
compare :: SDL_HapticID -> SDL_HapticID -> Ordering
$c< :: SDL_HapticID -> SDL_HapticID -> Bool
< :: SDL_HapticID -> SDL_HapticID -> Bool
$c<= :: SDL_HapticID -> SDL_HapticID -> Bool
<= :: SDL_HapticID -> SDL_HapticID -> Bool
$c> :: SDL_HapticID -> SDL_HapticID -> Bool
> :: SDL_HapticID -> SDL_HapticID -> Bool
$c>= :: SDL_HapticID -> SDL_HapticID -> Bool
>= :: SDL_HapticID -> SDL_HapticID -> Bool
$cmax :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
max :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
$cmin :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
min :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
Ord, ReadPrec [SDL_HapticID]
ReadPrec SDL_HapticID
Int -> ReadS SDL_HapticID
ReadS [SDL_HapticID]
(Int -> ReadS SDL_HapticID)
-> ReadS [SDL_HapticID]
-> ReadPrec SDL_HapticID
-> ReadPrec [SDL_HapticID]
-> Read SDL_HapticID
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS SDL_HapticID
readsPrec :: Int -> ReadS SDL_HapticID
$creadList :: ReadS [SDL_HapticID]
readList :: ReadS [SDL_HapticID]
$creadPrec :: ReadPrec SDL_HapticID
readPrec :: ReadPrec SDL_HapticID
$creadListPrec :: ReadPrec [SDL_HapticID]
readListPrec :: ReadPrec [SDL_HapticID]
Read, Int -> SDL_HapticID -> ShowS
[SDL_HapticID] -> ShowS
SDL_HapticID -> String
(Int -> SDL_HapticID -> ShowS)
-> (SDL_HapticID -> String)
-> ([SDL_HapticID] -> ShowS)
-> Show SDL_HapticID
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_HapticID -> ShowS
showsPrec :: Int -> SDL_HapticID -> ShowS
$cshow :: SDL_HapticID -> String
show :: SDL_HapticID -> String
$cshowList :: [SDL_HapticID] -> ShowS
showList :: [SDL_HapticID] -> ShowS
Show)
  deriving newtype
    ( Word64 -> Int -> SDL_HapticID
SDL_HapticID -> Int -> Word64
(SDL_HapticID -> Int -> Word64)
-> (Word64 -> Int -> SDL_HapticID) -> Bitfield SDL_HapticID
forall a.
(a -> Int -> Word64) -> (Word64 -> Int -> a) -> Bitfield a
$cnarrow :: SDL_HapticID -> Int -> Word64
narrow :: SDL_HapticID -> Int -> Word64
$cextend :: Word64 -> Int -> SDL_HapticID
extend :: Word64 -> Int -> SDL_HapticID
BG.Bitfield
    , Eq SDL_HapticID
SDL_HapticID
Eq SDL_HapticID =>
(SDL_HapticID -> SDL_HapticID -> SDL_HapticID)
-> (SDL_HapticID -> SDL_HapticID -> SDL_HapticID)
-> (SDL_HapticID -> SDL_HapticID -> SDL_HapticID)
-> (SDL_HapticID -> SDL_HapticID)
-> (SDL_HapticID -> Int -> SDL_HapticID)
-> (SDL_HapticID -> Int -> SDL_HapticID)
-> SDL_HapticID
-> (Int -> SDL_HapticID)
-> (SDL_HapticID -> Int -> SDL_HapticID)
-> (SDL_HapticID -> Int -> SDL_HapticID)
-> (SDL_HapticID -> Int -> SDL_HapticID)
-> (SDL_HapticID -> Int -> Bool)
-> (SDL_HapticID -> Maybe Int)
-> (SDL_HapticID -> Int)
-> (SDL_HapticID -> Bool)
-> (SDL_HapticID -> Int -> SDL_HapticID)
-> (SDL_HapticID -> Int -> SDL_HapticID)
-> (SDL_HapticID -> Int -> SDL_HapticID)
-> (SDL_HapticID -> Int -> SDL_HapticID)
-> (SDL_HapticID -> Int -> SDL_HapticID)
-> (SDL_HapticID -> Int -> SDL_HapticID)
-> (SDL_HapticID -> Int)
-> Bits SDL_HapticID
Int -> SDL_HapticID
SDL_HapticID -> Bool
SDL_HapticID -> Int
SDL_HapticID -> Maybe Int
SDL_HapticID -> SDL_HapticID
SDL_HapticID -> Int -> Bool
SDL_HapticID -> Int -> SDL_HapticID
SDL_HapticID -> SDL_HapticID -> SDL_HapticID
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
.&. :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
$c.|. :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
.|. :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
$cxor :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
xor :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
$ccomplement :: SDL_HapticID -> SDL_HapticID
complement :: SDL_HapticID -> SDL_HapticID
$cshift :: SDL_HapticID -> Int -> SDL_HapticID
shift :: SDL_HapticID -> Int -> SDL_HapticID
$crotate :: SDL_HapticID -> Int -> SDL_HapticID
rotate :: SDL_HapticID -> Int -> SDL_HapticID
$czeroBits :: SDL_HapticID
zeroBits :: SDL_HapticID
$cbit :: Int -> SDL_HapticID
bit :: Int -> SDL_HapticID
$csetBit :: SDL_HapticID -> Int -> SDL_HapticID
setBit :: SDL_HapticID -> Int -> SDL_HapticID
$cclearBit :: SDL_HapticID -> Int -> SDL_HapticID
clearBit :: SDL_HapticID -> Int -> SDL_HapticID
$ccomplementBit :: SDL_HapticID -> Int -> SDL_HapticID
complementBit :: SDL_HapticID -> Int -> SDL_HapticID
$ctestBit :: SDL_HapticID -> Int -> Bool
testBit :: SDL_HapticID -> Int -> Bool
$cbitSizeMaybe :: SDL_HapticID -> Maybe Int
bitSizeMaybe :: SDL_HapticID -> Maybe Int
$cbitSize :: SDL_HapticID -> Int
bitSize :: SDL_HapticID -> Int
$cisSigned :: SDL_HapticID -> Bool
isSigned :: SDL_HapticID -> Bool
$cshiftL :: SDL_HapticID -> Int -> SDL_HapticID
shiftL :: SDL_HapticID -> Int -> SDL_HapticID
$cunsafeShiftL :: SDL_HapticID -> Int -> SDL_HapticID
unsafeShiftL :: SDL_HapticID -> Int -> SDL_HapticID
$cshiftR :: SDL_HapticID -> Int -> SDL_HapticID
shiftR :: SDL_HapticID -> Int -> SDL_HapticID
$cunsafeShiftR :: SDL_HapticID -> Int -> SDL_HapticID
unsafeShiftR :: SDL_HapticID -> Int -> SDL_HapticID
$crotateL :: SDL_HapticID -> Int -> SDL_HapticID
rotateL :: SDL_HapticID -> Int -> SDL_HapticID
$crotateR :: SDL_HapticID -> Int -> SDL_HapticID
rotateR :: SDL_HapticID -> Int -> SDL_HapticID
$cpopCount :: SDL_HapticID -> Int
popCount :: SDL_HapticID -> Int
BG.Bits
    , Bits SDL_HapticID
Bits SDL_HapticID =>
(SDL_HapticID -> Int)
-> (SDL_HapticID -> Int)
-> (SDL_HapticID -> Int)
-> FiniteBits SDL_HapticID
SDL_HapticID -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: SDL_HapticID -> Int
finiteBitSize :: SDL_HapticID -> Int
$ccountLeadingZeros :: SDL_HapticID -> Int
countLeadingZeros :: SDL_HapticID -> Int
$ccountTrailingZeros :: SDL_HapticID -> Int
countTrailingZeros :: SDL_HapticID -> Int
BG.FiniteBits
    , FFIType SDL_HapticID -> SDL_HapticID
SDL_HapticID -> FFIType SDL_HapticID
(SDL_HapticID -> FFIType SDL_HapticID)
-> (FFIType SDL_HapticID -> SDL_HapticID)
-> HasFFIType SDL_HapticID
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_HapticID -> FFIType SDL_HapticID
toFFIType :: SDL_HapticID -> FFIType SDL_HapticID
$cfromFFIType :: FFIType SDL_HapticID -> SDL_HapticID
fromFFIType :: FFIType SDL_HapticID -> SDL_HapticID
BG.HasFFIType
    , Ord SDL_HapticID
Ord SDL_HapticID =>
((SDL_HapticID, SDL_HapticID) -> [SDL_HapticID])
-> ((SDL_HapticID, SDL_HapticID) -> SDL_HapticID -> Int)
-> ((SDL_HapticID, SDL_HapticID) -> SDL_HapticID -> Int)
-> ((SDL_HapticID, SDL_HapticID) -> SDL_HapticID -> Bool)
-> ((SDL_HapticID, SDL_HapticID) -> Int)
-> ((SDL_HapticID, SDL_HapticID) -> Int)
-> Ix SDL_HapticID
(SDL_HapticID, SDL_HapticID) -> Int
(SDL_HapticID, SDL_HapticID) -> [SDL_HapticID]
(SDL_HapticID, SDL_HapticID) -> SDL_HapticID -> Bool
(SDL_HapticID, SDL_HapticID) -> SDL_HapticID -> Int
forall a.
Ord a =>
((a, a) -> [a])
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Bool)
-> ((a, a) -> Int)
-> ((a, a) -> Int)
-> Ix a
$crange :: (SDL_HapticID, SDL_HapticID) -> [SDL_HapticID]
range :: (SDL_HapticID, SDL_HapticID) -> [SDL_HapticID]
$cindex :: (SDL_HapticID, SDL_HapticID) -> SDL_HapticID -> Int
index :: (SDL_HapticID, SDL_HapticID) -> SDL_HapticID -> Int
$cunsafeIndex :: (SDL_HapticID, SDL_HapticID) -> SDL_HapticID -> Int
unsafeIndex :: (SDL_HapticID, SDL_HapticID) -> SDL_HapticID -> Int
$cinRange :: (SDL_HapticID, SDL_HapticID) -> SDL_HapticID -> Bool
inRange :: (SDL_HapticID, SDL_HapticID) -> SDL_HapticID -> Bool
$crangeSize :: (SDL_HapticID, SDL_HapticID) -> Int
rangeSize :: (SDL_HapticID, SDL_HapticID) -> Int
$cunsafeRangeSize :: (SDL_HapticID, SDL_HapticID) -> Int
unsafeRangeSize :: (SDL_HapticID, SDL_HapticID) -> Int
BG.Ix
    , Addr# -> Int# -> SDL_HapticID
ByteArray# -> Int# -> SDL_HapticID
Proxy SDL_HapticID -> Int#
SDL_HapticID -> Int#
(Proxy SDL_HapticID -> Int#)
-> (SDL_HapticID -> Int#)
-> (Proxy SDL_HapticID -> Int#)
-> (SDL_HapticID -> Int#)
-> (ByteArray# -> Int# -> SDL_HapticID)
-> (forall s.
    MutableByteArray# s
    -> Int# -> State# s -> (# State# s, SDL_HapticID #))
-> (forall s.
    MutableByteArray# s
    -> Int# -> SDL_HapticID -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s
    -> Int# -> Int# -> SDL_HapticID -> State# s -> State# s)
-> (Addr# -> Int# -> SDL_HapticID)
-> (forall s.
    Addr# -> Int# -> State# s -> (# State# s, SDL_HapticID #))
-> (forall s.
    Addr# -> Int# -> SDL_HapticID -> State# s -> State# s)
-> (forall s.
    Addr# -> Int# -> Int# -> SDL_HapticID -> State# s -> State# s)
-> Prim SDL_HapticID
forall s.
Addr# -> Int# -> Int# -> SDL_HapticID -> State# s -> State# s
forall s. Addr# -> Int# -> State# s -> (# State# s, SDL_HapticID #)
forall s. Addr# -> Int# -> SDL_HapticID -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_HapticID -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_HapticID #)
forall s.
MutableByteArray# s -> Int# -> SDL_HapticID -> State# s -> State# s
forall a.
(Proxy a -> Int#)
-> (a -> Int#)
-> (Proxy a -> Int#)
-> (a -> Int#)
-> (ByteArray# -> Int# -> a)
-> (forall s.
    MutableByteArray# s -> Int# -> State# s -> (# State# s, a #))
-> (forall s.
    MutableByteArray# s -> Int# -> a -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s)
-> (Addr# -> Int# -> a)
-> (forall s. Addr# -> Int# -> State# s -> (# State# s, a #))
-> (forall s. Addr# -> Int# -> a -> State# s -> State# s)
-> (forall s. Addr# -> Int# -> Int# -> a -> State# s -> State# s)
-> Prim a
$csizeOfType# :: Proxy SDL_HapticID -> Int#
sizeOfType# :: Proxy SDL_HapticID -> Int#
$csizeOf# :: SDL_HapticID -> Int#
sizeOf# :: SDL_HapticID -> Int#
$calignmentOfType# :: Proxy SDL_HapticID -> Int#
alignmentOfType# :: Proxy SDL_HapticID -> Int#
$calignment# :: SDL_HapticID -> Int#
alignment# :: SDL_HapticID -> Int#
$cindexByteArray# :: ByteArray# -> Int# -> SDL_HapticID
indexByteArray# :: ByteArray# -> Int# -> SDL_HapticID
$creadByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_HapticID #)
readByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_HapticID #)
$cwriteByteArray# :: forall s.
MutableByteArray# s -> Int# -> SDL_HapticID -> State# s -> State# s
writeByteArray# :: forall s.
MutableByteArray# s -> Int# -> SDL_HapticID -> State# s -> State# s
$csetByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_HapticID -> State# s -> State# s
setByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_HapticID -> State# s -> State# s
$cindexOffAddr# :: Addr# -> Int# -> SDL_HapticID
indexOffAddr# :: Addr# -> Int# -> SDL_HapticID
$creadOffAddr# :: forall s. Addr# -> Int# -> State# s -> (# State# s, SDL_HapticID #)
readOffAddr# :: forall s. Addr# -> Int# -> State# s -> (# State# s, SDL_HapticID #)
$cwriteOffAddr# :: forall s. Addr# -> Int# -> SDL_HapticID -> State# s -> State# s
writeOffAddr# :: forall s. Addr# -> Int# -> SDL_HapticID -> State# s -> State# s
$csetOffAddr# :: forall s.
Addr# -> Int# -> Int# -> SDL_HapticID -> State# s -> State# s
setOffAddr# :: forall s.
Addr# -> Int# -> Int# -> SDL_HapticID -> State# s -> State# s
BG.Prim
    , Ptr SDL_HapticID -> IO SDL_HapticID
Ptr SDL_HapticID -> Int -> IO SDL_HapticID
Ptr SDL_HapticID -> Int -> SDL_HapticID -> IO ()
Ptr SDL_HapticID -> SDL_HapticID -> IO ()
SDL_HapticID -> Int
(SDL_HapticID -> Int)
-> (SDL_HapticID -> Int)
-> (Ptr SDL_HapticID -> Int -> IO SDL_HapticID)
-> (Ptr SDL_HapticID -> Int -> SDL_HapticID -> IO ())
-> (forall b. Ptr b -> Int -> IO SDL_HapticID)
-> (forall b. Ptr b -> Int -> SDL_HapticID -> IO ())
-> (Ptr SDL_HapticID -> IO SDL_HapticID)
-> (Ptr SDL_HapticID -> SDL_HapticID -> IO ())
-> Storable SDL_HapticID
forall b. Ptr b -> Int -> IO SDL_HapticID
forall b. Ptr b -> Int -> SDL_HapticID -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: SDL_HapticID -> Int
sizeOf :: SDL_HapticID -> Int
$calignment :: SDL_HapticID -> Int
alignment :: SDL_HapticID -> Int
$cpeekElemOff :: Ptr SDL_HapticID -> Int -> IO SDL_HapticID
peekElemOff :: Ptr SDL_HapticID -> Int -> IO SDL_HapticID
$cpokeElemOff :: Ptr SDL_HapticID -> Int -> SDL_HapticID -> IO ()
pokeElemOff :: Ptr SDL_HapticID -> Int -> SDL_HapticID -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SDL_HapticID
peekByteOff :: forall b. Ptr b -> Int -> IO SDL_HapticID
$cpokeByteOff :: forall b. Ptr b -> Int -> SDL_HapticID -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> SDL_HapticID -> IO ()
$cpeek :: Ptr SDL_HapticID -> IO SDL_HapticID
peek :: Ptr SDL_HapticID -> IO SDL_HapticID
$cpoke :: Ptr SDL_HapticID -> SDL_HapticID -> IO ()
poke :: Ptr SDL_HapticID -> SDL_HapticID -> IO ()
BG.Storable
    , SDL_HapticID
SDL_HapticID -> SDL_HapticID -> Bounded SDL_HapticID
forall a. a -> a -> Bounded a
$cminBound :: SDL_HapticID
minBound :: SDL_HapticID
$cmaxBound :: SDL_HapticID
maxBound :: SDL_HapticID
Bounded
    , Int -> SDL_HapticID
SDL_HapticID -> Int
SDL_HapticID -> [SDL_HapticID]
SDL_HapticID -> SDL_HapticID
SDL_HapticID -> SDL_HapticID -> [SDL_HapticID]
SDL_HapticID -> SDL_HapticID -> SDL_HapticID -> [SDL_HapticID]
(SDL_HapticID -> SDL_HapticID)
-> (SDL_HapticID -> SDL_HapticID)
-> (Int -> SDL_HapticID)
-> (SDL_HapticID -> Int)
-> (SDL_HapticID -> [SDL_HapticID])
-> (SDL_HapticID -> SDL_HapticID -> [SDL_HapticID])
-> (SDL_HapticID -> SDL_HapticID -> [SDL_HapticID])
-> (SDL_HapticID -> SDL_HapticID -> SDL_HapticID -> [SDL_HapticID])
-> Enum SDL_HapticID
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: SDL_HapticID -> SDL_HapticID
succ :: SDL_HapticID -> SDL_HapticID
$cpred :: SDL_HapticID -> SDL_HapticID
pred :: SDL_HapticID -> SDL_HapticID
$ctoEnum :: Int -> SDL_HapticID
toEnum :: Int -> SDL_HapticID
$cfromEnum :: SDL_HapticID -> Int
fromEnum :: SDL_HapticID -> Int
$cenumFrom :: SDL_HapticID -> [SDL_HapticID]
enumFrom :: SDL_HapticID -> [SDL_HapticID]
$cenumFromThen :: SDL_HapticID -> SDL_HapticID -> [SDL_HapticID]
enumFromThen :: SDL_HapticID -> SDL_HapticID -> [SDL_HapticID]
$cenumFromTo :: SDL_HapticID -> SDL_HapticID -> [SDL_HapticID]
enumFromTo :: SDL_HapticID -> SDL_HapticID -> [SDL_HapticID]
$cenumFromThenTo :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID -> [SDL_HapticID]
enumFromThenTo :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID -> [SDL_HapticID]
Enum
    , Enum SDL_HapticID
Real SDL_HapticID
(Real SDL_HapticID, Enum SDL_HapticID) =>
(SDL_HapticID -> SDL_HapticID -> SDL_HapticID)
-> (SDL_HapticID -> SDL_HapticID -> SDL_HapticID)
-> (SDL_HapticID -> SDL_HapticID -> SDL_HapticID)
-> (SDL_HapticID -> SDL_HapticID -> SDL_HapticID)
-> (SDL_HapticID -> SDL_HapticID -> (SDL_HapticID, SDL_HapticID))
-> (SDL_HapticID -> SDL_HapticID -> (SDL_HapticID, SDL_HapticID))
-> (SDL_HapticID -> Integer)
-> Integral SDL_HapticID
SDL_HapticID -> Integer
SDL_HapticID -> SDL_HapticID -> (SDL_HapticID, SDL_HapticID)
SDL_HapticID -> SDL_HapticID -> SDL_HapticID
forall a.
(Real a, Enum a) =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> (a, a))
-> (a -> a -> (a, a))
-> (a -> Integer)
-> Integral a
$cquot :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
quot :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
$crem :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
rem :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
$cdiv :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
div :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
$cmod :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
mod :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
$cquotRem :: SDL_HapticID -> SDL_HapticID -> (SDL_HapticID, SDL_HapticID)
quotRem :: SDL_HapticID -> SDL_HapticID -> (SDL_HapticID, SDL_HapticID)
$cdivMod :: SDL_HapticID -> SDL_HapticID -> (SDL_HapticID, SDL_HapticID)
divMod :: SDL_HapticID -> SDL_HapticID -> (SDL_HapticID, SDL_HapticID)
$ctoInteger :: SDL_HapticID -> Integer
toInteger :: SDL_HapticID -> Integer
Integral
    , Ptr SDL_HapticID -> IO SDL_HapticID
(Ptr SDL_HapticID -> IO SDL_HapticID) -> ReadRaw SDL_HapticID
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr SDL_HapticID -> IO SDL_HapticID
readRaw :: Ptr SDL_HapticID -> IO SDL_HapticID
Marshal.ReadRaw
    , Proxy SDL_HapticID -> Int
(Proxy SDL_HapticID -> Int)
-> (Proxy SDL_HapticID -> Int) -> StaticSize SDL_HapticID
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy SDL_HapticID -> Int
staticSizeOf :: Proxy SDL_HapticID -> Int
$cstaticAlignment :: Proxy SDL_HapticID -> Int
staticAlignment :: Proxy SDL_HapticID -> Int
Marshal.StaticSize
    , Ptr SDL_HapticID -> SDL_HapticID -> IO ()
(Ptr SDL_HapticID -> SDL_HapticID -> IO ())
-> WriteRaw SDL_HapticID
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr SDL_HapticID -> SDL_HapticID -> IO ()
writeRaw :: Ptr SDL_HapticID -> SDL_HapticID -> IO ()
Marshal.WriteRaw
    , Integer -> SDL_HapticID
SDL_HapticID -> SDL_HapticID
SDL_HapticID -> SDL_HapticID -> SDL_HapticID
(SDL_HapticID -> SDL_HapticID -> SDL_HapticID)
-> (SDL_HapticID -> SDL_HapticID -> SDL_HapticID)
-> (SDL_HapticID -> SDL_HapticID -> SDL_HapticID)
-> (SDL_HapticID -> SDL_HapticID)
-> (SDL_HapticID -> SDL_HapticID)
-> (SDL_HapticID -> SDL_HapticID)
-> (Integer -> SDL_HapticID)
-> Num SDL_HapticID
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
+ :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
$c- :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
- :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
$c* :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
* :: SDL_HapticID -> SDL_HapticID -> SDL_HapticID
$cnegate :: SDL_HapticID -> SDL_HapticID
negate :: SDL_HapticID -> SDL_HapticID
$cabs :: SDL_HapticID -> SDL_HapticID
abs :: SDL_HapticID -> SDL_HapticID
$csignum :: SDL_HapticID -> SDL_HapticID
signum :: SDL_HapticID -> SDL_HapticID
$cfromInteger :: Integer -> SDL_HapticID
fromInteger :: Integer -> SDL_HapticID
Num
    , Num SDL_HapticID
Ord SDL_HapticID
(Num SDL_HapticID, Ord SDL_HapticID) =>
(SDL_HapticID -> Rational) -> Real SDL_HapticID
SDL_HapticID -> Rational
forall a. (Num a, Ord a) => (a -> Rational) -> Real a
$ctoRational :: SDL_HapticID -> Rational
toRational :: SDL_HapticID -> Rational
Real
    )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "unwrap" SDL_HapticID ty
  where
  hasField :: SDL_HapticID -> (ty -> SDL_HapticID, ty)
hasField =
    \SDL_HapticID
x0 ->
      ( \ty
y1 ->
          SDL_HapticID{unwrap :: Uint32
unwrap = ty
Uint32
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_HapticID
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.HasField "unwrap" (BG.Ptr SDL_HapticID) (BG.Ptr ty)
  where
  getField :: Ptr SDL_HapticID -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_HapticID -> Ptr (CFieldType SDL_HapticID "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_HapticID "unwrap" where
  type
    CFieldType SDL_HapticID "unwrap" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

  offset# :: Proxy# SDL_HapticID -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_HapticID
_ -> \Proxy# "unwrap"
_ -> Int
0