Top |
This interface offers methods to query and manipulate parameter preset sets. A preset is a bunch of property settings, together with meta data and a name. The name of a preset serves as key for subsequent method calls to manipulate single presets. All instances of one type will share the list of presets. The list is created on demand, if presets are not used, the list is not created.
The interface comes with a default implementation that serves most plugins.
Wrapper plugins will override most methods to implement support for the
native preset format of those wrapped plugins.
One method that is useful to be overridden is gst_preset_get_property_names()
.
With that one can control which properties are saved and in which order.
When implementing support for read-only presets, one should set the vmethods
for gst_preset_save_preset()
and gst_preset_delete_preset()
to NULL
.
Applications can use gst_preset_is_editable()
to check for that.
The default implementation supports presets located in a system directory, application specific directory and in the users home directory. When getting a list of presets individual presets are read and overlaid in 1) system, 2) application and 3) user order. Whenever an earlier entry is newer, the later entries will be updated. Since 1.8 you can also provide extra paths where to find presets through the GST_PRESET_PATH environment variable. Presets found in those paths will be concidered as "app presets".
gchar **
gst_preset_get_preset_names (GstPreset *preset
);
Get a copy of preset names as a NULL
terminated string array.
list with names, use g_strfreev()
after usage.
[transfer full][array zero-terminated=1][element-type gchar*]
gchar **
gst_preset_get_property_names (GstPreset *preset
);
Get a the names of the GObject properties that can be used for presets.
an
array of property names which should be freed with g_strfreev()
after use.
[transfer full][array zero-terminated=1][element-type gchar*]
gboolean gst_preset_load_preset (GstPreset *preset
,const gchar *name
);
Load the given preset.
gboolean gst_preset_save_preset (GstPreset *preset
,const gchar *name
);
Save the current object settings as a preset under the given name. If there
is already a preset by this name
it will be overwritten.
gboolean gst_preset_rename_preset (GstPreset *preset
,const gchar *old_name
,const gchar *new_name
);
Renames a preset. If there is already a preset by the new_name
it will be
overwritten.
gboolean gst_preset_delete_preset (GstPreset *preset
,const gchar *name
);
Delete the given preset.
gboolean gst_preset_set_meta (GstPreset *preset
,const gchar *name
,const gchar *tag
,const gchar *value
);
Sets a new value
for an existing meta data item or adds a new item. Meta
data tag
names can be something like e.g. "comment". Supplying NULL
for the
value
will unset an existing value.
gboolean gst_preset_get_meta (GstPreset *preset
,const gchar *name
,const gchar *tag
,gchar **value
);
Gets the value
for an existing meta data tag
. Meta data tag
names can be
something like e.g. "comment". Returned values need to be released when done.
gboolean
gst_preset_set_app_dir (const gchar *app_dir
);
Sets an extra directory as an absolute path that should be considered when looking for presets. Any presets in the application dir will shadow the system presets.
const gchar *
gst_preset_get_app_dir (void
);
Gets the directory for application specific presets if set by the application.
struct GstPresetInterface { GTypeInterface parent; /* methods */ gchar** (*get_preset_names) (GstPreset *preset); gchar** (*get_property_names) (GstPreset *preset); gboolean (*load_preset) (GstPreset *preset, const gchar *name); gboolean (*save_preset) (GstPreset *preset, const gchar *name); gboolean (*rename_preset) (GstPreset *preset, const gchar *old_name, const gchar *new_name); gboolean (*delete_preset) (GstPreset *preset, const gchar *name); gboolean (*set_meta) (GstPreset *preset, const gchar *name, const gchar *tag, const gchar *value); gboolean (*get_meta) (GstPreset *preset, const gchar *name, const gchar *tag, gchar **value); };
GstPreset interface.
GTypeInterface |
parent interface type. |
|
virtual method to get list of presets |
||
virtual methods to get properties that are persistent |
||
virtual methods to load a preset into properties |
||
virtual methods to save properties into a preset |
||
virtual methods to rename a preset |
||
virtual methods to remove a preset |
||
virtual methods to set textual meta data to a preset |
||
virtual methods to get textual meta data from a preset |