plugin.h   plugin.h 
skipping to change at line 187 skipping to change at line 187
* Return value must be freed by caller with slv2_values_free. * Return value must be freed by caller with slv2_values_free.
* *
* Time = Query * Time = Query
*/ */
SLV2Values SLV2Values
slv2_plugin_get_value_for_subject(SLV2Plugin p, slv2_plugin_get_value_for_subject(SLV2Plugin p,
SLV2Value subject, SLV2Value subject,
SLV2URIType predicate_type, SLV2URIType predicate_type,
const char* predicate); const char* predicate);
/** Return whether a feature is supported by a plugin.
*
* This will return true if the feature is an optional or required feature
* of the plugin.
*
* Time = Query
*/
bool
slv2_plugin_has_feature(SLV2Plugin p,
const char* feature);
/** Get the LV2 Features supported (required or optionally) by a plugin. /** Get the LV2 Features supported (required or optionally) by a plugin.
* *
* A feature is "supported" by a plugin if it is required OR optional. * A feature is "supported" by a plugin if it is required OR optional.
* *
* Since required features have special rules the host must obey, this func tion * Since required features have special rules the host must obey, this func tion
* probably shouldn't be used by normal hosts. Using slv2_plugin_get_optio nal_features * probably shouldn't be used by normal hosts. Using slv2_plugin_get_optio nal_features
* and slv2_plugin_get_required_features separately is best in most cases. * and slv2_plugin_get_required_features separately is best in most cases.
* *
* Returned value must be freed by caller with slv2_values_free. * Returned value must be freed by caller with slv2_values_free.
* *
skipping to change at line 238 skipping to change at line 249
SLV2Values SLV2Values
slv2_plugin_get_optional_features(SLV2Plugin p); slv2_plugin_get_optional_features(SLV2Plugin p);
/** Get the number of ports on this plugin. /** Get the number of ports on this plugin.
* *
* Time = O(1) * Time = O(1)
*/ */
uint32_t uint32_t
slv2_plugin_get_num_ports(SLV2Plugin p); slv2_plugin_get_num_ports(SLV2Plugin p);
/** Get the "template" (port signature) of this plugin.
*
* The template is intended to be all the basic information a host might
* want to know about a plugin's inputs and outputs (e.g. to determine if t
he
* plugin is appropriate for a given situation). Using this function is mu
ch,
* much faster than using the individual functions repeatedly to get the sa
me
* information (since each call results in a single query).
*
* Time = Query
*/
SLV2Template
slv2_plugin_get_template(SLV2Plugin p);
/** Get the number of ports on this plugin of a given direction and/or type
.
*
* Use SLV2_PORT_DATA_TYPE_ANY and SLV2_PORT_DIRECTION_ANY for a wildcard.
*
* Time = O(1)
*/
uint32_t
slv2_plugin_get_num_ports_of_type(SLV2Plugin p,
SLV2PortDirection dir,
SLV2PortDataType type);
/** Return whether or not the plugin introduces (and reports) latency. /** Return whether or not the plugin introduces (and reports) latency.
* *
* The index of the latency port can be found with slv2_plugin_get_latency_ port * The index of the latency port can be found with slv2_plugin_get_latency_ port
* ONLY if this function returns true. * ONLY if this function returns true.
* *
* Time = Query * Time = Query
*/ */
bool bool
slv2_plugin_has_latency(SLV2Plugin p); slv2_plugin_has_latency(SLV2Plugin p);
skipping to change at line 325 skipping to change at line 360
* *
* Returned value must be freed by caller using slv2_uis_free. * Returned value must be freed by caller using slv2_uis_free.
* *
* \param plugin The plugin to get the UIs for. * \param plugin The plugin to get the UIs for.
* *
* Time = Query * Time = Query
*/ */
SLV2UIs SLV2UIs
slv2_plugin_get_uis(SLV2Plugin plugin); slv2_plugin_get_uis(SLV2Plugin plugin);
/** Get the full name of the plugin's author.
*
* Returns NULL if author name is not present.
* Returned value must be freed by caller.
*
* Time = Query
*/
char*
slv2_plugin_get_author_name(SLV2Plugin plugin);
/** Get the email address of the plugin's author.
*
* Returns NULL if author email address is not present.
* Returned value must be freed by caller.
*
* Time = Query
*/
char*
slv2_plugin_get_author_email(SLV2Plugin plugin);
/** Get the email address of the plugin's author.
*
* Returns NULL if author homepage is not present.
* Returned value must be freed by caller.
*
* Time = Query
*/
char*
slv2_plugin_get_author_homepage(SLV2Plugin plugin);
/** @} */ /** @} */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* __SLV2_PLUGIN_H__ */ #endif /* __SLV2_PLUGIN_H__ */
 End of changes. 3 change blocks. 
