prepare custom LV2 extensions
This commit is contained in:
parent
f00342b2d8
commit
5fa4cf996b
128
libs/ardour/ardour/lv2_extensions.h
Normal file
128
libs/ardour/ardour/lv2_extensions.h
Normal file
@ -0,0 +1,128 @@
|
||||
/*
|
||||
Copyright 2016 Robin Gareus <robin@gareus.org>
|
||||
|
||||
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 _ardour_lv2_extensions_h_
|
||||
#define _ardour_lv2_extensions_h_
|
||||
|
||||
#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
|
||||
|
||||
/**
|
||||
@defgroup inlinedisplay Inline-Display
|
||||
|
||||
Support for displaying a miniaturized generic view
|
||||
directly in the host's Mixer Window.
|
||||
|
||||
@{
|
||||
*/
|
||||
|
||||
#define LV2_INLINEDISPLAY_URI "http://harrisonconsoles.com/lv2/inlinedisplay"
|
||||
#define LV2_INLINEDISPLAY_PREFIX LV2_INLINEDISPLAY_URI "#"
|
||||
#define LV2_INLINEDISPLAY__interface LV2_INLINEDISPLAY_PREFIX "interface"
|
||||
#define LV2_INLINEDISPLAY__queue_draw LV2_INLINEDISPLAY_PREFIX "queue_draw"
|
||||
|
||||
/** Opaque handle for LV2_Inline_Display::queue_draw() */
|
||||
typedef void* LV2_Inline_Display_Handle;
|
||||
|
||||
/** Alias for cairo_image_surface_t */
|
||||
typedef void* LV2_Inline_Display_Image_Surface;
|
||||
|
||||
typedef struct {
|
||||
/** Opaque host data */
|
||||
LV2_Inline_Display_Handle handle;
|
||||
/** Request from run() that the host should call render() */
|
||||
void (*queue_draw)(LV2_Inline_Display_Handle handle);
|
||||
} LV2_Inline_Display;
|
||||
|
||||
/**
|
||||
* Plugin Inline-Display Interface.
|
||||
*/
|
||||
typedef struct {
|
||||
/**
|
||||
* The render method. This is called by the host in a non-realtime context,
|
||||
* usually the main GUI thread.
|
||||
*
|
||||
* @param instance The LV2 instance
|
||||
* @param w the max available width
|
||||
* @return pointer to a cairo image surface or NULL
|
||||
*/
|
||||
LV2_Inline_Display_Image_Surface (*render)(LV2_Handle instance, uint32_t w, uint32_t h);
|
||||
} LV2_Inline_Display_Interface;
|
||||
|
||||
/**
|
||||
@}
|
||||
*/
|
||||
|
||||
/**
|
||||
@defgroup automate Self-Automation
|
||||
|
||||
Support for plugins to write automation data via Atom Events
|
||||
|
||||
@{
|
||||
*/
|
||||
|
||||
#define LV2_AUTOMATE_URI "http://ardour.org/lv2/automate"
|
||||
#define LV2_AUTOMATE_URI_PREFIX LV2_AUTOMATE_URI "#"
|
||||
/** an lv2:optionalFeature */
|
||||
#define LV2_AUTOMATE_URI__can_write LV2_AUTOMATE_URI_PREFIX "canWriteAutomatation"
|
||||
/** atom:supports */
|
||||
#define LV2_AUTOMATE_URI__control LV2_AUTOMATE_URI_PREFIX "automationControl"
|
||||
/** lv2:portProperty */
|
||||
#define LV2_AUTOMATE_URI__controlled LV2_AUTOMATE_URI_PREFIX "automationControlled"
|
||||
|
||||
/** atom messages */
|
||||
#define LV2_AUTOMATE_URI__event LV2_AUTOMATE_URI_PREFIX "event"
|
||||
#define LV2_AUTOMATE_URI__setup LV2_AUTOMATE_URI_PREFIX "setup"
|
||||
#define LV2_AUTOMATE_URI__finalize LV2_AUTOMATE_URI_PREFIX "finalize"
|
||||
#define LV2_AUTOMATE_URI__start LV2_AUTOMATE_URI_PREFIX "start"
|
||||
#define LV2_AUTOMATE_URI__end LV2_AUTOMATE_URI_PREFIX "end"
|
||||
#define LV2_AUTOMATE_URI__parameter LV2_AUTOMATE_URI_PREFIX "parameter"
|
||||
#define LV2_AUTOMATE_URI__value LV2_AUTOMATE_URI_PREFIX "value"
|
||||
|
||||
/**
|
||||
@}
|
||||
*/
|
||||
|
||||
/**
|
||||
@defgroup license License-Report
|
||||
|
||||
Allow for commercial LV2 to report their
|
||||
licensing status.
|
||||
|
||||
@{
|
||||
*/
|
||||
|
||||
#define LV2_PLUGINLICENSE_URI "http://harrisonconsoles.com/lv2/license"
|
||||
#define LV2_PLUGINLICENSE_PREFIX LV2_INLINEDISPLAY_URI "#"
|
||||
#define LV2_PLUGINLICENSE__interface LV2_INLINEDISPLAY_PREFIX "interface"
|
||||
|
||||
typedef struct _LV2_License_Interface {
|
||||
/* @return -1 if no license is needed; 0 if unlicensed, 1 if licensed */
|
||||
int (*is_licensed)(LV2_Handle instance);
|
||||
/* @return a string copy of the licensee name if licensed, or NULL, the caller needs to free this */
|
||||
char* (*licensee)(LV2_Handle instance);
|
||||
/* @return a URI identifying the plugin-bundle or plugin for which a given license is valid */
|
||||
const char* (*product_uri)(LV2_Handle instance);
|
||||
/* @return human readable product name for the URI */
|
||||
const char* (*product_name)(LV2_Handle instance);
|
||||
/* @return link to website or webstore */
|
||||
const char* (*store_url)(LV2_Handle instance);
|
||||
} LV2_License_Interface;
|
||||
|
||||
/**
|
||||
@}
|
||||
*/
|
||||
|
||||
#endif
|
@ -295,6 +295,10 @@ def configure(conf):
|
||||
atleast_version='0.6.0', mandatory=False)
|
||||
conf.define ('LV2_SUPPORT', 1)
|
||||
|
||||
# non-standard LV2 extention -- TODO: add option to disable??
|
||||
if conf.is_defined ('HAVE_LV2_1_10_0'):
|
||||
conf.define ('LV2_EXTENDED', 1)
|
||||
|
||||
# autowaf.check_pkg(conf, 'soundtouch-1.0', uselib_store='SOUNDTOUCH',
|
||||
# mandatory=False)
|
||||
autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT',
|
||||
|
1
wscript
1
wscript
@ -1168,6 +1168,7 @@ const char* const ardour_config_info = "\\n\\
|
||||
write_config_text('Libjack metadata', conf.is_defined ('HAVE_JACK_METADATA'))
|
||||
write_config_text('LV2 UI embedding', conf.is_defined('HAVE_SUIL'))
|
||||
write_config_text('LV2 support', conf.is_defined('LV2_SUPPORT'))
|
||||
write_config_text('LV2 extensions', conf.is_defined('LV2_EXTENDED'))
|
||||
write_config_text('LXVST support', conf.is_defined('LXVST_SUPPORT'))
|
||||
write_config_text('OGG', conf.is_defined('HAVE_OGG'))
|
||||
write_config_text('Phone home', conf.is_defined('PHONE_HOME'))
|
||||
|
Loading…
Reference in New Issue
Block a user