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-