clap

CLAP Audio Plugin API
Log | Files | Refs | README | LICENSE

commit f62ebc36fbb90a815b989c24964bbdfeec88e077
parent 6fd8a86adcebe953a370c0ab942452da0c18f60d
Author: Alexandre Bique <bique.alexandre@gmail.com>
Date:   Sun, 26 Dec 2021 18:49:46 +0100

Use smaller types

Diffstat:
Minclude/clap/clap.h | 1+
Minclude/clap/events.h | 46+++++++++++++++++++++++-----------------------
2 files changed, 24 insertions(+), 23 deletions(-)

diff --git a/include/clap/clap.h b/include/clap/clap.h @@ -51,6 +51,7 @@ #include "ext/note-ports.h" #include "ext/event-filter.h" #include "ext/thread-pool.h" +#include "ext/event-registry.h" #include "ext/draft/preset-load.h" #include "ext/draft/quick-controls.h" diff --git a/include/clap/events.h b/include/clap/events.h @@ -92,9 +92,9 @@ typedef int32_t clap_event_flags; typedef struct clap_event_note { alignas(4) clap_event_header_t header; - alignas(4) int32_t port_index; - alignas(4) int32_t key; // 0..127 - alignas(4) int32_t channel; // 0..15 + alignas(2) int16_t port_index; + alignas(2) int16_t key; // 0..127 + alignas(2) int16_t channel; // 0..15 alignas(8) double velocity; // 0..1 } clap_event_note_t; @@ -120,14 +120,14 @@ enum { typedef int32_t clap_note_expression; typedef struct clap_event_note_expression { - clap_event_header_t header; + alignas(4) clap_event_header_t header; alignas(4) clap_note_expression expression_id; // target a specific port, key and channel, -1 for global - alignas(4) int32_t port_index; - alignas(4) int32_t key; - alignas(4) int32_t channel; + alignas(2) int16_t port_index; + alignas(2) int16_t key; + alignas(2) int16_t channel; alignas(8) double value; // see expression for the range } clap_event_note_expression_t; @@ -145,33 +145,33 @@ enum { typedef int32_t clap_event_param_flags; typedef struct clap_event_param_value { - clap_event_header_t header; + alignas(4) clap_event_header_t header; // target parameter void *cookie; // @ref clap_param_info.cookie alignas(4) clap_id param_id; // @ref clap_param_info.id // target a specific port, key and channel, -1 for global - alignas(4) int32_t port_index; - alignas(4) int32_t key; - alignas(4) int32_t channel; + alignas(2) int16_t port_index; + alignas(2) int16_t key; + alignas(2) int16_t channel; - alignas(4) clap_event_param_flags flags; + alignas(2) uint16_t flags; alignas(8) double value; } clap_event_param_value_t; typedef struct clap_event_param_mod { - clap_event_header_t header; + alignas(4) clap_event_header_t header; // target parameter - void *cookie; // @ref clap_param_info.cookie alignas(4) clap_id param_id; // @ref clap_param_info.id + void *cookie; // @ref clap_param_info.cookie // target a specific port, key and channel, -1 for global - alignas(4) int32_t port_index; - alignas(4) int32_t key; - alignas(4) int32_t channel; + alignas(2) int16_t port_index; + alignas(2) int16_t key; + alignas(2) int16_t channel; alignas(8) double amount; // modulation amount } clap_event_param_mod_t; @@ -189,7 +189,7 @@ enum { typedef uint32_t clap_transport_flags; typedef struct clap_event_transport { - clap_event_header_t header; + alignas(4) clap_event_header_t header; alignas(4) clap_transport_flags flags; @@ -213,9 +213,9 @@ typedef struct clap_event_transport { } clap_event_transport_t; typedef struct clap_event_note_mask { - clap_event_header_t header; + alignas(4) clap_event_header_t header; - uint32_t port_index; + alignas(2) uint16_t port_index; // bitset of active keys: // - 11 bits @@ -231,14 +231,14 @@ typedef struct clap_event_note_mask { typedef struct clap_event_midi { alignas(4) clap_event_header_t header; - alignas(4) uint32_t port_index; + alignas(2) uint16_t port_index; alignas(1) uint8_t data[3]; } clap_event_midi_t; typedef struct clap_event_midi_sysex { alignas(4) clap_event_header_t header; - alignas(4) uint32_t port_index; + alignas(2) uint16_t port_index; const uint8_t *buffer; // midi buffer alignas(4) uint32_t size; } clap_event_midi_sysex_t; @@ -246,7 +246,7 @@ typedef struct clap_event_midi_sysex { typedef struct clap_event_midi2 { alignas(4) clap_event_header_t header; - alignas(4) uint32_t port_index; + alignas(2) uint16_t port_index; alignas(4) uint32_t data[4]; } clap_event_midi2_t;