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