0 lines changed or deleted 69 lines changed or added


 pluginclasses.h   pluginclasses.h 
skipping to change at line 22 skipping to change at line 22
* for more details. * for more details.
* *
* You should have received a copy of the GNU General Public License along * You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
#ifndef __SLV2_PLUGIN_CLASSES_H__ #ifndef __SLV2_PLUGIN_CLASSES_H__
#define __SLV2_PLUGIN_CLASSES_H__ #define __SLV2_PLUGIN_CLASSES_H__
#include <slv2/pluginclass.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <slv2/pluginclass.h>
/** \addtogroup slv2_collections /** \addtogroup slv2_collections
* @{ * @{
*/ */
/** Get the number of plugins in the list. /** Get the number of plugins in the list.
*/ */
unsigned unsigned
slv2_plugin_classes_size(SLV2PluginClasses list); slv2_plugin_classes_size(SLV2PluginClasses list);
/** Get a plugin class from the list by URI. /** Get a plugin class from the list by URI.
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 plugins.h   plugins.h 
skipping to change at line 22 skipping to change at line 22
* for more details. * for more details.
* *
* You should have received a copy of the GNU General Public License along * You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
#ifndef __SLV2_PLUGINS_H__ #ifndef __SLV2_PLUGINS_H__
#define __SLV2_PLUGINS_H__ #define __SLV2_PLUGINS_H__
#include <slv2/types.h>
#include <slv2/plugin.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <slv2/types.h>
#include <slv2/plugin.h>
/** \addtogroup slv2_collections /** \addtogroup slv2_collections
* @{ * @{
*/ */
/** Free a plugin list. /** Free a plugin list.
* *
* Freeing a plugin list does not destroy the plugins it contains (plugins * Freeing a plugin list does not destroy the plugins it contains (plugins
* are owned by the world). \a list is invalid after this call. * are owned by the world). \a list is invalid after this call.
*/ */
void void
 End of changes. 2 change blocks. 
3 lines changed or deleted 3 lines changed or added


 pluginuiinstance.h   pluginuiinstance.h 
/* SLV2 /* SLV2
* Copyright (C) 2007 Dave Robillard <http://drobilla.net> * Copyright (C) 2007 Dave Robillard <http://drobilla.net>
* Author: Lars Luthman
* *
* This library is free software; you can redistribute it and/or modify it * This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Fr ee * under the terms of the GNU General Public License as published by the Fr ee
* Software Foundation; either version 2 of the License, or (at your option ) * Software Foundation; either version 2 of the License, or (at your option )
* any later version. * any later version.
* *
* This library is distributed in the hope that it will be useful, but WITH OUT * This library is distributed in the hope that it will be useful, but WITH OUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details. * for more details.
 End of changes. 1 change blocks. 
1 lines changed or deleted 0 lines changed or added


 pluginuis.h   pluginuis.h 
skipping to change at line 22 skipping to change at line 22
* for more details. * for more details.
* *
* You should have received a copy of the GNU General Public License along * You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
#ifndef __SLV2_PLUGIN_UIS_H__ #ifndef __SLV2_PLUGIN_UIS_H__
#define __SLV2_PLUGIN_UIS_H__ #define __SLV2_PLUGIN_UIS_H__
#include <slv2/types.h>
#include <slv2/plugin.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <slv2/types.h>
#include <slv2/plugin.h>
/** \addtogroup slv2_collections /** \addtogroup slv2_collections
* *
* @{ * @{
*/ */
/** Free a plugin list. /** Free a plugin list.
* *
* Freeing a plugin list does not destroy the plugins it contains (plugins * Freeing a plugin list does not destroy the plugins it contains (plugins
* are owned by the world). \a list is invalid after this call. * are owned by the world). \a list is invalid after this call.
*/ */
 End of changes. 2 change blocks. 
