gi-gstpbutils-1.0.17: GI/GstPbutils/Objects/EncodingContainerProfile.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
Encoding profiles for containers. Keeps track of a list of 'GI.GstPbutils.Objects.EncodingProfile.EncodingProfile'
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.GstPbutils.Objects.EncodingContainerProfile
(
-- * Exported types
EncodingContainerProfile(..) ,
IsEncodingContainerProfile ,
toEncodingContainerProfile ,
noEncodingContainerProfile ,
-- * Methods
-- ** addProfile #method:addProfile#
#if ENABLE_OVERLOADING
EncodingContainerProfileAddProfileMethodInfo,
#endif
encodingContainerProfileAddProfile ,
-- ** containsProfile #method:containsProfile#
#if ENABLE_OVERLOADING
EncodingContainerProfileContainsProfileMethodInfo,
#endif
encodingContainerProfileContainsProfile ,
-- ** getProfiles #method:getProfiles#
#if ENABLE_OVERLOADING
EncodingContainerProfileGetProfilesMethodInfo,
#endif
encodingContainerProfileGetProfiles ,
-- ** new #method:new#
encodingContainerProfileNew ,
) 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.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.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
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gst.Structs.Caps as Gst.Caps
import {-# SOURCE #-} qualified GI.GstPbutils.Objects.EncodingProfile as GstPbutils.EncodingProfile
-- | Memory-managed wrapper type.
newtype EncodingContainerProfile = EncodingContainerProfile (ManagedPtr EncodingContainerProfile)
foreign import ccall "gst_encoding_container_profile_get_type"
c_gst_encoding_container_profile_get_type :: IO GType
instance GObject EncodingContainerProfile where
gobjectType = c_gst_encoding_container_profile_get_type
-- | Type class for types which can be safely cast to `EncodingContainerProfile`, for instance with `toEncodingContainerProfile`.
class (GObject o, O.IsDescendantOf EncodingContainerProfile o) => IsEncodingContainerProfile o
instance (GObject o, O.IsDescendantOf EncodingContainerProfile o) => IsEncodingContainerProfile o
instance O.HasParentTypes EncodingContainerProfile
type instance O.ParentTypes EncodingContainerProfile = '[GstPbutils.EncodingProfile.EncodingProfile, GObject.Object.Object]
-- | Cast to `EncodingContainerProfile`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toEncodingContainerProfile :: (MonadIO m, IsEncodingContainerProfile o) => o -> m EncodingContainerProfile
toEncodingContainerProfile = liftIO . unsafeCastTo EncodingContainerProfile
-- | A convenience alias for `Nothing` :: `Maybe` `EncodingContainerProfile`.
noEncodingContainerProfile :: Maybe EncodingContainerProfile
noEncodingContainerProfile = Nothing
#if ENABLE_OVERLOADING
type family ResolveEncodingContainerProfileMethod (t :: Symbol) (o :: *) :: * where
ResolveEncodingContainerProfileMethod "addProfile" o = EncodingContainerProfileAddProfileMethodInfo
ResolveEncodingContainerProfileMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveEncodingContainerProfileMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveEncodingContainerProfileMethod "containsProfile" o = EncodingContainerProfileContainsProfileMethodInfo
ResolveEncodingContainerProfileMethod "copy" o = GstPbutils.EncodingProfile.EncodingProfileCopyMethodInfo
ResolveEncodingContainerProfileMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveEncodingContainerProfileMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveEncodingContainerProfileMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveEncodingContainerProfileMethod "isEnabled" o = GstPbutils.EncodingProfile.EncodingProfileIsEnabledMethodInfo
ResolveEncodingContainerProfileMethod "isEqual" o = GstPbutils.EncodingProfile.EncodingProfileIsEqualMethodInfo
ResolveEncodingContainerProfileMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveEncodingContainerProfileMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveEncodingContainerProfileMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveEncodingContainerProfileMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveEncodingContainerProfileMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveEncodingContainerProfileMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveEncodingContainerProfileMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveEncodingContainerProfileMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveEncodingContainerProfileMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveEncodingContainerProfileMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveEncodingContainerProfileMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveEncodingContainerProfileMethod "getAllowDynamicOutput" o = GstPbutils.EncodingProfile.EncodingProfileGetAllowDynamicOutputMethodInfo
ResolveEncodingContainerProfileMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveEncodingContainerProfileMethod "getDescription" o = GstPbutils.EncodingProfile.EncodingProfileGetDescriptionMethodInfo
ResolveEncodingContainerProfileMethod "getFileExtension" o = GstPbutils.EncodingProfile.EncodingProfileGetFileExtensionMethodInfo
ResolveEncodingContainerProfileMethod "getFormat" o = GstPbutils.EncodingProfile.EncodingProfileGetFormatMethodInfo
ResolveEncodingContainerProfileMethod "getInputCaps" o = GstPbutils.EncodingProfile.EncodingProfileGetInputCapsMethodInfo
ResolveEncodingContainerProfileMethod "getName" o = GstPbutils.EncodingProfile.EncodingProfileGetNameMethodInfo
ResolveEncodingContainerProfileMethod "getPresence" o = GstPbutils.EncodingProfile.EncodingProfileGetPresenceMethodInfo
ResolveEncodingContainerProfileMethod "getPreset" o = GstPbutils.EncodingProfile.EncodingProfileGetPresetMethodInfo
ResolveEncodingContainerProfileMethod "getPresetName" o = GstPbutils.EncodingProfile.EncodingProfileGetPresetNameMethodInfo
ResolveEncodingContainerProfileMethod "getProfiles" o = EncodingContainerProfileGetProfilesMethodInfo
ResolveEncodingContainerProfileMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveEncodingContainerProfileMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveEncodingContainerProfileMethod "getRestriction" o = GstPbutils.EncodingProfile.EncodingProfileGetRestrictionMethodInfo
ResolveEncodingContainerProfileMethod "getTypeNick" o = GstPbutils.EncodingProfile.EncodingProfileGetTypeNickMethodInfo
ResolveEncodingContainerProfileMethod "setAllowDynamicOutput" o = GstPbutils.EncodingProfile.EncodingProfileSetAllowDynamicOutputMethodInfo
ResolveEncodingContainerProfileMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveEncodingContainerProfileMethod "setDescription" o = GstPbutils.EncodingProfile.EncodingProfileSetDescriptionMethodInfo
ResolveEncodingContainerProfileMethod "setEnabled" o = GstPbutils.EncodingProfile.EncodingProfileSetEnabledMethodInfo
ResolveEncodingContainerProfileMethod "setFormat" o = GstPbutils.EncodingProfile.EncodingProfileSetFormatMethodInfo
ResolveEncodingContainerProfileMethod "setName" o = GstPbutils.EncodingProfile.EncodingProfileSetNameMethodInfo
ResolveEncodingContainerProfileMethod "setPresence" o = GstPbutils.EncodingProfile.EncodingProfileSetPresenceMethodInfo
ResolveEncodingContainerProfileMethod "setPreset" o = GstPbutils.EncodingProfile.EncodingProfileSetPresetMethodInfo
ResolveEncodingContainerProfileMethod "setPresetName" o = GstPbutils.EncodingProfile.EncodingProfileSetPresetNameMethodInfo
ResolveEncodingContainerProfileMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveEncodingContainerProfileMethod "setRestriction" o = GstPbutils.EncodingProfile.EncodingProfileSetRestrictionMethodInfo
ResolveEncodingContainerProfileMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveEncodingContainerProfileMethod t EncodingContainerProfile, O.MethodInfo info EncodingContainerProfile p) => OL.IsLabel t (EncodingContainerProfile -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList EncodingContainerProfile
type instance O.AttributeList EncodingContainerProfile = EncodingContainerProfileAttributeList
type EncodingContainerProfileAttributeList = ('[ '("restrictionCaps", GstPbutils.EncodingProfile.EncodingProfileRestrictionCapsPropertyInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList EncodingContainerProfile = EncodingContainerProfileSignalList
type EncodingContainerProfileSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
-- method EncodingContainerProfile::new
-- method type : Constructor
-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The name of the container profile, can be %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The description of the container profile,\n can be %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface (Name {namespace = "Gst", name = "Caps"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The format to use for this profile", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "preset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The preset to use for this profile.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "GstPbutils", name = "EncodingContainerProfile"}))
-- throws : False
-- Skip return : False
foreign import ccall "gst_encoding_container_profile_new" gst_encoding_container_profile_new ::
CString -> -- name : TBasicType TUTF8
CString -> -- description : TBasicType TUTF8
Ptr Gst.Caps.Caps -> -- format : TInterface (Name {namespace = "Gst", name = "Caps"})
CString -> -- preset : TBasicType TUTF8
IO (Ptr EncodingContainerProfile)
{- |
Creates a new 'GI.GstPbutils.Objects.EncodingContainerProfile.EncodingContainerProfile'.
-}
encodingContainerProfileNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (T.Text)
{- ^ /@name@/: The name of the container profile, can be 'Nothing' -}
-> Maybe (T.Text)
{- ^ /@description@/: The description of the container profile,
can be 'Nothing' -}
-> Gst.Caps.Caps
{- ^ /@format@/: The format to use for this profile -}
-> Maybe (T.Text)
{- ^ /@preset@/: The preset to use for this profile. -}
-> m EncodingContainerProfile
{- ^ __Returns:__ The newly created 'GI.GstPbutils.Objects.EncodingContainerProfile.EncodingContainerProfile'. -}
encodingContainerProfileNew name description format preset = liftIO $ do
maybeName <- case name of
Nothing -> return nullPtr
Just jName -> do
jName' <- textToCString jName
return jName'
maybeDescription <- case description of
Nothing -> return nullPtr
Just jDescription -> do
jDescription' <- textToCString jDescription
return jDescription'
format' <- unsafeManagedPtrGetPtr format
maybePreset <- case preset of
Nothing -> return nullPtr
Just jPreset -> do
jPreset' <- textToCString jPreset
return jPreset'
result <- gst_encoding_container_profile_new maybeName maybeDescription format' maybePreset
checkUnexpectedReturnNULL "encodingContainerProfileNew" result
result' <- (wrapObject EncodingContainerProfile) result
touchManagedPtr format
freeMem maybeName
freeMem maybeDescription
freeMem maybePreset
return result'
#if ENABLE_OVERLOADING
#endif
-- method EncodingContainerProfile::add_profile
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "container", argType = TInterface (Name {namespace = "GstPbutils", name = "EncodingContainerProfile"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstEncodingContainerProfile to use", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "profile", argType = TInterface (Name {namespace = "GstPbutils", name = "EncodingProfile"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstEncodingProfile to add.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gst_encoding_container_profile_add_profile" gst_encoding_container_profile_add_profile ::
Ptr EncodingContainerProfile -> -- container : TInterface (Name {namespace = "GstPbutils", name = "EncodingContainerProfile"})
Ptr GstPbutils.EncodingProfile.EncodingProfile -> -- profile : TInterface (Name {namespace = "GstPbutils", name = "EncodingProfile"})
IO CInt
{- |
Add a 'GI.GstPbutils.Objects.EncodingProfile.EncodingProfile' to the list of profiles handled by /@container@/.
No copy of /@profile@/ will be made, if you wish to use it elsewhere after this
method you should increment its reference count.
-}
encodingContainerProfileAddProfile ::
(B.CallStack.HasCallStack, MonadIO m, IsEncodingContainerProfile a, GstPbutils.EncodingProfile.IsEncodingProfile b) =>
a
{- ^ /@container@/: the 'GI.GstPbutils.Objects.EncodingContainerProfile.EncodingContainerProfile' to use -}
-> b
{- ^ /@profile@/: the 'GI.GstPbutils.Objects.EncodingProfile.EncodingProfile' to add. -}
-> m Bool
{- ^ __Returns:__ 'True' if the /@stream@/ was properly added, else 'False'. -}
encodingContainerProfileAddProfile container profile = liftIO $ do
container' <- unsafeManagedPtrCastPtr container
profile' <- B.ManagedPtr.disownObject profile
result <- gst_encoding_container_profile_add_profile container' profile'
let result' = (/= 0) result
touchManagedPtr container
touchManagedPtr profile
return result'
#if ENABLE_OVERLOADING
data EncodingContainerProfileAddProfileMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, IsEncodingContainerProfile a, GstPbutils.EncodingProfile.IsEncodingProfile b) => O.MethodInfo EncodingContainerProfileAddProfileMethodInfo a signature where
overloadedMethod _ = encodingContainerProfileAddProfile
#endif
-- method EncodingContainerProfile::contains_profile
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "container", argType = TInterface (Name {namespace = "GstPbutils", name = "EncodingContainerProfile"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstEncodingContainerProfile", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "profile", argType = TInterface (Name {namespace = "GstPbutils", name = "EncodingProfile"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstEncodingProfile", 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 "gst_encoding_container_profile_contains_profile" gst_encoding_container_profile_contains_profile ::
Ptr EncodingContainerProfile -> -- container : TInterface (Name {namespace = "GstPbutils", name = "EncodingContainerProfile"})
Ptr GstPbutils.EncodingProfile.EncodingProfile -> -- profile : TInterface (Name {namespace = "GstPbutils", name = "EncodingProfile"})
IO CInt
{- |
Checks if /@container@/ contains a 'GI.GstPbutils.Objects.EncodingProfile.EncodingProfile' identical to
/@profile@/.
-}
encodingContainerProfileContainsProfile ::
(B.CallStack.HasCallStack, MonadIO m, IsEncodingContainerProfile a, GstPbutils.EncodingProfile.IsEncodingProfile b) =>
a
{- ^ /@container@/: a 'GI.GstPbutils.Objects.EncodingContainerProfile.EncodingContainerProfile' -}
-> b
{- ^ /@profile@/: a 'GI.GstPbutils.Objects.EncodingProfile.EncodingProfile' -}
-> m Bool
{- ^ __Returns:__ 'True' if /@container@/ contains a 'GI.GstPbutils.Objects.EncodingProfile.EncodingProfile' identical
to /@profile@/, else 'False'. -}
encodingContainerProfileContainsProfile container profile = liftIO $ do
container' <- unsafeManagedPtrCastPtr container
profile' <- unsafeManagedPtrCastPtr profile
result <- gst_encoding_container_profile_contains_profile container' profile'
let result' = (/= 0) result
touchManagedPtr container
touchManagedPtr profile
return result'
#if ENABLE_OVERLOADING
data EncodingContainerProfileContainsProfileMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, IsEncodingContainerProfile a, GstPbutils.EncodingProfile.IsEncodingProfile b) => O.MethodInfo EncodingContainerProfileContainsProfileMethodInfo a signature where
overloadedMethod _ = encodingContainerProfileContainsProfile
#endif
-- method EncodingContainerProfile::get_profiles
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "profile", argType = TInterface (Name {namespace = "GstPbutils", name = "EncodingContainerProfile"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstEncodingContainerProfile", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TGList (TInterface (Name {namespace = "GstPbutils", name = "EncodingProfile"})))
-- throws : False
-- Skip return : False
foreign import ccall "gst_encoding_container_profile_get_profiles" gst_encoding_container_profile_get_profiles ::
Ptr EncodingContainerProfile -> -- profile : TInterface (Name {namespace = "GstPbutils", name = "EncodingContainerProfile"})
IO (Ptr (GList (Ptr GstPbutils.EncodingProfile.EncodingProfile)))
{- |
/No description available in the introspection data./
-}
encodingContainerProfileGetProfiles ::
(B.CallStack.HasCallStack, MonadIO m, IsEncodingContainerProfile a) =>
a
{- ^ /@profile@/: a 'GI.GstPbutils.Objects.EncodingContainerProfile.EncodingContainerProfile' -}
-> m [GstPbutils.EncodingProfile.EncodingProfile]
{- ^ __Returns:__
the list of contained 'GI.GstPbutils.Objects.EncodingProfile.EncodingProfile'. -}
encodingContainerProfileGetProfiles profile = liftIO $ do
profile' <- unsafeManagedPtrCastPtr profile
result <- gst_encoding_container_profile_get_profiles profile'
result' <- unpackGList result
result'' <- mapM (newObject GstPbutils.EncodingProfile.EncodingProfile) result'
touchManagedPtr profile
return result''
#if ENABLE_OVERLOADING
data EncodingContainerProfileGetProfilesMethodInfo
instance (signature ~ (m [GstPbutils.EncodingProfile.EncodingProfile]), MonadIO m, IsEncodingContainerProfile a) => O.MethodInfo EncodingContainerProfileGetProfilesMethodInfo a signature where
overloadedMethod _ = encodingContainerProfileGetProfiles
#endif