aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/event
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-07-07 18:59:32 -0400
committerDavid Robillard <d@drobilla.net>2022-07-17 18:14:00 -0400
commit1eccbe4355685b322194df72b5de2382d5290b3b (patch)
tree0677b5c2f577a5024c351a164527f4bdd91a639b /lv2/event
parentd4a970f6962dda28133290194832b726b566ddab (diff)
downloadlv2-1eccbe4355685b322194df72b5de2382d5290b3b.tar.xz
Rearrange source tree to be directly usable by dependants
This allows the LV2 source distribution to be used as an include path for compilers and an LV2_PATH for applications, at the expense of self-contained bundles. That's a nice idea, but it made LV2 itself weird and annoying to depend on. This rearranges things so that directories in the source tree correspond more closely to installation directories. To make this possible, the "aux" directory in the documentation output has been changed to "style", to avoid the reserved name "aux" on Windows.
Diffstat (limited to 'lv2/event')
-rw-r--r--lv2/event/event-helpers.h255
-rw-r--r--lv2/event/event.h306
-rw-r--r--lv2/event/event.meta.ttl256
-rw-r--r--lv2/event/event.ttl87
-rw-r--r--lv2/event/manifest.ttl9
-rw-r--r--lv2/event/meson.build41
6 files changed, 0 insertions, 954 deletions
diff --git a/lv2/event/event-helpers.h b/lv2/event/event-helpers.h
deleted file mode 100644
index bf1b885..0000000
--- a/lv2/event/event-helpers.h
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- Copyright 2008-2015 David Robillard <d@drobilla.net>
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-
-#ifndef LV2_EVENT_HELPERS_H
-#define LV2_EVENT_HELPERS_H
-
-/**
- @file event-helpers.h Helper functions for the LV2 Event extension
- <http://lv2plug.in/ns/ext/event>.
-*/
-
-#include "lv2/core/attributes.h"
-#include "lv2/event/event.h"
-
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-LV2_DISABLE_DEPRECATION_WARNINGS
-
-/** @file
- * Helper functions for the LV2 Event extension
- * <http://lv2plug.in/ns/ext/event>.
- *
- * These functions are provided for convenience only, use of them is not
- * required for supporting lv2ev (i.e. the events extension is defined by the
- * raw buffer format described in lv2_event.h and NOT by this API).
- *
- * Note that these functions are all static inline which basically means:
- * do not take the address of these functions. */
-
-/** Pad a size to 64 bits (for event sizes) */
-static inline uint16_t
-lv2_event_pad_size(uint16_t size)
-{
- return (uint16_t)((size + 7U) & ~7U);
-}
-
-/** Initialize (empty, reset..) an existing event buffer.
- * The contents of buf are ignored entirely and overwritten, except capacity
- * which is unmodified. */
-static inline void
-lv2_event_buffer_reset(LV2_Event_Buffer* buf,
- uint16_t stamp_type,
- uint8_t* data)
-{
- buf->data = data;
- buf->header_size = sizeof(LV2_Event_Buffer);
- buf->stamp_type = stamp_type;
- buf->event_count = 0;
- buf->size = 0;
-}
-
-/** Allocate a new, empty event buffer. */
-static inline LV2_Event_Buffer*
-lv2_event_buffer_new(uint32_t capacity, uint16_t stamp_type)
-{
- const size_t size = sizeof(LV2_Event_Buffer) + capacity;
- LV2_Event_Buffer* buf = (LV2_Event_Buffer*)malloc(size);
- if (buf != NULL) {
- buf->capacity = capacity;
- lv2_event_buffer_reset(buf, stamp_type, (uint8_t*)(buf + 1));
- return buf;
- }
- return NULL;
-}
-
-/** An iterator over an LV2_Event_Buffer.
- *
- * Multiple simultaneous read iterators over a single buffer is fine,
- * but changing the buffer invalidates all iterators. */
-typedef struct {
- LV2_Event_Buffer* buf;
- uint32_t offset;
-} LV2_Event_Iterator;
-
-/** Reset an iterator to point to the start of `buf`.
- * @return True if `iter` is valid, otherwise false (buffer is empty) */
-static inline bool
-lv2_event_begin(LV2_Event_Iterator* iter, LV2_Event_Buffer* buf)
-{
- iter->buf = buf;
- iter->offset = 0;
- return (buf->size > 0);
-}
-
-/** Check if `iter` is valid.
- * @return True if `iter` is valid, otherwise false (past end of buffer) */
-static inline bool
-lv2_event_is_valid(LV2_Event_Iterator* iter)
-{
- return (iter->buf && (iter->offset < iter->buf->size));
-}
-
-/** Advance `iter` forward one event.
- * `iter` must be valid.
- * @return True if `iter` is valid, otherwise false (reached end of buffer) */
-static inline bool
-lv2_event_increment(LV2_Event_Iterator* iter)
-{
- if (!lv2_event_is_valid(iter)) {
- return false;
- }
-
- LV2_Event* const ev = (LV2_Event*)(iter->buf->data + iter->offset);
-
- iter->offset +=
- lv2_event_pad_size((uint16_t)((uint16_t)sizeof(LV2_Event) + ev->size));
-
- return true;
-}
-
-/** Dereference an event iterator (get the event currently pointed at).
- * `iter` must be valid.
- * `data` if non-NULL, will be set to point to the contents of the event
- * returned.
- * @return A Pointer to the event `iter` is currently pointing at, or NULL
- * if the end of the buffer is reached (in which case `data` is
- * also set to NULL). */
-static inline LV2_Event*
-lv2_event_get(LV2_Event_Iterator* iter, uint8_t** data)
-{
- if (!lv2_event_is_valid(iter)) {
- return NULL;
- }
-
- LV2_Event* const ev = (LV2_Event*)(iter->buf->data + iter->offset);
-
- if (data) {
- *data = (uint8_t*)ev + sizeof(LV2_Event);
- }
-
- return ev;
-}
-
-/** Write an event at `iter`.
- * The event (if any) pointed to by `iter` will be overwritten, and `iter`
- * incremented to point to the following event (i.e. several calls to this
- * function can be done in sequence without twiddling iter in-between).
- * @return True if event was written, otherwise false (buffer is full). */
-static inline bool
-lv2_event_write(LV2_Event_Iterator* iter,
- uint32_t frames,
- uint32_t subframes,
- uint16_t type,
- uint16_t size,
- const uint8_t* data)
-{
- if (!iter->buf) {
- return false;
- }
-
- if (iter->buf->capacity - iter->buf->size < sizeof(LV2_Event) + size) {
- return false;
- }
-
- LV2_Event* const ev = (LV2_Event*)(iter->buf->data + iter->offset);
-
- ev->frames = frames;
- ev->subframes = subframes;
- ev->type = type;
- ev->size = size;
- memcpy((uint8_t*)ev + sizeof(LV2_Event), data, size);
- ++iter->buf->event_count;
-
- size = lv2_event_pad_size((uint16_t)(sizeof(LV2_Event) + size));
- iter->buf->size += size;
- iter->offset += size;
-
- return true;
-}
-
-/** Reserve space for an event in the buffer and return a pointer to
- the memory where the caller can write the event data, or NULL if there
- is not enough room in the buffer. */
-static inline uint8_t*
-lv2_event_reserve(LV2_Event_Iterator* iter,
- uint32_t frames,
- uint32_t subframes,
- uint16_t type,
- uint16_t size)
-{
- const uint16_t total_size = (uint16_t)(sizeof(LV2_Event) + size);
- if (iter->buf->capacity - iter->buf->size < total_size) {
- return NULL;
- }
-
- LV2_Event* const ev = (LV2_Event*)(iter->buf->data + iter->offset);
-
- ev->frames = frames;
- ev->subframes = subframes;
- ev->type = type;
- ev->size = size;
- ++iter->buf->event_count;
-
- const uint16_t padded_size = lv2_event_pad_size(total_size);
- iter->buf->size += padded_size;
- iter->offset += padded_size;
-
- return (uint8_t*)ev + sizeof(LV2_Event);
-}
-
-/** Write an event at `iter`.
- * The event (if any) pointed to by `iter` will be overwritten, and `iter`
- * incremented to point to the following event (i.e. several calls to this
- * function can be done in sequence without twiddling iter in-between).
- * @return True if event was written, otherwise false (buffer is full). */
-static inline bool
-lv2_event_write_event(LV2_Event_Iterator* iter,
- const LV2_Event* ev,
- const uint8_t* data)
-{
- const uint16_t total_size = (uint16_t)(sizeof(LV2_Event) + ev->size);
- if (iter->buf->capacity - iter->buf->size < total_size) {
- return false;
- }
-
- LV2_Event* const write_ev = (LV2_Event*)(iter->buf->data + iter->offset);
-
- *write_ev = *ev;
- memcpy((uint8_t*)write_ev + sizeof(LV2_Event), data, ev->size);
- ++iter->buf->event_count;
-
- const uint16_t padded_size = lv2_event_pad_size(total_size);
- iter->buf->size += padded_size;
- iter->offset += padded_size;
-
- return true;
-}
-
-LV2_RESTORE_WARNINGS
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* LV2_EVENT_HELPERS_H */
diff --git a/lv2/event/event.h b/lv2/event/event.h
deleted file mode 100644
index 045ac12..0000000
--- a/lv2/event/event.h
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- Copyright 2008-2016 David Robillard <d@drobilla.net>
- Copyright 2006-2007 Lars Luthman <lars.luthman@gmail.com>
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-
-#ifndef LV2_EVENT_H
-#define LV2_EVENT_H
-
-/**
- @defgroup event Event
- @ingroup lv2
-
- Generic time-stamped events.
-
- See <http://lv2plug.in/ns/ext/event> for details.
-
- @{
-*/
-
-// clang-format off
-
-#define LV2_EVENT_URI "http://lv2plug.in/ns/ext/event" ///< http://lv2plug.in/ns/ext/event
-#define LV2_EVENT_PREFIX LV2_EVENT_URI "#" ///< http://lv2plug.in/ns/ext/event#
-
-#define LV2_EVENT__Event LV2_EVENT_PREFIX "Event" ///< http://lv2plug.in/ns/ext/event#Event
-#define LV2_EVENT__EventPort LV2_EVENT_PREFIX "EventPort" ///< http://lv2plug.in/ns/ext/event#EventPort
-#define LV2_EVENT__FrameStamp LV2_EVENT_PREFIX "FrameStamp" ///< http://lv2plug.in/ns/ext/event#FrameStamp
-#define LV2_EVENT__TimeStamp LV2_EVENT_PREFIX "TimeStamp" ///< http://lv2plug.in/ns/ext/event#TimeStamp
-#define LV2_EVENT__generatesTimeStamp LV2_EVENT_PREFIX "generatesTimeStamp" ///< http://lv2plug.in/ns/ext/event#generatesTimeStamp
-#define LV2_EVENT__generic LV2_EVENT_PREFIX "generic" ///< http://lv2plug.in/ns/ext/event#generic
-#define LV2_EVENT__inheritsEvent LV2_EVENT_PREFIX "inheritsEvent" ///< http://lv2plug.in/ns/ext/event#inheritsEvent
-#define LV2_EVENT__inheritsTimeStamp LV2_EVENT_PREFIX "inheritsTimeStamp" ///< http://lv2plug.in/ns/ext/event#inheritsTimeStamp
-#define LV2_EVENT__supportsEvent LV2_EVENT_PREFIX "supportsEvent" ///< http://lv2plug.in/ns/ext/event#supportsEvent
-#define LV2_EVENT__supportsTimeStamp LV2_EVENT_PREFIX "supportsTimeStamp" ///< http://lv2plug.in/ns/ext/event#supportsTimeStamp
-
-// clang-format on
-
-#define LV2_EVENT_AUDIO_STAMP 0 ///< Special timestamp type for audio frames
-
-#include "lv2/core/attributes.h"
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-LV2_DISABLE_DEPRECATION_WARNINGS
-
-/**
- The best Pulses Per Quarter Note for tempo-based uint32_t timestamps.
- Equal to 2^12 * 5 * 7 * 9 * 11 * 13 * 17, which is evenly divisible
- by all integers from 1 through 18 inclusive, and powers of 2 up to 2^12.
-*/
-LV2_DEPRECATED
-static const uint32_t LV2_EVENT_PPQN = 3136573440U;
-
-/**
- An LV2 event (header only).
-
- LV2 events are generic time-stamped containers for any type of event.
- The type field defines the format of a given event's contents.
-
- This struct defines the header of an LV2 event. An LV2 event is a single
- chunk of POD (plain old data), usually contained in a flat buffer (see
- LV2_EventBuffer below). Unless a required feature says otherwise, hosts may
- assume a deep copy of an LV2 event can be created safely using a simple:
-
- memcpy(ev_copy, ev, sizeof(LV2_Event) + ev->size); (or equivalent)
-*/
-LV2_DEPRECATED
-typedef struct {
- /**
- The frames portion of timestamp. The units used here can optionally be
- set for a port (with the lv2ev:timeUnits property), otherwise this is
- audio frames, corresponding to the sample_count parameter of the LV2 run
- method (frame 0 is the first frame for that call to run).
- */
- uint32_t frames;
-
- /**
- The sub-frames portion of timestamp. The units used here can optionally
- be set for a port (with the lv2ev:timeUnits property), otherwise this is
- 1/(2^32) of an audio frame.
- */
- uint32_t subframes;
-
- /**
- The type of this event, as a number which represents some URI
- defining an event type. This value MUST be some value previously
- returned from a call to the uri_to_id function defined in the LV2
- URI map extension (see lv2_uri_map.h).
- There are special rules which must be followed depending on the type
- of an event. If the plugin recognizes an event type, the definition
- of that event type will describe how to interpret the event, and
- any required behaviour. Otherwise, if the type is 0, this event is a
- non-POD event and lv2_event_unref MUST be called if the event is
- 'dropped' (see above). Even if the plugin does not understand an event,
- it may pass the event through to an output by simply copying (and NOT
- calling lv2_event_unref). These rules are designed to allow for generic
- event handling plugins and large non-POD events, but with minimal hassle
- on simple plugins that "don't care" about these more advanced features.
- */
- uint16_t type;
-
- /**
- The size of the data portion of this event in bytes, which immediately
- follows. The header size (12 bytes) is not included in this value.
- */
- uint16_t size;
-
- /* size bytes of data follow here */
-} LV2_Event;
-
-/**
- A buffer of LV2 events (header only).
-
- Like events (which this contains) an event buffer is a single chunk of POD:
- the entire buffer (including contents) can be copied with a single memcpy.
- The first contained event begins sizeof(LV2_EventBuffer) bytes after the
- start of this struct.
-
- After this header, the buffer contains an event header (defined by struct
- LV2_Event), followed by that event's contents (padded to 64 bits), followed
- by another header, etc:
-
- | | | | | | |
- | | | | | | | | | | | | | | | | | | | | | | | | |
- |FRAMES |SUBFRMS|TYP|LEN|DATA..DATA..PAD|FRAMES | ...
-*/
-LV2_DEPRECATED
-typedef struct {
- /**
- The contents of the event buffer. This may or may not reside in the
- same block of memory as this header, plugins must not assume either.
- The host guarantees this points to at least capacity bytes of allocated
- memory (though only size bytes of that are valid events).
- */
- uint8_t* data;
-
- /**
- The size of this event header in bytes (including everything).
-
- This is to allow for extending this header in the future without
- breaking binary compatibility. Whenever this header is copied,
- it MUST be done using this field (and NOT the sizeof this struct).
- */
- uint16_t header_size;
-
- /**
- The type of the time stamps for events in this buffer.
- As a special exception, '0' always means audio frames and subframes
- (1/UINT32_MAX'th of a frame) in the sample rate passed to instantiate.
-
- INPUTS: The host must set this field to the numeric ID of some URI
- defining the meaning of the frames/subframes fields of contained events
- (obtained by the LV2 URI Map uri_to_id function with the URI of this
- extension as the 'map' argument, see lv2_uri_map.h). The host must
- never pass a plugin a buffer which uses a stamp type the plugin does not
- 'understand'. The value of this field must never change, except when
- connect_port is called on the input port, at which time the host MUST
- have set the stamp_type field to the value that will be used for all
- subsequent run calls.
-
- OUTPUTS: The plugin may set this to any value that has been returned
- from uri_to_id with the URI of this extension for a 'map' argument.
- When connected to a buffer with connect_port, output ports MUST set this
- field to the type of time stamp they will be writing. On any call to
- connect_port on an event input port, the plugin may change this field on
- any output port, it is the responsibility of the host to check if any of
- these values have changed and act accordingly.
- */
- uint16_t stamp_type;
-
- /**
- The number of events in this buffer.
-
- INPUTS: The host must set this field to the number of events contained
- in the data buffer before calling run(). The plugin must not change
- this field.
-
- OUTPUTS: The plugin must set this field to the number of events it has
- written to the buffer before returning from run(). Any initial value
- should be ignored by the plugin.
- */
- uint32_t event_count;
-
- /**
- The size of the data buffer in bytes.
- This is set by the host and must not be changed by the plugin.
- The host is allowed to change this between run() calls.
- */
- uint32_t capacity;
-
- /**
- The size of the initial portion of the data buffer containing data.
-
- INPUTS: The host must set this field to the number of bytes used
- by all events it has written to the buffer (including headers)
- before calling the plugin's run().
- The plugin must not change this field.
-
- OUTPUTS: The plugin must set this field to the number of bytes
- used by all events it has written to the buffer (including headers)
- before returning from run().
- Any initial value should be ignored by the plugin.
- */
- uint32_t size;
-} LV2_Event_Buffer;
-
-/**
- Opaque pointer to host data.
-*/
-LV2_DEPRECATED
-typedef void* LV2_Event_Callback_Data;
-
-/**
- Non-POD events feature.
-
- To support this feature the host must pass an LV2_Feature struct to the
- plugin's instantiate method with URI "http://lv2plug.in/ns/ext/event"
- and data pointed to an instance of this struct. Note this feature
- is not mandatory to support the event extension.
-*/
-LV2_DEPRECATED
-typedef struct {
- /**
- Opaque pointer to host data.
-
- The plugin MUST pass this to any call to functions in this struct.
- Otherwise, it must not be interpreted in any way.
- */
- LV2_Event_Callback_Data callback_data;
-
- /**
- Take a reference to a non-POD event.
-
- If a plugin receives an event with type 0, it means the event is a
- pointer to some object in memory and not a flat sequence of bytes
- in the buffer. When receiving a non-POD event, the plugin already
- has an implicit reference to the event. If the event is stored AND
- passed to an output, lv2_event_ref MUST be called on that event.
- If the event is only stored OR passed through, this is not necessary
- (as the plugin already has 1 implicit reference).
-
- @param event An event received at an input that will not be copied to
- an output or stored in any way.
-
- @param context The calling context. Like event types, this is a mapped
- URI, see lv2_context.h. Simple plugin with just a run() method should
- pass 0 here (the ID of the 'standard' LV2 run context). The host
- guarantees that this function is realtime safe iff the context is
- realtime safe.
-
- PLUGINS THAT VIOLATE THESE RULES MAY CAUSE CRASHES AND MEMORY LEAKS.
- */
- uint32_t (*lv2_event_ref)(LV2_Event_Callback_Data callback_data,
- LV2_Event* event);
-
- /**
- Drop a reference to a non-POD event.
-
- If a plugin receives an event with type 0, it means the event is a
- pointer to some object in memory and not a flat sequence of bytes
- in the buffer. If the plugin does not pass the event through to
- an output or store it internally somehow, it MUST call this function
- on the event (more information on using non-POD events below).
-
- @param event An event received at an input that will not be copied to an
- output or stored in any way.
-
- @param context The calling context. Like event types, this is a mapped
- URI, see lv2_context.h. Simple plugin with just a run() method should
- pass 0 here (the ID of the 'standard' LV2 run context). The host
- guarantees that this function is realtime safe iff the context is
- realtime safe.
-
- PLUGINS THAT VIOLATE THESE RULES MAY CAUSE CRASHES AND MEMORY LEAKS.
- */
- uint32_t (*lv2_event_unref)(LV2_Event_Callback_Data callback_data,
- LV2_Event* event);
-} LV2_Event_Feature;
-
-LV2_RESTORE_WARNINGS
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-/**
- @}
-*/
-
-#endif /* LV2_EVENT_H */
diff --git a/lv2/event/event.meta.ttl b/lv2/event/event.meta.ttl
deleted file mode 100644
index e9c26bc..0000000
--- a/lv2/event/event.meta.ttl
+++ /dev/null
@@ -1,256 +0,0 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix ev: <http://lv2plug.in/ns/ext/event#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/event>
- a doap:Project ;
- doap:license <http://opensource.org/licenses/isc> ;
- doap:name "LV2 Event" ;
- doap:shortdesc "A port-based real-time generic event interface." ;
- doap:created "2008-00-00" ;
- doap:developer <http://drobilla.net/drobilla#me> ,
- <http://lv2plug.in/ns/meta#larsl> ;
- doap:release [
- doap:revision "1.14" ;
- doap:created "2022-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix spelling errors."
- ]
- ]
- ] , [
- doap:revision "1.12" ;
- doap:created "2014-08-08" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.10.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Minor documentation improvements."
- ]
- ]
- ] , [
- doap:revision "1.10" ;
- doap:created "2013-01-13" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.4.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix incorrect return type in lv2_event_get()."
- ]
- ]
- ] , [
- doap:revision "1.8" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Make event iterator gracefully handle optional ports."
- ] , [
- rdfs:label "Remove asserts from event-helper.h."
- ] , [
- rdfs:label "Use more precise domain and range for EventPort properties."
- ] , [
- rdfs:label "Use consistent label style."
- ]
- ]
- ] , [
- doap:revision "1.6" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix bug in lv2_event_reserve()."
- ] , [
- rdfs:label "Fix incorrect ranges of some properties."
- ] , [
- rdfs:label "Merge with unified LV2 package."
- ]
- ]
- ] , [
- doap:revision "1.4" ;
- doap:created "2011-11-21" ;
- doap:file-release <http://lv2plug.in/spec/lv2-event-1.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Update packaging."
- ]
- ]
- ] , [
- doap:revision "1.2" ;
- doap:created "2011-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-event-1.2.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add build system (for installation)."
- ] , [
- rdfs:label "Convert documentation to HTML and use lv2:documentation."
- ] , [
- rdfs:label "Use lv2:Specification to be discovered as an extension."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2010-11-24" ;
- doap:file-release <http://lv2plug.in/spec/lv2-event-1.0.tar.gz> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
- lv2:documentation """
-
-<span class="warning">This extension is deprecated.</span> New implementations
-should use <a href="atom.html">LV2 Atom</a> instead.
-
-This extension defines a generic time-stamped event port type, which can be
-used to create plugins that read and write real-time events, such as MIDI,
-OSC, or any other type of event payload. The type(s) of event supported by
-a port is defined in the data file for a plugin, for example:
-
- :::turtle
- <http://example.org/some-plugin>
- lv2:port [
- a ev:EventPort, lv2:InputPort ;
- lv2:index 0 ;
- ev:supportsEvent <http://lv2plug.in/ns/ext/midi#MidiEvent> ;
- lv2:symbol "midi_input" ;
- lv2:name "MIDI input" ;
- ] .
-
-"""^^lv2:Markdown .
-
-ev:EventPort
- lv2:documentation """
-
-Ports of this type will be connected to a struct of type LV2_Event_Buffer,
-defined in event.h. These ports contain a sequence of generic events (possibly
-several types mixed in a single stream), the specific types of which are
-defined by some URI in another LV2 extension.
-
-"""^^lv2:Markdown .
-
-ev:Event
- a rdfs:Class ;
- rdfs:label "Event" ;
- lv2:documentation """
-
-An ev:EventPort contains an LV2_Event_Buffer which contains a sequence of these
-events. The binary format of LV2 events is defined by the LV2_Event struct in
-event.h.
-
-Specific event types (such as MIDI or OSC) are defined by extensions, and
-should be rdfs:subClassOf this class.
-
-"""^^lv2:Markdown .
-
-ev:TimeStamp
- lv2:documentation """
-
-This defines the meaning of the 'frames' and 'subframes' fields of an LV2_Event
-(both unsigned 32-bit integers).
-
-"""^^lv2:Markdown .
-
-ev:FrameStamp
- lv2:documentation """
-
-The default time stamp unit for an LV2 event: the frames field represents audio
-frames (in the sample rate passed to instantiate), and the subframes field is
-1/UINT32_MAX of a frame.
-
-"""^^lv2:Markdown .
-
-ev:generic
- lv2:documentation """
-
-Indicates that this port does something meaningful for any event type. This is
-useful for things like event mixers, delays, serialisers, and so on.
-
-If this property is set, hosts should consider the port suitable for any type
-of event. Otherwise, hosts should consider the port 'appropriate' only for the
-specific event types listed with :supportsEvent. Note that plugins must
-gracefully handle unknown event types whether or not this property is present.
-
-"""^^lv2:Markdown .
-
-ev:supportsEvent
- lv2:documentation """
-
-Indicates that this port supports or "understands" a certain event type.
-
-For input ports, this means the plugin understands and does something useful
-with events of this type. For output ports, this means the plugin may generate
-events of this type. If the plugin never actually generates events of this
-type, but might pass them through from an input, this property should not be
-set (use ev:inheritsEvent for that).
-
-Plugins with event input ports must always gracefully handle any type of event,
-even if it does not 'support' it. This property should always be set for event
-types the plugin understands/generates so hosts can discover plugins
-appropriate for a given scenario (for example, plugins with a MIDI input).
-Hosts are not expected to consider event ports suitable for some type of event
-if the relevant :supportsEvent property is not set, unless the ev:generic
-property for that port is also set.
-
-
-"""^^lv2:Markdown .
-
-ev:inheritsEvent
- lv2:documentation """
-
-Indicates that this output port might pass through events that arrived at some
-other input port (or generate an event of the same type as events arriving at
-that input). The host must always check the stamp type of all outputs when
-connecting an input, but this property should be set whenever it applies.
-
-
-"""^^lv2:Markdown .
-
-ev:supportsTimeStamp
- lv2:documentation """
-
-Indicates that this port supports or "understands" a certain time stamp type.
-Meaningful only for input ports, the host must never connect a port to an event
-buffer with a time stamp type that isn't supported by the port.
-
-"""^^lv2:Markdown .
-
-ev:generatesTimeStamp
- lv2:documentation """
-
-Indicates that this port may output a certain time stamp type, regardless of
-the time stamp type of any input ports.
-
-If the port outputs stamps based on what type inputs are connected to, this
-property should not be set (use the ev:inheritsTimeStamp property for that).
-Hosts MUST check the time_stamp value of any output port buffers after a call
-to connect_port on ANY event input port on the plugin.
-
-If the plugin changes the stamp_type field of an output event buffer during a
-call to run(), the plugin must call the stamp_type_changed function provided by
-the host in the LV2_Event_Feature struct, if it is non-NULL.
-
-"""^^lv2:Markdown .
-
-ev:inheritsTimeStamp
- lv2:documentation """
-
-Indicates that this port follows the time stamp type of an input port.
-
-This property is not necessary, but it should be set for outputs that base
-their output type on an input port so the host can make more sense of the
-plugin and provide a more sensible interface.
-
-"""^^lv2:Markdown .
-
diff --git a/lv2/event/event.ttl b/lv2/event/event.ttl
deleted file mode 100644
index 119e606..0000000
--- a/lv2/event/event.ttl
+++ /dev/null
@@ -1,87 +0,0 @@
-@prefix ev: <http://lv2plug.in/ns/ext/event#> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/event>
- a owl:Ontology ;
- owl:deprecated true ;
- rdfs:label "LV2 Event" ;
- rdfs:comment "A port-based real-time generic event interface." ;
- rdfs:seeAlso <event.h> ,
- <event-helpers.h> ,
- <event.meta.ttl> ;
- owl:imports <http://lv2plug.in/ns/lv2core> .
-
-ev:EventPort
- a rdfs:Class ;
- rdfs:label "Event Port" ;
- rdfs:subClassOf lv2:Port ;
- rdfs:comment "An LV2 event port." .
-
-ev:Event
- a rdfs:Class ;
- rdfs:label "Event" ;
- rdfs:comment "A single generic time-stamped event." .
-
-ev:TimeStamp
- a rdfs:Class ;
- rdfs:label "Event Time Stamp" ;
- rdfs:comment "The time stamp of an Event." .
-
-ev:FrameStamp
- a rdfs:Class ;
- rdfs:subClassOf ev:TimeStamp ;
- rdfs:label "Audio Frame Time Stamp" ;
- rdfs:comment "The default time stamp unit for an event." .
-
-ev:generic
- a lv2:PortProperty ;
- rdfs:label "generic event port" ;
- rdfs:comment "Port works with generic events." .
-
-ev:supportsEvent
- a rdf:Property ,
- owl:ObjectProperty ;
- rdfs:domain ev:EventPort ;
- rdfs:range rdfs:Class ;
- rdfs:label "supports event type" ;
- rdfs:comment "An event type supported by this port." .
-
-ev:inheritsEvent
- a rdf:Property ,
- owl:ObjectProperty ;
- rdfs:domain ev:EventPort ,
- lv2:OutputPort ;
- rdfs:range lv2:Port ;
- rdfs:label "inherits event type" ;
- rdfs:comment "Output port inherits event types from an input port." .
-
-ev:supportsTimeStamp
- a rdf:Property ,
- owl:ObjectProperty ;
- rdfs:domain ev:EventPort ,
- lv2:InputPort ;
- rdfs:range rdfs:Class ;
- rdfs:label "supports time stamp type" ;
- rdfs:comment "A time stamp type supported by this input port." .
-
-ev:generatesTimeStamp
- a rdf:Property ,
- owl:ObjectProperty ;
- rdfs:domain ev:EventPort ,
- lv2:OutputPort ;
- rdfs:range rdfs:Class ;
- rdfs:label "generates time stamp type" ;
- rdfs:comment "A time stamp type generated by this input port." .
-
-ev:inheritsTimeStamp
- a rdf:Property ,
- owl:ObjectProperty ;
- rdfs:domain ev:EventPort ,
- lv2:OutputPort ;
- rdfs:range lv2:Port ;
- rdfs:label "inherits time stamp type" ;
- rdfs:comment "Output port inherits time stamp types from an input port." .
-
diff --git a/lv2/event/manifest.ttl b/lv2/event/manifest.ttl
deleted file mode 100644
index 230fe73..0000000
--- a/lv2/event/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/event>
- a lv2:Specification ;
- lv2:minorVersion 1 ;
- lv2:microVersion 14 ;
- rdfs:seeAlso <event.ttl> .
-
diff --git a/lv2/event/meson.build b/lv2/event/meson.build
deleted file mode 100644
index 020acc8..0000000
--- a/lv2/event/meson.build
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
-
-name = 'event'
-path = 'ns' / 'ext' / 'event'
-
-event_data = files(
- 'event.meta.ttl',
- 'event.ttl',
- 'manifest.ttl',
-)
-
-headers = files(
- 'event-helpers.h',
- 'event.h',
-)
-
-# Install specification bundle
-install_data(event_data, install_dir: lv2dir / name + '.lv2')
-install_headers(headers, subdir: 'lv2' / name)
-if get_option('old_headers')
- install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
-endif
-
-# Build documentation
-if build_docs
- lv2_event_docs = custom_target(
- name + '.html',
- command: lv2specgen_command_prefix + [
- '--docdir=../../html',
- '--style-uri=../../aux/style.css',
- '@INPUT@',
- '@OUTPUT@',
- ],
- depends: doc_deps,
- input: files('event.ttl'),
- install: true,
- install_dir: lv2_docdir / 'ns' / 'ext',
- output: name + '.html',
- )
-endif