Browse Source

First doc push

gh-pages
falkTX 9 years ago
parent
commit
c5afa1b564
18 changed files with 1146 additions and 0 deletions
  1. BIN
      blank.gif
  2. +25
    -0
      extui/external-ui.doap.ttl
  3. +109
    -0
      extui/external-ui.h
  4. +81
    -0
      extui/external-ui.ttl
  5. +162
    -0
      extui/index.html
  6. +8
    -0
      extui/manifest.ttl
  7. BIN
      folder.gif
  8. +38
    -0
      index.html
  9. +159
    -0
      progs/index.html
  10. +8
    -0
      progs/manifest.ttl
  11. +25
    -0
      progs/programs.doap.ttl
  12. +174
    -0
      progs/programs.h
  13. +62
    -0
      progs/programs.ttl
  14. +124
    -0
      rtmpl/index.html
  15. +8
    -0
      rtmpl/manifest.ttl
  16. +25
    -0
      rtmpl/rtmempool.doap.ttl
  17. +105
    -0
      rtmpl/rtmempool.h
  18. +33
    -0
      rtmpl/rtmempool.ttl

BIN
blank.gif View File

Before After
Width: 20  |  Height: 22  |  Size: 148B

+ 25
- 0
extui/external-ui.doap.ttl View File

@@ -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."
]
]
] .

+ 109
- 0
extui/external-ui.h View File

@@ -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 */

+ 81
- 0
extui/external-ui.ttl View File

@@ -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>
""" .

+ 162
- 0
extui/index.html View File

@@ -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>

+ 8
- 0
extui/manifest.ttl View File

@@ -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> .

BIN
folder.gif View File

Before After
Width: 20  |  Height: 22  |  Size: 225B

+ 38
- 0
index.html View File

@@ -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>&nbsp;</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>&nbsp;</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>&nbsp;</td>
</tr>

<tr><th colspan="4"><hr></th></tr>
</table>

</body>
</html>

+ 159
- 0
progs/index.html View File

@@ -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>

+ 8
- 0
progs/manifest.ttl View File

@@ -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> .

+ 25
- 0
progs/programs.doap.ttl View File

@@ -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."
]
]
] .

+ 174
- 0
progs/programs.h View File

@@ -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 */

+ 62
- 0
progs/programs.ttl View File

@@ -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>
""" .

+ 124
- 0
rtmpl/index.html View File

@@ -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>

+ 8
- 0
rtmpl/manifest.ttl View File

@@ -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> .

+ 25
- 0
rtmpl/rtmempool.doap.ttl View File

@@ -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."
]
]
] .

+ 105
- 0
rtmpl/rtmempool.h View File

@@ -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 */

+ 33
- 0
rtmpl/rtmempool.ttl View File

@@ -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>
""" .

Loading…
Cancel
Save