{- |
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.DOMAudioTrack
    ( 

-- * Exported types
    DOMAudioTrack(..)                       ,
    IsDOMAudioTrack                         ,
    toDOMAudioTrack                         ,
    noDOMAudioTrack                         ,


 -- * Methods
-- ** getEnabled #method:getEnabled#
    DOMAudioTrackGetEnabledMethodInfo       ,
    dOMAudioTrackGetEnabled                 ,


-- ** getId #method:getId#
    DOMAudioTrackGetIdMethodInfo            ,
    dOMAudioTrackGetId                      ,


-- ** getKind #method:getKind#
    DOMAudioTrackGetKindMethodInfo          ,
    dOMAudioTrackGetKind                    ,


-- ** getLabel #method:getLabel#
    DOMAudioTrackGetLabelMethodInfo         ,
    dOMAudioTrackGetLabel                   ,


-- ** getLanguage #method:getLanguage#
    DOMAudioTrackGetLanguageMethodInfo      ,
    dOMAudioTrackGetLanguage                ,


-- ** setEnabled #method:setEnabled#
    DOMAudioTrackSetEnabledMethodInfo       ,
    dOMAudioTrackSetEnabled                 ,




 -- * Properties
-- ** enabled #attr:enabled#
    DOMAudioTrackEnabledPropertyInfo        ,
    constructDOMAudioTrackEnabled           ,
    dOMAudioTrackEnabled                    ,
    getDOMAudioTrackEnabled                 ,
    setDOMAudioTrackEnabled                 ,


-- ** id #attr:id#
    DOMAudioTrackIdPropertyInfo             ,
    dOMAudioTrackId                         ,
    getDOMAudioTrackId                      ,


-- ** kind #attr:kind#
    DOMAudioTrackKindPropertyInfo           ,
    dOMAudioTrackKind                       ,
    getDOMAudioTrackKind                    ,


-- ** label #attr:label#
    DOMAudioTrackLabelPropertyInfo          ,
    dOMAudioTrackLabel                      ,
    getDOMAudioTrackLabel                   ,


-- ** language #attr:language#
    DOMAudioTrackLanguagePropertyInfo       ,
    dOMAudioTrackLanguage                   ,
    getDOMAudioTrackLanguage                ,




    ) 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 DOMAudioTrack = DOMAudioTrack (ManagedPtr DOMAudioTrack)
foreign import ccall "webkit_dom_audio_track_get_type"
    c_webkit_dom_audio_track_get_type :: IO GType

instance GObject DOMAudioTrack where
    gobjectType _ = c_webkit_dom_audio_track_get_type
    

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

toDOMAudioTrack :: IsDOMAudioTrack o => o -> IO DOMAudioTrack
toDOMAudioTrack = unsafeCastTo DOMAudioTrack

noDOMAudioTrack :: Maybe DOMAudioTrack
noDOMAudioTrack = Nothing

type family ResolveDOMAudioTrackMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMAudioTrackMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMAudioTrackMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMAudioTrackMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMAudioTrackMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMAudioTrackMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMAudioTrackMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMAudioTrackMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMAudioTrackMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMAudioTrackMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMAudioTrackMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveDOMAudioTrackMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveDOMAudioTrackMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMAudioTrackMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMAudioTrackMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMAudioTrackMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMAudioTrackMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMAudioTrackMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMAudioTrackMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMAudioTrackMethod "getEnabled" o = DOMAudioTrackGetEnabledMethodInfo
    ResolveDOMAudioTrackMethod "getId" o = DOMAudioTrackGetIdMethodInfo
    ResolveDOMAudioTrackMethod "getKind" o = DOMAudioTrackGetKindMethodInfo
    ResolveDOMAudioTrackMethod "getLabel" o = DOMAudioTrackGetLabelMethodInfo
    ResolveDOMAudioTrackMethod "getLanguage" o = DOMAudioTrackGetLanguageMethodInfo
    ResolveDOMAudioTrackMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMAudioTrackMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMAudioTrackMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMAudioTrackMethod "setEnabled" o = DOMAudioTrackSetEnabledMethodInfo
    ResolveDOMAudioTrackMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMAudioTrackMethod l o = O.MethodResolutionFailed l o

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

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

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

getDOMAudioTrackEnabled :: (MonadIO m, IsDOMAudioTrack o) => o -> m Bool
getDOMAudioTrackEnabled obj = liftIO $ getObjectPropertyBool obj "enabled"

setDOMAudioTrackEnabled :: (MonadIO m, IsDOMAudioTrack o) => o -> Bool -> m ()
setDOMAudioTrackEnabled obj val = liftIO $ setObjectPropertyBool obj "enabled" val

constructDOMAudioTrackEnabled :: (IsDOMAudioTrack o) => Bool -> IO (GValueConstruct o)
constructDOMAudioTrackEnabled val = constructObjectPropertyBool "enabled" val

data DOMAudioTrackEnabledPropertyInfo
instance AttrInfo DOMAudioTrackEnabledPropertyInfo where
    type AttrAllowedOps DOMAudioTrackEnabledPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMAudioTrackEnabledPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint DOMAudioTrackEnabledPropertyInfo = IsDOMAudioTrack
    type AttrGetType DOMAudioTrackEnabledPropertyInfo = Bool
    type AttrLabel DOMAudioTrackEnabledPropertyInfo = "enabled"
    type AttrOrigin DOMAudioTrackEnabledPropertyInfo = DOMAudioTrack
    attrGet _ = getDOMAudioTrackEnabled
    attrSet _ = setDOMAudioTrackEnabled
    attrConstruct _ = constructDOMAudioTrackEnabled
    attrClear _ = undefined

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

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

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

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

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

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

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

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

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

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

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

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

instance O.HasAttributeList DOMAudioTrack
type instance O.AttributeList DOMAudioTrack = DOMAudioTrackAttributeList
type DOMAudioTrackAttributeList = ('[ '("coreObject", WebKit.DOMObject.DOMObjectCoreObjectPropertyInfo), '("enabled", DOMAudioTrackEnabledPropertyInfo), '("id", DOMAudioTrackIdPropertyInfo), '("kind", DOMAudioTrackKindPropertyInfo), '("label", DOMAudioTrackLabelPropertyInfo), '("language", DOMAudioTrackLanguagePropertyInfo)] :: [(Symbol, *)])

dOMAudioTrackEnabled :: AttrLabelProxy "enabled"
dOMAudioTrackEnabled = AttrLabelProxy

dOMAudioTrackId :: AttrLabelProxy "id"
dOMAudioTrackId = AttrLabelProxy

dOMAudioTrackKind :: AttrLabelProxy "kind"
dOMAudioTrackKind = AttrLabelProxy

dOMAudioTrackLabel :: AttrLabelProxy "label"
dOMAudioTrackLabel = AttrLabelProxy

dOMAudioTrackLanguage :: AttrLabelProxy "language"
dOMAudioTrackLanguage = AttrLabelProxy

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

-- method DOMAudioTrack::get_enabled
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMAudioTrack"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMAudioTrack", 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_audio_track_get_enabled" webkit_dom_audio_track_get_enabled :: 
    Ptr DOMAudioTrack ->                    -- self : TInterface (Name {namespace = "WebKit", name = "DOMAudioTrack"})
    IO CInt

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

data DOMAudioTrackGetEnabledMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsDOMAudioTrack a) => O.MethodInfo DOMAudioTrackGetEnabledMethodInfo a signature where
    overloadedMethod _ = dOMAudioTrackGetEnabled

-- method DOMAudioTrack::get_id
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMAudioTrack"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMAudioTrack", 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_audio_track_get_id" webkit_dom_audio_track_get_id :: 
    Ptr DOMAudioTrack ->                    -- self : TInterface (Name {namespace = "WebKit", name = "DOMAudioTrack"})
    IO CString

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

data DOMAudioTrackGetIdMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMAudioTrack a) => O.MethodInfo DOMAudioTrackGetIdMethodInfo a signature where
    overloadedMethod _ = dOMAudioTrackGetId

