-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- 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.Enums
    ( 

 -- * Enumerations
-- ** AudioVisualizerShader #enum:AudioVisualizerShader#

    AudioVisualizerShader(..)               ,


-- ** DiscovererResult #enum:DiscovererResult#

    DiscovererResult(..)                    ,


-- ** InstallPluginsReturn #enum:InstallPluginsReturn#

    InstallPluginsReturn(..)                ,




    ) 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.GClosure as B.GClosure
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.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.Text as T
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


-- Enum InstallPluginsReturn
-- | Result codes returned by 'GI.GstPbutils.Functions.installPluginsAsync' and
-- 'GI.GstPbutils.Functions.installPluginsSync', and also the result code passed to the
-- t'GI.GstPbutils.Callbacks.InstallPluginsResultFunc' specified with 'GI.GstPbutils.Functions.installPluginsAsync'.
-- 
-- These codes indicate success or failure of starting an external installer
-- program and to what extent the requested plugins could be installed.
data InstallPluginsReturn = 
      InstallPluginsReturnSuccess
    -- ^ all of the requested plugins could be
    --     installed
    | InstallPluginsReturnNotFound
    -- ^ no appropriate installation candidate for
    --     any of the requested plugins could be found. Only return this if nothing
    --     has been installed. Return @/GST_INSTALL_PLUGINS_PARTIAL_SUCCESS/@ if
    --     some (but not all) of the requested plugins could be installed.
    | InstallPluginsReturnError
    -- ^ an error occured during the installation. If
    --     this happens, the  user has already seen an error message and another
    --     one should not be displayed
    | InstallPluginsReturnPartialSuccess
    -- ^ some of the requested plugins could
    --     be installed, but not all
    | InstallPluginsReturnUserAbort
    -- ^ the user has aborted the installation
    | InstallPluginsReturnCrashed
    -- ^ the installer had an unclean exit code
    --     (ie. death by signal)
    | InstallPluginsReturnInvalid
    -- ^ the helper returned an invalid status code
    | InstallPluginsReturnStartedOk
    -- ^ returned by 'GI.GstPbutils.Functions.installPluginsAsync' to
    --     indicate that everything went fine so far and the provided callback
    --     will be called with the result of the installation later
    | InstallPluginsReturnInternalFailure
    -- ^ some internal failure has
    --     occured when trying to start the installer
    | InstallPluginsReturnHelperMissing
    -- ^ the helper script to call the
    --     actual installer is not installed
    | InstallPluginsReturnInstallInProgress
    -- ^ a previously-started plugin
    --     installation is still in progress, try again later
    | AnotherInstallPluginsReturn Int
    -- ^ Catch-all for unknown values
    deriving (Int -> InstallPluginsReturn -> ShowS
[InstallPluginsReturn] -> ShowS
InstallPluginsReturn -> String
(Int -> InstallPluginsReturn -> ShowS)
-> (InstallPluginsReturn -> String)
-> ([InstallPluginsReturn] -> ShowS)
-> Show InstallPluginsReturn
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InstallPluginsReturn] -> ShowS
$cshowList :: [InstallPluginsReturn] -> ShowS
show :: InstallPluginsReturn -> String
$cshow :: InstallPluginsReturn -> String
showsPrec :: Int -> InstallPluginsReturn -> ShowS
$cshowsPrec :: Int -> InstallPluginsReturn -> ShowS
Show, InstallPluginsReturn -> InstallPluginsReturn -> Bool
(InstallPluginsReturn -> InstallPluginsReturn -> Bool)
-> (InstallPluginsReturn -> InstallPluginsReturn -> Bool)
-> Eq InstallPluginsReturn
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InstallPluginsReturn -> InstallPluginsReturn -> Bool
$c/= :: InstallPluginsReturn -> InstallPluginsReturn -> Bool
== :: InstallPluginsReturn -> InstallPluginsReturn -> Bool
$c== :: InstallPluginsReturn -> InstallPluginsReturn -> Bool
Eq)