3 lines changed or deleted 3 lines changed or added


 port.h   port.h 
skipping to change at line 52 skipping to change at line 52
const char* property); const char* property);
/** Return the LV2 port properties of a port. /** Return the LV2 port properties of a port.
* *
* Time = Query * Time = Query
*/ */
SLV2Values SLV2Values
slv2_port_get_properties(SLV2Plugin plugin, slv2_port_get_properties(SLV2Plugin plugin,
SLV2Port port); SLV2Port port);
#if 0
/** Return whether a port has a certain property. /** Return whether a port has a certain property.
* *
* Time = Query * Time = Query
*/ */
bool bool
slv2_port_has_property(SLV2Plugin p, slv2_port_has_property(SLV2Plugin p,
SLV2Port port, SLV2Port port,
SLV2Value hint) const char* property_uri);
#endif
/** Get the symbol of a port given the index. /** Get the symbol of a port given the index.
* *
* The 'symbol' is a short string, a valid C identifier. * The 'symbol' is a short string, a valid C identifier.
* Returned string must be free()'d by caller. * Returned string must be free()'d by caller.
* *
* \return NULL when index is out of range * \return NULL when index is out of range
* *
* Time = Query * Time = Query
*/ */
 End of changes. 2 change blocks. 
5 lines changed or deleted 3 lines changed or added


 slv2.h   slv2.h 
skipping to change at line 26 skipping to change at line 26
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
#ifndef __SLV2_H__ #ifndef __SLV2_H__
#define __SLV2_H__ #define __SLV2_H__
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <slv2/types.h>
#include <slv2/world.h>
#include <slv2/pluginclass.h>
#include <slv2/plugin.h> #include <slv2/plugin.h>
#include <slv2/pluginclass.h>
#include <slv2/plugininstance.h>
#include <slv2/plugins.h>
#include <slv2/pluginui.h> #include <slv2/pluginui.h>
#include <slv2/pluginuiinstance.h>
#include <slv2/pluginuis.h> #include <slv2/pluginuis.h>
#include <slv2/port.h> #include <slv2/port.h>
#include <slv2/plugins.h> #include <slv2/portsignature.h>
#include <slv2/pluginuiinstance.h> #include <slv2/template.h>
#include <slv2/plugininstance.h> #include <slv2/types.h>
#include <slv2/util.h>
#include <slv2/value.h> #include <slv2/value.h>
#include <slv2/values.h> #include <slv2/values.h>
#include <slv2/util.h> #include <slv2/world.h>
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* __SLV2_H__ */ #endif /* __SLV2_H__ */
 End of changes. 5 change blocks. 
7 lines changed or deleted 9 lines changed or added


 types.h   types.h 
