From 73137d533a3e853aa13064cb76d040bcab16dceb Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 23 Nov 2011 07:25:51 +0000 Subject: Merge files extension into state extension. --- lv2/ns/ext/files/ext.pc.in | 1 - lv2/ns/ext/files/files.h | 134 ------------------------------------------ lv2/ns/ext/files/files.ttl | 115 ------------------------------------ lv2/ns/ext/files/manifest.ttl | 9 --- lv2/ns/ext/files/waf | 1 - lv2/ns/ext/files/wscript | 1 - 6 files changed, 261 deletions(-) delete mode 120000 lv2/ns/ext/files/ext.pc.in delete mode 100644 lv2/ns/ext/files/files.h delete mode 100644 lv2/ns/ext/files/files.ttl delete mode 100644 lv2/ns/ext/files/manifest.ttl delete mode 120000 lv2/ns/ext/files/waf delete mode 120000 lv2/ns/ext/files/wscript (limited to 'lv2/ns/ext/files') diff --git a/lv2/ns/ext/files/ext.pc.in b/lv2/ns/ext/files/ext.pc.in deleted file mode 120000 index 82b50df..0000000 --- a/lv2/ns/ext/files/ext.pc.in +++ /dev/null @@ -1 +0,0 @@ -../../../../ext.pc.in \ No newline at end of file diff --git a/lv2/ns/ext/files/files.h b/lv2/ns/ext/files/files.h deleted file mode 100644 index 623587a..0000000 --- a/lv2/ns/ext/files/files.h +++ /dev/null @@ -1,134 +0,0 @@ -/* - Copyright 2010-2011 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. -*/ - -/** - @file files.h - C API for the LV2 Files extension . -*/ - -#ifndef LV2_FILES_H -#define LV2_FILES_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define LV2_FILES_URI "http://lv2plug.in/ns/ext/files" -#define LV2_FILES_PATH_SUPPORT_URI LV2_FILES_URI "#pathSupport" -#define LV2_FILES_NEW_FILE_SUPPORT_URI LV2_FILES_URI "#newFileSupport" - -typedef void* LV2_Files_Host_Data; - -/** - files:pathSupport feature struct. - - To support this feature, the host MUST pass an LV2_Feature struct with @a - URI @ref LV2_FILES_PATH_SUPPORT_URI and @a data pointed to an instance of - this struct. -*/ -typedef struct { - - /** - Opaque host data. - */ - LV2_Files_Host_Data host_data; - - /** - Map an absolute path to an abstract path for use in plugin state. - @param host_data MUST be the @a host_data member of this struct. - @param absolute_path The absolute path of a file. - @return An abstract path suitable for use in plugin state. - - The plugin MUST use this function to map any paths that will be stored - in plugin state. The returned value is an abstract path which MAY not - be an actual file system path; @ref absolute_path MUST be used to map it - to an actual path in order to use the file. - - Hosts MAY map paths in any way (e.g. by creating symbolic links within - the plugin's state directory or storing a list of referenced files for - later export). Plugins MUST NOT make any assumptions about abstract - paths except that they can be mapped to an absolute path using @ref - absolute_path. Particularly when restoring from state, this absolute - path MAY not be the same as the original absolute path, but the host - MUST guarantee it refers to a file with contents equivalent to the - original. - - This function may only be called within the context of - LV2_Persist.save() or LV2_Persist.restore(). The caller is responsible - for freeing the returned value. - */ - char* (*abstract_path)(LV2_Files_Host_Data host_data, - const char* absolute_path); - - /** - Map an abstract path from plugin state to an absolute path. - @param host_data MUST be the @a host_data member of this struct. - @param abstract_path An abstract path (e.g. a path from plugin state). - @return An absolute file system path. - - Since abstract paths are not necessarily actual file paths (or at least - not necessarily absolute paths), this function MUST be used in order to - actually open or otherwise use the file referred to by an abstract path. - - This function may only be called within the context of - LV2_Persist.save() or LV2_Persist.restore(). The caller is responsible - for freeing the returned value. - */ - char* (*absolute_path)(LV2_Files_Host_Data host_data, - const char* abstract_path); - -} LV2_Files_Path_Support; - -/** - files:newFileSupport feature struct. - - To support this feature, the host MUST pass an LV2_Feature struct with @a - URI @ref LV2_FILES_NEW_FILE_SUPPORT_URI and @a data pointed to an instance - of this struct. -*/ -typedef struct { - - /** - Opaque host data. - */ - LV2_Files_Host_Data host_data; - - /** - Return an absolute path the plugin may use to create a new file. - @param host_data MUST be the @a host_data member of this struct. - @param relative_path The relative path of the file. - @return The absolute path to use for the new file. - - The plugin can assume @a relative_path is relative to a namespace - dedicated to that plugin instance; hosts MUST ensure this, e.g. by - giving each plugin instance its own state directory. The returned path - is absolute and thus suitable for creating and using a file, but NOT - suitable for storing in plugin state (it MUST be mapped to an abstract - path using @ref LV2_Files_Path_Support::abstract_path to do so). - - This function may be called from any non-realtime context. The caller - is responsible for freeing the returned value. - */ - char* (*new_file_path)(LV2_Files_Host_Data host_data, - const char* relative_path); - -} LV2_Files_New_File_Support; - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* LV2_FILES_H */ diff --git a/lv2/ns/ext/files/files.ttl b/lv2/ns/ext/files/files.ttl deleted file mode 100644 index fc32c9a..0000000 --- a/lv2/ns/ext/files/files.ttl +++ /dev/null @@ -1,115 +0,0 @@ -# LV2 Files Extension -# Copyright 2010-2011 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 atom: . -@prefix doap: . -@prefix files: . -@prefix foaf: . -@prefix lv2: . -@prefix rdf: . -@prefix rdfs: . -@prefix xsd: . - - - a lv2:Specification ; - doap:name "LV2 Files" ; - doap:shortdesc "A standard for referring to files in plugin state." ; - doap:license ; - doap:release [ - doap:revision "0.2" ; - doap:created "2011-04-05" - ] ; - doap:maintainer [ - a foaf:Person ; - foaf:name "David Robillard" ; - foaf:homepage ; - rdfs:seeAlso - ] ; - lv2:documentation """ -

