{- |
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.WebKit.Objects.DOMVideoTrack
    ( 

-- * Exported types
    DOMVideoTrack(..)                       ,
    IsDOMVideoTrack                         ,
    toDOMVideoTrack                         ,
    noDOMVideoTrack                         ,


 -- * Methods
-- ** getId #method:getId#
    DOMVideoTrackGetIdMethodInfo            ,
    dOMVideoTrackGetId                      ,


-- ** getKind #method:getKind#
    DOMVideoTrackGetKindMethodInfo          ,
    dOMVideoTrackGetKind                    ,


-- ** getLabel #method:getLabel#
    DOMVideoTrackGetLabelMethodInfo         ,
    dOMVideoTrackGetLabel                   ,


-- ** getLanguage #method:getLanguage#
    DOMVideoTrackGetLanguageMethodInfo      ,
    dOMVideoTrackGetLanguage                ,


-- ** getSelected #method:getSelected#
    DOMVideoTrackGetSelectedMethodInfo      ,
    dOMVideoTrackGetSelected                ,


-- ** setSelected #method:setSelected#
    DOMVideoTrackSetSelectedMethodInfo      ,
    dOMVideoTrackSetSelected                ,




 -- * Properties
-- ** id #attr:id#
    DOMVideoTrackIdPropertyInfo             ,
    dOMVideoTrackId                         ,
    getDOMVideoTrackId                      ,


-- ** kind #attr:kind#
    DOMVideoTrackKindPropertyInfo           ,
    dOMVideoTrackKind                       ,
    getDOMVideoTrackKind                    ,


-- ** label #attr:label#
    DOMVideoTrackLabelPropertyInfo          ,
    dOMVideoTrackLabel                      ,
    getDOMVideoTrackLabel                   ,


-- ** language #attr:language#
    DOMVideoTrackLanguagePropertyInfo       ,
    dOMVideoTrackLanguage                   ,
    getDOMVideoTrackLanguage                ,


-- ** selected #attr:selected#
    DOMVideoTrackSelectedPropertyInfo       ,
    constructDOMVideoTrackSelected          ,
    dOMVideoTrackSelected                   ,
    getDOMVideoTrackSelected                ,
    setDOMVideoTrackSelected                ,




    ) 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.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit.Objects.DOMObject as WebKit.DOMObject

newtype DOMVideoTrack = DOMVideoTrack (ManagedPtr DOMVideoTrack)
foreign import ccall "webkit_dom_video_track_get_type"
    c_webkit_dom_video_track_get_type :: IO GType

instance GObject DOMVideoTrack where
    gobjectType _ = c_webkit_dom_video_track_get_type
    

class GObject o => IsDOMVideoTrack o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError DOMVideoTrack a) =>
    IsDOMVideoTrack a
#endif
instance IsDOMVideoTrack DOMVideoTrack
instance WebKit.DOMObject.IsDOMObject DOMVideoTrack
instance GObject.Object.IsObject DOMVideoTrack

toDOMVideoTrack :: IsDOMVideoTrack o => o -> IO DOMVideoTrack
toDOMVideoTrack = unsafeCastTo DOMVideoTrack

noDOMVideoTrack :: Maybe DOMVideoTrack
noDOMVideoTrack = Nothing

type family ResolveDOMVideoTrackMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMVideoTrackMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMVideoTrackMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMVideoTrackMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMVideoTrackMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMVideoTrackMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMVideoTrackMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMVideoTrackMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMVideoTrackMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMVideoTrackMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMVideoTrackMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveDOMVideoTrackMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveDOMVideoTrackMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMVideoTrackMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMVideoTrackMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMVideoTrackMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMVideoTrackMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMVideoTrackMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMVideoTrackMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMVideoTrackMethod "getId" o = DOMVideoTrackGetIdMethodInfo
    ResolveDOMVideoTrackMethod "getKind" o = DOMVideoTrackGetKindMethodInfo
    ResolveDOMVideoTrackMethod "getLabel" o = DOMVideoTrackGetLabelMethodInfo
    ResolveDOMVideoTrackMethod "getLanguage" o = DOMVideoTrackGetLanguageMethodInfo
    ResolveDOMVideoTrackMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMVideoTrackMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMVideoTrackMethod "getSelected" o = DOMVideoTrackGetSelectedMethodInfo
    ResolveDOMVideoTrackMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMVideoTrackMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMVideoTrackMethod "setSelected" o = DOMVideoTrackSetSelectedMethodInfo
    ResolveDOMVideoTrackMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveDOMVideoTrackMethod t DOMVideoTrack, O.MethodInfo info DOMVideoTrack p) => O.IsLabelProxy t (DOMVideoTrack -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

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

-- VVV Prop "id"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

getDOMVideoTrackId :: (MonadIO m, IsDOMVideoTrack o) => o -> m (Maybe T.Text)
getDOMVideoTrackId obj = liftIO $ getObjectPropertyString obj "id"

data DOMVideoTrackIdPropertyInfo
instance AttrInfo DOMVideoTrackIdPropertyInfo where
    type AttrAllowedOps DOMVideoTrackIdPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMVideoTrackIdPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMVideoTrackIdPropertyInfo = IsDOMVideoTrack
    type AttrGetType DOMVideoTrackIdPropertyInfo = (Maybe T.Text)
    type AttrLabel DOMVideoTrackIdPropertyInfo = "id"
    type AttrOrigin DOMVideoTrackIdPropertyInfo = DOMVideoTrack
    attrGet _ = getDOMVideoTrackId
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "kind"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

getDOMVideoTrackKind :: (MonadIO m, IsDOMVideoTrack o) => o -> m (Maybe T.Text)
getDOMVideoTrackKind obj = liftIO $ getObjectPropertyString obj "kind"

data DOMVideoTrackKindPropertyInfo
instance AttrInfo DOMVideoTrackKindPropertyInfo where
    type AttrAllowedOps DOMVideoTrackKindPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMVideoTrackKindPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMVideoTrackKindPropertyInfo = IsDOMVideoTrack
    type AttrGetType DOMVideoTrackKindPropertyInfo = (Maybe T.Text)
    type AttrLabel DOMVideoTrackKindPropertyInfo = "kind"
    type AttrOrigin DOMVideoTrackKindPropertyInfo = DOMVideoTrack
    attrGet _ = getDOMVideoTrackKind
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "label"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

getDOMVideoTrackLabel :: (MonadIO m, IsDOMVideoTrack o) => o -> m (Maybe T.Text)
getDOMVideoTrackLabel obj = liftIO $ getObjectPropertyString obj "label"

data DOMVideoTrackLabelPropertyInfo
instance AttrInfo DOMVideoTrackLabelPropertyInfo where
    type AttrAllowedOps DOMVideoTrackLabelPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMVideoTrackLabelPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMVideoTrackLabelPropertyInfo = IsDOMVideoTrack
    type AttrGetType DOMVideoTrackLabelPropertyInfo = (Maybe T.Text)
    type AttrLabel DOMVideoTrackLabelPropertyInfo = "label"
    type AttrOrigin DOMVideoTrackLabelPropertyInfo = DOMVideoTrack
    attrGet _ = getDOMVideoTrackLabel
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "language"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

getDOMVideoTrackLanguage :: (MonadIO m, IsDOMVideoTrack o) => o -> m (Maybe T.Text)
getDOMVideoTrackLanguage obj = liftIO $ getObjectPropertyString obj "language"

data DOMVideoTrackLanguagePropertyInfo
instance AttrInfo DOMVideoTrackLanguagePropertyInfo where
    type AttrAllowedOps DOMVideoTrackLanguagePropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMVideoTrackLanguagePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMVideoTrackLanguagePropertyInfo = IsDOMVideoTrack
    type AttrGetType DOMVideoTrackLanguagePropertyInfo = (Maybe T.Text)
    type AttrLabel DOMVideoTrackLanguagePropertyInfo = "language"
    type AttrOrigin DOMVideoTrackLanguagePropertyInfo = DOMVideoTrack
    attrGet _ = getDOMVideoTrackLanguage
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "selected"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

getDOMVideoTrackSelected :: (MonadIO m, IsDOMVideoTrack o) => o -> m Bool
getDOMVideoTrackSelected obj = liftIO $ getObjectPropertyBool obj "selected"

setDOMVideoTrackSelected :: (MonadIO m, IsDOMVideoTrack o) => o -> Bool -> m ()
setDOMVideoTrackSelected obj val = liftIO $ setObjectPropertyBool obj "selected" val

constructDOMVideoTrackSelected :: (IsDOMVideoTrack o) => Bool -> IO (GValueConstruct o)
constructDOMVideoTrackSelected val = constructObjectPropertyBool "selected" val

data DOMVideoTrackSelectedPropertyInfo
instance AttrInfo DOMVideoTrackSelectedPropertyInfo where
    type AttrAllowedOps DOMVideoTrackSelectedPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMVideoTrackSelectedPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint DOMVideoTrackSelectedPropertyInfo = IsDOMVideoTrack
    type AttrGetType DOMVideoTrackSelectedPropertyInfo = Bool
    type AttrLabel DOMVideoTrackSelectedPropertyInfo = "selected"
    type AttrOrigin DOMVideoTrackSelectedPropertyInfo = DOMVideoTrack
    attrGet _ = getDOMVideoTrackSelected
    attrSet _ = setDOMVideoTrackSelected
    attrConstruct _ = constructDOMVideoTrackSelected
    attrClear _ = undefined

instance O.HasAttributeList DOMVideoTrack
type instance O.AttributeList DOMVideoTrack = DOMVideoTrackAttributeList
type DOMVideoTrackAttributeList = ('[ '("coreObject", WebKit.DOMObject.DOMObjectCoreObjectPropertyInfo), '("id", DOMVideoTrackIdPropertyInfo), '("kind", DOMVideoTrackKindPropertyInfo), '("label", DOMVideoTrackLabelPropertyInfo), '("language", DOMVideoTrackLanguagePropertyInfo), '("selected", DOMVideoTrackSelectedPropertyInfo)] :: [(Symbol, *)])

dOMVideoTrackId :: AttrLabelProxy "id"
dOMVideoTrackId = AttrLabelProxy

dOMVideoTrackKind :: AttrLabelProxy "kind"
dOMVideoTrackKind = AttrLabelProxy

dOMVideoTrackLabel :: AttrLabelProxy "label"
dOMVideoTrackLabel = AttrLabelProxy

dOMVideoTrackLanguage :: AttrLabelProxy "language"
dOMVideoTrackLanguage = AttrLabelProxy

dOMVideoTrackSelected :: AttrLabelProxy "selected"
dOMVideoTrackSelected = AttrLabelProxy

type instance O.SignalList DOMVideoTrack = DOMVideoTrackSignalList
type DOMVideoTrackSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method DOMVideoTrack::get_id
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMVideoTrack"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMVideoTrack", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_video_track_get_id" webkit_dom_video_track_get_id :: 
    Ptr DOMVideoTrack ->                    -- self : TInterface (Name {namespace = "WebKit", name = "DOMVideoTrack"})
    IO CString

{- |
/No description available in the introspection data./
-}
dOMVideoTrackGetId ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMVideoTrack a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit.Objects.DOMVideoTrack.DOMVideoTrack' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMVideoTrackGetId self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_video_track_get_id self'
    checkUnexpectedReturnNULL "dOMVideoTrackGetId" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

data DOMVideoTrackGetIdMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMVideoTrack a) => O.MethodInfo DOMVideoTrackGetIdMethodInfo a signature where
    overloadedMethod _ = dOMVideoTrackGetId

-- method DOMVideoTrack::get_kind
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMVideoTrack"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMVideoTrack", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_video_track_get_kind" webkit_dom_video_track_get_kind :: 
    Ptr DOMVideoTrack ->                    -- self : TInterface (Name {namespace = "WebKit", name = "DOMVideoTrack"})
    IO CString

{- |
/No description available in the introspection data./
-}
dOMVideoTrackGetKind ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMVideoTrack a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit.Objects.DOMVideoTrack.DOMVideoTrack' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMVideoTrackGetKind self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_video_track_get_kind self'
    checkUnexpectedReturnNULL "dOMVideoTrackGetKind" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

data DOMVideoTrackGetKindMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMVideoTrack a) => O.MethodInfo DOMVideoTrackGetKindMethodInfo a signature where
    overloadedMethod _ = dOMVideoTrackGetKind

