gi-gsttag-1.0.17: GI/GstTag/Objects/TagMux.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)
Provides a base class for adding tags at the beginning or end of a
stream.
== Deriving from GstTagMux
Subclasses have to do the following things:
* In their base init function, they must add pad templates for the sink
pad and the source pad to the element class, describing the media type
they accept and output in the caps of the pad template.
* In their class init function, they must override the
GST_TAG_MUX_CLASS(mux_klass)->render_start_tag and\/or
GST_TAG_MUX_CLASS(mux_klass)->render_end_tag vfuncs and set up a render
function.
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.GstTag.Objects.TagMux
(
-- * Exported types
TagMux(..) ,
IsTagMux ,
toTagMux ,
noTagMux ,
) 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.Interfaces.TagSetter as Gst.TagSetter
import qualified GI.Gst.Objects.Element as Gst.Element
import qualified GI.Gst.Objects.Object as Gst.Object
-- | Memory-managed wrapper type.
newtype TagMux = TagMux (ManagedPtr TagMux)
foreign import ccall "gst_tag_mux_get_type"
c_gst_tag_mux_get_type :: IO GType
instance GObject TagMux where
gobjectType = c_gst_tag_mux_get_type
-- | Type class for types which can be safely cast to `TagMux`, for instance with `toTagMux`.
class (GObject o, O.IsDescendantOf TagMux o) => IsTagMux o
instance (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]
-- | Cast to `TagMux`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toTagMux :: (MonadIO m, IsTagMux o) => o -> m TagMux
toTagMux = liftIO . unsafeCastTo TagMux
-- | A convenience alias for `Nothing` :: `Maybe` `TagMux`.
noTagMux :: Maybe TagMux
noTagMux = Nothing
#if 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 "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 "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 "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.MethodInfo info TagMux p) => OL.IsLabel t (TagMux -> 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 TagMux
type instance O.AttributeList TagMux = TagMuxAttributeList
type TagMuxAttributeList = ('[ '("name", Gst.Object.ObjectNamePropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
#endif
#if 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