Generally I agree with David, but there are a few things wher I dont: On Fri, Dec 13, 2002 at 02:30:32 +0100, David Olofson wrote: > > * The label is a file-unique, non-whitespace, string identifier > > for * the plugin. Hosts can use the filename and label to identify > > a * plugin uniquely. The label is all upper case, by convention. > > */ > > const char *xap_label; > > Why is this needed? (There are unique IDs, I mean...)
LADSPA has them and its useful sometime, eg. for selecting plugins in command line apps, and for developers. > > void *(*xap_create)(XAP_descriptor *descriptor, XAP_host *host, > > int rate); > > Why only "rate" here - or rather, why "rate" at all? I think there > are more things that a Plugin might want to know, so it might be > better to pass this kind of info some other way. Well, you might want to refuse to instantiate, based on the sample rate. > > /* > > * set_rate: set the sample rate > > * > > * This method may only be called on plugins that are not active. > > (Same thing as controls that may only be changed in certain states.) This should not be allowed, if you want to run the instrument at a different rate, reinstantiate it. > > #define XAP_RTFL_SLOW 0x20 /* is 'slow' in general */ > > Well, everything is relative... > > I think it would be much more interesting to have a warning hint for > plugins that are significantly nondeterministic in their CPU usage. Agreed. I think tis less confusing to have to indicate that a plugin /is/ deterministic though. Don't do what ladspa did though and mix together RT safe-ness and determinicity (is that a real word?). > > #define XAP_CTRLHINT_PITCH "PITCH" //channel,voice > > ...and the optional "NOTE_PITCH" that no one will ever use, of > course. ;-) And many of us still think doesn't belong in the API... :) - Steve