This extension provides a mechanism for plugins to portably refer to files -in persistent plugin state (using the LV2 State extension), and create -instance-local files in host-defined locations (e.g. for recording).

- -

The motivating idea behind this extension is that all details of file -management MUST be handled by the host since different hosts may have very -different requirements. Plugins MUST NOT make any assumption about file system -locations beyond what is explicitly guaranteed by this extension.

- -

This extension defines two features: files:newFileSupport allows plugins to -create new files within an instance-specific namespace at any time (except in -realtime contexts); while files:pathSupport allows plugins to refer to file -paths in plugin state in a way transparent to the host.

- -

To create a new file, the plugin MUST request a path from the host using -LV2_Files_New_File_Support::new_file_path(). Thus, the host may choose an -appropriate location for the file (e.g. a writable path on the appropriate disk -volume or a path within a session directory) using information not available to -the plugin.

- -

To store a path in persistent state, the plugin MUST map it to an -abstract path using LV2_Files_Path_Support::abstract_path(). To use a -path loaded from persistent state, the plugin MUST map the (abstract) path to -an absolute path using LV2_Files_Path_Support::absolute_path(). Thus, the host -can manage all paths used in a session and support exporting sessions to a -portable self-contained format for archival or distribution.

""" . - -files:pathSupport a lv2:Feature ; - rdfs:label "Support for storing file paths in plugin state" ; - lv2:documentation """ -

This feature allows plugins to refer to pre-existing or newly created files -in persistent plugin state in a portable way. To support this feature a host -MUST pass a LV2_Files_Path_Support structure to the plugin's -LV2_Descriptor::instantiate() method as an LV2_Feature with LV2_Feature::URI = -LV2_FILES_PATH_SUPPORT_URI and LV2_Feature::data pointed to an instance of -LV2_Files_Path_Support.

- -

Plugins MUST use the functions provided by this feature to handle -all paths saved to, or restored from, persistent plugin state; -otherwise broken and/or non-portable state will silently be created resulting -in a broken user experience.

-""" . - -files:newFileSupport a lv2:Feature ; - rdfs:label "Support for creating new files" ; - lv2:documentation """ -

This feature allows plugins to create new files local to that plugin -instance. To support this feature a host MUST pass a -LV2_Files_New_File_Support structure to the plugin's -LV2_Descriptor::instantiate() method as an LV2_Feature with LV2_Feature::URI = -LV2_FILES_NEW_FILE_SUPPORT_URI and LV2_Feature::data pointed to an instance of -LV2_Files_New_File_Support.

-""" . - -files:AbstractPath a rdfs:Class ; - rdfs:label "File Path" ; - lv2:documentation """ -

An abstract path to a file in persistent plugin state.

- -

The format of a files:AbstractPath is a C string escaped or otherwise -restricted in a system-specific manner. This URI, -http://lv2plug.in/ns/ext/files#AbstractPath, mapped to an integer, -should be used as the type parameter to a -LV2_Persist_Store_Function; and will likewise be returned by the corresponding -call to a LV2_Persist_Retrieve_Function.

- -

Abstract paths reside in a namespace specific to a plugin instance. -Typical hosts are expected to implement this by giving each plugin instance its -own state directory.

- -

When storing and retrieving an abstract path, the plugin MUST NOT assume the -same path will be restored. However, the restored path will refer to a file -with equivalent contents to the original.

-""" . diff --git a/lv2/ns/ext/files/manifest.ttl b/lv2/ns/ext/files/manifest.ttl deleted file mode 100644 index d0233c4..0000000 --- a/lv2/ns/ext/files/manifest.ttl +++ /dev/null @@ -1,9 +0,0 @@ -@prefix lv2: . -@prefix rdfs: . - - - a lv2:Specification ; - lv2:minorVersion 0 ; - lv2:microVersion 2 ; - rdfs:seeAlso . - diff --git a/lv2/ns/ext/files/waf b/lv2/ns/ext/files/waf deleted file mode 120000 index b955110..0000000 --- a/lv2/ns/ext/files/waf +++ /dev/null @@ -1 +0,0 @@ -../../../../waf \ No newline at end of file diff --git a/lv2/ns/ext/files/wscript b/lv2/ns/ext/files/wscript deleted file mode 120000 index ec20a77..0000000 --- a/lv2/ns/ext/files/wscript +++ /dev/null @@ -1 +0,0 @@ -../../../../ext.wscript \ No newline at end of file -- cgit v1.2.1