-- method DOMAudioTrack::get_kind
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMAudioTrack"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMAudioTrack", 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_audio_track_get_kind" webkit_dom_audio_track_get_kind :: 
    Ptr DOMAudioTrack ->                    -- self : TInterface (Name {namespace = "WebKit", name = "DOMAudioTrack"})
    IO CString

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

data DOMAudioTrackGetKindMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMAudioTrack a) => O.MethodInfo DOMAudioTrackGetKindMethodInfo a signature where
    overloadedMethod _ = dOMAudioTrackGetKind

-- method DOMAudioTrack::get_label
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMAudioTrack"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMAudioTrack", 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_audio_track_get_label" webkit_dom_audio_track_get_label :: 
    Ptr DOMAudioTrack ->                    -- self : TInterface (Name {namespace = "WebKit", name = "DOMAudioTrack"})
    IO CString

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

data DOMAudioTrackGetLabelMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMAudioTrack a) => O.MethodInfo DOMAudioTrackGetLabelMethodInfo a signature where
    overloadedMethod _ = dOMAudioTrackGetLabel

-- method DOMAudioTrack::get_language
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMAudioTrack"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMAudioTrack", 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_audio_track_get_language" webkit_dom_audio_track_get_language :: 
    Ptr DOMAudioTrack ->                    -- self : TInterface (Name {namespace = "WebKit", name = "DOMAudioTrack"})
    IO CString

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

data DOMAudioTrackGetLanguageMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMAudioTrack a) => O.MethodInfo DOMAudioTrackGetLanguageMethodInfo a signature where
    overloadedMethod _ = dOMAudioTrackGetLanguage

-- method DOMAudioTrack::set_enabled
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMAudioTrack"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMAudioTrack", 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_audio_track_set_enabled" webkit_dom_audio_track_set_enabled :: 
    Ptr DOMAudioTrack ->                    -- self : TInterface (Name {namespace = "WebKit", name = "DOMAudioTrack"})
    CInt ->                                 -- value : TBasicType TBoolean
    IO ()

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

data DOMAudioTrackSetEnabledMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsDOMAudioTrack a) => O.MethodInfo DOMAudioTrackSetEnabledMethodInfo a signature where
    overloadedMethod _ = dOMAudioTrackSetEnabled