gi-gst-0.1.6.13: GI/Gst/Interfaces/Preset.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}
module GI.Gst.Interfaces.Preset
(
-- * Exported types
Preset(..) ,
noPreset ,
PresetK ,
-- * Methods
-- ** presetDeletePreset
PresetDeletePresetMethodInfo ,
presetDeletePreset ,
-- ** presetGetAppDir
presetGetAppDir ,
-- ** presetGetMeta
PresetGetMetaMethodInfo ,
presetGetMeta ,
-- ** presetGetPresetNames
PresetGetPresetNamesMethodInfo ,
presetGetPresetNames ,
-- ** presetGetPropertyNames
PresetGetPropertyNamesMethodInfo ,
presetGetPropertyNames ,
-- ** presetIsEditable
PresetIsEditableMethodInfo ,
presetIsEditable ,
-- ** presetLoadPreset
PresetLoadPresetMethodInfo ,
presetLoadPreset ,
-- ** presetRenamePreset
PresetRenamePresetMethodInfo ,
presetRenamePreset ,
-- ** presetSavePreset
PresetSavePresetMethodInfo ,
presetSavePreset ,
-- ** presetSetAppDir
presetSetAppDir ,
-- ** presetSetMeta
PresetSetMetaMethodInfo ,
presetSetMeta ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.Gst.Types
import GI.Gst.Callbacks
-- interface Preset
newtype Preset = Preset (ForeignPtr Preset)
noPreset :: Maybe Preset
noPreset = Nothing
type family ResolvePresetMethod (t :: Symbol) (o :: *) :: * where
ResolvePresetMethod "deletePreset" o = PresetDeletePresetMethodInfo
ResolvePresetMethod "isEditable" o = PresetIsEditableMethodInfo
ResolvePresetMethod "loadPreset" o = PresetLoadPresetMethodInfo
ResolvePresetMethod "renamePreset" o = PresetRenamePresetMethodInfo
ResolvePresetMethod "savePreset" o = PresetSavePresetMethodInfo
ResolvePresetMethod "getMeta" o = PresetGetMetaMethodInfo
ResolvePresetMethod "getPresetNames" o = PresetGetPresetNamesMethodInfo
ResolvePresetMethod "getPropertyNames" o = PresetGetPropertyNamesMethodInfo
ResolvePresetMethod "setMeta" o = PresetSetMetaMethodInfo
ResolvePresetMethod l o = MethodResolutionFailed l o
instance (info ~ ResolvePresetMethod t Preset, MethodInfo info Preset p) => IsLabelProxy t (Preset -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolvePresetMethod t Preset, MethodInfo info Preset p) => IsLabel t (Preset -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif
type instance AttributeList Preset = PresetAttributeList
type PresetAttributeList = ('[ ] :: [(Symbol, *)])
type instance SignalList Preset = PresetSignalList
type PresetSignalList = ('[ ] :: [(Symbol, *)])
class ForeignPtrNewtype a => PresetK a
instance (ForeignPtrNewtype o, IsDescendantOf Preset o) => PresetK o
type instance ParentTypes Preset = PresetParentTypes
type PresetParentTypes = '[]
-- method Preset::delete_preset
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Preset", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "gst_preset_delete_preset" gst_preset_delete_preset ::
Ptr Preset -> -- _obj : TInterface "Gst" "Preset"
CString -> -- name : TBasicType TUTF8
IO CInt
presetDeletePreset ::
(MonadIO m, PresetK a) =>
a -- _obj
-> T.Text -- name
-> m Bool -- result
presetDeletePreset _obj name = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
name' <- textToCString name
result <- gst_preset_delete_preset _obj' name'
let result' = (/= 0) result
touchManagedPtr _obj
freeMem name'
return result'
data PresetDeletePresetMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, PresetK a) => MethodInfo PresetDeletePresetMethodInfo a signature where
overloadedMethod _ = presetDeletePreset
-- method Preset::get_meta
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Preset", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "gst_preset_get_meta" gst_preset_get_meta ::
Ptr Preset -> -- _obj : TInterface "Gst" "Preset"
CString -> -- name : TBasicType TUTF8
CString -> -- tag : TBasicType TUTF8
Ptr CString -> -- value : TBasicType TUTF8
IO CInt
presetGetMeta ::
(MonadIO m, PresetK a) =>
a -- _obj
-> T.Text -- name
-> T.Text -- tag
-> m (Bool,T.Text) -- result
presetGetMeta _obj name tag = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
name' <- textToCString name
tag' <- textToCString tag
value <- allocMem :: IO (Ptr CString)
result <- gst_preset_get_meta _obj' name' tag' value
let result' = (/= 0) result
value' <- peek value
value'' <- cstringToText value'
freeMem value'
touchManagedPtr _obj
freeMem name'
freeMem tag'
freeMem value
return (result', value'')
data PresetGetMetaMethodInfo
instance (signature ~ (T.Text -> T.Text -> m (Bool,T.Text)), MonadIO m, PresetK a) => MethodInfo PresetGetMetaMethodInfo a signature where
overloadedMethod _ = presetGetMeta
-- method Preset::get_preset_names
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Preset", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "gst_preset_get_preset_names" gst_preset_get_preset_names ::
Ptr Preset -> -- _obj : TInterface "Gst" "Preset"
IO (Ptr CString)
presetGetPresetNames ::
(MonadIO m, PresetK a) =>
a -- _obj
-> m [T.Text] -- result
presetGetPresetNames _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gst_preset_get_preset_names _obj'
checkUnexpectedReturnNULL "gst_preset_get_preset_names" result
result' <- unpackZeroTerminatedUTF8CArray result
mapZeroTerminatedCArray freeMem result
freeMem result
touchManagedPtr _obj
return result'
data PresetGetPresetNamesMethodInfo
instance (signature ~ (m [T.Text]), MonadIO m, PresetK a) => MethodInfo PresetGetPresetNamesMethodInfo a signature where
overloadedMethod _ = presetGetPresetNames
-- method Preset::get_property_names
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Preset", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "gst_preset_get_property_names" gst_preset_get_property_names ::
Ptr Preset -> -- _obj : TInterface "Gst" "Preset"
IO (Ptr CString)
presetGetPropertyNames ::
(MonadIO m, PresetK a) =>
a -- _obj
-> m [T.Text] -- result
presetGetPropertyNames _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gst_preset_get_property_names _obj'
checkUnexpectedReturnNULL "gst_preset_get_property_names" result
result' <- unpackZeroTerminatedUTF8CArray result
mapZeroTerminatedCArray freeMem result
freeMem result
touchManagedPtr _obj
return result'
data PresetGetPropertyNamesMethodInfo
instance (signature ~ (m [T.Text]), MonadIO m, PresetK a) => MethodInfo PresetGetPropertyNamesMethodInfo a signature where
overloadedMethod _ = presetGetPropertyNames
-- method Preset::is_editable
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Preset", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "gst_preset_is_editable" gst_preset_is_editable ::
Ptr Preset -> -- _obj : TInterface "Gst" "Preset"
IO CInt
presetIsEditable ::
(MonadIO m, PresetK a) =>
a -- _obj
-> m Bool -- result
presetIsEditable _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gst_preset_is_editable _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
data PresetIsEditableMethodInfo
instance (signature ~ (m Bool), MonadIO m, PresetK a) => MethodInfo PresetIsEditableMethodInfo a signature where
overloadedMethod _ = presetIsEditable
-- method Preset::load_preset
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Preset", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "gst_preset_load_preset" gst_preset_load_preset ::
Ptr Preset -> -- _obj : TInterface "Gst" "Preset"
CString -> -- name : TBasicType TUTF8
IO CInt
presetLoadPreset ::
(MonadIO m, PresetK a) =>
a -- _obj
-> T.Text -- name
-> m Bool -- result
presetLoadPreset _obj name = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
name' <- textToCString name
result <- gst_preset_load_preset _obj' name'
let result' = (/= 0) result
touchManagedPtr _obj
freeMem name'
return result'
data PresetLoadPresetMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, PresetK a) => MethodInfo PresetLoadPresetMethodInfo a signature where
overloadedMethod _ = presetLoadPreset
-- method Preset::rename_preset
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Preset", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "old_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "new_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "gst_preset_rename_preset" gst_preset_rename_preset ::
Ptr Preset -> -- _obj : TInterface "Gst" "Preset"
CString -> -- old_name : TBasicType TUTF8
CString -> -- new_name : TBasicType TUTF8
IO CInt
presetRenamePreset ::
(MonadIO m, PresetK a) =>
a -- _obj
-> T.Text -- oldName
-> T.Text -- newName
-> m Bool -- result
presetRenamePreset _obj oldName newName = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
oldName' <- textToCString oldName
newName' <- textToCString newName
result <- gst_preset_rename_preset _obj' oldName' newName'
let result' = (/= 0) result
touchManagedPtr _obj
freeMem oldName'
freeMem newName'
return result'
data PresetRenamePresetMethodInfo
instance (signature ~ (T.Text -> T.Text -> m Bool), MonadIO m, PresetK a) => MethodInfo PresetRenamePresetMethodInfo a signature where
overloadedMethod _ = presetRenamePreset
-- method Preset::save_preset
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Preset", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "gst_preset_save_preset" gst_preset_save_preset ::
Ptr Preset -> -- _obj : TInterface "Gst" "Preset"
CString -> -- name : TBasicType TUTF8
IO CInt
presetSavePreset ::
(MonadIO m, PresetK a) =>
a -- _obj
-> T.Text -- name
-> m Bool -- result
presetSavePreset _obj name = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
name' <- textToCString name
result <- gst_preset_save_preset _obj' name'
let result' = (/= 0) result
touchManagedPtr _obj
freeMem name'
return result'
data PresetSavePresetMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, PresetK a) => MethodInfo PresetSavePresetMethodInfo a signature where
overloadedMethod _ = presetSavePreset
-- method Preset::set_meta
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gst" "Preset", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "gst_preset_set_meta" gst_preset_set_meta ::
Ptr Preset -> -- _obj : TInterface "Gst" "Preset"
CString -> -- name : TBasicType TUTF8
CString -> -- tag : TBasicType TUTF8
CString -> -- value : TBasicType TUTF8
IO CInt
presetSetMeta ::
(MonadIO m, PresetK a) =>
a -- _obj
-> T.Text -- name
-> T.Text -- tag
-> Maybe (T.Text) -- value
-> m Bool -- result
presetSetMeta _obj name tag value = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
name' <- textToCString name
tag' <- textToCString tag
maybeValue <- case value of
Nothing -> return nullPtr
Just jValue -> do
jValue' <- textToCString jValue
return jValue'
result <- gst_preset_set_meta _obj' name' tag' maybeValue
let result' = (/= 0) result
touchManagedPtr _obj
freeMem name'
freeMem tag'
freeMem maybeValue
return result'
data PresetSetMetaMethodInfo
instance (signature ~ (T.Text -> T.Text -> Maybe (T.Text) -> m Bool), MonadIO m, PresetK a) => MethodInfo PresetSetMetaMethodInfo a signature where
overloadedMethod _ = presetSetMeta
-- method Preset::get_app_dir
-- method type : MemberFunction
-- Args : []
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "gst_preset_get_app_dir" gst_preset_get_app_dir ::
IO CString
presetGetAppDir ::
(MonadIO m) =>
m T.Text -- result
presetGetAppDir = liftIO $ do
result <- gst_preset_get_app_dir
checkUnexpectedReturnNULL "gst_preset_get_app_dir" result
result' <- cstringToText result
return result'
-- method Preset::set_app_dir
-- method type : MemberFunction
-- Args : [Arg {argCName = "app_dir", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "gst_preset_set_app_dir" gst_preset_set_app_dir ::
CString -> -- app_dir : TBasicType TUTF8
IO CInt
presetSetAppDir ::
(MonadIO m) =>
T.Text -- appDir
-> m Bool -- result
presetSetAppDir appDir = liftIO $ do
appDir' <- textToCString appDir
result <- gst_preset_set_app_dir appDir'
let result' = (/= 0) result
freeMem appDir'
return result'