diff options
Diffstat (limited to 'plugins/eg-amp.lv2/manifest.ttl.in')
-rw-r--r-- | plugins/eg-amp.lv2/manifest.ttl.in | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/plugins/eg-amp.lv2/manifest.ttl.in b/plugins/eg-amp.lv2/manifest.ttl.in new file mode 100644 index 0000000..da8a2c4 --- /dev/null +++ b/plugins/eg-amp.lv2/manifest.ttl.in @@ -0,0 +1,101 @@ +# ==== Bundles ==== +# +# LV2 plugins are installed in ``bundles'', a directory with a particular +# format. Inside the bundle, the entry point is a file called `manifest.ttl`. +# The manifest lists the plugins (or other resources) that are in this bundle, +# and the files that contain further information. +# +# Hosts typically read the `manifest.ttl` of every bundle when starting up to +# discover what LV2 plugins and other resources are present. Accordingly, +# manifest files should be as small as possible for performance reasons. +# +# +# ==== Namespace Prefixes ==== +# +# Turtle files contain many URIs. To make this more readable, prefixes can be +# defined. For example, with the `lv2:` prefix below, instead of +# <http://lv2plug.in/ns/lv2core#Plugin> the shorter form `lv2:Plugin` can be +# used. This is just a shorthand for URIs within one file, the prefixes are +# not significant otherwise. + +@prefix lv2: <http://lv2plug.in/ns/lv2core#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . + +# ==== A Plugin Entry ==== + +<http://lv2plug.in/plugins/eg-amp> + a lv2:Plugin ; + lv2:binary <amp@LIB_EXT@> ; + rdfs:seeAlso <amp.ttl> . + +# The token `@LIB_EXT@` above is replaced by the build system with the +# appropriate extension for the current platform (e.g. .so, .dylib, .dll). +# This file is called called `manifest.ttl.in` rather than `manifest.ttl` +# to indicate that it is not the final file to be installed. +# This is not necessary, but is a good idea for portable plugins. +# For reability, the following text will assume `.so` is the extension used. +# +# In short, this declares that the resource with URI +# `http://lv2plug.in/plugins/eg-amp` is an LV2 plugin, with executable code in +# the file `amp.so` and a full description in `amp.ttl`. These paths are +# relative to the bundle directory. +# +# There are 3 statements in this description: +# [options="header"] +# |================================================================ +# | Subject | Predicate | Object +# | <http://lv2plug.in/plugins/eg-amp> | a | lv2:Plugin +# | <http://lv2plug.in/plugins/eg-amp> | lv2:binary | <amp.so> +# | <http://lv2plug.in/plugins/eg-amp> | rdfs:seeAlso | <amp.ttl> +# |================================================================ +# +# The semicolon is used to continue the previous subject; an equivalent +# but more verbose syntax for the same data is: + +<http://lv2plug.in/plugins/eg-amp> a lv2:Plugin . +<http://lv2plug.in/plugins/eg-amp> lv2:binary <amp.so> . +<http://lv2plug.in/plugins/eg-amp> rdfs:seeAlso <amp.ttl> . + +# (Since this data is equivalent, it is safe, if pointless, to list it twice) +# +# The documentation for a URI can often be found by visiting that URI in a web +# browser, e.g. the documentation for lv2:binary can be found at +# <http://lv2plug.in/ns/lv2core#binary>. All standard LV2 classes and +# properties are documented in this way, so if you encounter a URI in some data +# which you do not understand, try this first. +# +# The URI of a plugin does not need to be a resolvable web address, it just +# serves as a global identifier. However, it is a good idea to use an actual +# web address if possible for easy access documentation, downloads, and so on, +# even if no documents are currently hosted there. There are compatibility +# rules about when the URI of a plugin must be changed, see the +# http://lv2plug.in/ns/lv2core[LV2 specification] for details. Note that this +# does not require authors to control a top-level domain; for example, URIs in +# project directories at shared hosting sites are fine. It is not required to +# use HTTP URIs, but use of other schemes is strongly discouraged. +# +# AUTHORS MUST NOT CREATE URIS AT DOMAINS THEY DO NOT CONTROL WITHOUT +# PERMISSION, AND *ESPECIALLY* MUST NOT CREATE INVALID URIS, E.G. WHERE THE +# PORTION FOLLOWING ``http://'' IS NOT A DOMAIN NAME. If you need an example +# URI, the domain http://example.org/ is reserved for this purpose. +# +# A detailed explanation of each statement follows. + +<http://lv2plug.in/plugins/eg-amp> a lv2:Plugin . + +# The `a`, as in ``is a'', is a Turtle shortcut for `rdf:type`. +# `lv2:Plugin` expands to <http://lv2plug.in/ns/lv2core#Plugin> (using the +# `lv2:` prefix above) which is the type of all LV2 plugins. +# This statement means ``<http://lv2plug.in/plugins/eg-amp> is an LV2 plugin''. + +<http://lv2plug.in/plugins/eg-amp> lv2:binary <amp@LIB_EXT@> . + +# This says ```eg-amp` has executable code in the file `amp.so`''. +# Relative URIs in manifest files are relative to the bundle directory, so this +# refers to the file amp.so in the same directory as this manifest.ttl file. + +<http://lv2plug.in/plugins/eg-amp> rdfs:seeAlso <amp.ttl> . + +# This says ``there is more information about `eg-amp` in the file `amp.ttl`''. +# The host will look at all such files when it needs to actually use or +# investigate the plugin. |