skipping to change at line 22 skipping to change at line 22
* for more details. * for more details.
* *
* You should have received a copy of the GNU General Public License along * You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
#ifndef __SLV2_TYPES_H__ #ifndef __SLV2_TYPES_H__
#define __SLV2_TYPES_H__ #define __SLV2_TYPES_H__
#include <stdbool.h>
#include <stdint.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <stdbool.h>
#include <stdint.h>
/** (Data) Type of a port /** (Data) Type of a port
* *
* SLV2_UNKNOWN_PORT_TYPE means the Port is not of any type SLV2 understand s * SLV2_UNKNOWN_PORT_TYPE means the Port is not of any type SLV2 understand s
* (currently Control, Audio, MIDI, and OSC). * (currently Control, Audio, MIDI, and OSC).
* *
* Further class information can be using slv2_port_get_value(p, "rdf:type" ) * Further class information can be using slv2_port_get_value(p, "rdf:type" )
* or a custom query. * or a custom query.
*/ */
typedef enum _SLV2PortDataType { typedef enum _SLV2PortDataType {
SLV2_PORT_DATA_TYPE_UNKNOWN, SLV2_PORT_DATA_TYPE_UNKNOWN,
skipping to change at line 72 skipping to change at line 72
* QName: lv2:Plugin * QName: lv2:Plugin
*/ */
typedef enum _SLV2URIType { typedef enum _SLV2URIType {
SLV2_URI, SLV2_URI,
SLV2_QNAME SLV2_QNAME
} SLV2URIType; } SLV2URIType;
/** A port on a plugin. Opaque, but valid to compare to NULL. */ /** A port on a plugin. Opaque, but valid to compare to NULL. */
typedef struct _SLV2Port* SLV2Port; typedef struct _SLV2Port* SLV2Port;
/** The port (I/O) signature of a plugin. Opaque, but valid to compare to
NULL. */
typedef struct _SLV2PortSignature* SLV2PortSignature;
/** A plugin. Opaque, but valid to compare to NULL. */ /** A plugin. Opaque, but valid to compare to NULL. */
typedef struct _SLV2Plugin* SLV2Plugin; typedef struct _SLV2Plugin* SLV2Plugin;
/** A collection of plugins. Opaque, but valid to compare to NULL. */ /** A collection of plugins. Opaque, but valid to compare to NULL. */
typedef void* SLV2Plugins; typedef void* SLV2Plugins;
/** The world. Opaque, but valid to compare to NULL. */ /** The world. Opaque, but valid to compare to NULL. */
typedef struct _SLV2World* SLV2World; typedef struct _SLV2World* SLV2World;
/** A plugin class. Opaque, but valid to compare to NULL. */ /** A plugin class. Opaque, but valid to compare to NULL. */
typedef struct _SLV2PluginClass* SLV2PluginClass; typedef struct _SLV2PluginClass* SLV2PluginClass;
/** A collection of plugin classes. Opaque, but valid to compare to NULL. */ /** A collection of plugin classes. Opaque, but valid to compare to NULL. */
typedef void* SLV2PluginClasses; typedef void* SLV2PluginClasses;
/** A typed value */ /** A typed value */
typedef struct _SLV2Value* SLV2Value; typedef struct _SLV2Value* SLV2Value;
/** A plugin template (collection of port signatures). */
typedef void* SLV2Template;
/** A collection of typed values. */ /** A collection of typed values. */
typedef void* SLV2Values; typedef void* SLV2Values;
/** A plugin UI */ /** A plugin UI */
typedef struct _SLV2UI* SLV2UI; typedef struct _SLV2UI* SLV2UI;
/** A collection of plugin UIs. */ /** A collection of plugin UIs. */
typedef void* SLV2UIs; typedef void* SLV2UIs;
#ifdef __cplusplus #ifdef __cplusplus
 End of changes. 4 change blocks. 
3 lines changed or deleted 10 lines changed or added


 util.h   util.h 
skipping to change at line 22 skipping to change at line 22
* for more details. * for more details.
* *
* You should have received a copy of the GNU General Public License along * You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
#ifndef __SLV2_UTIL_H__ #ifndef __SLV2_UTIL_H__
#define __SLV2_UTIL_H__ #define __SLV2_UTIL_H__
#include <stdarg.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <stdarg.h>
/** \defgroup slv2_util Utility functions /** \defgroup slv2_util Utility functions
* *
* @{ * @{
*/ */
/** Convert a full URI (eg file://foo/bar/baz.ttl) to a local path (e.g. /f oo/bar/baz.ttl). /** Convert a full URI (eg file://foo/bar/baz.ttl) to a local path (e.g. /f oo/bar/baz.ttl).
* *
* Return value is shared and must not be deleted by caller. * Return value is shared and must not be deleted by caller.
* \return \a uri converted to a path, or NULL on failure (URI is not local ). * \return \a uri converted to a path, or NULL on failure (URI is not local ).
*/ */
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 values.h   values.h 
skipping to change at line 22 skipping to change at line 22
* for more details. * for more details.
* *
* You should have received a copy of the GNU General Public License along * You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
#ifndef __SLV2_VALUES_H__ #ifndef __SLV2_VALUES_H__
#define __SLV2_VALUES_H__ #define __SLV2_VALUES_H__
#include <stdbool.h>
#include <slv2/value.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <stdbool.h>
#include <slv2/value.h>
/** \defgroup slv2_collections Collections of values/objects /** \defgroup slv2_collections Collections of values/objects
* *
* Ordered collections of typed values which are fast for random * Ordered collections of typed values which are fast for random
* access by index (i.e. a fancy array). * access by index (i.e. a fancy array).
* *
* @{ * @{
*/ */
/** Allocate a new, empty SLV2Values /** Allocate a new, empty SLV2Values
*/ */
SLV2Values SLV2Values
slv2_values_new(); slv2_values_new();
/** Free an SLV2Values.
*/
void
slv2_values_free(SLV2Values);
/** Get the number of elements in a string list. /** Get the number of elements in a string list.
*/ */
unsigned unsigned
slv2_values_size(SLV2Values list); slv2_values_size(SLV2Values list);
/** Get a string from a string list at the given index. /** Get a string from a string list at the given index.
* *
* @return the element at \a index, or NULL if index is out of range. * @return the element at \a index, or NULL if index is out of range.
* *
* Time = O(1) * Time = O(1)
*/ */
SLV2Value SLV2Value
slv2_values_get_at(SLV2Values list, unsigned index); slv2_values_get_at(SLV2Values list, unsigned index);
/** Return whether \a list contains \a string. /** Return whether \a list contains \a value.
* *
* Time = O(n) * Time = O(n)
*/ */
bool bool
slv2_values_contains(SLV2Values list, SLV2Value value); slv2_values_contains(SLV2Values list, SLV2Value value);
/** Free a string list.
*/
void
slv2_values_free(SLV2Values);
/** @} */ /** @} */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* __SLV2_VALUES_H__ */ #endif /* __SLV2_VALUES_H__ */
 End of changes. 5 change blocks. 
9 lines changed or deleted 9 lines changed or added


 world.h   world.h 
skipping to change at line 22 skipping to change at line 22
* for more details. * for more details.
* *
* You should have received a copy of the GNU General Public License along * You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
#ifndef __SLV2_WORLD_H__ #ifndef __SLV2_WORLD_H__
#define __SLV2_WORLD_H__ #define __SLV2_WORLD_H__
#include <slv2/plugins.h>
#include <slv2/pluginclasses.h>
#include <librdf.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <slv2/plugins.h>
#include <slv2/pluginclasses.h>
#include <librdf.h>
/** \defgroup slv2_world Global library state /** \defgroup slv2_world Global library state
* *
* The "world" represents all library state, and the data found in bundles' * The "world" represents all library state, and the data found in bundles'
* manifest.ttl (ie it is an in-memory index of all things LV2 found). * manifest.ttl (ie it is an in-memory index of all things LV2 found).
* Plugins (and plugin extensions) and the LV2 specification (and LV2 * Plugins (and plugin extensions) and the LV2 specification (and LV2
* extensions) itself can be queried from the world for use. * extensions) itself can be queried from the world for use.
* *
* Normal hosts which just want to easily load plugins by URI are strongly * Normal hosts which just want to easily load plugins by URI are strongly
* recommended to simply call \ref slv2_world_load_all to find all installe d * recommended to simply call \ref slv2_world_load_all to find all installe d
* data in the recommended way. * data in the recommended way.
 End of changes. 2 change blocks. 
4 lines changed or deleted 4 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/