Macros | Typedefs | Functions
Dynamic Manifest

Detailed Description

Support for dynamic data generation.

See http://lv2plug.in/ns/ext/dynmanifest for details.

Macros

#define LV2_DYN_MANIFEST_URI   "http://lv2plug.in/ns/ext/dynmanifest"
 
#define LV2_DYN_MANIFEST_PREFIX   LV2_DYN_MANIFEST_URI "#"
 

Typedefs

typedef void * LV2_Dyn_Manifest_Handle
 

Functions

int lv2_dyn_manifest_open (LV2_Dyn_Manifest_Handle *handle, const LV2_Feature *const *features)
 
int lv2_dyn_manifest_get_subjects (LV2_Dyn_Manifest_Handle handle, FILE *fp)
 
int lv2_dyn_manifest_get_data (LV2_Dyn_Manifest_Handle handle, FILE *fp, const char *uri)
 
void lv2_dyn_manifest_close (LV2_Dyn_Manifest_Handle handle)
 

Macro Definition Documentation

◆ LV2_DYN_MANIFEST_URI

#define LV2_DYN_MANIFEST_URI   "http://lv2plug.in/ns/ext/dynmanifest"

◆ LV2_DYN_MANIFEST_PREFIX

#define LV2_DYN_MANIFEST_PREFIX   LV2_DYN_MANIFEST_URI "#"

Typedef Documentation

◆ LV2_Dyn_Manifest_Handle

typedef void* LV2_Dyn_Manifest_Handle

Dynamic manifest generator handle.

This handle indicates a particular status of a dynamic manifest generator. The host MUST NOT attempt to interpret it and, unlikely LV2_Handle, it is NOT even valid to compare this to NULL. The dynamic manifest generator MAY use it to reference internal data.

Function Documentation

◆ lv2_dyn_manifest_open()

int lv2_dyn_manifest_open ( LV2_Dyn_Manifest_Handle handle,
const LV2_Feature *const *  features 
)

Generate the dynamic manifest.

Parameters
handlePointer to an uninitialized dynamic manifest generator handle.
featuresNULL terminated array of LV2_Feature structs which represent the features the host supports. The dynamic manifest generator may refuse to (re)generate the dynamic manifest if required features are not found here (however hosts SHOULD NOT use this as a discovery mechanism, instead of reading the static manifest file). This array must always exist; if a host has no features, it MUST pass a single element array containing NULL.
Returns
0 on success, otherwise a non-zero error code. The host SHOULD evaluate the result of the operation by examining the returned value and MUST NOT try to interpret the value of handle.

◆ lv2_dyn_manifest_get_subjects()

int lv2_dyn_manifest_get_subjects ( LV2_Dyn_Manifest_Handle  handle,
FILE *  fp 
)

Fetch a "list" of subject URIs described in the dynamic manifest.

The dynamic manifest generator has to fill the resource only with the needed triples to make the host aware of the "objects" it wants to expose. For example, if the plugin library exposes a regular LV2 plugin, it should output only a triple like the following:

http://example.org/plugin a lv2:Plugin .

The objects that are eligible for exposure are those that would need to be represented by a subject node in a static manifest.

Parameters
handleDynamic manifest generator handle.
fpFILE * identifying the resource the host has to set up for the dynamic manifest generator. The host MUST pass a writable, empty resource to this function, and the dynamic manifest generator MUST ONLY perform write operations on it at the end of the stream (for example, using only fprintf(), fwrite() and similar).
Returns
0 on success, otherwise a non-zero error code.

◆ lv2_dyn_manifest_get_data()

int lv2_dyn_manifest_get_data ( LV2_Dyn_Manifest_Handle  handle,
FILE *  fp,
const char *  uri 
)

Function that fetches data related to a specific URI.

The dynamic manifest generator has to fill the resource with data related to object represented by the given URI. For example, if the library exposes a regular LV2 plugin whose URI, as retrieved by the host using lv2_dyn_manifest_get_subjects() is http://example.org/plugin then it should output something like:

http://example.org/plugin
    a lv2:Plugin ;
    doap:name "My Plugin" ;
    lv2:binary <mylib.so> ;
    etc:etc "..." .
Parameters
handleDynamic manifest generator handle.
fpFILE * identifying the resource the host has to set up for the dynamic manifest generator. The host MUST pass a writable resource to this function, and the dynamic manifest generator MUST ONLY perform write operations on it at the current position of the stream (for example, using only fprintf(), fwrite() and similar).
uriURI to get data about (in the "plain" form, i.e., absolute URI without Turtle prefixes).
Returns
0 on success, otherwise a non-zero error code.

◆ lv2_dyn_manifest_close()

void lv2_dyn_manifest_close ( LV2_Dyn_Manifest_Handle  handle)

Function that ends the operations on the dynamic manifest generator.

This function SHOULD be used by the dynamic manifest generator to perform cleanup operations, etc.

Once this function is called, referring to handle will cause undefined behavior.

Parameters
handleDynamic manifest generator handle.