{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.GstTag.Objects.TagMux
(
TagMux(..) ,
IsTagMux ,
toTagMux ,
#if defined(ENABLE_OVERLOADING)
ResolveTagMuxMethod ,
#endif
) 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.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
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.Coerce as Coerce
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 GHC.Records as R
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gst.Interfaces.TagSetter as Gst.TagSetter
import qualified GI.Gst.Objects.Element as Gst.Element
import qualified GI.Gst.Objects.Object as Gst.Object
newtype TagMux = TagMux (SP.ManagedPtr TagMux)
deriving (TagMux -> TagMux -> Bool
(TagMux -> TagMux -> Bool)
-> (TagMux -> TagMux -> Bool) -> Eq TagMux
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TagMux -> TagMux -> Bool
== :: TagMux -> TagMux -> Bool
$c/= :: TagMux -> TagMux -> Bool
/= :: TagMux -> TagMux -> Bool
Eq)
instance SP.ManagedPtrNewtype TagMux where
toManagedPtr :: TagMux -> ManagedPtr TagMux
toManagedPtr (TagMux ManagedPtr TagMux
p) = ManagedPtr TagMux
p
foreign import ccall "gst_tag_mux_get_type"
c_gst_tag_mux_get_type :: IO B.Types.GType
instance B.Types.TypedObject TagMux where
glibType :: IO GType
glibType = IO GType
c_gst_tag_mux_get_type
instance B.Types.GObject TagMux
class (SP.GObject o, O.IsDescendantOf TagMux o) => IsTagMux o
instance (SP.GObject o, O.IsDescendantOf TagMux o) => IsTagMux o
instance O.HasParentTypes TagMux
type instance O.ParentTypes TagMux = '[Gst.Element.Element, Gst.Object.Object, GObject.Object.Object, Gst.TagSetter.TagSetter]
toTagMux :: (MIO.MonadIO m, IsTagMux o) => o -> m TagMux
toTagMux :: forall (m :: * -> *) o. (MonadIO m, IsTagMux o) => o -> m TagMux
toTagMux = IO TagMux -> m TagMux
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO TagMux -> m TagMux) -> (o -> IO TagMux) -> o -> m TagMux
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr TagMux -> TagMux) -> o -> IO TagMux
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr TagMux -> TagMux
TagMux
instance B.GValue.IsGValue (Maybe TagMux) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gst_tag_mux_get_type
gvalueSet_ :: Ptr GValue -> Maybe TagMux -> IO ()
gvalueSet_ Ptr GValue
gv Maybe TagMux
P.Nothing = Ptr GValue -> Ptr TagMux -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr TagMux
forall a. Ptr a
FP.nullPtr :: FP.Ptr TagMux)
gvalueSet_ Ptr GValue
gv (P.Just TagMux
obj) = TagMux -> (Ptr TagMux -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr TagMux
obj (Ptr GValue -> Ptr TagMux -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe TagMux)
gvalueGet_ Ptr GValue
gv = do
Ptr TagMux
ptr <- Ptr GValue -> IO (Ptr TagMux)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr TagMux)
if Ptr TagMux
ptr Ptr TagMux -> Ptr TagMux -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr TagMux
forall a. Ptr a
FP.nullPtr
then TagMux -> Maybe TagMux
forall a. a -> Maybe a
P.Just (TagMux -> Maybe TagMux) -> IO TagMux -> IO (Maybe TagMux)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr TagMux -> TagMux) -> Ptr TagMux -> IO TagMux
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr TagMux -> TagMux
TagMux Ptr TagMux
ptr
else Maybe TagMux -> IO (Maybe TagMux)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe TagMux
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveTagMuxMethod (t :: Symbol) (o :: *) :: * where
ResolveTagMuxMethod "abortState" o = Gst.Element.ElementAbortStateMethodInfo
ResolveTagMuxMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo
ResolveTagMuxMethod "addPad" o = Gst.Element.ElementAddPadMethodInfo
ResolveTagMuxMethod "addPropertyDeepNotifyWatch" o = Gst.Element.ElementAddPropertyDeepNotifyWatchMethodInfo
ResolveTagMuxMethod "addPropertyNotifyWatch" o = Gst.Element.ElementAddPropertyNotifyWatchMethodInfo
ResolveTagMuxMethod "addTagValue" o = Gst.TagSetter.TagSetterAddTagValueMethodInfo
ResolveTagMuxMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveTagMuxMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveTagMuxMethod "callAsync" o = Gst.Element.ElementCallAsyncMethodInfo
ResolveTagMuxMethod "changeState" o = Gst.Element.ElementChangeStateMethodInfo
ResolveTagMuxMethod "continueState" o = Gst.Element.ElementContinueStateMethodInfo
ResolveTagMuxMethod "createAllPads" o = Gst.Element.ElementCreateAllPadsMethodInfo
ResolveTagMuxMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo
ResolveTagMuxMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveTagMuxMethod "foreachPad" o = Gst.Element.ElementForeachPadMethodInfo
ResolveTagMuxMethod "foreachSinkPad" o = Gst.Element.ElementForeachSinkPadMethodInfo
ResolveTagMuxMethod "foreachSrcPad" o = Gst.Element.ElementForeachSrcPadMethodInfo
ResolveTagMuxMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveTagMuxMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveTagMuxMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo
ResolveTagMuxMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo
ResolveTagMuxMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo
ResolveTagMuxMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo
ResolveTagMuxMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveTagMuxMethod "isLockedState" o = Gst.Element.ElementIsLockedStateMethodInfo
ResolveTagMuxMethod "iteratePads" o = Gst.Element.ElementIteratePadsMethodInfo
ResolveTagMuxMethod "iterateSinkPads" o = Gst.Element.ElementIterateSinkPadsMethodInfo
ResolveTagMuxMethod "iterateSrcPads" o = Gst.Element.ElementIterateSrcPadsMethodInfo
ResolveTagMuxMethod "link" o = Gst.Element.ElementLinkMethodInfo
ResolveTagMuxMethod "linkFiltered" o = Gst.Element.ElementLinkFilteredMethodInfo
ResolveTagMuxMethod "linkPads" o = Gst.Element.ElementLinkPadsMethodInfo
ResolveTagMuxMethod "linkPadsFiltered" o = Gst.Element.ElementLinkPadsFilteredMethodInfo
ResolveTagMuxMethod "linkPadsFull" o = Gst.Element.ElementLinkPadsFullMethodInfo
ResolveTagMuxMethod "lostState" o = Gst.Element.ElementLostStateMethodInfo
ResolveTagMuxMethod "mergeTags" o = Gst.TagSetter.TagSetterMergeTagsMethodInfo
ResolveTagMuxMethod "messageFull" o = Gst.Element.ElementMessageFullMethodInfo
ResolveTagMuxMethod "messageFullWithDetails" o = Gst.Element.ElementMessageFullWithDetailsMethodInfo
ResolveTagMuxMethod "noMorePads" o = Gst.Element.ElementNoMorePadsMethodInfo
ResolveTagMuxMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveTagMuxMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveTagMuxMethod "postMessage" o = Gst.Element.ElementPostMessageMethodInfo
ResolveTagMuxMethod "provideClock" o = Gst.Element.ElementProvideClockMethodInfo
ResolveTagMuxMethod "query" o = Gst.Element.ElementQueryMethodInfo
ResolveTagMuxMethod "queryConvert" o = Gst.Element.ElementQueryConvertMethodInfo
ResolveTagMuxMethod "queryDuration" o = Gst.Element.ElementQueryDurationMethodInfo
ResolveTagMuxMethod "queryPosition" o = Gst.Element.ElementQueryPositionMethodInfo
ResolveTagMuxMethod "ref" o = Gst.Object.ObjectRefMethodInfo
ResolveTagMuxMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveTagMuxMethod "releaseRequestPad" o = Gst.Element.ElementReleaseRequestPadMethodInfo
ResolveTagMuxMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo
ResolveTagMuxMethod "removePad" o = Gst.Element.ElementRemovePadMethodInfo
ResolveTagMuxMethod "removePropertyNotifyWatch" o = Gst.Element.ElementRemovePropertyNotifyWatchMethodInfo
ResolveTagMuxMethod "requestPad" o = Gst.Element.ElementRequestPadMethodInfo
ResolveTagMuxMethod "requestPadSimple" o = Gst.Element.ElementRequestPadSimpleMethodInfo
ResolveTagMuxMethod "resetTags" o = Gst.TagSetter.TagSetterResetTagsMethodInfo
ResolveTagMuxMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveTagMuxMethod "seek" o = Gst.Element.ElementSeekMethodInfo
ResolveTagMuxMethod "seekSimple" o = Gst.Element.ElementSeekSimpleMethodInfo
ResolveTagMuxMethod "sendEvent" o = Gst.Element.ElementSendEventMethodInfo
ResolveTagMuxMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveTagMuxMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveTagMuxMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo
ResolveTagMuxMethod "syncStateWithParent" o = Gst.Element.ElementSyncStateWithParentMethodInfo
ResolveTagMuxMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo
ResolveTagMuxMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveTagMuxMethod "unlink" o = Gst.Element.ElementUnlinkMethodInfo
ResolveTagMuxMethod "unlinkPads" o = Gst.Element.ElementUnlinkPadsMethodInfo
ResolveTagMuxMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo
ResolveTagMuxMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo
ResolveTagMuxMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveTagMuxMethod "getBaseTime" o = Gst.Element.ElementGetBaseTimeMethodInfo
ResolveTagMuxMethod "getBus" o = Gst.Element.ElementGetBusMethodInfo
ResolveTagMuxMethod "getClock" o = Gst.Element.ElementGetClockMethodInfo
ResolveTagMuxMethod "getCompatiblePad" o = Gst.Element.ElementGetCompatiblePadMethodInfo
ResolveTagMuxMethod "getCompatiblePadTemplate" o = Gst.Element.ElementGetCompatiblePadTemplateMethodInfo
ResolveTagMuxMethod "getContext" o = Gst.Element.ElementGetContextMethodInfo
ResolveTagMuxMethod "getContextUnlocked" o = Gst.Element.ElementGetContextUnlockedMethodInfo
ResolveTagMuxMethod "getContexts" o = Gst.Element.ElementGetContextsMethodInfo
ResolveTagMuxMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo
ResolveTagMuxMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo
ResolveTagMuxMethod "getCurrentClockTime" o = Gst.Element.ElementGetCurrentClockTimeMethodInfo
ResolveTagMuxMethod "getCurrentRunningTime" o = Gst.Element.ElementGetCurrentRunningTimeMethodInfo
ResolveTagMuxMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveTagMuxMethod "getFactory" o = Gst.Element.ElementGetFactoryMethodInfo
ResolveTagMuxMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo
ResolveTagMuxMethod "getMetadata" o = Gst.Element.ElementGetMetadataMethodInfo
ResolveTagMuxMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo
ResolveTagMuxMethod "getPadTemplate" o = Gst.Element.ElementGetPadTemplateMethodInfo
ResolveTagMuxMethod "getPadTemplateList" o = Gst.Element.ElementGetPadTemplateListMethodInfo
ResolveTagMuxMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo
ResolveTagMuxMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo
ResolveTagMuxMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveTagMuxMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveTagMuxMethod "getRequestPad" o = Gst.Element.ElementGetRequestPadMethodInfo
ResolveTagMuxMethod "getStartTime" o = Gst.Element.ElementGetStartTimeMethodInfo
ResolveTagMuxMethod "getState" o = Gst.Element.ElementGetStateMethodInfo
ResolveTagMuxMethod "getStaticPad" o = Gst.Element.ElementGetStaticPadMethodInfo
ResolveTagMuxMethod "getTagList" o = Gst.TagSetter.TagSetterGetTagListMethodInfo
ResolveTagMuxMethod "getTagMergeMode" o = Gst.TagSetter.TagSetterGetTagMergeModeMethodInfo
ResolveTagMuxMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo
ResolveTagMuxMethod "setBaseTime" o = Gst.Element.ElementSetBaseTimeMethodInfo
ResolveTagMuxMethod "setBus" o = Gst.Element.ElementSetBusMethodInfo
ResolveTagMuxMethod "setClock" o = Gst.Element.ElementSetClockMethodInfo
ResolveTagMuxMethod "setContext" o = Gst.Element.ElementSetContextMethodInfo
ResolveTagMuxMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo
ResolveTagMuxMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo
ResolveTagMuxMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo
ResolveTagMuxMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveTagMuxMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveTagMuxMethod "setLockedState" o = Gst.Element.ElementSetLockedStateMethodInfo
ResolveTagMuxMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo
ResolveTagMuxMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo
ResolveTagMuxMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveTagMuxMethod "setStartTime" o = Gst.Element.ElementSetStartTimeMethodInfo
ResolveTagMuxMethod "setState" o = Gst.Element.ElementSetStateMethodInfo
ResolveTagMuxMethod "setTagMergeMode" o = Gst.TagSetter.TagSetterSetTagMergeModeMethodInfo
ResolveTagMuxMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveTagMuxMethod t TagMux, O.OverloadedMethod info TagMux p) => OL.IsLabel t (TagMux -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveTagMuxMethod t TagMux, O.OverloadedMethod info TagMux p, R.HasField t TagMux p) => R.HasField t TagMux p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveTagMuxMethod t TagMux, O.OverloadedMethodInfo info TagMux) => OL.IsLabel t (O.MethodProxy info TagMux) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList TagMux
type instance O.AttributeList TagMux = TagMuxAttributeList
type TagMuxAttributeList = ('[ '("name", Gst.Object.ObjectNamePropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList TagMux = TagMuxSignalList
type TagMuxSignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.Element.ElementNoMorePadsSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("padAdded", Gst.Element.ElementPadAddedSignalInfo), '("padRemoved", Gst.Element.ElementPadRemovedSignalInfo)] :: [(Symbol, *)])
#endif