module Media.Streaming.GStreamer.Core.Plugin (
Plugin,
PluginClass,
castToPlugin,
gTypePlugin,
pluginGetName,
pluginGetDescription,
pluginGetFilename,
pluginGetLicense,
pluginGetPackage,
pluginGetOrigin,
pluginGetSource,
pluginGetVersion,
pluginIsLoaded,
pluginLoadByName,
pluginLoad,
pluginName,
pluginDescription,
pluginFilename,
pluginLicense,
pluginPackage,
pluginOrigin,
pluginSource,
pluginVersion
) where
import Control.Monad (liftM)
import Media.Streaming.GStreamer.Core.Types
import System.Glib.GObject
import System.Glib.FFI
import System.Glib.UTFString
import System.Glib.Attributes ( ReadAttr
, readAttr )
pluginGetName :: PluginClass plugin
=> plugin
-> IO String
pluginGetName plugin =
(\(Plugin arg1) -> withForeignPtr arg1 $ \argPtr1 ->gst_plugin_get_name argPtr1) (toPlugin plugin) >>= peekUTFString
pluginGetDescription :: PluginClass plugin
=> plugin
-> IO String
pluginGetDescription plugin =
(\(Plugin arg1) -> withForeignPtr arg1 $ \argPtr1 ->gst_plugin_get_description argPtr1) (toPlugin plugin) >>= peekUTFString
pluginGetFilename :: PluginClass plugin
=> plugin
-> IO FilePath
pluginGetFilename plugin =
(\(Plugin arg1) -> withForeignPtr arg1 $ \argPtr1 ->gst_plugin_get_filename argPtr1) (toPlugin plugin) >>= peekUTFString
pluginGetLicense :: PluginClass plugin
=> plugin
-> IO String
pluginGetLicense plugin =
(\(Plugin arg1) -> withForeignPtr arg1 $ \argPtr1 ->gst_plugin_get_license argPtr1) (toPlugin plugin) >>= peekUTFString
pluginGetPackage :: PluginClass plugin
=> plugin
-> IO String
pluginGetPackage plugin =
(\(Plugin arg1) -> withForeignPtr arg1 $ \argPtr1 ->gst_plugin_get_package argPtr1) (toPlugin plugin) >>= peekUTFString
pluginGetOrigin :: PluginClass plugin
=> plugin
-> IO String
pluginGetOrigin plugin =
(\(Plugin arg1) -> withForeignPtr arg1 $ \argPtr1 ->gst_plugin_get_origin argPtr1) (toPlugin plugin) >>= peekUTFString
pluginGetSource :: PluginClass plugin
=> plugin
-> IO String
pluginGetSource plugin =
(\(Plugin arg1) -> withForeignPtr arg1 $ \argPtr1 ->gst_plugin_get_source argPtr1) (toPlugin plugin) >>= peekUTFString
pluginGetVersion :: PluginClass plugin
=> plugin
-> IO String
pluginGetVersion plugin =
(\(Plugin arg1) -> withForeignPtr arg1 $ \argPtr1 ->gst_plugin_get_version argPtr1) (toPlugin plugin) >>= peekUTFString
pluginIsLoaded :: PluginClass plugin
=> plugin
-> IO Bool
pluginIsLoaded =
(liftM toBool) . (\(Plugin arg1) -> withForeignPtr arg1 $ \argPtr1 ->gst_plugin_is_loaded argPtr1) . toPlugin
pluginName :: PluginClass plugin
=> ReadAttr plugin String
pluginName = readAttr pluginGetName
pluginDescription :: PluginClass plugin
=> ReadAttr plugin String
pluginDescription = readAttr pluginGetDescription
pluginFilename :: PluginClass plugin
=> ReadAttr plugin FilePath
pluginFilename = readAttr pluginGetFilename
pluginLicense :: PluginClass plugin
=> ReadAttr plugin String
pluginLicense = readAttr pluginGetLicense
pluginPackage :: PluginClass plugin
=> ReadAttr plugin String
pluginPackage = readAttr pluginGetPackage
pluginOrigin :: PluginClass plugin
=> ReadAttr plugin String
pluginOrigin = readAttr pluginGetOrigin
pluginSource :: PluginClass plugin
=> ReadAttr plugin String
pluginSource = readAttr pluginGetSource
pluginVersion :: PluginClass plugin
=> ReadAttr plugin String
pluginVersion = readAttr pluginGetVersion
pluginLoad :: PluginClass plugin
=> plugin
-> IO plugin
pluginLoad plugin =
liftM (unsafeCastGObject . toGObject) $
(\(Plugin arg1) -> withForeignPtr arg1 $ \argPtr1 ->gst_plugin_load argPtr1) (toPlugin plugin) >>=
takeObject
pluginLoadByName :: String
-> IO Plugin
pluginLoadByName name =
withUTFString name gst_plugin_load_by_name >>=
takeObject
foreign import ccall safe "gst_plugin_get_name"
gst_plugin_get_name :: ((Ptr Plugin) -> (IO (Ptr CChar)))
foreign import ccall safe "gst_plugin_get_description"
gst_plugin_get_description :: ((Ptr Plugin) -> (IO (Ptr CChar)))
foreign import ccall safe "gst_plugin_get_filename"
gst_plugin_get_filename :: ((Ptr Plugin) -> (IO (Ptr CChar)))
foreign import ccall safe "gst_plugin_get_license"
gst_plugin_get_license :: ((Ptr Plugin) -> (IO (Ptr CChar)))
foreign import ccall safe "gst_plugin_get_package"
gst_plugin_get_package :: ((Ptr Plugin) -> (IO (Ptr CChar)))
foreign import ccall safe "gst_plugin_get_origin"
gst_plugin_get_origin :: ((Ptr Plugin) -> (IO (Ptr CChar)))
foreign import ccall safe "gst_plugin_get_source"
gst_plugin_get_source :: ((Ptr Plugin) -> (IO (Ptr CChar)))
foreign import ccall safe "gst_plugin_get_version"
gst_plugin_get_version :: ((Ptr Plugin) -> (IO (Ptr CChar)))
foreign import ccall safe "gst_plugin_is_loaded"
gst_plugin_is_loaded :: ((Ptr Plugin) -> (IO CInt))
foreign import ccall safe "gst_plugin_load"
gst_plugin_load :: ((Ptr Plugin) -> (IO (Ptr Plugin)))
foreign import ccall safe "gst_plugin_load_by_name"
gst_plugin_load_by_name :: ((Ptr CChar) -> (IO (Ptr Plugin)))