clap

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

commit eb6cd5183c1a57f0b04dcd4ec798815c30e1cfc9
parent 1dad2cf42dce31d40e7de378135336b1a41c3957
Author: Alexandre Bique <bique.alexandre@gmail.com>
Date:   Mon, 12 Dec 2022 16:25:21 +0100

trigger: use event space for now

Diffstat:
Minclude/clap/events.h | 18------------------
Minclude/clap/ext/draft/triggers.h | 32++++++++++++++++++++++++++++++++
2 files changed, 32 insertions(+), 18 deletions(-)

diff --git a/include/clap/events.h b/include/clap/events.h @@ -114,10 +114,6 @@ enum { CLAP_EVENT_MIDI, // raw midi event; clap_event_midi CLAP_EVENT_MIDI_SYSEX, // raw midi sysex event; clap_event_midi_sysex CLAP_EVENT_MIDI2, // raw midi 2 event; clap_event_midi2 - - // Represents a trigger. See triggers.h - // Uses clap_event_trigger. - CLAP_EVENT_TRIGGER, }; // Note on, off, end and choke events. @@ -264,20 +260,6 @@ typedef struct clap_event_midi2 { uint32_t data[4]; } clap_event_midi2_t; -typedef struct clap_event_trigger { - clap_event_header_t header; - - // target trigger - clap_id trigger_id; // @ref clap_trigger_info.id - void *cookie; // @ref clap_trigger_info.cookie - - // target a specific note_id, port, key and channel, -1 for global - int32_t note_id; - int16_t port_index; - int16_t channel; - int16_t key; -} clap_event_trigger_t; - // Input event list, events must be sorted by time. typedef struct clap_input_events { void *ctx; // reserved pointer for the list diff --git a/include/clap/ext/draft/triggers.h b/include/clap/ext/draft/triggers.h @@ -1,6 +1,7 @@ #pragma once #include "../../plugin.h" +#include "../../events.h" #include "../../string-sizes.h" static CLAP_CONSTEXPR const char CLAP_EXT_TRIGGERS[] = "clap.triggers.draft/0"; @@ -32,6 +33,37 @@ enum { }; typedef uint32_t clap_trigger_info_flags; +// Given that this extension is still draft, it'll use the event-registry and its own event +// namespace until we stabilize it. +// +// #include <clap/ext/event-registry.h> +// +// uint16_t CLAP_EXT_TRIGGER_EVENT_SPACE_ID = UINT16_MAX; +// if (host_event_registry->query(host, CLAP_EXT_TRIGGERS, &CLAP_EXT_TRIGGER_EVENT_SPACE_ID)) { +// /* we can use trigger events */ +// } +// +// /* later on */ +// clap_event_trigger ev; +// ev.header.space_id = CLAP_EXT_TRIGGER_EVENT_SPACE_ID; +// ev.header.type = CLAP_EVENT_TRIGGER; + +enum { CLAP_EVENT_TRIGGER = 0 }; + +typedef struct clap_event_trigger { + clap_event_header_t header; + + // target trigger + clap_id trigger_id; // @ref clap_trigger_info.id + void *cookie; // @ref clap_trigger_info.cookie + + // target a specific note_id, port, key and channel, -1 for global + int32_t note_id; + int16_t port_index; + int16_t channel; + int16_t key; +} clap_event_trigger_t; + /* This describes a trigger */ typedef struct clap_trigger_info { // stable trigger identifier, it must never change.