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

 -- * Flags
-- ** DiscovererSerializeFlags #flag:DiscovererSerializeFlags#

    DiscovererSerializeFlags(..)            ,




    ) 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


-- Flags DiscovererSerializeFlags
{- |
You can use these flags to control what is serialized by
'GI.GstPbutils.Objects.DiscovererInfo.discovererInfoToVariant'

/Since: 1.6/
-}
data DiscovererSerializeFlags =
      DiscovererSerializeFlagsBasic
    {- ^
    Serialize only basic information, excluding
    caps, tags and miscellaneous information
    -}
    | DiscovererSerializeFlagsCaps
    {- ^
    Serialize the caps for each stream
    -}
    | DiscovererSerializeFlagsTags
    {- ^
    Serialize the tags for each stream
    -}
    | DiscovererSerializeFlagsMisc
    {- ^
    Serialize miscellaneous information for each stream
    -}
    | DiscovererSerializeFlagsAll
    {- ^
    Serialize all the available info, including
    caps, tags and miscellaneous information
    -}
    | AnotherDiscovererSerializeFlags Int
    -- ^ Catch-all for unknown values
    deriving (Show, Eq)

instance P.Enum DiscovererSerializeFlags where
    fromEnum DiscovererSerializeFlagsBasic = 0
    fromEnum DiscovererSerializeFlagsCaps = 1
    fromEnum DiscovererSerializeFlagsTags = 2
    fromEnum DiscovererSerializeFlagsMisc = 4
    fromEnum DiscovererSerializeFlagsAll = 7
    fromEnum (AnotherDiscovererSerializeFlags k) = k

    toEnum 0 = DiscovererSerializeFlagsBasic
    toEnum 1 = DiscovererSerializeFlagsCaps
    toEnum 2 = DiscovererSerializeFlagsTags
    toEnum 4 = DiscovererSerializeFlagsMisc
    toEnum 7 = DiscovererSerializeFlagsAll
    toEnum k = AnotherDiscovererSerializeFlags k

instance P.Ord DiscovererSerializeFlags where
    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)

foreign import ccall "gst_discoverer_serialize_flags_get_type" c_gst_discoverer_serialize_flags_get_type ::
    IO GType

instance BoxedFlags DiscovererSerializeFlags where
    boxedFlagsType _ = c_gst_discoverer_serialize_flags_get_type

instance IsGFlag DiscovererSerializeFlags