{-# LANGUAGE PatternSynonyms, ScopedTypeVariables, ViewPatterns #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria

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

module GI.GstPbutils.Constants
    ( 
    pattern PLUGINS_BASE_VERSION_NANO       ,
    pattern PLUGINS_BASE_VERSION_MINOR      ,
    pattern PLUGINS_BASE_VERSION_MICRO      ,
    pattern PLUGINS_BASE_VERSION_MAJOR      ,
    pattern ENCODING_CATEGORY_STORAGE_EDITING,
    pattern ENCODING_CATEGORY_ONLINE_SERVICE,
    pattern ENCODING_CATEGORY_FILE_EXTENSION,
    pattern ENCODING_CATEGORY_DEVICE        ,
    pattern ENCODING_CATEGORY_CAPTURE       ,

    ) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
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.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R


-- | The nano version of GStreamer\'s gst-plugins-base libraries at compile time.
-- Actual releases have 0, GIT versions have 1, prerelease versions have 2-...
pattern $mPLUGINS_BASE_VERSION_NANO :: forall {r}. Int32 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPLUGINS_BASE_VERSION_NANO :: Int32
PLUGINS_BASE_VERSION_NANO = 0 :: Int32

-- | The minor version of GStreamer\'s gst-plugins-base libraries at compile time.
pattern $mPLUGINS_BASE_VERSION_MINOR :: forall {r}. Int32 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPLUGINS_BASE_VERSION_MINOR :: Int32
PLUGINS_BASE_VERSION_MINOR = 22 :: Int32

-- | The micro version of GStreamer\'s gst-plugins-base libraries at compile time.
pattern $mPLUGINS_BASE_VERSION_MICRO :: forall {r}. Int32 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPLUGINS_BASE_VERSION_MICRO :: Int32
PLUGINS_BASE_VERSION_MICRO = 1 :: Int32

-- | The major version of GStreamer\'s gst-plugins-base libraries at compile time.
pattern $mPLUGINS_BASE_VERSION_MAJOR :: forall {r}. Int32 -> ((# #) -> r) -> ((# #) -> r) -> r
$bPLUGINS_BASE_VERSION_MAJOR :: Int32
PLUGINS_BASE_VERSION_MAJOR = 1 :: Int32

-- | t'GI.GstPbutils.Objects.EncodingTarget.EncodingTarget' category for storage, archiving and editing targets.
-- Those targets can be lossless and\/or provide very fast random access content.
-- The name of the target will usually be the container type or editing target,
-- and that target will contain @/GstEncodingProfiles/@ suitable for editing or
-- storage.
pattern $mENCODING_CATEGORY_STORAGE_EDITING :: forall {r}. Text -> ((# #) -> r) -> ((# #) -> r) -> r
$bENCODING_CATEGORY_STORAGE_EDITING :: Text
ENCODING_CATEGORY_STORAGE_EDITING = "storage-editing" :: T.Text

-- | t'GI.GstPbutils.Objects.EncodingTarget.EncodingTarget' category for online-services.
-- The name of the target will usually be the name of the online service
-- and that target will contain @/GstEncodingProfiles/@ suitable for that online
-- service.
pattern $mENCODING_CATEGORY_ONLINE_SERVICE :: forall {r}. Text -> ((# #) -> r) -> ((# #) -> r) -> r
$bENCODING_CATEGORY_ONLINE_SERVICE :: Text
ENCODING_CATEGORY_ONLINE_SERVICE = "online-service" :: T.Text

-- | t'GI.GstPbutils.Objects.EncodingTarget.EncodingTarget' category for file extensions.
-- The name of the target will be the name of the file extensions possible
-- for a particular target. Those targets are defining like \'default\' formats
-- usually used for a particular file extension.
pattern $mENCODING_CATEGORY_FILE_EXTENSION :: forall {r}. Text -> ((# #) -> r) -> ((# #) -> r) -> r
$bENCODING_CATEGORY_FILE_EXTENSION :: Text
ENCODING_CATEGORY_FILE_EXTENSION = "file-extension" :: T.Text

-- | t'GI.GstPbutils.Objects.EncodingTarget.EncodingTarget' category for device-specific targets.
-- The name of the target will usually be the constructor and model of the device,
-- and that target will contain @/GstEncodingProfiles/@ suitable for that device.
pattern $mENCODING_CATEGORY_DEVICE :: forall {r}. Text -> ((# #) -> r) -> ((# #) -> r) -> r
$bENCODING_CATEGORY_DEVICE :: Text
ENCODING_CATEGORY_DEVICE = "device" :: T.Text

-- | t'GI.GstPbutils.Objects.EncodingTarget.EncodingTarget' category for recording and capture.
-- Targets within this category are optimized for low latency encoding.
pattern $mENCODING_CATEGORY_CAPTURE :: forall {r}. Text -> ((# #) -> r) -> ((# #) -> r) -> r
$bENCODING_CATEGORY_CAPTURE :: Text
ENCODING_CATEGORY_CAPTURE = "capture" :: T.Text