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
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
save_preset and
delete_preset to null. Applications can use
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 considered as "app presets".