the attached patch proves that LADSPA can be extended without breaking
binary compatibility. i've compiled plugins against a patched ladspa.h
and run them in hosts compiled against ladspa.h version 1.1 without
experiencing any problems.
also attached is a short test program that demonstrates how the
extensions provided by the patch can be put to use.
to demonstrate various possibilities and their relative ease of use,
the patch implements the following extensions:
hints:
* connect_port (NULL) is ok hint
member extensions to the descriptor:
* Version (major, minor)
* Latency
* char ** PortUnits
* LADSPA_Data * DefaultValues
* LADSPA_PortValueEnum ** PortValueEnum
the PortValueEnum is a structure having a char * Label and LADSPA_Data
Value member associating a value with a label. this arrangement is
deemed to suit integer enumerations as well as arbitrary association
of values with a label.
while the patch follows the general style of the original ladspa
header, more sophistication would probably need to go into it for a
production version, especially into the comments describing the
extended version mechanism and members.
vriendelijk,
tim