{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
       && !defined(__HADDOCK_VERSION__))

module GI.WebKit2.Functions
    (

 -- * Methods
-- ** getMajorVersion #method:getMajorVersion#

    getMajorVersion                         ,


-- ** getMicroVersion #method:getMicroVersion#

    getMicroVersion                         ,


-- ** getMinorVersion #method:getMinorVersion#

    getMinorVersion                         ,


-- ** userMediaPermissionIsForAudioDevice #method:userMediaPermissionIsForAudioDevice#

    userMediaPermissionIsForAudioDevice     ,


-- ** userMediaPermissionIsForVideoDevice #method:userMediaPermissionIsForVideoDevice#

    userMediaPermissionIsForVideoDevice     ,




    ) 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.GValue as B.GValue
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 {-# SOURCE #-} qualified GI.WebKit2.Objects.UserMediaPermissionRequest as WebKit2.UserMediaPermissionRequest

-- function webkit_user_media_permission_is_for_video_device
-- Args : [Arg {argCName = "request", argType = TInterface (Name {namespace = "WebKit2", name = "UserMediaPermissionRequest"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitUserMediaPermissionRequest", 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_user_media_permission_is_for_video_device" webkit_user_media_permission_is_for_video_device ::
    Ptr WebKit2.UserMediaPermissionRequest.UserMediaPermissionRequest -> -- request : TInterface (Name {namespace = "WebKit2", name = "UserMediaPermissionRequest"})
    IO CInt

{- |
/No description available in the introspection data./

/Since: 2.8/
-}
userMediaPermissionIsForVideoDevice ::
    (B.CallStack.HasCallStack, MonadIO m, WebKit2.UserMediaPermissionRequest.IsUserMediaPermissionRequest a) =>
    a
    {- ^ /@request@/: a 'GI.WebKit2.Objects.UserMediaPermissionRequest.UserMediaPermissionRequest' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if access to a video device was requested. -}
userMediaPermissionIsForVideoDevice request = liftIO $ do
    request' <- unsafeManagedPtrCastPtr request
    result <- webkit_user_media_permission_is_for_video_device request'
    let result' = (/= 0) result
    touchManagedPtr request
    return result'


-- function webkit_user_media_permission_is_for_audio_device
-- Args : [Arg {argCName = "request", argType = TInterface (Name {namespace = "WebKit2", name = "UserMediaPermissionRequest"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitUserMediaPermissionRequest", 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_user_media_permission_is_for_audio_device" webkit_user_media_permission_is_for_audio_device ::
    Ptr WebKit2.UserMediaPermissionRequest.UserMediaPermissionRequest -> -- request : TInterface (Name {namespace = "WebKit2", name = "UserMediaPermissionRequest"})
    IO CInt

{- |
/No description available in the introspection data./

/Since: 2.8/
-}
userMediaPermissionIsForAudioDevice ::
    (B.CallStack.HasCallStack, MonadIO m, WebKit2.UserMediaPermissionRequest.IsUserMediaPermissionRequest a) =>
    a
    {- ^ /@request@/: a 'GI.WebKit2.Objects.UserMediaPermissionRequest.UserMediaPermissionRequest' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if access to an audio device was requested. -}
userMediaPermissionIsForAudioDevice request = liftIO $ do
    request' <- unsafeManagedPtrCastPtr request
    result <- webkit_user_media_permission_is_for_audio_device request'
    let result' = (/= 0) result
    touchManagedPtr request
    return result'


-- function webkit_get_minor_version
-- Args : []
-- Lengths : []
-- returnType : Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_get_minor_version" webkit_get_minor_version ::
    IO Word32

{- |
Returns the minor version number of the WebKit library.
(e.g. in WebKit version 1.8.3 this is 8.)

This function is in the library, so it represents the WebKit library
your code is running against. Contrast with the 'GI.WebKit2.Constants.MINOR_VERSION'
macro, which represents the minor version of the WebKit headers you
have included when compiling your code.
-}
getMinorVersion ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m Word32
    {- ^ __Returns:__ the minor version number of the WebKit library -}
getMinorVersion  = liftIO $ do
    result <- webkit_get_minor_version
    return result


-- function webkit_get_micro_version
-- Args : []
-- Lengths : []
-- returnType : Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_get_micro_version" webkit_get_micro_version ::
    IO Word32

{- |
Returns the micro version number of the WebKit library.
(e.g. in WebKit version 1.8.3 this is 3.)

This function is in the library, so it represents the WebKit library
your code is running against. Contrast with the 'GI.WebKit2.Constants.MICRO_VERSION'
macro, which represents the micro version of the WebKit headers you
have included when compiling your code.
-}
getMicroVersion ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m Word32
    {- ^ __Returns:__ the micro version number of the WebKit library -}
getMicroVersion  = liftIO $ do
    result <- webkit_get_micro_version
    return result


-- function webkit_get_major_version
-- Args : []
-- Lengths : []
-- returnType : Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_get_major_version" webkit_get_major_version ::
    IO Word32

{- |
Returns the major version number of the WebKit library.
(e.g. in WebKit version 1.8.3 this is 1.)

This function is in the library, so it represents the WebKit library
your code is running against. Contrast with the 'GI.WebKit2.Constants.MAJOR_VERSION'
macro, which represents the major version of the WebKit headers you
have included when compiling your code.
-}
getMajorVersion ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m Word32
    {- ^ __Returns:__ the major version number of the WebKit library -}
getMajorVersion  = liftIO $ do
    result <- webkit_get_major_version
    return result