instance P.Enum InstallPluginsReturn where
    fromEnum :: InstallPluginsReturn -> Int
fromEnum InstallPluginsReturn
InstallPluginsReturnSuccess = Int
0
    fromEnum InstallPluginsReturn
InstallPluginsReturnNotFound = Int
1
    fromEnum InstallPluginsReturn
InstallPluginsReturnError = Int
2
    fromEnum InstallPluginsReturn
InstallPluginsReturnPartialSuccess = Int
3
    fromEnum InstallPluginsReturn
InstallPluginsReturnUserAbort = Int
4
    fromEnum InstallPluginsReturn
InstallPluginsReturnCrashed = Int
100
    fromEnum InstallPluginsReturn
InstallPluginsReturnInvalid = Int
101
    fromEnum InstallPluginsReturn
InstallPluginsReturnStartedOk = Int
200
    fromEnum InstallPluginsReturn
InstallPluginsReturnInternalFailure = Int
201
    fromEnum InstallPluginsReturn
InstallPluginsReturnHelperMissing = Int
202
    fromEnum InstallPluginsReturn
InstallPluginsReturnInstallInProgress = Int
203
    fromEnum (AnotherInstallPluginsReturn Int
k) = Int
k

    toEnum :: Int -> InstallPluginsReturn
toEnum Int
0 = InstallPluginsReturn
InstallPluginsReturnSuccess
    toEnum Int
1 = InstallPluginsReturn
InstallPluginsReturnNotFound
    toEnum Int
2 = InstallPluginsReturn
InstallPluginsReturnError
    toEnum Int
3 = InstallPluginsReturn
InstallPluginsReturnPartialSuccess
    toEnum Int
4 = InstallPluginsReturn
InstallPluginsReturnUserAbort
    toEnum Int
100 = InstallPluginsReturn
InstallPluginsReturnCrashed
    toEnum Int
101 = InstallPluginsReturn
InstallPluginsReturnInvalid
    toEnum Int
200 = InstallPluginsReturn
InstallPluginsReturnStartedOk
    toEnum Int
201 = InstallPluginsReturn
InstallPluginsReturnInternalFailure
    toEnum Int
202 = InstallPluginsReturn
InstallPluginsReturnHelperMissing
    toEnum Int
203 = InstallPluginsReturn
InstallPluginsReturnInstallInProgress
    toEnum Int
k = Int -> InstallPluginsReturn
AnotherInstallPluginsReturn Int
k

instance P.Ord InstallPluginsReturn where
    compare :: InstallPluginsReturn -> InstallPluginsReturn -> Ordering
compare InstallPluginsReturn
a InstallPluginsReturn
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (InstallPluginsReturn -> Int
forall a. Enum a => a -> Int
P.fromEnum InstallPluginsReturn
a) (InstallPluginsReturn -> Int
forall a. Enum a => a -> Int
P.fromEnum InstallPluginsReturn
b)

type instance O.ParentTypes InstallPluginsReturn = '[]
instance O.HasParentTypes InstallPluginsReturn

foreign import ccall "gst_install_plugins_return_get_type" c_gst_install_plugins_return_get_type :: 
    IO GType

instance B.Types.TypedObject InstallPluginsReturn where
    glibType :: IO GType
glibType = IO GType
c_gst_install_plugins_return_get_type

instance B.Types.BoxedEnum InstallPluginsReturn

