(v13) Data types used in the plugin kit
This page applies to Harlequin v13.1r0 and later; and to Harlequin MultiRIP but not Harlequin Core
In order to ensure values of uniform size and sign on all platforms, the plugin kit uses the following type definitions to declare fields within data structures that will be used in the plugin interface.
| Signed 32‐bit integer. |
| Unsigned 32‐bit integer. |
| Signed 16‐bit integer. |
| Unsigned 16‐bit integer. |
| Signed 8‐bit integer. |
| Unsigned 8‐bit integer. |
| Signed integer of a size large enough to hold a memory address (pointer). |
| Unsigned integer of a size large enough to hold a memory address (pointer). |
| 32‐bit floating point number. |
| 64‐bit floating point number. |
See the header file plugdefs.h
.
Note:
The file hq32x2.h
implements a signed 64-bit type, similar to an int64. and an unsigned 64-bit type, similar to a uint64. Getting a 64-bit integer on all our compiler/platform combinations is extremely difficult, and sometimes itʹs not supported at all. This implementation allows 64-bit integers to be faked where performance is not critical.
Note:
Enum
values are avoided, and have generally been replaced by int32
values to avoid problems with compilers allocating unexpected sizes for enum
fields. Some defined constants have been used where previously there were just numbers. Also, a few typedef
s have been separated from the corresponding structure definitions.