{-# LANGUAGE CApiFFI #-} module Hsm.Stream.FFI ( GstElement , gstInit , gstDeinit , gstParseLaunch , gstStatePlaying , gstStateNull , gstElementSetState , gstObjectUnref ) where import Foreign.C.String (CString) import Foreign.C.Types (CChar, CInt) import Foreign.Ptr (Ptr) data GstElement data GError newtype GStateChangeReturn = GStateChangeReturn Int newtype GState = GState Int foreign import capi safe "gst/gst.h gst_init" gstInit :: Ptr CInt -> Ptr (Ptr (Ptr CChar)) -> IO () foreign import capi safe "gst/gst.h gst_deinit" gstDeinit :: IO () foreign import capi safe "gst/gst.h gst_parse_launch" gstParseLaunch :: CString -> Ptr GError -> IO (Ptr GstElement) foreign import capi safe "gst/gst.h value GST_STATE_PLAYING" gstStatePlaying :: GState foreign import capi safe "gst/gst.h value GST_STATE_NULL" gstStateNull :: GState foreign import capi safe "gst/gst.h gst_element_set_state" gstElementSetState :: Ptr GstElement -> GState -> IO GStateChangeReturn foreign import capi safe "gst/gst.h gst_object_unref" gstObjectUnref :: Ptr GstElement -> IO ()