gi-gstvideo-0.1.6.13: GI/GstVideo/Interfaces/ColorBalance.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}
module GI.GstVideo.Interfaces.ColorBalance
(
-- * Exported types
ColorBalance(..) ,
noColorBalance ,
ColorBalanceK ,
-- * Methods
-- ** colorBalanceGetBalanceType
ColorBalanceGetBalanceTypeMethodInfo ,
colorBalanceGetBalanceType ,
-- ** colorBalanceGetValue
ColorBalanceGetValueMethodInfo ,
colorBalanceGetValue ,
-- ** colorBalanceListChannels
ColorBalanceListChannelsMethodInfo ,
colorBalanceListChannels ,
-- ** colorBalanceSetValue
ColorBalanceSetValueMethodInfo ,
colorBalanceSetValue ,
-- ** colorBalanceValueChanged
ColorBalanceValueChangedMethodInfo ,
colorBalanceValueChanged ,
-- * Signals
-- ** ValueChanged
ColorBalanceValueChangedCallback ,
ColorBalanceValueChangedCallbackC ,
ColorBalanceValueChangedSignalInfo ,
afterColorBalanceValueChanged ,
colorBalanceValueChangedCallbackWrapper ,
colorBalanceValueChangedClosure ,
mkColorBalanceValueChangedCallback ,
noColorBalanceValueChangedCallback ,
onColorBalanceValueChanged ,
) 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.GstVideo.Types
import GI.GstVideo.Callbacks
-- interface ColorBalance
newtype ColorBalance = ColorBalance (ForeignPtr ColorBalance)
noColorBalance :: Maybe ColorBalance
noColorBalance = Nothing
type family ResolveColorBalanceMethod (t :: Symbol) (o :: *) :: * where
ResolveColorBalanceMethod "listChannels" o = ColorBalanceListChannelsMethodInfo
ResolveColorBalanceMethod "valueChanged" o = ColorBalanceValueChangedMethodInfo
ResolveColorBalanceMethod "getBalanceType" o = ColorBalanceGetBalanceTypeMethodInfo
ResolveColorBalanceMethod "getValue" o = ColorBalanceGetValueMethodInfo
ResolveColorBalanceMethod "setValue" o = ColorBalanceSetValueMethodInfo
ResolveColorBalanceMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveColorBalanceMethod t ColorBalance, MethodInfo info ColorBalance p) => IsLabelProxy t (ColorBalance -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveColorBalanceMethod t ColorBalance, MethodInfo info ColorBalance p) => IsLabel t (ColorBalance -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif
-- signal ColorBalance::value-changed
type ColorBalanceValueChangedCallback =
ColorBalanceChannel ->
Int32 ->
IO ()
noColorBalanceValueChangedCallback :: Maybe ColorBalanceValueChangedCallback
noColorBalanceValueChangedCallback = Nothing
type ColorBalanceValueChangedCallbackC =
Ptr () -> -- object
Ptr ColorBalanceChannel ->
Int32 ->
Ptr () -> -- user_data
IO ()
foreign import ccall "wrapper"
mkColorBalanceValueChangedCallback :: ColorBalanceValueChangedCallbackC -> IO (FunPtr ColorBalanceValueChangedCallbackC)
colorBalanceValueChangedClosure :: ColorBalanceValueChangedCallback -> IO Closure
colorBalanceValueChangedClosure cb = newCClosure =<< mkColorBalanceValueChangedCallback wrapped
where wrapped = colorBalanceValueChangedCallbackWrapper cb
colorBalanceValueChangedCallbackWrapper ::
ColorBalanceValueChangedCallback ->
Ptr () ->
Ptr ColorBalanceChannel ->
Int32 ->
Ptr () ->
IO ()
colorBalanceValueChangedCallbackWrapper _cb _ channel value _ = do
channel' <- (newObject ColorBalanceChannel) channel
_cb channel' value
onColorBalanceValueChanged :: (GObject a, MonadIO m) => a -> ColorBalanceValueChangedCallback -> m SignalHandlerId
onColorBalanceValueChanged obj cb = liftIO $ connectColorBalanceValueChanged obj cb SignalConnectBefore
afterColorBalanceValueChanged :: (GObject a, MonadIO m) => a -> ColorBalanceValueChangedCallback -> m SignalHandlerId
afterColorBalanceValueChanged obj cb = connectColorBalanceValueChanged obj cb SignalConnectAfter
connectColorBalanceValueChanged :: (GObject a, MonadIO m) =>
a -> ColorBalanceValueChangedCallback -> SignalConnectMode -> m SignalHandlerId
connectColorBalanceValueChanged obj cb after = liftIO $ do
cb' <- mkColorBalanceValueChangedCallback (colorBalanceValueChangedCallbackWrapper cb)
connectSignalFunPtr obj "value-changed" cb' after
type instance AttributeList ColorBalance = ColorBalanceAttributeList
type ColorBalanceAttributeList = ('[ ] :: [(Symbol, *)])
data ColorBalanceValueChangedSignalInfo
instance SignalInfo ColorBalanceValueChangedSignalInfo where
type HaskellCallbackType ColorBalanceValueChangedSignalInfo = ColorBalanceValueChangedCallback
connectSignal _ = connectColorBalanceValueChanged
type instance SignalList ColorBalance = ColorBalanceSignalList
type ColorBalanceSignalList = ('[ '("valueChanged", ColorBalanceValueChangedSignalInfo)] :: [(Symbol, *)])
class ForeignPtrNewtype a => ColorBalanceK a
instance (ForeignPtrNewtype o, IsDescendantOf ColorBalance o) => ColorBalanceK o
type instance ParentTypes ColorBalance = ColorBalanceParentTypes
type ColorBalanceParentTypes = '[]
-- method ColorBalance::get_balance_type
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "ColorBalance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "GstVideo" "ColorBalanceType"
-- throws : False
-- Skip return : False
foreign import ccall "gst_color_balance_get_balance_type" gst_color_balance_get_balance_type ::
Ptr ColorBalance -> -- _obj : TInterface "GstVideo" "ColorBalance"
IO CUInt
colorBalanceGetBalanceType ::
(MonadIO m, ColorBalanceK a) =>
a -- _obj
-> m ColorBalanceType -- result
colorBalanceGetBalanceType _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gst_color_balance_get_balance_type _obj'
let result' = (toEnum . fromIntegral) result
touchManagedPtr _obj
return result'
data ColorBalanceGetBalanceTypeMethodInfo
instance (signature ~ (m ColorBalanceType), MonadIO m, ColorBalanceK a) => MethodInfo ColorBalanceGetBalanceTypeMethodInfo a signature where
overloadedMethod _ = colorBalanceGetBalanceType
-- method ColorBalance::get_value
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "ColorBalance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "channel", argType = TInterface "GstVideo" "ColorBalanceChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False
foreign import ccall "gst_color_balance_get_value" gst_color_balance_get_value ::
Ptr ColorBalance -> -- _obj : TInterface "GstVideo" "ColorBalance"
Ptr ColorBalanceChannel -> -- channel : TInterface "GstVideo" "ColorBalanceChannel"
IO Int32
colorBalanceGetValue ::
(MonadIO m, ColorBalanceK a, ColorBalanceChannelK b) =>
a -- _obj
-> b -- channel
-> m Int32 -- result
colorBalanceGetValue _obj channel = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let channel' = unsafeManagedPtrCastPtr channel
result <- gst_color_balance_get_value _obj' channel'
touchManagedPtr _obj
touchManagedPtr channel
return result
data ColorBalanceGetValueMethodInfo
instance (signature ~ (b -> m Int32), MonadIO m, ColorBalanceK a, ColorBalanceChannelK b) => MethodInfo ColorBalanceGetValueMethodInfo a signature where
overloadedMethod _ = colorBalanceGetValue
-- method ColorBalance::list_channels
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "ColorBalance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TGList (TInterface "GstVideo" "ColorBalanceChannel")
-- throws : False
-- Skip return : False
foreign import ccall "gst_color_balance_list_channels" gst_color_balance_list_channels ::
Ptr ColorBalance -> -- _obj : TInterface "GstVideo" "ColorBalance"
IO (Ptr (GList (Ptr ColorBalanceChannel)))
colorBalanceListChannels ::
(MonadIO m, ColorBalanceK a) =>
a -- _obj
-> m [ColorBalanceChannel] -- result
colorBalanceListChannels _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gst_color_balance_list_channels _obj'
checkUnexpectedReturnNULL "gst_color_balance_list_channels" result
result' <- unpackGList result
result'' <- mapM (newObject ColorBalanceChannel) result'
touchManagedPtr _obj
return result''
data ColorBalanceListChannelsMethodInfo
instance (signature ~ (m [ColorBalanceChannel]), MonadIO m, ColorBalanceK a) => MethodInfo ColorBalanceListChannelsMethodInfo a signature where
overloadedMethod _ = colorBalanceListChannels
-- method ColorBalance::set_value
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "ColorBalance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "channel", argType = TInterface "GstVideo" "ColorBalanceChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gst_color_balance_set_value" gst_color_balance_set_value ::
Ptr ColorBalance -> -- _obj : TInterface "GstVideo" "ColorBalance"
Ptr ColorBalanceChannel -> -- channel : TInterface "GstVideo" "ColorBalanceChannel"
Int32 -> -- value : TBasicType TInt32
IO ()
colorBalanceSetValue ::
(MonadIO m, ColorBalanceK a, ColorBalanceChannelK b) =>
a -- _obj
-> b -- channel
-> Int32 -- value
-> m () -- result
colorBalanceSetValue _obj channel value = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let channel' = unsafeManagedPtrCastPtr channel
gst_color_balance_set_value _obj' channel' value
touchManagedPtr _obj
touchManagedPtr channel
return ()
data ColorBalanceSetValueMethodInfo
instance (signature ~ (b -> Int32 -> m ()), MonadIO m, ColorBalanceK a, ColorBalanceChannelK b) => MethodInfo ColorBalanceSetValueMethodInfo a signature where
overloadedMethod _ = colorBalanceSetValue
-- method ColorBalance::value_changed
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "ColorBalance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "channel", argType = TInterface "GstVideo" "ColorBalanceChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gst_color_balance_value_changed" gst_color_balance_value_changed ::
Ptr ColorBalance -> -- _obj : TInterface "GstVideo" "ColorBalance"
Ptr ColorBalanceChannel -> -- channel : TInterface "GstVideo" "ColorBalanceChannel"
Int32 -> -- value : TBasicType TInt32
IO ()
colorBalanceValueChanged ::
(MonadIO m, ColorBalanceK a, ColorBalanceChannelK b) =>
a -- _obj
-> b -- channel
-> Int32 -- value
-> m () -- result
colorBalanceValueChanged _obj channel value = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let channel' = unsafeManagedPtrCastPtr channel
gst_color_balance_value_changed _obj' channel' value
touchManagedPtr _obj
touchManagedPtr channel
return ()
data ColorBalanceValueChangedMethodInfo
instance (signature ~ (b -> Int32 -> m ()), MonadIO m, ColorBalanceK a, ColorBalanceChannelK b) => MethodInfo ColorBalanceValueChangedMethodInfo a signature where
overloadedMethod _ = colorBalanceValueChanged