packages feed

gi-gstvideo-0.1.6.13: GI/GstVideo/Objects/ColorBalanceChannel.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.Objects.ColorBalanceChannel
    ( 

-- * Exported types
    ColorBalanceChannel(..)                 ,
    ColorBalanceChannelK                    ,
    toColorBalanceChannel                   ,
    noColorBalanceChannel                   ,


 -- * Signals
-- ** ValueChanged
    ColorBalanceChannelValueChangedCallback ,
    ColorBalanceChannelValueChangedCallbackC,
    ColorBalanceChannelValueChangedSignalInfo,
    afterColorBalanceChannelValueChanged    ,
    colorBalanceChannelValueChangedCallbackWrapper,
    colorBalanceChannelValueChangedClosure  ,
    mkColorBalanceChannelValueChangedCallback,
    noColorBalanceChannelValueChangedCallback,
    onColorBalanceChannelValueChanged       ,




    ) 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
import qualified GI.GObject as GObject

newtype ColorBalanceChannel = ColorBalanceChannel (ForeignPtr ColorBalanceChannel)
foreign import ccall "gst_color_balance_channel_get_type"
    c_gst_color_balance_channel_get_type :: IO GType

type instance ParentTypes ColorBalanceChannel = ColorBalanceChannelParentTypes
type ColorBalanceChannelParentTypes = '[GObject.Object]

instance GObject ColorBalanceChannel where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_gst_color_balance_channel_get_type
    

class GObject o => ColorBalanceChannelK o
instance (GObject o, IsDescendantOf ColorBalanceChannel o) => ColorBalanceChannelK o

toColorBalanceChannel :: ColorBalanceChannelK o => o -> IO ColorBalanceChannel
toColorBalanceChannel = unsafeCastTo ColorBalanceChannel

noColorBalanceChannel :: Maybe ColorBalanceChannel
noColorBalanceChannel = Nothing

type family ResolveColorBalanceChannelMethod (t :: Symbol) (o :: *) :: * where
    ResolveColorBalanceChannelMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveColorBalanceChannelMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveColorBalanceChannelMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveColorBalanceChannelMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveColorBalanceChannelMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveColorBalanceChannelMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveColorBalanceChannelMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveColorBalanceChannelMethod "ref" o = GObject.ObjectRefMethodInfo
    ResolveColorBalanceChannelMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveColorBalanceChannelMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveColorBalanceChannelMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveColorBalanceChannelMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveColorBalanceChannelMethod "stealData" o = GObject.ObjectStealDataMethodInfo
    ResolveColorBalanceChannelMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveColorBalanceChannelMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveColorBalanceChannelMethod "unref" o = GObject.ObjectUnrefMethodInfo
    ResolveColorBalanceChannelMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveColorBalanceChannelMethod "getData" o = GObject.ObjectGetDataMethodInfo
    ResolveColorBalanceChannelMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveColorBalanceChannelMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveColorBalanceChannelMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveColorBalanceChannelMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveColorBalanceChannelMethod l o = MethodResolutionFailed l o

instance (info ~ ResolveColorBalanceChannelMethod t ColorBalanceChannel, MethodInfo info ColorBalanceChannel p) => IsLabelProxy t (ColorBalanceChannel -> p) where
    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveColorBalanceChannelMethod t ColorBalanceChannel, MethodInfo info ColorBalanceChannel p) => IsLabel t (ColorBalanceChannel -> p) where
    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif

-- signal ColorBalanceChannel::value-changed
type ColorBalanceChannelValueChangedCallback =
    Int32 ->
    IO ()

noColorBalanceChannelValueChangedCallback :: Maybe ColorBalanceChannelValueChangedCallback
noColorBalanceChannelValueChangedCallback = Nothing

type ColorBalanceChannelValueChangedCallbackC =
    Ptr () ->                               -- object
    Int32 ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkColorBalanceChannelValueChangedCallback :: ColorBalanceChannelValueChangedCallbackC -> IO (FunPtr ColorBalanceChannelValueChangedCallbackC)

colorBalanceChannelValueChangedClosure :: ColorBalanceChannelValueChangedCallback -> IO Closure
colorBalanceChannelValueChangedClosure cb = newCClosure =<< mkColorBalanceChannelValueChangedCallback wrapped
    where wrapped = colorBalanceChannelValueChangedCallbackWrapper cb

colorBalanceChannelValueChangedCallbackWrapper ::
    ColorBalanceChannelValueChangedCallback ->
    Ptr () ->
    Int32 ->
    Ptr () ->
    IO ()
colorBalanceChannelValueChangedCallbackWrapper _cb _ value _ = do
    _cb  value

onColorBalanceChannelValueChanged :: (GObject a, MonadIO m) => a -> ColorBalanceChannelValueChangedCallback -> m SignalHandlerId
onColorBalanceChannelValueChanged obj cb = liftIO $ connectColorBalanceChannelValueChanged obj cb SignalConnectBefore
afterColorBalanceChannelValueChanged :: (GObject a, MonadIO m) => a -> ColorBalanceChannelValueChangedCallback -> m SignalHandlerId
afterColorBalanceChannelValueChanged obj cb = connectColorBalanceChannelValueChanged obj cb SignalConnectAfter

connectColorBalanceChannelValueChanged :: (GObject a, MonadIO m) =>
                                          a -> ColorBalanceChannelValueChangedCallback -> SignalConnectMode -> m SignalHandlerId
connectColorBalanceChannelValueChanged obj cb after = liftIO $ do
    cb' <- mkColorBalanceChannelValueChangedCallback (colorBalanceChannelValueChangedCallbackWrapper cb)
    connectSignalFunPtr obj "value-changed" cb' after

type instance AttributeList ColorBalanceChannel = ColorBalanceChannelAttributeList
type ColorBalanceChannelAttributeList = ('[ ] :: [(Symbol, *)])

data ColorBalanceChannelValueChangedSignalInfo
instance SignalInfo ColorBalanceChannelValueChangedSignalInfo where
    type HaskellCallbackType ColorBalanceChannelValueChangedSignalInfo = ColorBalanceChannelValueChangedCallback
    connectSignal _ = connectColorBalanceChannelValueChanged

type instance SignalList ColorBalanceChannel = ColorBalanceChannelSignalList
type ColorBalanceChannelSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("valueChanged", ColorBalanceChannelValueChangedSignalInfo)] :: [(Symbol, *)])