On Saturday 08 February 2003 05.13, Tim Hockin wrote: > > > I'm questioning whether > > > having a simpler query based system may be easier. I don't > > > like the idea that you have to instantiate to query, though. > > > > Many plug-in standards require instanciation before fetching > > properties. PTAF must be able to make good wrappers for existing > > plug-ins, industry requires it. > > Yeah. Here is an open question: Should the wrapped plugin be a > control at all?
What else? A custom interface that we'll need to handle specially all the way up to the GUI level...? The interface itself isn't all that special, I think. > David mentioned once the difference between 'Controls' and > 'Parameters'. I don't like having different control types that due > basically the same thing. > > BUT (you knew that was coming): the wrapped plugin is kind of a > parameter, more than a control. Changing the parameter can change > the ENTIRE metadata of the plugin. > > Maybe we should formalize that? I don't know if that's useful. If it's not a control, what is it? As soon as we start making exceptions for this kind of stuff, we start building specific applications into the API. We could hint the Control as "will cause metadata changes!", but who cares, really? Just for starters, if it's done that way, hosts have to snoop any connections to such controls, or Really Bad Things will happen. The "difference" is only relevant when it actually *happens*. I think it makes more sense if the plugin just tells the host about it. The host is responsible for rereading the metadata, checking all connections etc, before starting the next block cycle. (If it's done later than that, there's a big chance someone sends events to Queues that no longer exist and other nasty things. Better do it right after the plugin returns.) [...] > > > The spec should not dictate ABI, either. The ABI is an articat > > > of the platform. If my platform uses 32 registers to pass C > > > function arguments, it is already binary imcompatible with your > > > PC :) > > > > The only way to guarantee real portability through platforms > > and programming languages is to describe the API at the byte > > level. This include calling convention. IMHO We can assume > > that every target system has a stack, and can pass parameters > > on it. > > This is baloney, IMHO. If you want to make plugins that are binary > compatible ACROSS PLATFORMS, then this matters. Within a platform, > ABI does not change (or, it shouldn't - don't use C++ as an example > :) Well, all we really need is to pick the most widely supported calling conventions for each platform. Is there *any* platform that has relevant languages that do not support the native variant of C calling conventions...? (At least, most compilers on Un*x and Win32 seem to support at least two or three variants.) //David Olofson - Programmer, Composer, Open Source Advocate .- The Return of Audiality! --------------------------------. | Free/Open Source Audio Engine for use in Games or Studio. | | RT and off-line synth. Scripting. Sample accurate timing. | `---------------------------> http://olofson.net/audiality -' --- http://olofson.net --- http://www.reologica.se ---
