{-# LINE 1 "src/Graphics/QML/Internal/BindPrim.chs" #-}
{-# LANGUAGE
ForeignFunctionInterface
#-}
module Graphics.QML.Internal.BindPrim where
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.Ptr as C2HSImp
import Graphics.QML.Internal.Types
import Foreign.C.Types
import Foreign.Marshal.Alloc
import Foreign.Marshal.Utils
import Foreign.Ptr
import System.IO.Unsafe
cIntToEnum :: Enum a => CInt -> a
cIntToEnum :: forall a. Enum a => CInt -> a
cIntToEnum = Int -> a
forall a. Enum a => Int -> a
toEnum (Int -> a) -> (CInt -> Int) -> CInt -> a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral
enumToCInt :: Enum a => a -> CInt
enumToCInt :: forall a. Enum a => a -> CInt
enumToCInt = Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (a -> Int) -> a -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> Int
forall a. Enum a => a -> Int
fromEnum
newtype HsQMLStringHandle = HsQMLStringHandle (C2HSImp.Ptr (HsQMLStringHandle))
{-# LINE 27 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlGetStringSize :: IO ((Int))
hsqmlGetStringSize =
hsqmlGetStringSize'_ >>= \res ->
let {res' = fromIntegral res} in
return (res')
{-# LINE 31 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlStringSize :: Int
hsqmlStringSize = unsafeDupablePerformIO $ hsqmlGetStringSize
hsqmlInitString :: (HsQMLStringHandle) -> IO ()
hsqmlInitString :: HsQMLStringHandle -> IO ()
hsqmlInitString HsQMLStringHandle
a1 =
let {a1' :: HsQMLStringHandle
a1' = HsQMLStringHandle -> HsQMLStringHandle
forall a. a -> a
id HsQMLStringHandle
a1} in
HsQMLStringHandle -> IO ()
hsqmlInitString'_ HsQMLStringHandle
a1' IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
{-# LINE 38 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlDeinitString :: (HsQMLStringHandle) -> IO ()
hsqmlDeinitString a1 =
let {a1' = id a1} in
hsqmlDeinitString'_ a1' >>
return ()
{-# LINE 42 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlWriteString :: (Int) -> (HsQMLStringHandle) -> IO ((Ptr CUShort))
hsqmlWriteString a1 a2 =
let {a1' = fromIntegral a1} in
let {a2' = id a2} in
hsqmlWriteString'_ a1' a2' >>= \res ->
let {res' = id res} in
return (res')
{-# LINE 47 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlReadString :: (HsQMLStringHandle) -> (Ptr (Ptr CUShort)) -> IO ((Int))
hsqmlReadString a1 a2 =
let {a1' = id a1} in
let {a2' = id a2} in
hsqmlReadString'_ a1' a2' >>= \res ->
let {res' = fromIntegral res} in
return (res')
{-# LINE 52 "src/Graphics/QML/Internal/BindPrim.chs" #-}
withStrHndl :: (HsQMLStringHandle -> IO b) -> IO b
withStrHndl contFn =
allocaBytes hsqmlStringSize $ \ptr -> do
let str = HsQMLStringHandle ptr
hsqmlInitString str
ret <- contFn str
hsqmlDeinitString str
return ret
newtype HsQMLJValHandle = HsQMLJValHandle (C2HSImp.Ptr (HsQMLJValHandle))
{-# LINE 67 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlGetJvalSize :: IO ((Int))
hsqmlGetJvalSize :: IO Int
hsqmlGetJvalSize =
IO CULong
hsqmlGetJvalSize'_ IO CULong -> (CULong -> IO Int) -> IO Int
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \CULong
res ->
let {res' :: Int
res' = CULong -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral CULong
res} in
Int -> IO Int
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Int
res')
{-# LINE 71 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlJValSize :: Int
hsqmlJValSize = unsafeDupablePerformIO $ hsqmlGetJvalSize
hsqmlGetJvalTypeid :: IO ((Int))
hsqmlGetJvalTypeid :: IO Int
hsqmlGetJvalTypeid =
IO CInt
hsqmlGetJvalTypeid'_ IO CInt -> (CInt -> IO Int) -> IO Int
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \CInt
res ->
let {res' :: Int
res' = CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral CInt
res} in
Int -> IO Int
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Int
res')
{-# LINE 78 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlJValTypeId :: Int
hsqmlJValTypeId = unsafeDupablePerformIO $ hsqmlGetJvalTypeid
hsqmlInitJvalNull :: (HsQMLJValHandle) -> (Bool) -> IO ()
hsqmlInitJvalNull :: HsQMLJValHandle -> Bool -> IO ()
hsqmlInitJvalNull HsQMLJValHandle
a1 Bool
a2 =
let {a1' :: HsQMLJValHandle
a1' = HsQMLJValHandle -> HsQMLJValHandle
forall a. a -> a
id HsQMLJValHandle
a1} in
let {a2' :: CInt
a2' = Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
a2} in
HsQMLJValHandle -> CInt -> IO ()
hsqmlInitJvalNull'_ HsQMLJValHandle
a1' CInt
a2' IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
{-# LINE 86 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlDeinitJval :: (HsQMLJValHandle) -> IO ()
hsqmlDeinitJval a1 =
let {a1' = id a1} in
hsqmlDeinitJval'_ a1' >>
return ()
{-# LINE 90 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlSetJval :: (HsQMLJValHandle) -> (HsQMLJValHandle) -> IO ()
hsqmlSetJval a1 a2 =
let {a1' = id a1} in
let {a2' = id a2} in
hsqmlSetJval'_ a1' a2' >>
return ()
{-# LINE 95 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlInitJvalBool :: (HsQMLJValHandle) -> (Bool) -> IO ()
hsqmlInitJvalBool a1 a2 =
let {a1' = id a1} in
let {a2' = fromBool a2} in
hsqmlInitJvalBool'_ a1' a2' >>
return ()
{-# LINE 100 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlIsJvalBool :: (HsQMLJValHandle) -> IO ((Bool))
hsqmlIsJvalBool a1 =
let {a1' = id a1} in
hsqmlIsJvalBool'_ a1' >>= \res ->
let {res' = toBool res} in
return (res')
{-# LINE 104 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlGetJvalBool :: (HsQMLJValHandle) -> IO ((Bool))
hsqmlGetJvalBool a1 =
let {a1' = id a1} in
hsqmlGetJvalBool'_ a1' >>= \res ->
let {res' = toBool res} in
return (res')
{-# LINE 108 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlInitJvalInt :: (HsQMLJValHandle) -> (CInt) -> IO ()
hsqmlInitJvalInt a1 a2 =
let {a1' = id a1} in
let {a2' = id a2} in
hsqmlInitJvalInt'_ a1' a2' >>
return ()
{-# LINE 113 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlInitJvalDouble :: (HsQMLJValHandle) -> (CDouble) -> IO ()
hsqmlInitJvalDouble a1 a2 =
let {a1' = id a1} in
let {a2' = id a2} in
hsqmlInitJvalDouble'_ a1' a2' >>
return ()
{-# LINE 118 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlIsJvalNumber :: (HsQMLJValHandle) -> IO ((Bool))
hsqmlIsJvalNumber a1 =
let {a1' = id a1} in
hsqmlIsJvalNumber'_ a1' >>= \res ->
let {res' = toBool res} in
return (res')
{-# LINE 122 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlGetJvalInt :: (HsQMLJValHandle) -> IO ((CInt))
hsqmlGetJvalInt a1 =
let {a1' = id a1} in
hsqmlGetJvalInt'_ a1' >>= \res ->
let {res' = id res} in
return (res')
{-# LINE 126 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlGetJvalDouble :: (HsQMLJValHandle) -> IO ((CDouble))
hsqmlGetJvalDouble a1 =
let {a1' = id a1} in
hsqmlGetJvalDouble'_ a1' >>= \res ->
let {res' = id res} in
return (res')
{-# LINE 130 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlInitJvalString :: (HsQMLJValHandle) -> (HsQMLStringHandle) -> IO ()
hsqmlInitJvalString a1 a2 =
let {a1' = id a1} in
let {a2' = id a2} in
hsqmlInitJvalString'_ a1' a2' >>
return ()
{-# LINE 135 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlIsJvalString :: (HsQMLJValHandle) -> IO ((Bool))
hsqmlIsJvalString a1 =
let {a1' = id a1} in
hsqmlIsJvalString'_ a1' >>= \res ->
let {res' = toBool res} in
return (res')
{-# LINE 139 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlGetJvalString :: (HsQMLJValHandle) -> (HsQMLStringHandle) -> IO ()
hsqmlGetJvalString a1 a2 =
let {a1' = id a1} in
let {a2' = id a2} in
hsqmlGetJvalString'_ a1' a2' >>
return ()
{-# LINE 144 "src/Graphics/QML/Internal/BindPrim.chs" #-}
fromJVal ::
Strength -> (HsQMLJValHandle -> IO Bool) -> (HsQMLJValHandle -> IO a) ->
HsQMLJValHandle -> IO (Maybe a)
fromJVal :: forall a.
Strength
-> (HsQMLJValHandle -> IO Bool)
-> (HsQMLJValHandle -> IO a)
-> HsQMLJValHandle
-> IO (Maybe a)
fromJVal Strength
Strong HsQMLJValHandle -> IO Bool
_ HsQMLJValHandle -> IO a
getFn HsQMLJValHandle
jval =
(a -> Maybe a) -> IO a -> IO (Maybe a)
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap a -> Maybe a
forall a. a -> Maybe a
Just (IO a -> IO (Maybe a)) -> IO a -> IO (Maybe a)
forall a b. (a -> b) -> a -> b
$ HsQMLJValHandle -> IO a
getFn HsQMLJValHandle
jval
fromJVal Strength
Weak HsQMLJValHandle -> IO Bool
isFn HsQMLJValHandle -> IO a
getFn HsQMLJValHandle
jval = do
Bool
is <- HsQMLJValHandle -> IO Bool
isFn HsQMLJValHandle
jval
if Bool
is then (a -> Maybe a) -> IO a -> IO (Maybe a)
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap a -> Maybe a
forall a. a -> Maybe a
Just (IO a -> IO (Maybe a)) -> IO a -> IO (Maybe a)
forall a b. (a -> b) -> a -> b
$ HsQMLJValHandle -> IO a
getFn HsQMLJValHandle
jval else Maybe a -> IO (Maybe a)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe a
forall a. Maybe a
Nothing
withJVal ::
(HsQMLJValHandle -> a -> IO ()) -> a -> (HsQMLJValHandle -> IO b) -> IO b
withJVal :: forall a b.
(HsQMLJValHandle -> a -> IO ())
-> a -> (HsQMLJValHandle -> IO b) -> IO b
withJVal HsQMLJValHandle -> a -> IO ()
initFn a
val HsQMLJValHandle -> IO b
contFn =
Int -> (Ptr HsQMLJValHandle -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
hsqmlJValSize ((Ptr HsQMLJValHandle -> IO b) -> IO b)
-> (Ptr HsQMLJValHandle -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr HsQMLJValHandle
ptr -> do
let jval :: HsQMLJValHandle
jval = Ptr HsQMLJValHandle -> HsQMLJValHandle
HsQMLJValHandle Ptr HsQMLJValHandle
ptr
HsQMLJValHandle -> a -> IO ()
initFn HsQMLJValHandle
jval a
val
b
ret <- HsQMLJValHandle -> IO b
contFn HsQMLJValHandle
jval
HsQMLJValHandle -> IO ()
hsqmlDeinitJval HsQMLJValHandle
jval
b -> IO b
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return b
ret
hsqmlInitJvalArray :: (HsQMLJValHandle) -> (Int) -> IO ()
hsqmlInitJvalArray :: HsQMLJValHandle -> Int -> IO ()
hsqmlInitJvalArray HsQMLJValHandle
a1 Int
a2 =
let {a1' :: HsQMLJValHandle
a1' = HsQMLJValHandle -> HsQMLJValHandle
forall a. a -> a
id HsQMLJValHandle
a1} in
let {a2' :: CUInt
a2' = Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a2} in
HsQMLJValHandle -> CUInt -> IO ()
hsqmlInitJvalArray'_ HsQMLJValHandle
a1' CUInt
a2' IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
{-# LINE 172 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlIsJvalArray :: (HsQMLJValHandle) -> IO ((Bool))
hsqmlIsJvalArray a1 =
let {a1' = id a1} in
hsqmlIsJvalArray'_ a1' >>= \res ->
let {res' = toBool res} in
return (res')
{-# LINE 176 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlGetJvalArrayLength :: (HsQMLJValHandle) -> IO ((Int))
hsqmlGetJvalArrayLength a1 =
let {a1' = id a1} in
hsqmlGetJvalArrayLength'_ a1' >>= \res ->
let {res' = fromIntegral res} in
return (res')
{-# LINE 180 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlJvalArrayGet :: (HsQMLJValHandle) -> (Int) -> (HsQMLJValHandle) -> IO ()
hsqmlJvalArrayGet a1 a2 a3 =
let {a1' = id a1} in
let {a2' = fromIntegral a2} in
let {a3' = id a3} in
hsqmlJvalArrayGet'_ a1' a2' a3' >>
return ()
{-# LINE 186 "src/Graphics/QML/Internal/BindPrim.chs" #-}
hsqmlJvalArraySet :: (HsQMLJValHandle) -> (Int) -> (HsQMLJValHandle) -> IO ()
hsqmlJvalArraySet a1 a2 a3 =
let {a1' = id a1} in
let {a2' = fromIntegral a2} in
let {a3' = id a3} in
hsqmlJvalArraySet'_ a1' a2' a3' >>
return ()
{-# LINE 192 "src/Graphics/QML/Internal/BindPrim.chs" #-}
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_get_string_size"
hsqmlGetStringSize'_ :: (IO C2HSImp.CULong)
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_init_string"
hsqmlInitString'_ :: ((HsQMLStringHandle) -> (IO ()))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_deinit_string"
hsqmlDeinitString'_ :: ((HsQMLStringHandle) -> (IO ()))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_write_string"
hsqmlWriteString'_ :: (C2HSImp.CInt -> ((HsQMLStringHandle) -> (IO (C2HSImp.Ptr C2HSImp.CUShort))))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_read_string"
hsqmlReadString'_ :: ((HsQMLStringHandle) -> ((C2HSImp.Ptr (C2HSImp.Ptr C2HSImp.CUShort)) -> (IO C2HSImp.CInt)))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_get_jval_size"
hsqmlGetJvalSize'_ :: (IO C2HSImp.CULong)
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_get_jval_typeid"
hsqmlGetJvalTypeid'_ :: (IO C2HSImp.CInt)
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_init_jval_null"
hsqmlInitJvalNull'_ :: ((HsQMLJValHandle) -> (C2HSImp.CInt -> (IO ())))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_deinit_jval"
hsqmlDeinitJval'_ :: ((HsQMLJValHandle) -> (IO ()))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_set_jval"
hsqmlSetJval'_ :: ((HsQMLJValHandle) -> ((HsQMLJValHandle) -> (IO ())))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_init_jval_bool"
hsqmlInitJvalBool'_ :: ((HsQMLJValHandle) -> (C2HSImp.CInt -> (IO ())))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_is_jval_bool"
hsqmlIsJvalBool'_ :: ((HsQMLJValHandle) -> (IO C2HSImp.CInt))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_get_jval_bool"
hsqmlGetJvalBool'_ :: ((HsQMLJValHandle) -> (IO C2HSImp.CInt))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_init_jval_int"
hsqmlInitJvalInt'_ :: ((HsQMLJValHandle) -> (C2HSImp.CInt -> (IO ())))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_init_jval_double"
hsqmlInitJvalDouble'_ :: ((HsQMLJValHandle) -> (C2HSImp.CDouble -> (IO ())))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_is_jval_number"
hsqmlIsJvalNumber'_ :: ((HsQMLJValHandle) -> (IO C2HSImp.CInt))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_get_jval_int"
hsqmlGetJvalInt'_ :: ((HsQMLJValHandle) -> (IO C2HSImp.CInt))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_get_jval_double"
hsqmlGetJvalDouble'_ :: ((HsQMLJValHandle) -> (IO C2HSImp.CDouble))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_init_jval_string"
hsqmlInitJvalString'_ :: ((HsQMLJValHandle) -> ((HsQMLStringHandle) -> (IO ())))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_is_jval_string"
hsqmlIsJvalString'_ :: ((HsQMLJValHandle) -> (IO C2HSImp.CInt))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_get_jval_string"
hsqmlGetJvalString'_ :: ((HsQMLJValHandle) -> ((HsQMLStringHandle) -> (IO ())))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_init_jval_array"
hsqmlInitJvalArray'_ :: ((HsQMLJValHandle) -> (C2HSImp.CUInt -> (IO ())))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_is_jval_array"
hsqmlIsJvalArray'_ :: ((HsQMLJValHandle) -> (IO C2HSImp.CInt))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_get_jval_array_length"
hsqmlGetJvalArrayLength'_ :: ((HsQMLJValHandle) -> (IO C2HSImp.CUInt))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_jval_array_get"
hsqmlJvalArrayGet'_ :: ((HsQMLJValHandle) -> (C2HSImp.CUInt -> ((HsQMLJValHandle) -> (IO ()))))
foreign import ccall unsafe "Graphics/QML/Internal/BindPrim.chs.h hsqml_jval_array_set"
hsqmlJvalArraySet'_ :: ((HsQMLJValHandle) -> (C2HSImp.CUInt -> ((HsQMLJValHandle) -> (IO ()))))