[linux-audio-dev] LADSPA 2

Dave Robillard drobilla at connect.carleton.ca
Sat Apr 22 18:47:33 UTC 2006


On Sat, 2006-04-22 at 19:20 +0100, Steve Harris wrote:
> On Sat, Apr 22, 2006 at 01:47:40PM -0400, Dave Robillard wrote:
> > > I guess you mean unique in plugin scope? It would also have to have some
> > > restriction on what values it could take, eg. [a-zA-Z][a-zA-Z0-9_]+ some
> > > kind of lowest common denominator between symbols for various languages
> > > would make sense.
> > 
> > Yeah, just unique to the plugin.  (Though I guess that would imply the
> > port could have a URI like pluginuri/porturi but whatever).
> 
> You could do pluginUri#portShortName, it's a fairly common convention (eg.
> in HTML). But youre only allowed a small set of characters after the #.
>  
> > I think the regexp you mentioned there is fine, though I think we should
> > add one separator character other than underscore for various reasons.
> > ":" maybe?
> 
> I'd rather not, I'm not sure its legal in Pd (they get bitten by the port
> name thing too), and its not in C. Pure selfinterest, but My LADSPA code
> is about 50% generated from XML, and I use short names internally for C
> symbols.

Well, at least one kind of separator character is required (for big
plugins).  If it can't be ":", then I don't know what, but there needs
to be something.  Maybe "."?  If you want to keep it as a valid C
identifier I guess we're pretty much screwed, aside from defining __ to
be interpreted as a sort of heirarchialish separator.

master_amp:vol
master_amp.vol
master_amp__vol

"." is definitely prettiest... is there anything other than "__" we can
use that's as safe?

> > As a side effect of this, what is now "label" should become
> > "description" and implicitly be Nice Human Readable Text, not
> > ugly_c_looking_identifiers (and units definitely need to be seperated).
> > "Description" is metadata though, so I guess it doesn't belong in the C
> > file.
> 
> The C now only contains the function pointers, a vector of float pointers
> and a URI char *. All this stuff belongs outside.

I'm fully in support of putting any and all metadata outside the C file,
but the unique identifier isn't metadata, it should be in the code.  A
trivial OSC controlled plugin host (which would make a good bundled
example client for the SDK) would need it.

-DR-




More information about the Linux-audio-dev mailing list