@@ -0,0 +1,25 @@ | |||||
@prefix dcs: <http://ontologi.es/doap-changeset#> . | |||||
@prefix doap: <http://usefulinc.com/ns/doap#> . | |||||
@prefix foaf: <http://xmlns.com/foaf/0.1/> . | |||||
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . | |||||
<http://kxstudio.sf.net/ns/lv2ext/external-ui> | |||||
a doap:Project ; | |||||
rdfs:seeAlso <../kx-meta/meta.ttl> ; | |||||
doap:license <http://opensource.org/licenses/isc> ; | |||||
doap:name "External UI" ; | |||||
doap:homepage <http://kxstudio.sf.net/ns/lv2ext/external-ui> ; | |||||
doap:created "2015-07-03" ; | |||||
doap:shortdesc "LV2 extension for implementing external UIs." ; | |||||
doap:developer <http://falktx.com/myself.html> ; | |||||
doap:maintainer <http://falktx.com/myself.html> ; | |||||
doap:release [ | |||||
doap:revision "1.0" ; | |||||
doap:created "2015-07-03" ; | |||||
doap:file-release <http://kxstudio.sf.net/ns/lv2ext/kx-extensions-1.0.tar.bz2> ; | |||||
dcs:changeset [ | |||||
dcs:item [ | |||||
rdfs:label "First stable release." | |||||
] | |||||
] | |||||
] . |
@@ -0,0 +1,109 @@ | |||||
/* | |||||
LV2 External UI extension | |||||
This work is in public domain. | |||||
This file is distributed in the hope that it will be useful, | |||||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |||||
If you have questions, contact Filipe Coelho (aka falkTX) <falktx@falktx.com> | |||||
or ask in #lad channel, FreeNode IRC network. | |||||
*/ | |||||
/** | |||||
@file lv2_external_ui.h | |||||
C header for the LV2 External UI extension <http://kxstudio.sf.net/ns/lv2ext/external-ui>. | |||||
*/ | |||||
#ifndef LV2_EXTERNAL_UI_H | |||||
#define LV2_EXTERNAL_UI_H | |||||
#include "lv2/lv2plug.in/ns/extensions/ui/ui.h" | |||||
#define LV2_EXTERNAL_UI_URI "http://kxstudio.sf.net/ns/lv2ext/external-ui" | |||||
#define LV2_EXTERNAL_UI_PREFIX LV2_EXTERNAL_UI_URI "#" | |||||
#define LV2_EXTERNAL_UI__Host LV2_EXTERNAL_UI_PREFIX "Host" | |||||
#define LV2_EXTERNAL_UI__Widget LV2_EXTERNAL_UI_PREFIX "Widget" | |||||
/** This extension used to be defined by a lv2plug.in URI */ | |||||
#define LV2_EXTERNAL_UI_DEPRECATED_URI "http://lv2plug.in/ns/extensions/ui#external" | |||||
#ifdef __cplusplus | |||||
extern "C" { | |||||
#endif | |||||
/** | |||||
* When LV2_EXTERNAL_UI__Widget UI is instantiated, the returned | |||||
* LV2UI_Widget handle must be cast to pointer to LV2_External_UI_Widget. | |||||
* UI is created in invisible state. | |||||
*/ | |||||
typedef struct _LV2_External_UI_Widget { | |||||
/** | |||||
* Host calls this function regulary. UI library implementing the | |||||
* callback may do IPC or redraw the UI. | |||||
* | |||||
* @param _this_ the UI context | |||||
*/ | |||||
void (*run)(struct _LV2_External_UI_Widget * _this_); | |||||
/** | |||||
* Host calls this function to make the plugin UI visible. | |||||
* | |||||
* @param _this_ the UI context | |||||
*/ | |||||
void (*show)(struct _LV2_External_UI_Widget * _this_); | |||||
/** | |||||
* Host calls this function to make the plugin UI invisible again. | |||||
* | |||||
* @param _this_ the UI context | |||||
*/ | |||||
void (*hide)(struct _LV2_External_UI_Widget * _this_); | |||||
} LV2_External_UI_Widget; | |||||
#define LV2_EXTERNAL_UI_RUN(ptr) (ptr)->run(ptr) | |||||
#define LV2_EXTERNAL_UI_SHOW(ptr) (ptr)->show(ptr) | |||||
#define LV2_EXTERNAL_UI_HIDE(ptr) (ptr)->hide(ptr) | |||||
/** | |||||
* On UI instantiation, host must supply LV2_EXTERNAL_UI__Host feature. | |||||
* LV2_Feature::data must be pointer to LV2_External_UI_Host. | |||||
*/ | |||||
typedef struct _LV2_External_UI_Host { | |||||
/** | |||||
* Callback that plugin UI will call when UI (GUI window) is closed by user. | |||||
* This callback will be called during execution of LV2_External_UI_Widget::run() | |||||
* (i.e. not from background thread). | |||||
* | |||||
* After this callback is called, UI is defunct. Host must call LV2UI_Descriptor::cleanup(). | |||||
* If host wants to make the UI visible again, the UI must be reinstantiated. | |||||
* | |||||
* @note When using the depreated URI LV2_EXTERNAL_UI_DEPRECATED_URI, | |||||
* some hosts will not call LV2UI_Descriptor::cleanup() as they should, | |||||
* and may call show() again without re-initialization. | |||||
* | |||||
* @param controller Host context associated with plugin UI, as | |||||
* supplied to LV2UI_Descriptor::instantiate(). | |||||
*/ | |||||
void (*ui_closed)(LV2UI_Controller controller); | |||||
/** | |||||
* Optional (may be NULL) "user friendly" identifier which the UI | |||||
* may display to allow a user to easily associate this particular | |||||
* UI instance with the correct plugin instance as it is represented | |||||
* by the host (e.g. "track 1" or "channel 4"). | |||||
* | |||||
* If supplied by host, the string will be referenced only during | |||||
* LV2UI_Descriptor::instantiate() | |||||
*/ | |||||
const char * plugin_human_id; | |||||
} LV2_External_UI_Host; | |||||
#ifdef __cplusplus | |||||
} /* extern "C" */ | |||||
#endif | |||||
#endif /* LV2_EXTERNAL_UI_H */ |
@@ -0,0 +1,81 @@ | |||||
@prefix lv2: <http://lv2plug.in/ns/lv2core#> . | |||||
@prefix extui: <http://kxstudio.sf.net/ns/lv2ext/external-ui#> . | |||||
@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#> . | |||||
@prefix ui: <http://lv2plug.in/ns/extensions/ui#> . | |||||
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . | |||||
<http://kxstudio.sf.net/ns/lv2ext/external-ui> | |||||
a owl:Ontology ; | |||||
rdfs:seeAlso <external-ui.h> , | |||||
<external-ui.doap.ttl> , | |||||
<../kx-meta/meta.ttl> ; | |||||
lv2:documentation """ | |||||
<p> | |||||
LV2 External UI extension is an <a href="http://lv2plug.in/ns/extensions/ui" target="_blank">LV2 UI</a> extension, subclass of ui:UI just like ui:GtkUI is.<br/> | |||||
The ui:Widget type used in this extension is extui:Widget, see the C header file for more details.<br/> | |||||
</p> | |||||
<p> | |||||
This extension used to be (wronly) defined in a <a href="http://lv2plug.in/ns/extensions/ui#external">lv2plug.in domain</a>.<br/> | |||||
The old URI is deprecated and the extension is available under the new <a href="http://kxstudio.sf.net/ns/lv2ext/external-ui">URI</a>.<br/> | |||||
Or if you prefer, the old extension is deprecated and a new one with exactly same semantics but different URI is available. | |||||
</p> | |||||
<p> | |||||
List of plugins that use this extension: | |||||
</p> | |||||
<ul> | |||||
<li><a href="http://distrho.sourceforge.net/" target="_blank">DISTRHO Plugins and Ports</a></li> | |||||
<li><a href="http://www.drumgizmo.org/" target="_blank">DrumGizmo</a></li> | |||||
<li><a href="http://drumkv1.sourceforge.net/" target="_blank">drumkv1</a></li> | |||||
<li><a href="https://github.com/x42/meters.lv2" target="_blank">meters.lv2</a></li> | |||||
<li><a href="https://www.pianoteq.com/pianoteq4" target="_blank">Pianoteq</a></li> | |||||
<li><a href="http://samplv1.sourceforge.net/" target="_blank">samplv1</a></li> | |||||
<li><a href="https://github.com/x42/sisco.lv2" target="_blank">sisco.lv2</a></li> | |||||
<li><a href="http://synthv1.sourceforge.net/" target="_blank">synthv1</a></li> | |||||
<li><a href="https://github.com/x42/tuna.lv2" target="_blank">tuna.lv2</a></li> | |||||
</ul> | |||||
<p> | |||||
List of hosts that support this extension: | |||||
</p> | |||||
<ul> | |||||
<li><a href="http://ardour.org" target="_blank">Ardour</a></li> | |||||
<li><a href="http://kxstudio.sf.net/Applications:Carla" target="_blank">Carla</a></li> | |||||
<li><a href="http://drobilla.net/software/jalv/" target="_blank">Jalv</a> (using <a href="jalv_extui_svn5273b.diff" target="_blank">this patch</a>)</li> | |||||
<li><a href="http://qtractor.sourceforge.net" target="_blank">Qtractor</a></li> | |||||
</ul> | |||||
""" . | |||||
extui:Host | |||||
a lv2:Feature ; | |||||
lv2:documentation """ | |||||
<p> | |||||
TODO | |||||
</p> | |||||
""" . | |||||
extui:Widget | |||||
a rdfs:Class , | |||||
owl:Class ; | |||||
rdfs:subClassOf ui:UI ; | |||||
rdfs:label "External UI" ; | |||||
lv2:documentation """ | |||||
<p> | |||||
TODO | |||||
</p> | |||||
""" . | |||||
<http://lv2plug.in/ns/extensions/ui#external> | |||||
a lv2:Feature , | |||||
rdfs:Class , | |||||
owl:Class ; | |||||
owl:deprecated true ; | |||||
rdfs:seeAlso extui:Host, extui:Widget ; | |||||
rdfs:label "Old External UI" ; | |||||
lv2:documentation """ | |||||
<p> | |||||
TODO | |||||
</p> | |||||
""" . |
@@ -0,0 +1,162 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"> | |||||
<html about="http://kxstudio.sf.net/ns/lv2ext/external-ui" | |||||
xmlns="http://www.w3.org/1999/xhtml" | |||||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||||
xmlns:dct="http://purl.org/dc/terms/" | |||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||||
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" | |||||
xmlns:lv2="http://lv2plug.in/ns/lv2core#" | |||||
xmlns:extui="http://kxstudio.sf.net/ns/lv2ext/external-ui#" | |||||
xml:lang="en"> | |||||
<head> | |||||
<title>External UI</title> | |||||
<meta http-equiv="content-type" content="text/xhtml+xml; charset=utf-8" /> | |||||
<meta name="generator" content="lv2specgen" /> | |||||
<link href="../style.css" rel="stylesheet" type="text/css" /> | |||||
</head> | |||||
<body> | |||||
<!-- HEADER --> | |||||
<div id="topbar"> | |||||
<div id="header"> | |||||
<div id="titlebox"> | |||||
<h1 id="title">External UI</h1> | |||||
<div id="subtitle"><a href="http://kxstudio.sf.net/ns/lv2ext/external-ui">http://kxstudio.sf.net/ns/lv2ext/external-ui</a></div> | |||||
<div id="shortdesc">LV2 extension for implementing external UIs.</div> | |||||
</div> | |||||
<table id="meta"> | |||||
<!--<tr><th>URI</th><td><a href="http://kxstudio.sf.net/ns/lv2ext/external-ui">http://kxstudio.sf.net/ns/lv2ext/external-ui</a></td></tr> | |||||
<tr><th>Version</th><td>@REVISION@</td></tr>--> | |||||
<!--<tr><th>Prefixes</th><td><span><a href="http://ontologi.es/doap-changeset#">dcs</a> <a href="http://usefulinc.com/ns/doap#">doap</a> <a href="http://kxstudio.sf.net/ns/lv2ext/external-ui#">extui</a> <a href="http://xmlns.com/foaf/0.1/">foaf</a> <a href="http://lv2plug.in/ns/lv2core#">lv2</a> <a href="http://www.w3.org/2002/07/owl#">owl</a> <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#">rdf</a> <a href="http://www.w3.org/2000/01/rdf-schema#">rdfs</a> <a href="http://lv2plug.in/ns/extensions/ui#">ui</a> <a href="http://www.w3.org/2001/XMLSchema#">xsd</a> </span></td></tr>--> | |||||
<tr><th>Version</th><td>1.0</td></tr> | |||||
<tr><th>Date</th><td>2015-07-03</td></tr> | |||||
<tr><th>Discuss</th><td><a href="mailto:None">None</a> <a href="None">(subscribe)</a></td></tr> | |||||
<tr><th class="metahead">Developer</th><td><span class="author" property="doap:developer">Filipe Coelho</span></td></tr><tr><th class="metahead">Maintainer</th><td><span class="author" property="doap:maintainer">Filipe Coelho</span></td></tr> | |||||
</table> | |||||
</div> | |||||
<ul id="contents"> | |||||
<!-- <li><a href="#sec-description">Description</a></li> --> | |||||
<li><a href="#sec-index">Index</a></li> | |||||
<li><a href="#sec-reference">Reference</a></li> | |||||
<li><a href="#sec-history">History</a></li> | |||||
<li><a href="/home/falktx/FOSS/GIT-mine/KXStudio/LV2-Extensions/documentation/extui/group__manifest.html">API</a></li> | |||||
</ul> | |||||
</div> | |||||
<!-- DESCRIPTION --> | |||||
<!--<h2 class="sec" id="sec-description">Description</h2>--> | |||||
<div class="content"> | |||||
<p> | |||||
LV2 External UI extension is an <a href="http://lv2plug.in/ns/extensions/ui" target="_blank">LV2 UI</a> extension, subclass of <a href="http://lv2plug.in/ns/extensions/ui#UI">ui:UI</a> just like <a href="http://lv2plug.in/ns/extensions/ui#GtkUI">ui:GtkUI</a> is.<br/> | |||||
The <a href="http://lv2plug.in/ns/extensions/ui#Widget">ui:Widget</a> type used in this extension is <a href="#Widget">extui:Widget</a>, see the C header file for more details.<br/> | |||||
</p> | |||||
<p> | |||||
This extension used to be (wronly) defined in a <a href="http://lv2plug.in/ns/extensions/ui#external">lv2plug.in domain</a>.<br/> | |||||
The old URI is deprecated and the extension is available under the new <a href="http://kxstudio.sf.net/ns/lv2ext/external-ui">URI</a>.<br/> | |||||
Or if you prefer, the old extension is deprecated and a new one with exactly same semantics but different URI is available. | |||||
</p> | |||||
<p> | |||||
List of plugins that use this extension: | |||||
</p> | |||||
<ul> | |||||
<li><a href="http://distrho.sourceforge.net/" target="_blank">DISTRHO Plugins and Ports</a></li> | |||||
<li><a href="http://www.drumgizmo.org/" target="_blank">DrumGizmo</a></li> | |||||
<li><a href="http://drumkv1.sourceforge.net/" target="_blank">drumkv1</a></li> | |||||
<li><a href="https://github.com/x42/meters.lv2" target="_blank">meters.lv2</a></li> | |||||
<li><a href="https://www.pianoteq.com/pianoteq4" target="_blank">Pianoteq</a></li> | |||||
<li><a href="http://samplv1.sourceforge.net/" target="_blank">samplv1</a></li> | |||||
<li><a href="https://github.com/x42/sisco.lv2" target="_blank">sisco.lv2</a></li> | |||||
<li><a href="http://synthv1.sourceforge.net/" target="_blank">synthv1</a></li> | |||||
<li><a href="https://github.com/x42/tuna.lv2" target="_blank">tuna.lv2</a></li> | |||||
</ul> | |||||
<p> | |||||
List of hosts that support this extension: | |||||
</p> | |||||
<ul> | |||||
<li><a href="http://ardour.org" target="_blank">Ardour</a></li> | |||||
<li><a href="http://kxstudio.sf.net/Applications:Carla" target="_blank">Carla</a></li> | |||||
<li><a href="http://drobilla.net/software/jalv/" target="_blank">Jalv</a> (using <a href="jalv_extui_svn5273b.diff" target="_blank">this patch</a>)</li> | |||||
<li><a href="http://qtractor.sourceforge.net" target="_blank">Qtractor</a></li> | |||||
</ul> | |||||
</div> | |||||
<!-- INDEX --> | |||||
<h2 class="sec" id="sec-index">Index</h2> | |||||
<div class="content" id="index"> | |||||
<table class="index"><thead><tr><th>Classes</th><th>Instances</th><th>Files</th></tr></thead> | |||||
<tbody><tr><td><ul><li><a href="#Widget">Widget</a></li></ul></td> | |||||
<td><ul><li><a href="#Host">Host</a></li></ul></td> | |||||
<td><ul><li><a href="external-ui.doap.ttl">external-ui.doap.ttl</a></li><li><a href="external-ui.h">external-ui.h</a></li><li><a href="external-ui.ttl">external-ui.ttl</a></li></ul></td> | |||||
</tr></tbody></table> | |||||
</div> | |||||
<!-- DOCUMENTATION --> | |||||
<h2 class="sec" id="sec-reference">Reference</h2> | |||||
<div class="content"> | |||||
<div class="specterm" id="Widget" about="http://kxstudio.sf.net/ns/lv2ext/external-ui#Widget"> | |||||
<h3>Class <a href="#Widget">extui:Widget</a></h3> | |||||
<div class="spectermbody"><div class="description"><div property="rdfs:label" class="label">External UI</div><div property="rdfs:comment"> | |||||
<p> | |||||
TODO | |||||
</p> | |||||
</div></div> | |||||
<table class="terminfo"> | |||||
<tr><th>Sub-class of</th><td><a href="http://lv2plug.in/ns/extensions/ui#UI" >ui:UI</a></td></tr> | |||||
</table> | |||||
</div> | |||||
</div> | |||||
<div class="specterm" id="Host" about="http://kxstudio.sf.net/ns/lv2ext/external-ui#Host"> | |||||
<h3>Instance <a href="#Host">extui:Host</a></h3> | |||||
<div class="spectermbody"><div class="description"><div property="rdfs:comment"> | |||||
<p> | |||||
TODO | |||||
</p> | |||||
</div></div> | |||||
<table class="terminfo"><tr><th>Type</th><td><a href="http://lv2plug.in/ns/lv2core#Feature" about="http://kxstudio.sf.net/ns/lv2ext/external-ui#Host" rel="rdf:type" resource="http://lv2plug.in/ns/lv2core#Feature">lv2:Feature</a></td></tr> | |||||
</table> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<!-- HISTORY --> | |||||
<h2 class="sec" id="sec-history">History</h2> | |||||
<div class="content"> | |||||
<dl> | |||||
<dt><a href="http://kxstudio.sf.net/ns/lv2ext/kx-extensions-1.0.tar.bz2">Version 1.0</a> (2015-07-03)</dt> | |||||
<dd><ul> | |||||
<li>First stable release.</li> | |||||
</ul></dd></dl> | |||||
</div> | |||||
<!-- FOOTER --> | |||||
<div id="footer"> | |||||
<div> | |||||
This document is available under the | |||||
<a about="" rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"> | |||||
Creative Commons Attribution-ShareAlike License | |||||
</a> | |||||
</div> | |||||
<div> | |||||
Valid | |||||
<a about="" rel="dct:conformsTo" resource="http://www.w3.org/TR/rdfa-syntax" | |||||
href="http://validator.w3.org/check?uri=referer"> | |||||
XHTML+RDFa | |||||
</a> | |||||
and | |||||
<a about="" rel="dct:conformsTo" resource="http://www.w3.org/TR/CSS2" | |||||
href="http://jigsaw.w3.org/css-validator/check/referer"> | |||||
CSS | |||||
</a> | |||||
generated from manifest.ttl by <a href="http://drobilla.net/software/lv2specgen">lv2specgen</a> | |||||
</div> | |||||
</div> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,8 @@ | |||||
@prefix lv2: <http://lv2plug.in/ns/lv2core#> . | |||||
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . | |||||
<http://kxstudio.sf.net/ns/lv2ext/external-ui> | |||||
a lv2:Specification ; | |||||
lv2:minorVersion 1 ; | |||||
lv2:microVersion 0 ; | |||||
rdfs:seeAlso <external-ui.ttl> . |
@@ -0,0 +1,38 @@ | |||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> | |||||
<html> | |||||
<head> | |||||
<title>Index of /</title> | |||||
</head> | |||||
<body> | |||||
<h1>Index of /</h1> | |||||
<table> | |||||
<tr> | |||||
<th valign="top"><img src="/blank.gif" alt="[ICO]"></th> | |||||
<th><a href="?C=N;O=D">Name</a></th> | |||||
<th><a href="?C=S;O=A">Size</a></th> | |||||
<th><a href="?C=D;O=A">Description</a></th> | |||||
</tr> | |||||
<tr><th colspan="4"><hr></th></tr> | |||||
<tr> | |||||
<td valign="top"><img src="/folder.gif" alt="[DIR]"></td> | |||||
<td><a href="extui/">External UI/</a></td> | |||||
<td align="right"> - </td><td> </td> | |||||
</tr> | |||||
<tr> | |||||
<td valign="top"><img src="/folder.gif" alt="[DIR]"></td> | |||||
<td><a href="progs/">Programs/</a></td> | |||||
<td align="right"> - </td><td> </td> | |||||
</tr> | |||||
<tr> | |||||
<td valign="top"><img src="/folder.gif" alt="[DIR]"></td> | |||||
<td><a href="rtmpl/">Real-Time Memory Pool/</a></td> | |||||
<td align="right"> - </td><td> </td> | |||||
</tr> | |||||
<tr><th colspan="4"><hr></th></tr> | |||||
</table> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,159 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"> | |||||
<html about="http://kxstudio.sf.net/ns/lv2ext/programs" | |||||
xmlns="http://www.w3.org/1999/xhtml" | |||||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||||
xmlns:dct="http://purl.org/dc/terms/" | |||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||||
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" | |||||
xmlns:lv2="http://lv2plug.in/ns/lv2core#" | |||||
xmlns:progs="http://kxstudio.sf.net/ns/lv2ext/programs#" | |||||
xml:lang="en"> | |||||
<head> | |||||
<title>Programs</title> | |||||
<meta http-equiv="content-type" content="text/xhtml+xml; charset=utf-8" /> | |||||
<meta name="generator" content="lv2specgen" /> | |||||
<link href="../style.css" rel="stylesheet" type="text/css" /> | |||||
</head> | |||||
<body> | |||||
<!-- HEADER --> | |||||
<div id="topbar"> | |||||
<div id="header"> | |||||
<div id="titlebox"> | |||||
<h1 id="title">Programs</h1> | |||||
<div id="subtitle"><a href="http://kxstudio.sf.net/ns/lv2ext/programs">http://kxstudio.sf.net/ns/lv2ext/programs</a></div> | |||||
<div id="shortdesc">LV2 extension for implementing plugin-side programs.</div> | |||||
</div> | |||||
<table id="meta"> | |||||
<!--<tr><th>URI</th><td><a href="http://kxstudio.sf.net/ns/lv2ext/programs">http://kxstudio.sf.net/ns/lv2ext/programs</a></td></tr> | |||||
<tr><th>Version</th><td>@REVISION@</td></tr>--> | |||||
<!--<tr><th>Prefixes</th><td><span><a href="http://ontologi.es/doap-changeset#">dcs</a> <a href="http://usefulinc.com/ns/doap#">doap</a> <a href="http://xmlns.com/foaf/0.1/">foaf</a> <a href="http://lv2plug.in/ns/lv2core#">lv2</a> <a href="http://www.w3.org/2002/07/owl#">owl</a> <a href="http://kxstudio.sf.net/ns/lv2ext/programs#">progs</a> <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#">rdf</a> <a href="http://www.w3.org/2000/01/rdf-schema#">rdfs</a> <a href="http://lv2plug.in/ns/extensions/ui#">ui</a> <a href="http://www.w3.org/2001/XMLSchema#">xsd</a> </span></td></tr>--> | |||||
<tr><th>Version</th><td>1.0</td></tr> | |||||
<tr><th>Date</th><td>2015-07-03</td></tr> | |||||
<tr><th>Discuss</th><td><a href="mailto:None">None</a> <a href="None">(subscribe)</a></td></tr> | |||||
<tr><th class="metahead">Developer</th><td><span class="author" property="doap:developer">Filipe Coelho</span></td></tr><tr><th class="metahead">Maintainer</th><td><span class="author" property="doap:maintainer">Filipe Coelho</span></td></tr> | |||||
</table> | |||||
</div> | |||||
<ul id="contents"> | |||||
<!-- <li><a href="#sec-description">Description</a></li> --> | |||||
<li><a href="#sec-index">Index</a></li> | |||||
<li><a href="#sec-reference">Reference</a></li> | |||||
<li><a href="#sec-history">History</a></li> | |||||
<li><a href="/home/falktx/FOSS/GIT-mine/KXStudio/LV2-Extensions/documentation/progs/group__manifest.html">API</a></li> | |||||
</ul> | |||||
</div> | |||||
<!-- DESCRIPTION --> | |||||
<!--<h2 class="sec" id="sec-description">Description</h2>--> | |||||
<div class="content"> | |||||
<p> | |||||
LV2 Programs is an <a href="http://lv2plug.in/ns/lv2core#Specification" target="_blank">LV2 Extension</a> that allows a host to access plugin-side midi-mapped programs.<br/> | |||||
It is not the same as <a href="http://lv2plug.in/ns/ext/presets" target="_blank">LV2 Presets</a>, | |||||
which defines host-side presets where the plugin has no control or role whatsoever.<br/> | |||||
</p> | |||||
<p> | |||||
List of plugins that use this extension: | |||||
</p> | |||||
<ul> | |||||
<li><a href="http://distrho.sourceforge.net" target="_blank">DISTRHO Plugins and Ports</a></li> | |||||
<li><a href="http://drobilla.net/software/mda-lv2/" target="_blank">mda-lv2</a> (using <a href="mda-lv2_programs.patch" target="_blank">this patch</a>)</li> | |||||
</ul> | |||||
<p> | |||||
List of hosts that support this extension: | |||||
</p> | |||||
<ul> | |||||
<li><a href="http://kxstudio.sf.net/Applications:Carla" target="_blank">Carla</a></li> | |||||
<li><a href="http://qtractor.sourceforge.net" target="_blank">Qtractor</a></li> | |||||
</ul> | |||||
</div> | |||||
<!-- INDEX --> | |||||
<h2 class="sec" id="sec-index">Index</h2> | |||||
<div class="content" id="index"> | |||||
<table class="index"><thead><tr><th>Instances</th><th>Files</th></tr></thead> | |||||
<tbody><tr><td><ul><li><a href="#Host">Host</a></li><li><a href="#Interface">Interface</a></li><li><a href="#UIInterface">UIInterface</a></li></ul></td> | |||||
<td><ul><li><a href="programs.doap.ttl">programs.doap.ttl</a></li><li><a href="programs.h">programs.h</a></li><li><a href="programs.ttl">programs.ttl</a></li></ul></td> | |||||
</tr></tbody></table> | |||||
</div> | |||||
<!-- DOCUMENTATION --> | |||||
<h2 class="sec" id="sec-reference">Reference</h2> | |||||
<div class="content"> | |||||
<div class="specterm" id="Host" about="http://kxstudio.sf.net/ns/lv2ext/programs#Host"> | |||||
<h3>Instance <a href="#Host">progs:Host</a></h3> | |||||
<div class="spectermbody"><div class="description"><div property="rdfs:comment"> | |||||
<p> | |||||
TODO | |||||
</p> | |||||
</div></div> | |||||
<table class="terminfo"><tr><th>Type</th><td><a href="http://lv2plug.in/ns/lv2core#Feature" about="http://kxstudio.sf.net/ns/lv2ext/programs#Host" rel="rdf:type" resource="http://lv2plug.in/ns/lv2core#Feature">lv2:Feature</a></td></tr> | |||||
</table> | |||||
</div> | |||||
</div> | |||||
<div class="specterm" id="Interface" about="http://kxstudio.sf.net/ns/lv2ext/programs#Interface"> | |||||
<h3>Instance <a href="#Interface">progs:Interface</a></h3> | |||||
<div class="spectermbody"><div class="description"><div property="rdfs:label" class="label">Programs Plugin Interface</div><div property="rdfs:comment"> | |||||
<p> | |||||
TODO | |||||
</p> | |||||
</div></div> | |||||
<table class="terminfo"><tr><th>Type</th><td><a href="http://lv2plug.in/ns/lv2core#ExtensionData" about="http://kxstudio.sf.net/ns/lv2ext/programs#Interface" rel="rdf:type" resource="http://lv2plug.in/ns/lv2core#ExtensionData">lv2:ExtensionData</a></td></tr> | |||||
</table> | |||||
</div> | |||||
</div> | |||||
<div class="specterm" id="UIInterface" about="http://kxstudio.sf.net/ns/lv2ext/programs#UIInterface"> | |||||
<h3>Instance <a href="#UIInterface">progs:UIInterface</a></h3> | |||||
<div class="spectermbody"><div class="description"><div property="rdfs:label" class="label">Programs UI Interface</div><div property="rdfs:comment"> | |||||
<p> | |||||
TODO | |||||
</p> | |||||
</div></div> | |||||
<table class="terminfo"><tr><th>Type</th><td><a href="http://lv2plug.in/ns/lv2core#ExtensionData" about="http://kxstudio.sf.net/ns/lv2ext/programs#UIInterface" rel="rdf:type" resource="http://lv2plug.in/ns/lv2core#ExtensionData">lv2:ExtensionData</a></td></tr> | |||||
</table> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<!-- HISTORY --> | |||||
<h2 class="sec" id="sec-history">History</h2> | |||||
<div class="content"> | |||||
<dl> | |||||
<dt><a href="http://kxstudio.sf.net/ns/lv2ext/kx-extensions-1.0.tar.bz2">Version 1.0</a> (2015-07-03)</dt> | |||||
<dd><ul> | |||||
<li>First stable release.</li> | |||||
</ul></dd></dl> | |||||
</div> | |||||
<!-- FOOTER --> | |||||
<div id="footer"> | |||||
<div> | |||||
This document is available under the | |||||
<a about="" rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"> | |||||
Creative Commons Attribution-ShareAlike License | |||||
</a> | |||||
</div> | |||||
<div> | |||||
Valid | |||||
<a about="" rel="dct:conformsTo" resource="http://www.w3.org/TR/rdfa-syntax" | |||||
href="http://validator.w3.org/check?uri=referer"> | |||||
XHTML+RDFa | |||||
</a> | |||||
and | |||||
<a about="" rel="dct:conformsTo" resource="http://www.w3.org/TR/CSS2" | |||||
href="http://jigsaw.w3.org/css-validator/check/referer"> | |||||
CSS | |||||
</a> | |||||
generated from manifest.ttl by <a href="http://drobilla.net/software/lv2specgen">lv2specgen</a> | |||||
</div> | |||||
</div> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,8 @@ | |||||
@prefix lv2: <http://lv2plug.in/ns/lv2core#> . | |||||
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . | |||||
<http://kxstudio.sf.net/ns/lv2ext/programs> | |||||
a lv2:Specification ; | |||||
lv2:minorVersion 1 ; | |||||
lv2:microVersion 0 ; | |||||
rdfs:seeAlso <programs.ttl> . |
@@ -0,0 +1,25 @@ | |||||
@prefix dcs: <http://ontologi.es/doap-changeset#> . | |||||
@prefix doap: <http://usefulinc.com/ns/doap#> . | |||||
@prefix foaf: <http://xmlns.com/foaf/0.1/> . | |||||
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . | |||||
<http://kxstudio.sf.net/ns/lv2ext/programs> | |||||
a doap:Project ; | |||||
rdfs:seeAlso <../kx-meta/meta.ttl> ; | |||||
doap:license <http://opensource.org/licenses/isc> ; | |||||
doap:name "Programs" ; | |||||
doap:homepage <http://kxstudio.sf.net/ns/lv2ext/programs> ; | |||||
doap:created "2015-07-03" ; | |||||
doap:shortdesc "LV2 extension for implementing plugin-side programs." ; | |||||
doap:developer <http://falktx.com/myself.html> ; | |||||
doap:maintainer <http://falktx.com/myself.html> ; | |||||
doap:release [ | |||||
doap:revision "1.0" ; | |||||
doap:created "2015-07-03" ; | |||||
doap:file-release <http://kxstudio.sf.net/ns/lv2ext/kx-extensions-1.0.tar.bz2> ; | |||||
dcs:changeset [ | |||||
dcs:item [ | |||||
rdfs:label "First stable release." | |||||
] | |||||
] | |||||
] . |
@@ -0,0 +1,174 @@ | |||||
/* | |||||
LV2 Programs Extension | |||||
Copyright 2012 Filipe Coelho <falktx@falktx.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. | |||||
*/ | |||||
/** | |||||
@file lv2_programs.h | |||||
C header for the LV2 programs extension <http://kxstudio.sf.net/ns/lv2ext/programs>. | |||||
*/ | |||||
#ifndef LV2_PROGRAMS_H | |||||
#define LV2_PROGRAMS_H | |||||
#include "lv2/lv2plug.in/ns/lv2core/lv2.h" | |||||
#include "lv2/lv2plug.in/ns/extensions/ui/ui.h" | |||||
#define LV2_PROGRAMS_URI "http://kxstudio.sf.net/ns/lv2ext/programs" | |||||
#define LV2_PROGRAMS_PREFIX LV2_PROGRAMS_URI "#" | |||||
#define LV2_PROGRAMS__Host LV2_PROGRAMS_PREFIX "Host" | |||||
#define LV2_PROGRAMS__Interface LV2_PROGRAMS_PREFIX "Interface" | |||||
#define LV2_PROGRAMS__UIInterface LV2_PROGRAMS_PREFIX "UIInterface" | |||||
#ifdef __cplusplus | |||||
extern "C" { | |||||
#endif | |||||
typedef void* LV2_Programs_Handle; | |||||
typedef struct _LV2_Program_Descriptor { | |||||
/** Bank number for this program. Note that this extension does not | |||||
support MIDI-style separation of bank LSB and MSB values. There is | |||||
no restriction on the set of available banks: the numbers do not | |||||
need to be contiguous, there does not need to be a bank 0, etc. */ | |||||
uint32_t bank; | |||||
/** Program number (unique within its bank) for this program. There is | |||||
no restriction on the set of available programs: the numbers do not | |||||
need to be contiguous, there does not need to be a program 0, etc. */ | |||||
uint32_t program; | |||||
/** Name of the program. */ | |||||
const char * name; | |||||
} LV2_Program_Descriptor; | |||||
/** | |||||
Programs extension, plugin data. | |||||
When the plugin's extension_data is called with argument LV2_PROGRAMS__Interface, | |||||
the plugin MUST return an LV2_Programs_Instance structure, which remains valid | |||||
for the lifetime of the plugin. | |||||
*/ | |||||
typedef struct _LV2_Programs_Interface { | |||||
/** | |||||
* get_program() | |||||
* | |||||
* This member is a function pointer that provides a description | |||||
* of a program (named preset sound) available on this plugin. | |||||
* | |||||
* The index argument is an index into the plugin's list of | |||||
* programs, not a program number as represented by the Program | |||||
* field of the LV2_Program_Descriptor. (This distinction is | |||||
* needed to support plugins that use non-contiguous program or | |||||
* bank numbers.) | |||||
* | |||||
* This function returns a LV2_Program_Descriptor pointer that is | |||||
* guaranteed to be valid only until the next call to get_program | |||||
* or deactivate, on the same plugin instance. This function must | |||||
* return NULL if passed an index argument out of range, so that | |||||
* the host can use it to query the number of programs as well as | |||||
* their properties. | |||||
*/ | |||||
const LV2_Program_Descriptor *(*get_program)(LV2_Handle handle, | |||||
uint32_t index); | |||||
/** | |||||
* select_program() | |||||
* | |||||
* This member is a function pointer that selects a new program | |||||
* for this plugin. The program change should take effect | |||||
* immediately at the start of the next run() call. (This | |||||
* means that a host providing the capability of changing programs | |||||
* between any two notes on a track must vary the block size so as | |||||
* to place the program change at the right place. A host that | |||||
* wanted to avoid this would probably just instantiate a plugin | |||||
* for each program.) | |||||
* | |||||
* Plugins should ignore a select_program() call with an invalid | |||||
* bank or program. | |||||
* | |||||
* A plugin is not required to select any particular default | |||||
* program on activate(): it's the host's duty to set a program | |||||
* explicitly. | |||||
* | |||||
* A plugin is permitted to re-write the values of its input | |||||
* control ports when select_program is called. The host should | |||||
* re-read the input control port values and update its own | |||||
* records appropriately. (This is the only circumstance in which | |||||
* a LV2 plugin is allowed to modify its own control-input ports.) | |||||
*/ | |||||
void (*select_program)(LV2_Handle handle, | |||||
uint32_t bank, | |||||
uint32_t program); | |||||
} LV2_Programs_Interface; | |||||
/** | |||||
Programs extension, UI data. | |||||
When the UI's extension_data is called with argument LV2_PROGRAMS__UIInterface, | |||||
the UI MUST return an LV2_Programs_UI_Interface structure, which remains valid | |||||
for the lifetime of the UI. | |||||
*/ | |||||
typedef struct _LV2_Programs_UI_Interface { | |||||
/** | |||||
* select_program() | |||||
* | |||||
* This is exactly the same as select_program in LV2_Programs_Instance, | |||||
* but this struct relates to the UI instead of the plugin. | |||||
* | |||||
* When called, UIs should update their state to match the selected program. | |||||
*/ | |||||
void (*select_program)(LV2UI_Handle handle, | |||||
uint32_t bank, | |||||
uint32_t program); | |||||
} LV2_Programs_UI_Interface; | |||||
/** | |||||
Feature data for LV2_PROGRAMS__Host. | |||||
*/ | |||||
typedef struct _LV2_Programs_Host { | |||||
/** | |||||
* Opaque host data. | |||||
*/ | |||||
LV2_Programs_Handle handle; | |||||
/** | |||||
* program_changed() | |||||
* | |||||
* Tell the host to reload a plugin's program. | |||||
* Parameter handle MUST be the 'handle' member of this struct. | |||||
* Parameter index is program index to change. | |||||
* When index is -1, host should reload all the programs. | |||||
* | |||||
* The plugin MUST NEVER call this function on a RT context or during run(). | |||||
* | |||||
* NOTE: This call is to inform the host about a program's bank, program or name change. | |||||
* It DOES NOT change the current selected program. | |||||
*/ | |||||
void (*program_changed)(LV2_Programs_Handle handle, | |||||
int32_t index); | |||||
} LV2_Programs_Host; | |||||
#ifdef __cplusplus | |||||
} /* extern "C" */ | |||||
#endif | |||||
#endif /* LV2_PROGRAMS_H */ |
@@ -0,0 +1,62 @@ | |||||
@prefix lv2: <http://lv2plug.in/ns/lv2core#> . | |||||
@prefix owl: <http://www.w3.org/2002/07/owl#> . | |||||
@prefix progs: <http://kxstudio.sf.net/ns/lv2ext/programs#> . | |||||
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . | |||||
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . | |||||
@prefix ui: <http://lv2plug.in/ns/extensions/ui#> . | |||||
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . | |||||
<http://kxstudio.sf.net/ns/lv2ext/programs> | |||||
a owl:Ontology ; | |||||
rdfs:seeAlso <programs.h> , | |||||
<programs.doap.ttl> , | |||||
<../kx-meta/meta.ttl> ; | |||||
lv2:documentation """ | |||||
<p> | |||||
LV2 Programs is an <a href="http://lv2plug.in/ns/lv2core#Specification" target="_blank">LV2 Extension</a> that allows a host to access plugin-side midi-mapped programs.<br/> | |||||
It is not the same as <a href="http://lv2plug.in/ns/ext/presets" target="_blank">LV2 Presets</a>, | |||||
which defines host-side presets where the plugin has no control or role whatsoever.<br/> | |||||
</p> | |||||
<p> | |||||
List of plugins that use this extension: | |||||
</p> | |||||
<ul> | |||||
<li><a href="http://distrho.sourceforge.net" target="_blank">DISTRHO Plugins and Ports</a></li> | |||||
<li><a href="http://drobilla.net/software/mda-lv2/" target="_blank">mda-lv2</a> (using <a href="mda-lv2_programs.patch" target="_blank">this patch</a>)</li> | |||||
</ul> | |||||
<p> | |||||
List of hosts that support this extension: | |||||
</p> | |||||
<ul> | |||||
<li><a href="http://kxstudio.sf.net/Applications:Carla" target="_blank">Carla</a></li> | |||||
<li><a href="http://qtractor.sourceforge.net" target="_blank">Qtractor</a></li> | |||||
</ul> | |||||
""" . | |||||
progs:Host | |||||
a lv2:Feature ; | |||||
lv2:documentation """ | |||||
<p> | |||||
TODO | |||||
</p> | |||||
""" . | |||||
progs:Interface | |||||
a lv2:ExtensionData ; | |||||
rdfs:label "Programs Plugin Interface" ; | |||||
lv2:documentation """ | |||||
<p> | |||||
TODO | |||||
</p> | |||||
""" . | |||||
progs:UIInterface | |||||
a lv2:ExtensionData ; | |||||
rdfs:label "Programs UI Interface" ; | |||||
lv2:documentation """ | |||||
<p> | |||||
TODO | |||||
</p> | |||||
""" . |
@@ -0,0 +1,124 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"> | |||||
<html about="http://kxstudio.sf.net/ns/lv2ext/rtmempool" | |||||
xmlns="http://www.w3.org/1999/xhtml" | |||||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||||
xmlns:dct="http://purl.org/dc/terms/" | |||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||||
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" | |||||
xmlns:lv2="http://lv2plug.in/ns/lv2core#" | |||||
xmlns:rtmpl="http://kxstudio.sf.net/ns/lv2ext/rtmempool#" | |||||
xml:lang="en"> | |||||
<head> | |||||
<title>External UI</title> | |||||
<meta http-equiv="content-type" content="text/xhtml+xml; charset=utf-8" /> | |||||
<meta name="generator" content="lv2specgen" /> | |||||
<link href="../style.css" rel="stylesheet" type="text/css" /> | |||||
</head> | |||||
<body> | |||||
<!-- HEADER --> | |||||
<div id="topbar"> | |||||
<div id="header"> | |||||
<div id="titlebox"> | |||||
<h1 id="title">External UI</h1> | |||||
<div id="subtitle"><a href="http://kxstudio.sf.net/ns/lv2ext/rtmempool">http://kxstudio.sf.net/ns/lv2ext/rtmempool</a></div> | |||||
<div id="shortdesc">LV2 extension that provides a realtime safe memory pool for plugins.</div> | |||||
</div> | |||||
<table id="meta"> | |||||
<!--<tr><th>URI</th><td><a href="http://kxstudio.sf.net/ns/lv2ext/rtmempool">http://kxstudio.sf.net/ns/lv2ext/rtmempool</a></td></tr> | |||||
<tr><th>Version</th><td>@REVISION@</td></tr>--> | |||||
<!--<tr><th>Prefixes</th><td><span><a href="http://ontologi.es/doap-changeset#">dcs</a> <a href="http://usefulinc.com/ns/doap#">doap</a> <a href="http://xmlns.com/foaf/0.1/">foaf</a> <a href="http://lv2plug.in/ns/lv2core#">lv2</a> <a href="http://www.w3.org/2002/07/owl#">owl</a> <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#">rdf</a> <a href="http://www.w3.org/2000/01/rdf-schema#">rdfs</a> <a href="http://kxstudio.sf.net/ns/lv2ext/rtmempool#">rtmpl</a> <a href="http://lv2plug.in/ns/extensions/ui#">ui</a> <a href="http://www.w3.org/2001/XMLSchema#">xsd</a> </span></td></tr>--> | |||||
<tr><th>Version</th><td>1.0</td></tr> | |||||
<tr><th>Date</th><td>2015-07-03</td></tr> | |||||
<tr><th>Discuss</th><td><a href="mailto:None">None</a> <a href="None">(subscribe)</a></td></tr> | |||||
<tr><th class="metahead">Developer</th><td><span class="author" property="doap:developer">Filipe Coelho</span></td></tr><tr><th class="metahead">Maintainer</th><td><span class="author" property="doap:maintainer">Filipe Coelho</span></td></tr> | |||||
</table> | |||||
</div> | |||||
<ul id="contents"> | |||||
<!-- <li><a href="#sec-description">Description</a></li> --> | |||||
<li><a href="#sec-index">Index</a></li> | |||||
<li><a href="#sec-reference">Reference</a></li> | |||||
<li><a href="#sec-history">History</a></li> | |||||
<li><a href="/home/falktx/FOSS/GIT-mine/KXStudio/LV2-Extensions/documentation/rtmpl/group__manifest.html">API</a></li> | |||||
</ul> | |||||
</div> | |||||
<!-- DESCRIPTION --> | |||||
<!--<h2 class="sec" id="sec-description">Description</h2>--> | |||||
<div class="content"> | |||||
<p> | |||||
LV2 realtime safe memory pool extension definition. | |||||
</p> | |||||
<p> | |||||
List of hosts that support this extension: | |||||
</p> | |||||
<ul> | |||||
<li><a href="http://kxstudio.sf.net/Applications:Carla" target="_blank">Carla</a></li> | |||||
</ul> | |||||
</div> | |||||
<!-- INDEX --> | |||||
<h2 class="sec" id="sec-index">Index</h2> | |||||
<div class="content" id="index"> | |||||
<table class="index"><thead><tr><th>Instances</th><th>Files</th></tr></thead> | |||||
<tbody><tr><td><ul><li><a href="#Pool">Pool</a></li></ul></td> | |||||
<td><ul><li><a href="rtmempool.doap.ttl">rtmempool.doap.ttl</a></li><li><a href="rtmempool.h">rtmempool.h</a></li><li><a href="rtmempool.ttl">rtmempool.ttl</a></li></ul></td> | |||||
</tr></tbody></table> | |||||
</div> | |||||
<!-- DOCUMENTATION --> | |||||
<h2 class="sec" id="sec-reference">Reference</h2> | |||||
<div class="content"> | |||||
<div class="specterm" id="Pool" about="http://kxstudio.sf.net/ns/lv2ext/rtmempool#Pool"> | |||||
<h3>Instance <a href="#Pool">rtmpl:Pool</a></h3> | |||||
<div class="spectermbody"><div class="description"><div property="rdfs:comment"> | |||||
<p> | |||||
TODO | |||||
</p> | |||||
</div></div> | |||||
<table class="terminfo"><tr><th>Type</th><td><a href="http://lv2plug.in/ns/lv2core#Feature" about="http://kxstudio.sf.net/ns/lv2ext/rtmempool#Pool" rel="rdf:type" resource="http://lv2plug.in/ns/lv2core#Feature">lv2:Feature</a></td></tr> | |||||
</table> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<!-- HISTORY --> | |||||
<h2 class="sec" id="sec-history">History</h2> | |||||
<div class="content"> | |||||
<dl> | |||||
<dt><a href="http://kxstudio.sf.net/ns/lv2ext/kx-extensions-1.0.tar.bz2">Version 1.0</a> (2015-07-03)</dt> | |||||
<dd><ul> | |||||
<li>First stable release.</li> | |||||
</ul></dd></dl> | |||||
</div> | |||||
<!-- FOOTER --> | |||||
<div id="footer"> | |||||
<div> | |||||
This document is available under the | |||||
<a about="" rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"> | |||||
Creative Commons Attribution-ShareAlike License | |||||
</a> | |||||
</div> | |||||
<div> | |||||
Valid | |||||
<a about="" rel="dct:conformsTo" resource="http://www.w3.org/TR/rdfa-syntax" | |||||
href="http://validator.w3.org/check?uri=referer"> | |||||
XHTML+RDFa | |||||
</a> | |||||
and | |||||
<a about="" rel="dct:conformsTo" resource="http://www.w3.org/TR/CSS2" | |||||
href="http://jigsaw.w3.org/css-validator/check/referer"> | |||||
CSS | |||||
</a> | |||||
generated from manifest.ttl by <a href="http://drobilla.net/software/lv2specgen">lv2specgen</a> | |||||
</div> | |||||
</div> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,8 @@ | |||||
@prefix lv2: <http://lv2plug.in/ns/lv2core#> . | |||||
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . | |||||
<http://kxstudio.sf.net/ns/lv2ext/rtmempool> | |||||
a lv2:Specification ; | |||||
lv2:minorVersion 1 ; | |||||
lv2:microVersion 0 ; | |||||
rdfs:seeAlso <rtmempool.ttl> . |
@@ -0,0 +1,25 @@ | |||||
@prefix dcs: <http://ontologi.es/doap-changeset#> . | |||||
@prefix doap: <http://usefulinc.com/ns/doap#> . | |||||
@prefix foaf: <http://xmlns.com/foaf/0.1/> . | |||||
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . | |||||
<http://kxstudio.sf.net/ns/lv2ext/rtmempool> | |||||
a doap:Project ; | |||||
rdfs:seeAlso <../kx-meta/meta.ttl> ; | |||||
doap:license <http://opensource.org/licenses/isc> ; | |||||
doap:name "External UI" ; | |||||
doap:homepage <http://kxstudio.sf.net/ns/lv2ext/rtmempool> ; | |||||
doap:created "2015-07-03" ; | |||||
doap:shortdesc "LV2 extension that provides a realtime safe memory pool for plugins." ; | |||||
doap:developer <http://falktx.com/myself.html> ; | |||||
doap:maintainer <http://falktx.com/myself.html> ; | |||||
doap:release [ | |||||
doap:revision "1.0" ; | |||||
doap:created "2015-07-03" ; | |||||
doap:file-release <http://kxstudio.sf.net/ns/lv2ext/kx-extensions-1.0.tar.bz2> ; | |||||
dcs:changeset [ | |||||
dcs:item [ | |||||
rdfs:label "First stable release." | |||||
] | |||||
] | |||||
] . |
@@ -0,0 +1,105 @@ | |||||
/* | |||||
LV2 realtime safe memory pool extension definition | |||||
This work is in public domain. | |||||
This file is distributed in the hope that it will be useful, | |||||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |||||
If you have questions, contact Filipe Coelho (aka falkTX) <falktx@falktx.com> | |||||
or ask in #lad channel, FreeNode IRC network. | |||||
*/ | |||||
/** | |||||
* @file lv2_rtmempool.h | |||||
* C header for the LV2 rtmempool extension <http://kxstudio.sf.net/ns/lv2ext/rtmempool>. | |||||
* | |||||
*/ | |||||
#ifndef LV2_RTMEMPOOL_H | |||||
#define LV2_RTMEMPOOL_H | |||||
#define LV2_RTSAFE_MEMORY_POOL_URI "http://kxstudio.sf.net/ns/lv2ext/rtmempool" | |||||
#define LV2_RTSAFE_MEMORY_POOL_PREFIX LV2_RTSAFE_MEMORY_POOL_URI "#" | |||||
#define LV2_RTSAFE_MEMORY_POOL__Pool LV2_RTSAFE_MEMORY_POOL_URI "Pool" | |||||
/** max size of memory pool name, in chars, including terminating zero char */ | |||||
#define LV2_RTSAFE_MEMORY_POOL_NAME_MAX 128 | |||||
#ifdef __cplusplus | |||||
extern "C" { | |||||
#else | |||||
#include <stdbool.h> | |||||
#endif | |||||
/** | |||||
* Opaque data to host data for LV2_RtMemPool_Pool. | |||||
*/ | |||||
typedef void* LV2_RtMemPool_Handle; | |||||
/** | |||||
* On instantiation, host must supply LV2_RTSAFE_MEMORY_POOL__Pool feature. | |||||
* LV2_Feature::data must be pointer to LV2_RtMemPool_Pool. | |||||
*/ | |||||
typedef struct _LV2_RtMemPool_Pool { | |||||
/** | |||||
* This function is called when plugin wants to create memory pool | |||||
* | |||||
* <b>may/will sleep</b> | |||||
* | |||||
* @param pool_name pool name, for debug purposes, max RTSAFE_MEMORY_POOL_NAME_MAX chars, including terminating zero char. May be NULL. | |||||
* @param data_size memory chunk size | |||||
* @param min_preallocated min chunks preallocated | |||||
* @param max_preallocated max chunks preallocated | |||||
* | |||||
* @return Success status, true if successful | |||||
*/ | |||||
bool (*create)(LV2_RtMemPool_Handle * handle_ptr, | |||||
const char * pool_name, | |||||
size_t data_size, | |||||
size_t min_preallocated, | |||||
size_t max_preallocated); | |||||
/** | |||||
* This function is called when plugin wants to destroy previously created memory pool | |||||
* | |||||
* <b>may/will sleep</b> | |||||
*/ | |||||
void (*destroy)(LV2_RtMemPool_Handle handle); | |||||
/** | |||||
* This function is called when plugin wants to allocate memory in context where sleeping is not allowed | |||||
* | |||||
* <b>will not sleep</b> | |||||
* | |||||
* @return Pointer to allocated memory or NULL if memory no memory is available | |||||
*/ | |||||
void * (*allocate_atomic)(LV2_RtMemPool_Handle handle); | |||||
/** | |||||
* This function is called when plugin wants to allocate memory in context where sleeping is allowed | |||||
* | |||||
* <b>may/will sleep</b> | |||||
* | |||||
* @return Pointer to allocated memory or NULL if memory no memory is available (should not happen under normal conditions) | |||||
*/ | |||||
void * (*allocate_sleepy)(LV2_RtMemPool_Handle handle); | |||||
/** | |||||
* This function is called when plugin wants to deallocate previously allocated memory | |||||
* | |||||
* <b>will not sleep</b> | |||||
* | |||||
* @param memory_ptr pointer to previously allocated memory chunk | |||||
*/ | |||||
void (*deallocate)(LV2_RtMemPool_Handle handle, | |||||
void * memory_ptr); | |||||
} LV2_RtMemPool_Pool; | |||||
#ifdef __cplusplus | |||||
} /* extern "C" */ | |||||
#endif | |||||
#endif /* LV2_RTMEMPOOL_H */ |
@@ -0,0 +1,33 @@ | |||||
@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#> . | |||||
@prefix rtmpl: <http://kxstudio.sf.net/ns/lv2ext/rtmempool#> . | |||||
@prefix ui: <http://lv2plug.in/ns/extensions/ui#> . | |||||
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . | |||||
<http://kxstudio.sf.net/ns/lv2ext/rtmempool> | |||||
a owl:Ontology ; | |||||
rdfs:seeAlso <rtmempool.h> , | |||||
<rtmempool.doap.ttl> , | |||||
<../kx-meta/meta.ttl> ; | |||||
lv2:documentation """ | |||||
<p> | |||||
LV2 realtime safe memory pool extension definition. | |||||
</p> | |||||
<p> | |||||
List of hosts that support this extension: | |||||
</p> | |||||
<ul> | |||||
<li><a href="http://kxstudio.sf.net/Applications:Carla" target="_blank">Carla</a></li> | |||||
</ul> | |||||
""" . | |||||
rtmpl:Pool | |||||
a lv2:Feature ; | |||||
lv2:documentation """ | |||||
<p> | |||||
TODO | |||||
</p> | |||||
""" . |