-- Enum DiscovererResult
-- | Result values for the discovery process.
data DiscovererResult = 
      DiscovererResultOk
    -- ^ The discovery was successful
    | DiscovererResultUriInvalid
    -- ^ the URI is invalid
    | DiscovererResultError
    -- ^ an error happened and the GError is set
    | DiscovererResultTimeout
    -- ^ the discovery timed-out
    | DiscovererResultBusy
    -- ^ the discoverer was already discovering a file
    | DiscovererResultMissingPlugins
    -- ^ Some plugins are missing for full discovery
    | AnotherDiscovererResult Int
    -- ^ Catch-all for unknown values
    deriving (Int -> DiscovererResult -> ShowS
[DiscovererResult] -> ShowS
DiscovererResult -> String
(Int -> DiscovererResult -> ShowS)
-> (DiscovererResult -> String)
-> ([DiscovererResult] -> ShowS)
-> Show DiscovererResult
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DiscovererResult] -> ShowS
$cshowList :: [DiscovererResult] -> ShowS
show :: DiscovererResult -> String
$cshow :: DiscovererResult -> String
showsPrec :: Int -> DiscovererResult -> ShowS
$cshowsPrec :: Int -> DiscovererResult -> ShowS
Show, DiscovererResult -> DiscovererResult -> Bool
(DiscovererResult -> DiscovererResult -> Bool)
-> (DiscovererResult -> DiscovererResult -> Bool)
-> Eq DiscovererResult
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DiscovererResult -> DiscovererResult -> Bool
$c/= :: DiscovererResult -> DiscovererResult -> Bool
== :: DiscovererResult -> DiscovererResult -> Bool
$c== :: DiscovererResult -> DiscovererResult -> Bool
Eq)

instance P.Enum DiscovererResult where
    fromEnum :: DiscovererResult -> Int
fromEnum DiscovererResult
DiscovererResultOk = Int
0
    fromEnum DiscovererResult
DiscovererResultUriInvalid = Int
1
    fromEnum DiscovererResult
DiscovererResultError = Int
2
    fromEnum DiscovererResult
DiscovererResultTimeout = Int
3
    fromEnum DiscovererResult
DiscovererResultBusy = Int
4
    fromEnum DiscovererResult
DiscovererResultMissingPlugins = Int
5
    fromEnum (AnotherDiscovererResult Int
k) = Int
k

    toEnum :: Int -> DiscovererResult
toEnum Int
0 = DiscovererResult
DiscovererResultOk
    toEnum Int
1 = DiscovererResult
DiscovererResultUriInvalid
    toEnum Int
2 = DiscovererResult
DiscovererResultError
    toEnum Int
3 = DiscovererResult
DiscovererResultTimeout
    toEnum Int
4 = DiscovererResult
DiscovererResultBusy
    toEnum Int
5 = DiscovererResult
DiscovererResultMissingPlugins
    toEnum Int
k = Int -> DiscovererResult
AnotherDiscovererResult Int
k

instance P.Ord DiscovererResult where
    compare :: DiscovererResult -> DiscovererResult -> Ordering
compare DiscovererResult
a DiscovererResult
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (DiscovererResult -> Int
forall a. Enum a => a -> Int
P.fromEnum DiscovererResult
a) (DiscovererResult -> Int
forall a. Enum a => a -> Int
P.fromEnum DiscovererResult
b)

type instance O.ParentTypes DiscovererResult = '[]
instance O.HasParentTypes DiscovererResult

foreign import ccall "gst_discoverer_result_get_type" c_gst_discoverer_result_get_type :: 
    IO GType

instance B.Types.TypedObject DiscovererResult where
    glibType :: IO GType
glibType = IO GType
c_gst_discoverer_result_get_type

instance B.Types.BoxedEnum DiscovererResult

