+/**
+ @defgroup plugin provided bypass
+
+ A port with the designation "processing#enable" must
+ control a plugin's internal bypass mode.
+
+ If the port value is larger than zero the plugin processes
+ normally.
+
+ If the port value is zero, the plugin is expected to bypass
+ all signals unmodified.
+
+ The plugin is responsible for providing a click-free transition
+ between the states.
+
+ (values less than zero are reserved for future use:
+ e.g click-free insert/removal of latent plugins.
+ Generally values <= 0 are to be treated as bypassed.)
+
+ lv2:designation <http://ardour.org/lv2/processing#enable> ;
+
+ @{
+*/
+
+#define LV2_PROCESSING_URI "http://ardour.org/lv2/processing"
+#define LV2_PROCESSING_URI_PREFIX LV2_PROCESSING_URI "#"
+#define LV2_PROCESSING_URI__enable LV2_PROCESSING_URI_PREFIX "enable"
+
+/**
+ @}
+*/
+
+/**
+ @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 a null-terminated XML
+ * text which is a valid midnam desciption
+ * (or NULL in case of error).
+ *
+ * The midnam <Model> must be unique and
+ * specific for the given plugin-instance.
+ */
+ char* (*midnam)(LV2_Handle instance);
+
+ /** The unique model id used ith the midnam,
+ * (or NULL).
+ */
+ char* (*model)(LV2_Handle instance);
+
+ /** free allocated strings. The host
+ * calls this for every value returned by
+ * \ref midnam and \ref model.
+ */
+ void (*free)(char*);
+} LV2_Midnam_Interface;
+
+/**
+ @}
+*/
+
+/**
+ @defgroup bankpatch
+
+ @{
+*/
+
+
+#define LV2_BANKPATCH_URI "http://ardour.org/lv2/bankpatch"
+#define LV2_BANKPATCH_PREFIX LV2_BANKPATCH_URI "#"
+#define LV2_BANKPATCH__notify LV2_BANKPATCH_PREFIX "notify"
+
+typedef void* LV2_BankPatch_Handle;
+
+/** a LV2 Feature provided by the Host to the plugin */
+typedef struct {
+ /** Opaque host data */
+ LV2_BankPatch_Handle handle;
+ /** Info from plugin's run(), notify host that bank/program changed */
+ void (*notify)(LV2_BankPatch_Handle handle, uint8_t channel, uint32_t bank, uint8_t pgm);
+} LV2_BankPatch;
+
+/**
+ @}
+*/