GstPreset

GstPreset — helper interface for element presets

Functions

Types and Values

Object Hierarchy

    GInterface
    ╰── GstPreset

Includes

#include <gst/gst.h>

Description

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".

Functions

gst_preset_get_preset_names ()

gchar **
gst_preset_get_preset_names (GstPreset *preset);

Get a copy of preset names as a NULL terminated string array.

Parameters

preset

a GObject that implements GstPreset

 

Returns

list with names, use g_strfreev() after usage.

[transfer full][array zero-terminated=1][element-type gchar*]


gst_preset_get_property_names ()

gchar **
gst_preset_get_property_names (GstPreset *preset);

Get a the names of the GObject properties that can be used for presets.

Parameters

preset

a GObject that implements GstPreset

 

Returns

an array of property names which should be freed with g_strfreev() after use.

[transfer full][array zero-terminated=1][element-type gchar*]


gst_preset_load_preset ()

gboolean
gst_preset_load_preset (GstPreset *preset,
                        const gchar *name);

Load the given preset.

Parameters

preset

a GObject that implements GstPreset

 

name

preset name to load

 

Returns

TRUE for success, FALSE if e.g. there is no preset with that name


gst_preset_save_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.

Parameters

preset

a GObject that implements GstPreset

 

name

preset name to save

 

Returns

TRUE for success, FALSE


gst_preset_rename_preset ()

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.

Parameters

preset

a GObject that implements GstPreset

 

old_name

current preset name

 

new_name

new preset name

 

Returns

TRUE for success, FALSE if e.g. there is no preset with old_name


gst_preset_delete_preset ()

gboolean
gst_preset_delete_preset (GstPreset *preset,
                          const gchar *name);

Delete the given preset.

Parameters

preset

a GObject that implements GstPreset

 

name

preset name to remove

 

Returns

TRUE for success, FALSE if e.g. there is no preset with that name


gst_preset_set_meta ()

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.

Parameters

preset

a GObject that implements GstPreset

 

name

preset name

 

tag

meta data item name

 

value

new value.

[allow-none]

Returns

TRUE for success, FALSE if e.g. there is no preset with that name


gst_preset_get_meta ()

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.

Parameters

preset

a GObject that implements GstPreset

 

name

preset name

 

tag

meta data item name

 

value

value.

[out callee-allocates]

Returns

TRUE for success, FALSE if e.g. there is no preset with that name or no value for the given tag


gst_preset_set_app_dir ()

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.

Parameters

app_dir

the application specific preset dir

 

Returns

TRUE for success, FALSE if the dir already has been set


gst_preset_get_app_dir ()

const gchar *
gst_preset_get_app_dir (void);

Gets the directory for application specific presets if set by the application.

Returns

the directory or NULL, don't free or modify the string.

[nullable]


gst_preset_is_editable ()

gboolean
gst_preset_is_editable (GstPreset *preset);

Check if one can add new presets, change existing ones and remove presets.

Parameters

preset

a GObject that implements GstPreset

 

Returns

TRUE if presets are editable or FALSE if they are static

Since: 1.6

Types and Values

GstPreset

typedef struct _GstPreset GstPreset;

Opaque GstPreset data structure.


struct GstPresetInterface

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.

Members

GTypeInterface parent;

parent interface type.

 

get_preset_names ()

virtual method to get list of presets

 

get_property_names ()

virtual methods to get properties that are persistent

 

load_preset ()

virtual methods to load a preset into properties

 

save_preset ()

virtual methods to save properties into a preset

 

rename_preset ()

virtual methods to rename a preset

 

delete_preset ()

virtual methods to remove a preset

 

set_meta ()

virtual methods to set textual meta data to a preset

 

get_meta ()

virtual methods to get textual meta data from a preset