-- Enum AudioVisualizerShader
-- | Different types of supported background shading functions.
data AudioVisualizerShader = 
      AudioVisualizerShaderNone
    -- ^ no shading
    | AudioVisualizerShaderFade
    -- ^ plain fading
    | AudioVisualizerShaderFadeAndMoveUp
    -- ^ fade and move up
    | AudioVisualizerShaderFadeAndMoveDown
    -- ^ fade and move down
    | AudioVisualizerShaderFadeAndMoveLeft
    -- ^ fade and move left
    | AudioVisualizerShaderFadeAndMoveRight
    -- ^ fade and move right
    | AudioVisualizerShaderFadeAndMoveHorizOut
    -- ^ fade and move horizontally out
    | AudioVisualizerShaderFadeAndMoveHorizIn
    -- ^ fade and move horizontally in
    | AudioVisualizerShaderFadeAndMoveVertOut
    -- ^ fade and move vertically out
    | AudioVisualizerShaderFadeAndMoveVertIn
    -- ^ fade and move vertically in
    | AnotherAudioVisualizerShader Int
    -- ^ Catch-all for unknown values
    deriving (Int -> AudioVisualizerShader -> ShowS
[AudioVisualizerShader] -> ShowS
AudioVisualizerShader -> String
(Int -> AudioVisualizerShader -> ShowS)
-> (AudioVisualizerShader -> String)
-> ([AudioVisualizerShader] -> ShowS)
-> Show AudioVisualizerShader
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AudioVisualizerShader] -> ShowS
$cshowList :: [AudioVisualizerShader] -> ShowS
show :: AudioVisualizerShader -> String
$cshow :: AudioVisualizerShader -> String
showsPrec :: Int -> AudioVisualizerShader -> ShowS
$cshowsPrec :: Int -> AudioVisualizerShader -> ShowS
Show, AudioVisualizerShader -> AudioVisualizerShader -> Bool
(AudioVisualizerShader -> AudioVisualizerShader -> Bool)
-> (AudioVisualizerShader -> AudioVisualizerShader -> Bool)
-> Eq AudioVisualizerShader
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AudioVisualizerShader -> AudioVisualizerShader -> Bool
$c/= :: AudioVisualizerShader -> AudioVisualizerShader -> Bool
== :: AudioVisualizerShader -> AudioVisualizerShader -> Bool
$c== :: AudioVisualizerShader -> AudioVisualizerShader -> Bool
Eq)

instance P.Enum AudioVisualizerShader where
    fromEnum :: AudioVisualizerShader -> Int
fromEnum AudioVisualizerShader
AudioVisualizerShaderNone = Int
0
    fromEnum AudioVisualizerShader
AudioVisualizerShaderFade = Int
1
    fromEnum AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveUp = Int
2
    fromEnum AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveDown = Int
3
    fromEnum AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveLeft = Int
4
    fromEnum AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveRight = Int
5
    fromEnum AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveHorizOut = Int
6
    fromEnum AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveHorizIn = Int
7
    fromEnum AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveVertOut = Int
8
    fromEnum AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveVertIn = Int
9
    fromEnum (AnotherAudioVisualizerShader Int
k) = Int
k

    toEnum :: Int -> AudioVisualizerShader
toEnum Int
0 = AudioVisualizerShader
AudioVisualizerShaderNone
    toEnum Int
1 = AudioVisualizerShader
AudioVisualizerShaderFade
    toEnum Int
2 = AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveUp
    toEnum Int
3 = AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveDown
    toEnum Int
4 = AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveLeft
    toEnum Int
5 = AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveRight
    toEnum Int
6 = AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveHorizOut
    toEnum Int
7 = AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveHorizIn
    toEnum Int
8 = AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveVertOut
    toEnum Int
9 = AudioVisualizerShader
AudioVisualizerShaderFadeAndMoveVertIn
    toEnum Int
k = Int -> AudioVisualizerShader
AnotherAudioVisualizerShader Int
k

instance P.Ord AudioVisualizerShader where
    compare :: AudioVisualizerShader -> AudioVisualizerShader -> Ordering
compare AudioVisualizerShader
a AudioVisualizerShader
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (AudioVisualizerShader -> Int
forall a. Enum a => a -> Int
P.fromEnum AudioVisualizerShader
a) (AudioVisualizerShader -> Int
forall a. Enum a => a -> Int
P.fromEnum AudioVisualizerShader
b)

type instance O.ParentTypes AudioVisualizerShader = '[]
instance O.HasParentTypes AudioVisualizerShader

foreign import ccall "gst_audio_visualizer_shader_get_type" c_gst_audio_visualizer_shader_get_type :: 
    IO GType

instance B.Types.TypedObject AudioVisualizerShader where
    glibType :: IO GType
glibType = IO GType
c_gst_audio_visualizer_shader_get_type

instance B.Types.BoxedEnum AudioVisualizerShader