[linux-audio-dev] PTAF link and comments

David Olofson david at olofson.net
Sat Feb 8 00:15:01 UTC 2003


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 ---




More information about the Linux-audio-dev mailing list