# LV2 Worker Extension # Copyright 2012 David Robillard # # 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. @prefix work: . @prefix lv2: . @prefix rdf: . @prefix rdfs: . @prefix xsd: . @prefix doap: . @prefix foaf: . a lv2:Specification , lv2:Feature ; doap:name "LV2 Worker" ; doap:shortdesc "Support for a non-realtime plugin worker method." ; lv2:documentation """ """ . work:Interface a rdfs:Class ; rdfs:subClassOf lv2:ExtensionData ; lv2:documentation """

A structure (LV2_Worker_Interface) which contains the worker method to be called by the host. In order to support this extension, the plugin must return a valid LV2_Worker_Interface from LV2_Descriptor::extension_data() when it is called with URI LV2_WORKER__Interface.

The plugin data file should describe this like so:

@prefix work: <http://lv2plug.in/ns/ext/worker#> .

<plugin>
    a lv2:Plugin ;
    lv2:extensionData work:Interface .
""" . work:schedule a lv2:Feature ; lv2:documentation """

A feature which provides functions for use by the plugin to implement a worker method. To support this feature, the host must pass an LV2_Feature to LV2_Descriptor::instantiate() with URI LV2_WORKER__schedule and data pointed to an instance of LV2_Worker_Schedule.

""" .