Luis Garrido schrieb:
To be utterly pragmatic, I think at this moment the
best approach for
this problem would be an evolutionary one.
Just implement whatever format you feel like and see if it takes. No
one is going to sue you, although you are guaranteed to get your fair
share of critics, no matter what.
At the worst case, this particular situation is so utterly simple that
it should be trivial to convert one format to another if the need
arises.
If it helps in the end I chose for my project INI files just because
it was a Qt app and Qt provides a nifty INI parser (QSettings) with
some merging capabilities (concurrent Qt processes can make changes
without corrupting the file and those are easily synchronized.) But
that was me just being lazy, I guess.
As for the directory structure it went something like:
Global: /usr/share/ladspa/presets/plugin-name/preset-name.ini
Local: ~/.ladspa/presets/plugin-name/preset-name.ini
It is a ladspa-centric app, so it seemed appropriate. I don't recall
now if ladspa's can be versioned, but it should be easy to insert a
version number somewhere (in the path, in the ini file...)
Sounds good. I was giving the gstreamer plugin preset stuff just as a
source of inspiration. Also because there is some beef in tehre how to
handle system wide and user local presets, updates of any and so on.
As Paul said for ladspa there is no library and thus we shoudl agree and
simple conventions, the exact format does not really matter as ladspa is
so simple that there are no hierarchies etc.. An ini file would be
totally fine. what about:
[ladspa preset]
version=1.0
plugin=<plugin-name>
[<preset-name1>]
<key1>=<value1>
<key2>=<value2>
[<preset-name2>]
...
If we are happy that its not allowed to name a preset "ladspa preset"
(would conflic with the header) this would already work I'd say. This
way we would not even have extra files for each preset. On the other
hand I am fine with having one file per preset too.
[ladspa preset]
version=1.0
plugin=<plugin-name>
preset=<preset-name>
[parameters]
<key1>=<value1>
<key2>=<value2>
Stefan