-- method DOMVideoTrack::get_label
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMVideoTrack"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMVideoTrack", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_video_track_get_label" webkit_dom_video_track_get_label :: 
    Ptr DOMVideoTrack ->                    -- self : TInterface (Name {namespace = "WebKit", name = "DOMVideoTrack"})
    IO CString

{- |
/No description available in the introspection data./
-}
dOMVideoTrackGetLabel ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMVideoTrack a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit.Objects.DOMVideoTrack.DOMVideoTrack' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMVideoTrackGetLabel self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_video_track_get_label self'
    checkUnexpectedReturnNULL "dOMVideoTrackGetLabel" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

data DOMVideoTrackGetLabelMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMVideoTrack a) => O.MethodInfo DOMVideoTrackGetLabelMethodInfo a signature where
    overloadedMethod _ = dOMVideoTrackGetLabel

-- method DOMVideoTrack::get_language
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMVideoTrack"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMVideoTrack", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_video_track_get_language" webkit_dom_video_track_get_language :: 
    Ptr DOMVideoTrack ->                    -- self : TInterface (Name {namespace = "WebKit", name = "DOMVideoTrack"})
    IO CString

{- |
/No description available in the introspection data./
-}
dOMVideoTrackGetLanguage ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMVideoTrack a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit.Objects.DOMVideoTrack.DOMVideoTrack' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMVideoTrackGetLanguage self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_video_track_get_language self'
    checkUnexpectedReturnNULL "dOMVideoTrackGetLanguage" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

data DOMVideoTrackGetLanguageMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMVideoTrack a) => O.MethodInfo DOMVideoTrackGetLanguageMethodInfo a signature where
    overloadedMethod _ = dOMVideoTrackGetLanguage

-- method DOMVideoTrack::get_selected
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMVideoTrack"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMVideoTrack", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_video_track_get_selected" webkit_dom_video_track_get_selected :: 
    Ptr DOMVideoTrack ->                    -- self : TInterface (Name {namespace = "WebKit", name = "DOMVideoTrack"})
    IO CInt

{- |
/No description available in the introspection data./
-}
dOMVideoTrackGetSelected ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMVideoTrack a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit.Objects.DOMVideoTrack.DOMVideoTrack' -}
    -> m Bool
    {- ^ __Returns:__ A 'Bool' -}
dOMVideoTrackGetSelected self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_video_track_get_selected self'
    let result' = (/= 0) result
    touchManagedPtr self
    return result'

data DOMVideoTrackGetSelectedMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsDOMVideoTrack a) => O.MethodInfo DOMVideoTrackGetSelectedMethodInfo a signature where
    overloadedMethod _ = dOMVideoTrackGetSelected

-- method DOMVideoTrack::set_selected
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMVideoTrack"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMVideoTrack", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gboolean", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_video_track_set_selected" webkit_dom_video_track_set_selected :: 
    Ptr DOMVideoTrack ->                    -- self : TInterface (Name {namespace = "WebKit", name = "DOMVideoTrack"})
    CInt ->                                 -- value : TBasicType TBoolean
    IO ()

{- |
/No description available in the introspection data./
-}
dOMVideoTrackSetSelected ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMVideoTrack a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit.Objects.DOMVideoTrack.DOMVideoTrack' -}
    -> Bool
    {- ^ /@value@/: A 'Bool' -}
    -> m ()
dOMVideoTrackSetSelected self value = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    let value' = (fromIntegral . fromEnum) value
    webkit_dom_video_track_set_selected self' value'
    touchManagedPtr self
    return ()

data DOMVideoTrackSetSelectedMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsDOMVideoTrack a) => O.MethodInfo DOMVideoTrackSetSelectedMethodInfo a signature where
    overloadedMethod _ = dOMVideoTrackSetSelected