+/**
+ * gst_preset_set_app_dir:
+ * @app_dir: (type filename): the application specific preset 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.
+ *
+ * Returns: %TRUE for success, %FALSE if the dir already has been set
+ */
+gboolean
+gst_preset_set_app_dir (const gchar * app_dir)
+{
+ g_return_val_if_fail (app_dir, FALSE);
+
+ if (!preset_app_dir) {
+ preset_app_dir = g_strdup (app_dir);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/**
+ * gst_preset_get_app_dir:
+ *
+ * Gets the directory for application specific presets if set by the
+ * application.
+ *
+ * Returns: (nullable) (type filename): the directory or %NULL, don't free or modify
+ * the string
+ */
+const gchar *
+gst_preset_get_app_dir (void)
+{
+ return preset_app_dir;
+}
+
+/**
+ * gst_preset_is_editable:
+ * @preset: a #GObject that implements #GstPreset
+ *
+ * Check if one can add new presets, change existing ones and remove presets.
+ *
+ * Returns: %TRUE if presets are editable or %FALSE if they are static
+ *
+ * Since: 1.6
+ */
+gboolean
+gst_preset_is_editable (GstPreset * preset)
+{
+ GstPresetInterface *iface = GST_PRESET_GET_INTERFACE (preset);
+
+ return iface->save_preset && iface->delete_preset;
+}
+