{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.GstAudio.Structs.DsdInfo
(
DsdInfo(..) ,
newZeroDsdInfo ,
#if defined(ENABLE_OVERLOADING)
ResolveDsdInfoMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
DsdInfoCopyMethodInfo ,
#endif
dsdInfoCopy ,
#if defined(ENABLE_OVERLOADING)
DsdInfoFreeMethodInfo ,
#endif
dsdInfoFree ,
dsdInfoFromCaps ,
dsdInfoInit ,
#if defined(ENABLE_OVERLOADING)
DsdInfoIsEqualMethodInfo ,
#endif
dsdInfoIsEqual ,
dsdInfoNew ,
dsdInfoNewFromCaps ,
#if defined(ENABLE_OVERLOADING)
DsdInfoSetFormatMethodInfo ,
#endif
dsdInfoSetFormat ,
#if defined(ENABLE_OVERLOADING)
DsdInfoToCapsMethodInfo ,
#endif
dsdInfoToCaps ,
#if defined(ENABLE_OVERLOADING)
dsdInfo_channels ,
#endif
getDsdInfoChannels ,
setDsdInfoChannels ,
#if defined(ENABLE_OVERLOADING)
dsdInfo_flags ,
#endif
getDsdInfoFlags ,
setDsdInfoFlags ,
#if defined(ENABLE_OVERLOADING)
dsdInfo_format ,
#endif
getDsdInfoFormat ,
setDsdInfoFormat ,
#if defined(ENABLE_OVERLOADING)
dsdInfo_layout ,
#endif
getDsdInfoLayout ,
setDsdInfoLayout ,
#if defined(ENABLE_OVERLOADING)
dsdInfo_rate ,
#endif
getDsdInfoRate ,
setDsdInfoRate ,
#if defined(ENABLE_OVERLOADING)
dsdInfo_reversedBytes ,
#endif
getDsdInfoReversedBytes ,
setDsdInfoReversedBytes ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
import qualified Data.Word as DW
import qualified Data.Int as DI
import qualified System.Posix.Types as SPT
import qualified Foreign.C.Types as FCT
#if MIN_VERSION_base(4,18,0)
import qualified GI.Gst.Structs.Caps as Gst.Caps
import {-# SOURCE #-} qualified GI.GstAudio.Enums as GstAudio.Enums
import {-# SOURCE #-} qualified GI.GstAudio.Flags as GstAudio.Flags
#else
import qualified GI.Gst.Structs.Caps as Gst.Caps
import {-# SOURCE #-} qualified GI.GstAudio.Enums as GstAudio.Enums
import {-# SOURCE #-} qualified GI.GstAudio.Flags as GstAudio.Flags
#endif
newtype DsdInfo = DsdInfo (SP.ManagedPtr DsdInfo)
deriving (DsdInfo -> DsdInfo -> Bool
(DsdInfo -> DsdInfo -> Bool)
-> (DsdInfo -> DsdInfo -> Bool) -> Eq DsdInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DsdInfo -> DsdInfo -> Bool
== :: DsdInfo -> DsdInfo -> Bool
$c/= :: DsdInfo -> DsdInfo -> Bool
/= :: DsdInfo -> DsdInfo -> Bool
Eq)
instance SP.ManagedPtrNewtype DsdInfo where
toManagedPtr :: DsdInfo -> ManagedPtr DsdInfo
toManagedPtr (DsdInfo ManagedPtr DsdInfo
p) = ManagedPtr DsdInfo
p
foreign import ccall "gst_dsd_info_get_type" c_gst_dsd_info_get_type ::
IO GType
type instance O.ParentTypes DsdInfo = '[]
instance O.HasParentTypes DsdInfo
instance B.Types.TypedObject DsdInfo where
glibType :: IO GType
glibType = IO GType
c_gst_dsd_info_get_type
instance B.Types.GBoxed DsdInfo
instance B.GValue.IsGValue (Maybe DsdInfo) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gst_dsd_info_get_type
gvalueSet_ :: Ptr GValue -> Maybe DsdInfo -> IO ()
gvalueSet_ Ptr GValue
gv Maybe DsdInfo
P.Nothing = Ptr GValue -> Ptr DsdInfo -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv (Ptr DsdInfo
forall a. Ptr a
FP.nullPtr :: FP.Ptr DsdInfo)
gvalueSet_ Ptr GValue
gv (P.Just DsdInfo
obj) = DsdInfo -> (Ptr DsdInfo -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr DsdInfo
obj (Ptr GValue -> Ptr DsdInfo -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe DsdInfo)
gvalueGet_ Ptr GValue
gv = do
Ptr DsdInfo
ptr <- Ptr GValue -> IO (Ptr DsdInfo)
forall b. Ptr GValue -> IO (Ptr b)
B.GValue.get_boxed Ptr GValue
gv :: IO (Ptr DsdInfo)
if Ptr DsdInfo
ptr Ptr DsdInfo -> Ptr DsdInfo -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr DsdInfo
forall a. Ptr a
FP.nullPtr
then DsdInfo -> Maybe DsdInfo
forall a. a -> Maybe a
P.Just (DsdInfo -> Maybe DsdInfo) -> IO DsdInfo -> IO (Maybe DsdInfo)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr DsdInfo -> DsdInfo) -> Ptr DsdInfo -> IO DsdInfo
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.newBoxed ManagedPtr DsdInfo -> DsdInfo
DsdInfo Ptr DsdInfo
ptr
else Maybe DsdInfo -> IO (Maybe DsdInfo)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe DsdInfo
forall a. Maybe a
P.Nothing
newZeroDsdInfo :: MonadIO m => m DsdInfo
newZeroDsdInfo :: forall (m :: * -> *). MonadIO m => m DsdInfo
newZeroDsdInfo = IO DsdInfo -> m DsdInfo
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DsdInfo -> m DsdInfo) -> IO DsdInfo -> m DsdInfo
forall a b. (a -> b) -> a -> b
$ Int -> IO (Ptr DsdInfo)
forall a. GBoxed a => Int -> IO (Ptr a)
callocBoxedBytes Int
312 IO (Ptr DsdInfo) -> (Ptr DsdInfo -> IO DsdInfo) -> IO DsdInfo
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (ManagedPtr DsdInfo -> DsdInfo) -> Ptr DsdInfo -> IO DsdInfo
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr DsdInfo -> DsdInfo
DsdInfo
instance tag ~ 'AttrSet => Constructible DsdInfo tag where
new :: forall (m :: * -> *).
MonadIO m =>
(ManagedPtr DsdInfo -> DsdInfo)
-> [AttrOp DsdInfo tag] -> m DsdInfo
new ManagedPtr DsdInfo -> DsdInfo
_ [AttrOp DsdInfo tag]
attrs = do
DsdInfo
o <- m DsdInfo
forall (m :: * -> *). MonadIO m => m DsdInfo
newZeroDsdInfo
DsdInfo -> [AttrOp DsdInfo 'AttrSet] -> m ()
forall o (m :: * -> *).
MonadIO m =>
o -> [AttrOp o 'AttrSet] -> m ()
GI.Attributes.set DsdInfo
o [AttrOp DsdInfo tag]
[AttrOp DsdInfo 'AttrSet]
attrs
DsdInfo -> m DsdInfo
forall a. a -> m a
forall (m :: * -> *) a. Monad m => a -> m a
return DsdInfo
o
getDsdInfoFormat :: MonadIO m => DsdInfo -> m GstAudio.Enums.DsdFormat
getDsdInfoFormat :: forall (m :: * -> *). MonadIO m => DsdInfo -> m DsdFormat
getDsdInfoFormat DsdInfo
s = IO DsdFormat -> m DsdFormat
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DsdFormat -> m DsdFormat) -> IO DsdFormat -> m DsdFormat
forall a b. (a -> b) -> a -> b
$ DsdInfo -> (Ptr DsdInfo -> IO DsdFormat) -> IO DsdFormat
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr DsdInfo
s ((Ptr DsdInfo -> IO DsdFormat) -> IO DsdFormat)
-> (Ptr DsdInfo -> IO DsdFormat) -> IO DsdFormat
forall a b. (a -> b) -> a -> b
$ \Ptr DsdInfo
ptr -> do
CUInt
val <- Ptr CUInt -> IO CUInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr DsdInfo
ptr Ptr DsdInfo -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0) :: IO CUInt
let val' :: DsdFormat
val' = (Int -> DsdFormat
forall a. Enum a => Int -> a
toEnum (Int -> DsdFormat) -> (CUInt -> Int) -> CUInt -> DsdFormat
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
val
DsdFormat -> IO DsdFormat
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return DsdFormat
val'
setDsdInfoFormat :: MonadIO m => DsdInfo -> GstAudio.Enums.DsdFormat -> m ()
setDsdInfoFormat :: forall (m :: * -> *). MonadIO m => DsdInfo -> DsdFormat -> m ()
setDsdInfoFormat DsdInfo
s DsdFormat
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ DsdInfo -> (Ptr DsdInfo -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr DsdInfo
s ((Ptr DsdInfo -> IO ()) -> IO ())
-> (Ptr DsdInfo -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr DsdInfo
ptr -> do
let val' :: CUInt
val' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (DsdFormat -> Int) -> DsdFormat -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DsdFormat -> Int
forall a. Enum a => a -> Int
fromEnum) DsdFormat
val
Ptr CUInt -> CUInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr DsdInfo
ptr Ptr DsdInfo -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0) (CUInt
val' :: CUInt)
#if defined(ENABLE_OVERLOADING)
data DsdInfoFormatFieldInfo
instance AttrInfo DsdInfoFormatFieldInfo where
type AttrBaseTypeConstraint DsdInfoFormatFieldInfo = (~) DsdInfo
type AttrAllowedOps DsdInfoFormatFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DsdInfoFormatFieldInfo = (~) GstAudio.Enums.DsdFormat
type AttrTransferTypeConstraint DsdInfoFormatFieldInfo = (~)GstAudio.Enums.DsdFormat
type AttrTransferType DsdInfoFormatFieldInfo = GstAudio.Enums.DsdFormat
type AttrGetType DsdInfoFormatFieldInfo = GstAudio.Enums.DsdFormat
type AttrLabel DsdInfoFormatFieldInfo = "format"
type AttrOrigin DsdInfoFormatFieldInfo = DsdInfo
attrGet = getDsdInfoFormat
attrSet = setDsdInfoFormat
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstAudio.Structs.DsdInfo.format"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstaudio-1.0.28/docs/GI-GstAudio-Structs-DsdInfo.html#g:attr:format"
})
dsdInfo_format :: AttrLabelProxy "format"
dsdInfo_format = AttrLabelProxy
#endif
getDsdInfoRate :: MonadIO m => DsdInfo -> m Int32
getDsdInfoRate :: forall (m :: * -> *). MonadIO m => DsdInfo -> m Int32
getDsdInfoRate DsdInfo
s = IO Int32 -> m Int32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ DsdInfo -> (Ptr DsdInfo -> IO Int32) -> IO Int32
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr DsdInfo
s ((Ptr DsdInfo -> IO Int32) -> IO Int32)
-> (Ptr DsdInfo -> IO Int32) -> IO Int32
forall a b. (a -> b) -> a -> b
$ \Ptr DsdInfo
ptr -> do
Int32
val <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek (Ptr DsdInfo
ptr Ptr DsdInfo -> Int -> Ptr Int32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4) :: IO Int32
Int32 -> IO Int32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
val
setDsdInfoRate :: MonadIO m => DsdInfo -> Int32 -> m ()
setDsdInfoRate :: forall (m :: * -> *). MonadIO m => DsdInfo -> Int32 -> m ()
setDsdInfoRate DsdInfo
s Int32
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ DsdInfo -> (Ptr DsdInfo -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr DsdInfo
s ((Ptr DsdInfo -> IO ()) -> IO ())
-> (Ptr DsdInfo -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr DsdInfo
ptr -> do
Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr DsdInfo
ptr Ptr DsdInfo -> Int -> Ptr Int32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4) (Int32
val :: Int32)
#if defined(ENABLE_OVERLOADING)
data DsdInfoRateFieldInfo
instance AttrInfo DsdInfoRateFieldInfo where
type AttrBaseTypeConstraint DsdInfoRateFieldInfo = (~) DsdInfo
type AttrAllowedOps DsdInfoRateFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DsdInfoRateFieldInfo = (~) Int32
type AttrTransferTypeConstraint DsdInfoRateFieldInfo = (~)Int32
type AttrTransferType DsdInfoRateFieldInfo = Int32
type AttrGetType DsdInfoRateFieldInfo = Int32
type AttrLabel DsdInfoRateFieldInfo = "rate"
type AttrOrigin DsdInfoRateFieldInfo = DsdInfo
attrGet = getDsdInfoRate
attrSet = setDsdInfoRate
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstAudio.Structs.DsdInfo.rate"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstaudio-1.0.28/docs/GI-GstAudio-Structs-DsdInfo.html#g:attr:rate"
})
dsdInfo_rate :: AttrLabelProxy "rate"
dsdInfo_rate = AttrLabelProxy
#endif
getDsdInfoChannels :: MonadIO m => DsdInfo -> m Int32
getDsdInfoChannels :: forall (m :: * -> *). MonadIO m => DsdInfo -> m Int32
getDsdInfoChannels DsdInfo
s = IO Int32 -> m Int32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ DsdInfo -> (Ptr DsdInfo -> IO Int32) -> IO Int32
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr DsdInfo
s ((Ptr DsdInfo -> IO Int32) -> IO Int32)
-> (Ptr DsdInfo -> IO Int32) -> IO Int32
forall a b. (a -> b) -> a -> b
$ \Ptr DsdInfo
ptr -> do
Int32
val <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek (Ptr DsdInfo
ptr Ptr DsdInfo -> Int -> Ptr Int32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8) :: IO Int32
Int32 -> IO Int32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
val
setDsdInfoChannels :: MonadIO m => DsdInfo -> Int32 -> m ()
setDsdInfoChannels :: forall (m :: * -> *). MonadIO m => DsdInfo -> Int32 -> m ()
setDsdInfoChannels DsdInfo
s Int32
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ DsdInfo -> (Ptr DsdInfo -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr DsdInfo
s ((Ptr DsdInfo -> IO ()) -> IO ())
-> (Ptr DsdInfo -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr DsdInfo
ptr -> do
Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr DsdInfo
ptr Ptr DsdInfo -> Int -> Ptr Int32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8) (Int32
val :: Int32)
#if defined(ENABLE_OVERLOADING)
data DsdInfoChannelsFieldInfo
instance AttrInfo DsdInfoChannelsFieldInfo where
type AttrBaseTypeConstraint DsdInfoChannelsFieldInfo = (~) DsdInfo
type AttrAllowedOps DsdInfoChannelsFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DsdInfoChannelsFieldInfo = (~) Int32
type AttrTransferTypeConstraint DsdInfoChannelsFieldInfo = (~)Int32
type AttrTransferType DsdInfoChannelsFieldInfo = Int32
type AttrGetType DsdInfoChannelsFieldInfo = Int32
type AttrLabel DsdInfoChannelsFieldInfo = "channels"
type AttrOrigin DsdInfoChannelsFieldInfo = DsdInfo
attrGet = getDsdInfoChannels
attrSet = setDsdInfoChannels
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstAudio.Structs.DsdInfo.channels"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstaudio-1.0.28/docs/GI-GstAudio-Structs-DsdInfo.html#g:attr:channels"
})
dsdInfo_channels :: AttrLabelProxy "channels"
dsdInfo_channels = AttrLabelProxy
#endif
getDsdInfoLayout :: MonadIO m => DsdInfo -> m GstAudio.Enums.AudioLayout
getDsdInfoLayout :: forall (m :: * -> *). MonadIO m => DsdInfo -> m AudioLayout
getDsdInfoLayout DsdInfo
s = IO AudioLayout -> m AudioLayout
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO AudioLayout -> m AudioLayout)
-> IO AudioLayout -> m AudioLayout
forall a b. (a -> b) -> a -> b
$ DsdInfo -> (Ptr DsdInfo -> IO AudioLayout) -> IO AudioLayout
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr DsdInfo
s ((Ptr DsdInfo -> IO AudioLayout) -> IO AudioLayout)
-> (Ptr DsdInfo -> IO AudioLayout) -> IO AudioLayout
forall a b. (a -> b) -> a -> b
$ \Ptr DsdInfo
ptr -> do
CUInt
val <- Ptr CUInt -> IO CUInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr DsdInfo
ptr Ptr DsdInfo -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12) :: IO CUInt
let val' :: AudioLayout
val' = (Int -> AudioLayout
forall a. Enum a => Int -> a
toEnum (Int -> AudioLayout) -> (CUInt -> Int) -> CUInt -> AudioLayout
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
val
AudioLayout -> IO AudioLayout
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return AudioLayout
val'
setDsdInfoLayout :: MonadIO m => DsdInfo -> GstAudio.Enums.AudioLayout -> m ()
setDsdInfoLayout :: forall (m :: * -> *). MonadIO m => DsdInfo -> AudioLayout -> m ()
setDsdInfoLayout DsdInfo
s AudioLayout
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ DsdInfo -> (Ptr DsdInfo -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr DsdInfo
s ((Ptr DsdInfo -> IO ()) -> IO ())
-> (Ptr DsdInfo -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr DsdInfo
ptr -> do
let val' :: CUInt
val' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (AudioLayout -> Int) -> AudioLayout -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AudioLayout -> Int
forall a. Enum a => a -> Int
fromEnum) AudioLayout
val
Ptr CUInt -> CUInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr DsdInfo
ptr Ptr DsdInfo -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
12) (CUInt
val' :: CUInt)
#if defined(ENABLE_OVERLOADING)
data DsdInfoLayoutFieldInfo
instance AttrInfo DsdInfoLayoutFieldInfo where
type AttrBaseTypeConstraint DsdInfoLayoutFieldInfo = (~) DsdInfo
type AttrAllowedOps DsdInfoLayoutFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DsdInfoLayoutFieldInfo = (~) GstAudio.Enums.AudioLayout
type AttrTransferTypeConstraint DsdInfoLayoutFieldInfo = (~)GstAudio.Enums.AudioLayout
type AttrTransferType DsdInfoLayoutFieldInfo = GstAudio.Enums.AudioLayout
type AttrGetType DsdInfoLayoutFieldInfo = GstAudio.Enums.AudioLayout
type AttrLabel DsdInfoLayoutFieldInfo = "layout"
type AttrOrigin DsdInfoLayoutFieldInfo = DsdInfo
attrGet = getDsdInfoLayout
attrSet = setDsdInfoLayout
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstAudio.Structs.DsdInfo.layout"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstaudio-1.0.28/docs/GI-GstAudio-Structs-DsdInfo.html#g:attr:layout"
})
dsdInfo_layout :: AttrLabelProxy "layout"
dsdInfo_layout = AttrLabelProxy
#endif
getDsdInfoReversedBytes :: MonadIO m => DsdInfo -> m Bool
getDsdInfoReversedBytes :: forall (m :: * -> *). MonadIO m => DsdInfo -> m Bool
getDsdInfoReversedBytes DsdInfo
s = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ DsdInfo -> (Ptr DsdInfo -> IO Bool) -> IO Bool
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr DsdInfo
s ((Ptr DsdInfo -> IO Bool) -> IO Bool)
-> (Ptr DsdInfo -> IO Bool) -> IO Bool
forall a b. (a -> b) -> a -> b
$ \Ptr DsdInfo
ptr -> do
CInt
val <- Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr DsdInfo
ptr Ptr DsdInfo -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16) :: IO CInt
let val' :: Bool
val' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
val
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
val'
setDsdInfoReversedBytes :: MonadIO m => DsdInfo -> Bool -> m ()
setDsdInfoReversedBytes :: forall (m :: * -> *). MonadIO m => DsdInfo -> Bool -> m ()
setDsdInfoReversedBytes DsdInfo
s Bool
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ DsdInfo -> (Ptr DsdInfo -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr DsdInfo
s ((Ptr DsdInfo -> IO ()) -> IO ())
-> (Ptr DsdInfo -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr DsdInfo
ptr -> do
let val' :: CInt
val' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
P.fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
P.fromEnum) Bool
val
Ptr CInt -> CInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr DsdInfo
ptr Ptr DsdInfo -> Int -> Ptr CInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16) (CInt
val' :: CInt)
#if defined(ENABLE_OVERLOADING)
data DsdInfoReversedBytesFieldInfo
instance AttrInfo DsdInfoReversedBytesFieldInfo where
type AttrBaseTypeConstraint DsdInfoReversedBytesFieldInfo = (~) DsdInfo
type AttrAllowedOps DsdInfoReversedBytesFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DsdInfoReversedBytesFieldInfo = (~) Bool
type AttrTransferTypeConstraint DsdInfoReversedBytesFieldInfo = (~)Bool
type AttrTransferType DsdInfoReversedBytesFieldInfo = Bool
type AttrGetType DsdInfoReversedBytesFieldInfo = Bool
type AttrLabel DsdInfoReversedBytesFieldInfo = "reversed_bytes"
type AttrOrigin DsdInfoReversedBytesFieldInfo = DsdInfo
attrGet = getDsdInfoReversedBytes
attrSet = setDsdInfoReversedBytes
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstAudio.Structs.DsdInfo.reversedBytes"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstaudio-1.0.28/docs/GI-GstAudio-Structs-DsdInfo.html#g:attr:reversedBytes"
})
dsdInfo_reversedBytes :: AttrLabelProxy "reversedBytes"
dsdInfo_reversedBytes = AttrLabelProxy
#endif
getDsdInfoFlags :: MonadIO m => DsdInfo -> m [GstAudio.Flags.AudioFlags]
getDsdInfoFlags :: forall (m :: * -> *). MonadIO m => DsdInfo -> m [AudioFlags]
getDsdInfoFlags DsdInfo
s = IO [AudioFlags] -> m [AudioFlags]
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [AudioFlags] -> m [AudioFlags])
-> IO [AudioFlags] -> m [AudioFlags]
forall a b. (a -> b) -> a -> b
$ DsdInfo -> (Ptr DsdInfo -> IO [AudioFlags]) -> IO [AudioFlags]
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr DsdInfo
s ((Ptr DsdInfo -> IO [AudioFlags]) -> IO [AudioFlags])
-> (Ptr DsdInfo -> IO [AudioFlags]) -> IO [AudioFlags]
forall a b. (a -> b) -> a -> b
$ \Ptr DsdInfo
ptr -> do
CUInt
val <- Ptr CUInt -> IO CUInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr DsdInfo
ptr Ptr DsdInfo -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
276) :: IO CUInt
let val' :: [AudioFlags]
val' = CUInt -> [AudioFlags]
forall a b. (Storable a, Integral a, Bits a, IsGFlag b) => a -> [b]
wordToGFlags CUInt
val
[AudioFlags] -> IO [AudioFlags]
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return [AudioFlags]
val'
setDsdInfoFlags :: MonadIO m => DsdInfo -> [GstAudio.Flags.AudioFlags] -> m ()
setDsdInfoFlags :: forall (m :: * -> *). MonadIO m => DsdInfo -> [AudioFlags] -> m ()
setDsdInfoFlags DsdInfo
s [AudioFlags]
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ DsdInfo -> (Ptr DsdInfo -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr DsdInfo
s ((Ptr DsdInfo -> IO ()) -> IO ())
-> (Ptr DsdInfo -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr DsdInfo
ptr -> do
let val' :: CUInt
val' = [AudioFlags] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [AudioFlags]
val
Ptr CUInt -> CUInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr DsdInfo
ptr Ptr DsdInfo -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
276) (CUInt
val' :: CUInt)
#if defined(ENABLE_OVERLOADING)
data DsdInfoFlagsFieldInfo
instance AttrInfo DsdInfoFlagsFieldInfo where
type AttrBaseTypeConstraint DsdInfoFlagsFieldInfo = (~) DsdInfo
type AttrAllowedOps DsdInfoFlagsFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint DsdInfoFlagsFieldInfo = (~) [GstAudio.Flags.AudioFlags]
type AttrTransferTypeConstraint DsdInfoFlagsFieldInfo = (~)[GstAudio.Flags.AudioFlags]
type AttrTransferType DsdInfoFlagsFieldInfo = [GstAudio.Flags.AudioFlags]
type AttrGetType DsdInfoFlagsFieldInfo = [GstAudio.Flags.AudioFlags]
type AttrLabel DsdInfoFlagsFieldInfo = "flags"
type AttrOrigin DsdInfoFlagsFieldInfo = DsdInfo
attrGet = getDsdInfoFlags
attrSet = setDsdInfoFlags
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstAudio.Structs.DsdInfo.flags"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstaudio-1.0.28/docs/GI-GstAudio-Structs-DsdInfo.html#g:attr:flags"
})
dsdInfo_flags :: AttrLabelProxy "flags"
dsdInfo_flags = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList DsdInfo
type instance O.AttributeList DsdInfo = DsdInfoAttributeList
type DsdInfoAttributeList = ('[ '("format", DsdInfoFormatFieldInfo), '("rate", DsdInfoRateFieldInfo), '("channels", DsdInfoChannelsFieldInfo), '("layout", DsdInfoLayoutFieldInfo), '("reversedBytes", DsdInfoReversedBytesFieldInfo), '("flags", DsdInfoFlagsFieldInfo)] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "gst_dsd_info_new" gst_dsd_info_new ::
IO (Ptr DsdInfo)
dsdInfoNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
m DsdInfo
dsdInfoNew :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m DsdInfo
dsdInfoNew = IO DsdInfo -> m DsdInfo
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DsdInfo -> m DsdInfo) -> IO DsdInfo -> m DsdInfo
forall a b. (a -> b) -> a -> b
$ do
Ptr DsdInfo
result <- IO (Ptr DsdInfo)
gst_dsd_info_new
Text -> Ptr DsdInfo -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dsdInfoNew" Ptr DsdInfo
result
DsdInfo
result' <- ((ManagedPtr DsdInfo -> DsdInfo) -> Ptr DsdInfo -> IO DsdInfo
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr DsdInfo -> DsdInfo
DsdInfo) Ptr DsdInfo
result
DsdInfo -> IO DsdInfo
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return DsdInfo
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gst_dsd_info_new_from_caps" gst_dsd_info_new_from_caps ::
Ptr Gst.Caps.Caps ->
IO (Ptr DsdInfo)
dsdInfoNewFromCaps ::
(B.CallStack.HasCallStack, MonadIO m) =>
Gst.Caps.Caps
-> m DsdInfo
dsdInfoNewFromCaps :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Caps -> m DsdInfo
dsdInfoNewFromCaps Caps
caps = IO DsdInfo -> m DsdInfo
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DsdInfo -> m DsdInfo) -> IO DsdInfo -> m DsdInfo
forall a b. (a -> b) -> a -> b
$ do
Ptr Caps
caps' <- Caps -> IO (Ptr Caps)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Caps
caps
Ptr DsdInfo
result <- Ptr Caps -> IO (Ptr DsdInfo)
gst_dsd_info_new_from_caps Ptr Caps
caps'
Text -> Ptr DsdInfo -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dsdInfoNewFromCaps" Ptr DsdInfo
result
DsdInfo
result' <- ((ManagedPtr DsdInfo -> DsdInfo) -> Ptr DsdInfo -> IO DsdInfo
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr DsdInfo -> DsdInfo
DsdInfo) Ptr DsdInfo
result
Caps -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Caps
caps
DsdInfo -> IO DsdInfo
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return DsdInfo
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gst_dsd_info_copy" gst_dsd_info_copy ::
Ptr DsdInfo ->
IO (Ptr DsdInfo)
dsdInfoCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
DsdInfo
-> m DsdInfo
dsdInfoCopy :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
DsdInfo -> m DsdInfo
dsdInfoCopy DsdInfo
info = IO DsdInfo -> m DsdInfo
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DsdInfo -> m DsdInfo) -> IO DsdInfo -> m DsdInfo
forall a b. (a -> b) -> a -> b
$ do
Ptr DsdInfo
info' <- DsdInfo -> IO (Ptr DsdInfo)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr DsdInfo
info
Ptr DsdInfo
result <- Ptr DsdInfo -> IO (Ptr DsdInfo)
gst_dsd_info_copy Ptr DsdInfo
info'
Text -> Ptr DsdInfo -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dsdInfoCopy" Ptr DsdInfo
result
DsdInfo
result' <- ((ManagedPtr DsdInfo -> DsdInfo) -> Ptr DsdInfo -> IO DsdInfo
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr DsdInfo -> DsdInfo
DsdInfo) Ptr DsdInfo
result
DsdInfo -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr DsdInfo
info
DsdInfo -> IO DsdInfo
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return DsdInfo
result'
#if defined(ENABLE_OVERLOADING)
data DsdInfoCopyMethodInfo
instance (signature ~ (m DsdInfo), MonadIO m) => O.OverloadedMethod DsdInfoCopyMethodInfo DsdInfo signature where
overloadedMethod = dsdInfoCopy
instance O.OverloadedMethodInfo DsdInfoCopyMethodInfo DsdInfo where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstAudio.Structs.DsdInfo.dsdInfoCopy",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstaudio-1.0.28/docs/GI-GstAudio-Structs-DsdInfo.html#v:dsdInfoCopy"
})
#endif
foreign import ccall "gst_dsd_info_free" gst_dsd_info_free ::
Ptr DsdInfo ->
IO ()
dsdInfoFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
DsdInfo
-> m ()
dsdInfoFree :: forall (m :: * -> *). (HasCallStack, MonadIO m) => DsdInfo -> m ()
dsdInfoFree DsdInfo
info = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr DsdInfo
info' <- DsdInfo -> IO (Ptr DsdInfo)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr DsdInfo
info
Ptr DsdInfo -> IO ()
gst_dsd_info_free Ptr DsdInfo
info'
DsdInfo -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr DsdInfo
info
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data DsdInfoFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod DsdInfoFreeMethodInfo DsdInfo signature where
overloadedMethod = dsdInfoFree
instance O.OverloadedMethodInfo DsdInfoFreeMethodInfo DsdInfo where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstAudio.Structs.DsdInfo.dsdInfoFree",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstaudio-1.0.28/docs/GI-GstAudio-Structs-DsdInfo.html#v:dsdInfoFree"
})
#endif
foreign import ccall "gst_dsd_info_is_equal" gst_dsd_info_is_equal ::
Ptr DsdInfo ->
Ptr DsdInfo ->
IO CInt
dsdInfoIsEqual ::
(B.CallStack.HasCallStack, MonadIO m) =>
DsdInfo
-> DsdInfo
-> m Bool
dsdInfoIsEqual :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
DsdInfo -> DsdInfo -> m Bool
dsdInfoIsEqual DsdInfo
info DsdInfo
other = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr DsdInfo
info' <- DsdInfo -> IO (Ptr DsdInfo)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr DsdInfo
info
Ptr DsdInfo
other' <- DsdInfo -> IO (Ptr DsdInfo)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr DsdInfo
other
CInt
result <- Ptr DsdInfo -> Ptr DsdInfo -> IO CInt
gst_dsd_info_is_equal Ptr DsdInfo
info' Ptr DsdInfo
other'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
DsdInfo -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr DsdInfo
info
DsdInfo -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr DsdInfo
other
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data DsdInfoIsEqualMethodInfo
instance (signature ~ (DsdInfo -> m Bool), MonadIO m) => O.OverloadedMethod DsdInfoIsEqualMethodInfo DsdInfo signature where
overloadedMethod = dsdInfoIsEqual
instance O.OverloadedMethodInfo DsdInfoIsEqualMethodInfo DsdInfo where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstAudio.Structs.DsdInfo.dsdInfoIsEqual",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstaudio-1.0.28/docs/GI-GstAudio-Structs-DsdInfo.html#v:dsdInfoIsEqual"
})
#endif
foreign import ccall "gst_dsd_info_set_format" gst_dsd_info_set_format ::
Ptr DsdInfo ->
CUInt ->
Int32 ->
Int32 ->
Ptr CInt ->
IO ()
dsdInfoSetFormat ::
(B.CallStack.HasCallStack, MonadIO m) =>
DsdInfo
-> GstAudio.Enums.DsdFormat
-> Int32
-> Int32
-> Maybe ([GstAudio.Enums.AudioChannelPosition])
-> m ()
dsdInfoSetFormat :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
DsdInfo
-> DsdFormat
-> Int32
-> Int32
-> Maybe [AudioChannelPosition]
-> m ()
dsdInfoSetFormat DsdInfo
info DsdFormat
format Int32
rate Int32
channels Maybe [AudioChannelPosition]
positions = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr DsdInfo
info' <- DsdInfo -> IO (Ptr DsdInfo)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr DsdInfo
info
let format' :: CUInt
format' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (DsdFormat -> Int) -> DsdFormat -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DsdFormat -> Int
forall a. Enum a => a -> Int
fromEnum) DsdFormat
format
Ptr CInt
maybePositions <- case Maybe [AudioChannelPosition]
positions of
Maybe [AudioChannelPosition]
Nothing -> Ptr CInt -> IO (Ptr CInt)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CInt
forall a. Ptr a
nullPtr
Just [AudioChannelPosition]
jPositions -> do
let jPositions' :: [CInt]
jPositions' = (AudioChannelPosition -> CInt) -> [AudioChannelPosition] -> [CInt]
forall a b. (a -> b) -> [a] -> [b]
map (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt)
-> (AudioChannelPosition -> Int) -> AudioChannelPosition -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AudioChannelPosition -> Int
forall a. Enum a => a -> Int
fromEnum) [AudioChannelPosition]
jPositions
Ptr CInt
jPositions'' <- [CInt] -> IO (Ptr CInt)
forall a. Storable a => [a] -> IO (Ptr a)
packStorableArray [CInt]
jPositions'
Ptr CInt -> IO (Ptr CInt)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CInt
jPositions''
Ptr DsdInfo -> CUInt -> Int32 -> Int32 -> Ptr CInt -> IO ()
gst_dsd_info_set_format Ptr DsdInfo
info' CUInt
format' Int32
rate Int32
channels Ptr CInt
maybePositions
DsdInfo -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr DsdInfo
info
Ptr CInt -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CInt
maybePositions
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data DsdInfoSetFormatMethodInfo
instance (signature ~ (GstAudio.Enums.DsdFormat -> Int32 -> Int32 -> Maybe ([GstAudio.Enums.AudioChannelPosition]) -> m ()), MonadIO m) => O.OverloadedMethod DsdInfoSetFormatMethodInfo DsdInfo signature where
overloadedMethod = dsdInfoSetFormat
instance O.OverloadedMethodInfo DsdInfoSetFormatMethodInfo DsdInfo where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstAudio.Structs.DsdInfo.dsdInfoSetFormat",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstaudio-1.0.28/docs/GI-GstAudio-Structs-DsdInfo.html#v:dsdInfoSetFormat"
})
#endif
foreign import ccall "gst_dsd_info_to_caps" gst_dsd_info_to_caps ::
Ptr DsdInfo ->
IO (Ptr Gst.Caps.Caps)
dsdInfoToCaps ::
(B.CallStack.HasCallStack, MonadIO m) =>
DsdInfo
-> m Gst.Caps.Caps
dsdInfoToCaps :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
DsdInfo -> m Caps
dsdInfoToCaps DsdInfo
info = IO Caps -> m Caps
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Caps -> m Caps) -> IO Caps -> m Caps
forall a b. (a -> b) -> a -> b
$ do
Ptr DsdInfo
info' <- DsdInfo -> IO (Ptr DsdInfo)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr DsdInfo
info
Ptr Caps
result <- Ptr DsdInfo -> IO (Ptr Caps)
gst_dsd_info_to_caps Ptr DsdInfo
info'
Text -> Ptr Caps -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dsdInfoToCaps" Ptr Caps
result
Caps
result' <- ((ManagedPtr Caps -> Caps) -> Ptr Caps -> IO Caps
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Caps -> Caps
Gst.Caps.Caps) Ptr Caps
result
DsdInfo -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr DsdInfo
info
Caps -> IO Caps
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Caps
result'
#if defined(ENABLE_OVERLOADING)
data DsdInfoToCapsMethodInfo
instance (signature ~ (m Gst.Caps.Caps), MonadIO m) => O.OverloadedMethod DsdInfoToCapsMethodInfo DsdInfo signature where
overloadedMethod = dsdInfoToCaps
instance O.OverloadedMethodInfo DsdInfoToCapsMethodInfo DsdInfo where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.GstAudio.Structs.DsdInfo.dsdInfoToCaps",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstaudio-1.0.28/docs/GI-GstAudio-Structs-DsdInfo.html#v:dsdInfoToCaps"
})
#endif
foreign import ccall "gst_dsd_info_from_caps" gst_dsd_info_from_caps ::
Ptr DsdInfo ->
Ptr Gst.Caps.Caps ->
IO CInt
dsdInfoFromCaps ::
(B.CallStack.HasCallStack, MonadIO m) =>
Gst.Caps.Caps
-> m ((Bool, DsdInfo))
dsdInfoFromCaps :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Caps -> m (Bool, DsdInfo)
dsdInfoFromCaps Caps
caps = IO (Bool, DsdInfo) -> m (Bool, DsdInfo)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, DsdInfo) -> m (Bool, DsdInfo))
-> IO (Bool, DsdInfo) -> m (Bool, DsdInfo)
forall a b. (a -> b) -> a -> b
$ do
Ptr DsdInfo
info <- Int -> IO (Ptr DsdInfo)
forall a. GBoxed a => Int -> IO (Ptr a)
SP.callocBoxedBytes Int
312 :: IO (Ptr DsdInfo)
Ptr Caps
caps' <- Caps -> IO (Ptr Caps)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Caps
caps
CInt
result <- Ptr DsdInfo -> Ptr Caps -> IO CInt
gst_dsd_info_from_caps Ptr DsdInfo
info Ptr Caps
caps'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
DsdInfo
info' <- ((ManagedPtr DsdInfo -> DsdInfo) -> Ptr DsdInfo -> IO DsdInfo
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr DsdInfo -> DsdInfo
DsdInfo) Ptr DsdInfo
info
Caps -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Caps
caps
(Bool, DsdInfo) -> IO (Bool, DsdInfo)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', DsdInfo
info')
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gst_dsd_info_init" gst_dsd_info_init ::
Ptr DsdInfo ->
IO ()
dsdInfoInit ::
(B.CallStack.HasCallStack, MonadIO m) =>
m (DsdInfo)
dsdInfoInit :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m DsdInfo
dsdInfoInit = IO DsdInfo -> m DsdInfo
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DsdInfo -> m DsdInfo) -> IO DsdInfo -> m DsdInfo
forall a b. (a -> b) -> a -> b
$ do
Ptr DsdInfo
info <- Int -> IO (Ptr DsdInfo)
forall a. GBoxed a => Int -> IO (Ptr a)
SP.callocBoxedBytes Int
312 :: IO (Ptr DsdInfo)
Ptr DsdInfo -> IO ()
gst_dsd_info_init Ptr DsdInfo
info
DsdInfo
info' <- ((ManagedPtr DsdInfo -> DsdInfo) -> Ptr DsdInfo -> IO DsdInfo
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr DsdInfo -> DsdInfo
DsdInfo) Ptr DsdInfo
info
DsdInfo -> IO DsdInfo
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return DsdInfo
info'
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveDsdInfoMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveDsdInfoMethod "copy" o = DsdInfoCopyMethodInfo
ResolveDsdInfoMethod "free" o = DsdInfoFreeMethodInfo
ResolveDsdInfoMethod "isEqual" o = DsdInfoIsEqualMethodInfo
ResolveDsdInfoMethod "toCaps" o = DsdInfoToCapsMethodInfo
ResolveDsdInfoMethod "setFormat" o = DsdInfoSetFormatMethodInfo
ResolveDsdInfoMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveDsdInfoMethod t DsdInfo, O.OverloadedMethod info DsdInfo p) => OL.IsLabel t (DsdInfo -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveDsdInfoMethod t DsdInfo, O.OverloadedMethod info DsdInfo p, R.HasField t DsdInfo p) => R.HasField t DsdInfo p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveDsdInfoMethod t DsdInfo, O.OverloadedMethodInfo info DsdInfo) => OL.IsLabel t (O.MethodProxy info DsdInfo) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif