Hi,
just another thought about unions:
when using the union example:
typedef union {
float float32;
double float64;
.. (insert your foobar datatype <=16bytes here)
char pad[16];
} LADSPA_Data;
if you access to a value
with
variable.float32 = 123
and you want to turn your plugin code from float32 to float64
you have to change all types from .float32 to float64
while in the pointer case
---
float *float_ptr;
float_ptr=(float *)&psPortRangeHints[SDL_DELAY_LENGTH].HintDescriptor
* float_ptr = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE;
---
you only have to typedef use typedefs ( typedef float float_type) instead of
using the float datatype directy.
So with a simple change of the typedef you have the 64bit-float plugin.
Anyway I don't see the substition of float32 to float64 as a big deal,
since unions make the code much simpler, and the performance is not compromised.
My first version will therefore use the union construct.
Benno.