Re: [linux-audio-dev] Plugin APIs (again)

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] Plugin APIs (again)
From: David Olofson (david_AT_olofson.net)
Date: Tue Dec 10 2002 - 21:00:39 EET


On Tuesday 10 December 2002 08.00, Tim Hockin wrote:
> > It doesn't have to, unless it actually cares. If you save a
> > preset with a "bad" value in some field, the plugin will just fix
> > it when you load the preset.
> >
> > There's just one problem: In what order do you write the controls
> > back to ensure you end up with the exact same result?
>
> The order the plugin presents them to you?

Yes, but requiring that would mean you have to rewrite all controls
whenever you change one of them, even for automation.

> If there are
> dependencies between controls can we have the plugin author be
> responsible for making their indices reflect it? Otherwise we can
> add yet another field to controls which says the order in which to
> write presets. Ick. Serialize/deserialize solves this nicely, btw
> :)

Aaargh! Nooo!!! :-)

Anyway, I think this issue has been resolved rather nicely already.
We concluded that if a plugin for some reason does not want to
"accept" certain values, it has to deal with that internally, in a
concistent way which depends only on the current values of controls
involved.

It's real simple actually; just have a single function
fix_bad_values() that you call whenever one of the interdependent
controls changes. Then it doesn't matter in which order you write the
controls; the function will always do the same thing.

Oh, and it seems that this applies to 1 plugin in 100 or so - and
that one is probably just a poor design in the first place. :-)

> > Anyway, if the host *does* keep track of "last value written",
> > supporting the "I'll make that X instead!" event is just a matter
> > of writing X into that "last value written" variable.
>
> Exactly. If a plug doesn't support it, no big deal. If it does,
> cool.

Yeah, but that turned out to be the easy part... The interface may
look simple, but it implies quite a bit of hairy situations.

In short, not worth the effort, especially considering that it's just
an emergency exit for bad plugin designs.

//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 -'
.- M A I A -------------------------------------------------.
| The Multimedia Application Integration Architecture |
`----------------------------> http://www.linuxdj.com/maia -'
   --- http://olofson.net --- http://www.reologica.se ---


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Tue Dec 10 2002 - 21:03:18 EET