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


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


{- |
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 PLUGINS_BASE_VERSION_NANO = 0 :: Int32

{- |
The minor version of GStreamer\'s gst-plugins-base libraries at compile time.
-}
pattern PLUGINS_BASE_VERSION_MINOR = 14 :: Int32

{- |
The micro version of GStreamer\'s gst-plugins-base libraries at compile time.
-}
pattern PLUGINS_BASE_VERSION_MICRO = 1 :: Int32

{- |
The major version of GStreamer\'s gst-plugins-base libraries at compile time.
-}
pattern PLUGINS_BASE_VERSION_MAJOR = 1 :: Int32

{- |
'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 ENCODING_CATEGORY_STORAGE_EDITING = "storage-editing" :: T.Text

{- |
'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 ENCODING_CATEGORY_ONLINE_SERVICE = "online-service" :: T.Text

{- |
'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 ENCODING_CATEGORY_FILE_EXTENSION = "file-extension" :: T.Text

{- |
'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 ENCODING_CATEGORY_DEVICE = "device" :: T.Text

{- |
'GI.GstPbutils.Objects.EncodingTarget.EncodingTarget' category for recording and capture.
Targets within this category are optimized for low latency encoding.
-}
pattern ENCODING_CATEGORY_CAPTURE = "capture" :: T.Text