c++/lv2-demo-modul/manifest.ttl
author František Kučera <franta-hg@frantovo.cz>
Fri, 15 May 2020 20:32:37 +0200
changeset 59 d6614ad97bed
permissions -rw-r--r--
LV2: modul zesilovače, dle oficiálního příkladu, ale bez závislosti na Pythonu – stačí gcc a make
     1 # LV2 plugins are installed in a ``bundle'', a directory with a standard
     2 # structure.  Each bundle has a Turtle file named `manifest.ttl` which lists
     3 # the contents of the bundle.
     4 #
     5 # Hosts typically read the manifest of every installed bundle to discover
     6 # plugins on start-up, so it should be as small as possible for performance
     7 # reasons.  Details that are only useful if the host chooses to load the plugin
     8 # are stored in other files and linked to from `manifest.ttl`.
     9 #
    10 # ==== URIs ====
    11 #
    12 # LV2 makes use of URIs as globally-unique identifiers for resources.  For
    13 # example, the ID of the plugin described here is
    14 # `<http://lv2plug.in/plugins/eg-amp>`.  Note that URIs are only used as
    15 # identifiers and don't necessarily imply that something can be accessed at
    16 # that address on the web (though that may be the case).
    17 #
    18 # ==== Namespace Prefixes ====
    19 #
    20 # Turtle files contain many URIs, but prefixes can be defined to improve
    21 # readability.  For example, with the `lv2:` prefix below, `lv2:Plugin` can be
    22 # written instead of `<http://lv2plug.in/ns/lv2core#Plugin>`.
    23 
    24 @prefix lv2:  <http://lv2plug.in/ns/lv2core#> .
    25 @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
    26 
    27 # ==== Describing a Plugin ====
    28 
    29 # Turtle files contain a set of ``statements'' which describe resources.
    30 # This file contains 3 statements:
    31 # [options="header"]
    32 # |================================================================
    33 # | Subject                             | Predicate    | Object
    34 # | <http://lv2plug.in/plugins/eg-amp>  | a            | lv2:Plugin
    35 # | <http://lv2plug.in/plugins/eg-amp>  | lv2:binary   | <amp.so>
    36 # | <http://lv2plug.in/plugins/eg-amp>  | rdfs:seeAlso | <amp.ttl>
    37 # |================================================================
    38 
    39 # Firstly, `<http://lv2plug.in/plugins/eg-amp>` is an LV2 plugin:
    40 <http://lv2plug.in/plugins/eg-amp> a lv2:Plugin .
    41 
    42 # The predicate ```a`'' is a Turtle shorthand for `rdf:type`.
    43 
    44 # The binary of that plugin can be found at `<amp.ext>`:
    45 <http://lv2plug.in/plugins/eg-amp> lv2:binary <amp.so> .
    46 
    47 # This file is a template; the token `@LIB_EXT@` is replaced by the build
    48 # system with the appropriate extension for the current platform before
    49 # installation.  For example, in the output `manifest.ttl`, the binary would be
    50 # listed as `<amp.so>`.  Relative URIs in manifests are relative to the bundle
    51 # directory, so this refers to a binary with the given name in the same
    52 # directory as this manifest.
    53 
    54 # Finally, more information about this plugin can be found in `<amp.ttl>`:
    55 <http://lv2plug.in/plugins/eg-amp> rdfs:seeAlso <amp.ttl> .
    56 
    57 # ==== Abbreviation ====
    58 #
    59 # This file shows these statements individually for instructive purposes, but
    60 # the subject `<http://lv2plug.in/plugins/eg-amp>` is repetitive.  Turtle
    61 # allows the semicolon to be used as a delimiter that repeats the previous
    62 # subject.  For example, this manifest would more realistically be written like
    63 # so:
    64 
    65 <http://lv2plug.in/plugins/eg-amp>
    66 	a lv2:Plugin ;
    67 	lv2:binary <amp.so>  ;
    68 	rdfs:seeAlso <amp.ttl> .