module Media.Streaming.GStreamer.Base.BaseSrc (
BaseSrc,
BaseSrcClass,
castToBaseSrc,
gTypeBaseSrc,
baseSrcGetFlags,
baseSrcSetFlags,
baseSrcUnsetFlags,
baseSrcWaitPlaying,
baseSrcIsLive,
baseSrcGetPad,
baseSrcBlockSize,
baseSrcNumBuffers,
baseSrcTypefind
) where
import Control.Monad (liftM)
import Media.Streaming.GStreamer.Base.Types
import Media.Streaming.GStreamer.Base.Constants
import System.Glib.FFI
import System.Glib.Attributes
import System.Glib.Properties
baseSrcGetFlags :: BaseSrcClass baseSrcT
=> baseSrcT
-> IO [BaseSrcFlags]
baseSrcGetFlags = mkObjectGetFlags
baseSrcSetFlags :: BaseSrcClass baseSrcT
=> baseSrcT
-> [BaseSrcFlags]
-> IO ()
baseSrcSetFlags = mkObjectSetFlags
baseSrcUnsetFlags :: BaseSrcClass baseSrcT
=> baseSrcT
-> [BaseSrcFlags]
-> IO ()
baseSrcUnsetFlags = mkObjectUnsetFlags
baseSrcWaitPlaying :: BaseSrcClass baseSrcT
=> baseSrcT
-> IO FlowReturn
baseSrcWaitPlaying baseSrc =
liftM cToEnum $
(\(BaseSrc arg1) -> withForeignPtr arg1 $ \argPtr1 ->gst_base_src_wait_playing argPtr1) (toBaseSrc baseSrc)
baseSrcIsLive :: BaseSrcClass baseSrcT
=> baseSrcT
-> IO Bool
baseSrcIsLive baseSrc =
liftM toBool $ (\(BaseSrc arg1) -> withForeignPtr arg1 $ \argPtr1 ->gst_base_src_is_live argPtr1) (toBaseSrc baseSrc)
baseSrcGetPad :: BaseSrcClass baseSrcT
=> baseSrcT
-> IO Pad
baseSrcGetPad baseSrc =
withObject (toBaseSrc baseSrc) cBaseSrcGetPad >>= peekObject
foreign import ccall unsafe "_hs_gst_base_src_get_pad"
cBaseSrcGetPad :: Ptr BaseSrc
-> IO (Ptr Pad)
baseSrcBlockSize :: BaseSrcClass baseSrcT
=> Attr baseSrcT Word64
baseSrcBlockSize = newAttr
(objectGetPropertyUInt64 "blocksize")
(objectSetPropertyUInt64 "blocksize")
baseSrcNumBuffers :: BaseSrcClass baseSrcT
=> Attr baseSrcT Int
baseSrcNumBuffers =
newAttrFromIntProperty "num-buffers"
baseSrcTypefind :: BaseSrcClass baseSrcT
=> Attr baseSrcT Bool
baseSrcTypefind =
newAttrFromBoolProperty "typefind"
foreign import ccall safe "gst_base_src_wait_playing"
gst_base_src_wait_playing :: ((Ptr BaseSrc) -> (IO CInt))
foreign import ccall safe "gst_base_src_is_live"
gst_base_src_is_live :: ((Ptr BaseSrc) -> (IO CInt))