Okay, I ought to have qualified my 'will always break...' that's
clearly not true.
But there is still real inflexibility in using a struct based API.

eg. Say a developer comes up with a nice extension (perhaps to allow a
plugin to deal with multi-channel IO / non-causal audio effects /
alter the audio frequency / support an 'end of stream' marker / midi /
GUI / accessing metadata via function calls / or whatever...)

With the struct based API the only way(*) for that extension to make
it into LADSPA is for it to be part of the the struct in the next
version of LADSPA.  We want to keep LADSPA simple, so that's unlikely
to happen.

With the library call based API the developer defines and advertises
the functions that make up the extension, and if it is useful hosts
will start to implement it.  If it proves it's worth it can be adopted
as an official LADSPA *extension*, which hosts can choose (or not) to
implement.

The core API remains simple and unbloated, but LADSPA can still develop.

(*) Yes there is trickery that could be played with, eg. using
multiple discovery functions, but that's just icky.

Reply via email to