Late last year there was some discussion about LADSPA 1.1, the defaults
issue still needs resolving, so can we agree on it?

Paul's suggested addition to handle defaults looks like:

----------------------------------------------------------------------
/* Hint LADSPA_HINT_DEFAULT_* indicates that in the absence of
   other information (such as a preset or user preferences) a port
   should be set to the suggested initial value. Notice that this
   hint is valid only for control ports, and should not be set for
   audio ports (hosts should ignore it if it is).

   HINT_DEFAULT_{MIN,MID,MAX} all require that the HintDescriptor
   has HINT_BOUNDED_ABOVE and/or HINT_BOUNDED_BELOW set, as required
   to compute the default value.
 */

#define LADSPA_HINT_DEFAULT_ZERO        0x40   /* set to 0.0 */
#define LADSPA_HINT_DEFAULT_ONE         0x80   /* set to 1.0 */
#define LADSPA_HINT_DEFAULT_MIN        0x100   /* set to min */
#define LADSPA_HINT_DEFAULT_MID        0x200   /* set to min+(max-min/2) */
#define LADSPA_HINT_DEFAULT_MAX        0x400   /* set to max */

#define LADSPA_IS_HINT_DEFAULT_ZERO     ((x) & LADSPA_HINT_DEFAULT_ZERO)
#define LADSPA_IS_HINT_DEFAULT_ONE      ((x) & LADSPA_HINT_DEFAULT_ONE)
#define LADSPA_IS_HINT_DEFAULT_MIN      ((x) & LADSPA_HINT_DEFAULT_MIN)
#define LADSPA_IS_HINT_DEFAULT_MID      ((x) & LADSPA_HINT_DEFAULT_MID)
#define LADSPA_IS_HINT_DEFAULT_MAX      ((x) & LADSPA_HINT_DEFAULT_MAX)

----------------------------------------------------------------------

I think this is fine. It's backward compatible (1.1 plugins will work fine
in a 1.0 host and vice versa). It will solve a lot of host problems.

No riders please! Except, maybe... ;)

- Steve

Reply via email to