{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (garetxe@gmail.com) A GParamSpec derived structure that contains the meta data for fractional properties. -} module GI.Gst.Structs.ParamSpecFraction ( -- * Exported types ParamSpecFraction(..) , newZeroParamSpecFraction , noParamSpecFraction , -- * Properties -- ** DefDen paramSpecFractionReadDefDen , -- ** DefNum paramSpecFractionReadDefNum , -- ** MaxDen paramSpecFractionReadMaxDen , -- ** MaxNum paramSpecFractionReadMaxNum , -- ** MinDen paramSpecFractionReadMinDen , -- ** MinNum paramSpecFractionReadMinNum , -- ** ParentInstance paramSpecFractionReadParentInstance , ) where import Prelude () import Data.GI.Base.ShortPrelude import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import GI.Gst.Types import GI.Gst.Callbacks newtype ParamSpecFraction = ParamSpecFraction (ForeignPtr ParamSpecFraction) -- | Construct a `ParamSpecFraction` struct initialized to zero. newZeroParamSpecFraction :: MonadIO m => m ParamSpecFraction newZeroParamSpecFraction = liftIO $ callocBytes 96 >>= wrapPtr ParamSpecFraction noParamSpecFraction :: Maybe ParamSpecFraction noParamSpecFraction = Nothing paramSpecFractionReadParentInstance :: ParamSpecFraction -> IO GParamSpec paramSpecFractionReadParentInstance s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO (Ptr GParamSpec) val' <- newGParamSpecFromPtr val return val' paramSpecFractionReadMinNum :: ParamSpecFraction -> IO Int32 paramSpecFractionReadMinNum s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 72) :: IO Int32 return val paramSpecFractionReadMinDen :: ParamSpecFraction -> IO Int32 paramSpecFractionReadMinDen s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 76) :: IO Int32 return val paramSpecFractionReadMaxNum :: ParamSpecFraction -> IO Int32 paramSpecFractionReadMaxNum s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 80) :: IO Int32 return val paramSpecFractionReadMaxDen :: ParamSpecFraction -> IO Int32 paramSpecFractionReadMaxDen s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 84) :: IO Int32 return val paramSpecFractionReadDefNum :: ParamSpecFraction -> IO Int32 paramSpecFractionReadDefNum s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 88) :: IO Int32 return val paramSpecFractionReadDefDen :: ParamSpecFraction -> IO Int32 paramSpecFractionReadDefDen s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 92) :: IO Int32 return val type family ResolveParamSpecFractionMethod (t :: Symbol) (o :: *) :: * where ResolveParamSpecFractionMethod l o = MethodResolutionFailed l o instance (info ~ ResolveParamSpecFractionMethod t ParamSpecFraction, MethodInfo info ParamSpecFraction p) => IsLabelProxy t (ParamSpecFraction -> p) where fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info) #if MIN_VERSION_base(4,9,0) instance (info ~ ResolveParamSpecFractionMethod t ParamSpecFraction, MethodInfo info ParamSpecFraction p) => IsLabel t (ParamSpecFraction -> p) where fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info) #endif