From 3f739738062eb5fd646a1a88a61019b453bbda7f Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 29 Oct 2016 19:21:48 +0200 Subject: Prototype LV2 extension for plugins to provide Midnams --- libs/ardour/ardour/lv2_extensions.h | 38 +++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'libs/ardour/ardour/lv2_extensions.h') diff --git a/libs/ardour/ardour/lv2_extensions.h b/libs/ardour/ardour/lv2_extensions.h index 64fc3bc615..f38ac8122a 100644 --- a/libs/ardour/ardour/lv2_extensions.h +++ b/libs/ardour/ardour/lv2_extensions.h @@ -171,4 +171,42 @@ typedef struct _LV2_License_Interface { @} */ +/** + @defgroup midnam MIDI Naming + + @{ +*/ + + +#define LV2_MIDNAM_URI "http://ardour.org/lv2/midnam" +#define LV2_MIDNAM_PREFIX LV2_MIDNAM_URI "#" +#define LV2_MIDNAM__interface LV2_MIDNAM_PREFIX "interface" +#define LV2_MIDNAM__update LV2_MIDNAM_PREFIX "update" + +typedef void* LV2_Midnam_Handle; + +/** a LV2 Feature provided by the Host to the plugin */ +typedef struct { + /** Opaque host data */ + LV2_Midnam_Handle handle; + /** Request from run() that the host should re-read the midnam */ + void (*update)(LV2_Midnam_Handle handle); +} LV2_Midnam; + +typedef struct { + /** query midnam document. The plugin + * is expected to return an allocated + * null-terminated XML text, which is + * safe for the host to pass to free(). + * + * The midnam must be unique and + * specific for the given plugin-instance. + */ + char* (*midnam)(LV2_Handle instance); + char* (*model)(LV2_Handle instance); +} LV2_Midnam_Interface; + +/** + @} +*/ #endif -- cgit v1.2.3