| plugin.h | | plugin.h | |
| | | | |
| skipping to change at line 32 | | skipping to change at line 32 | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| #include <stdint.h> | | #include <stdint.h> | |
| #include <stdbool.h> | | #include <stdbool.h> | |
| #include <slv2/types.h> | | #include <slv2/types.h> | |
| #include <slv2/port.h> | | #include <slv2/port.h> | |
| #include <slv2/values.h> | | #include <slv2/values.h> | |
| | | | |
|
| /** \defgroup data Plugin data access | | /** \defgroup slv2_data Plugin data access | |
| * | | * | |
|
| * These functions work exclusively with the plugin's RDF data. | | * These functions work exclusively with the plugin's RDF data, | |
| * They do not load or access the plugin dynamic library in any way. | | * they do not access the plugin's shared library in any way. | |
| * | | * | |
| * An SLV2Plugin contains an in-memory cache of the plugin data, loaded | | * An SLV2Plugin contains an in-memory cache of the plugin data, loaded | |
| * on demand. Duplicating plugins should be avoided when possible for | | * on demand. Duplicating plugins should be avoided when possible for | |
| * performance reasons. | | * performance reasons. | |
| * | | * | |
| * @{ | | * @{ | |
| */ | | */ | |
| | | | |
| /** Check if this plugin is valid. | | /** Check if this plugin is valid. | |
| * | | * | |
| | | | |
End of changes. 2 change blocks. |
| 3 lines changed or deleted | | 3 lines changed or added | |
|
| pluginclasses.h | | pluginclasses.h | |
| | | | |
| skipping to change at line 28 | | skipping to change at line 28 | |
| | | | |
| #ifndef __SLV2_PLUGIN_CLASSES_H__ | | #ifndef __SLV2_PLUGIN_CLASSES_H__ | |
| #define __SLV2_PLUGIN_CLASSES_H__ | | #define __SLV2_PLUGIN_CLASSES_H__ | |
| | | | |
| #include <slv2/pluginclass.h> | | #include <slv2/pluginclass.h> | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
|
| /** \addtogroup 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. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| plugininstance.h | | plugininstance.h | |
| | | | |
| skipping to change at line 31 | | skipping to change at line 31 | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| #include <assert.h> | | #include <assert.h> | |
| #include <slv2/lv2.h> | | #include <slv2/lv2.h> | |
| #include <slv2/plugin.h> | | #include <slv2/plugin.h> | |
| #include <slv2/port.h> | | #include <slv2/port.h> | |
| | | | |
|
| /** \defgroup lib Plugin library access | | | |
| * | | | |
| * An SLV2Instance is an instantiated SLV2Plugin (ie a loaded dynamic | | | |
| * library). These functions interact with the binary library code only, | | | |
| * they do not read data files in any way. | | | |
| * | | | |
| * @{ | | | |
| */ | | | |
| | | | |
| typedef struct _InstanceImpl* SLV2InstanceImpl; | | typedef struct _InstanceImpl* SLV2InstanceImpl; | |
| | | | |
|
| /** Instance of a plugin. | | /* Instance of a plugin. | |
| * | | * | |
| * The LV2 descriptor and handle of this are exposed to allow inlining of | | * The LV2 descriptor and handle of this are exposed to allow inlining of | |
| * performance critical functions like slv2_instance_run (which are exposed | | * performance critical functions like slv2_instance_run (which are exposed | |
|
| * in lv2.h anyway). The remaining implementation details are | | * in lv2.h anyway). This is for performance only, this struct is not | |
| * in the opaque pimpl member. | | * documented and should not be used directly. The remaining implementatio | |
| | | n | |
| | | * details are in the opaque pimpl member. | |
| */ | | */ | |
| typedef struct _Instance { | | typedef struct _Instance { | |
| const LV2_Descriptor* lv2_descriptor; | | const LV2_Descriptor* lv2_descriptor; | |
| LV2_Handle lv2_handle; | | LV2_Handle lv2_handle; | |
| SLV2InstanceImpl pimpl; ///< Private implementation | | SLV2InstanceImpl pimpl; ///< Private implementation | |
| }* SLV2Instance; | | }* SLV2Instance; | |
| | | | |
|
| | | /** \defgroup slv2_library Plugin library access | |
| | | * | |
| | | * An SLV2Instance is an instantiated SLV2Plugin (ie a loaded dynamic | |
| | | * library). These functions interact with the binary library code only, | |
| | | * they do not read data files in any way. | |
| | | * | |
| | | * @{ | |
| | | */ | |
| | | | |
| /** Instantiate a plugin. | | /** Instantiate a plugin. | |
| * | | * | |
| * The returned object represents shared library objects loaded into memory
, | | * The returned object represents shared library objects loaded into memory
, | |
| * it must be cleaned up with slv2_instance_free when no longer | | * it must be cleaned up with slv2_instance_free when no longer | |
| * needed. | | * needed. | |
| * | | * | |
| * \a plugin is not modified or directly referenced by the returned object | | * \a plugin is not modified or directly referenced by the returned object | |
| * (instances store only a copy of the plugin's URI). | | * (instances store only a copy of the plugin's URI). | |
| * | | * | |
| * \a host_features NULL-terminated array of features the host supports. | | * \a host_features NULL-terminated array of features the host supports. | |
| * NULL may be passed if the host supports no additional features (unlike | | * NULL may be passed if the host supports no additional features (unlike | |
| * the LV2 specification - SLV2 takes care of it). | | * the LV2 specification - SLV2 takes care of it). | |
| * | | * | |
| * \return NULL if instantiation failed. | | * \return NULL if instantiation failed. | |
| */ | | */ | |
| SLV2Instance | | SLV2Instance | |
|
| slv2_plugin_instantiate(SLV2Plugin plugin, | | slv2_plugin_instantiate(SLV2Plugin plugin, | |
| double sample_rate, | | double sample_rate, | |
| const LV2_Feature** features); | | const LV2_Feature*const* features); | |
| | | | |
| /** Free a plugin instance. | | /** Free a plugin instance. | |
| * | | * | |
| * \a instance is invalid after this call. | | * \a instance is invalid after this call. | |
| */ | | */ | |
| void | | void | |
| slv2_instance_free(SLV2Instance instance); | | slv2_instance_free(SLV2Instance instance); | |
| | | | |
| #ifndef LIBSLV2_SOURCE | | #ifndef LIBSLV2_SOURCE | |
| | | | |
| | | | |
End of changes. 5 change blocks. |
| 15 lines changed or deleted | | 17 lines changed or added | |
|
| plugins.h | | plugins.h | |
| | | | |
| skipping to change at line 29 | | skipping to change at line 29 | |
| #ifndef __SLV2_PLUGINS_H__ | | #ifndef __SLV2_PLUGINS_H__ | |
| #define __SLV2_PLUGINS_H__ | | #define __SLV2_PLUGINS_H__ | |
| | | | |
| #include <slv2/types.h> | | #include <slv2/types.h> | |
| #include <slv2/plugin.h> | | #include <slv2/plugin.h> | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
|
| /** \addtogroup 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 | |
| slv2_plugins_free(SLV2World world, | | slv2_plugins_free(SLV2World world, | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| pluginui.h | | pluginui.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_PLUGIN_UI_H__ | | #ifndef __SLV2_PLUGIN_UI_H__ | |
| #define __SLV2_PLUGIN_UI_H__ | | #define __SLV2_PLUGIN_UI_H__ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
|
| /** \addtogroup data | | /** \addtogroup slv2_data | |
| * @{ | | * @{ | |
| */ | | */ | |
| | | | |
| /** Get the URI of a Plugin UI. | | /** Get the URI of a Plugin UI. | |
| * | | * | |
| * \param ui The Plugin UI | | * \param ui The Plugin UI | |
| * | | * | |
| * Time = O(1) | | * Time = O(1) | |
| */ | | */ | |
| const char* | | const char* | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| pluginuiinstance.h | | pluginuiinstance.h | |
| | | | |
| skipping to change at line 31 | | skipping to change at line 31 | |
| #define __SLV2_PLUGINUIINSTANCE_H__ | | #define __SLV2_PLUGINUIINSTANCE_H__ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
| #include <assert.h> | | #include <assert.h> | |
| #include <slv2/lv2_gui.h> | | #include <slv2/lv2_gui.h> | |
| #include <slv2/plugin.h> | | #include <slv2/plugin.h> | |
| | | | |
|
| /** \addtogroup lib | | | |
| * @{ | | | |
| */ | | | |
| | | | |
| typedef struct _SLV2UIInstanceImpl* SLV2UIInstanceImpl; | | typedef struct _SLV2UIInstanceImpl* SLV2UIInstanceImpl; | |
| | | | |
|
| /** Instance of a plugin UI. | | /* Instance of a plugin UI. | |
| * | | * | |
| * All details are in hidden in the pimpl member to avoid making the | | * All details are in hidden in the pimpl member to avoid making the | |
| * implementation a part of the ABI. | | * implementation a part of the ABI. | |
| */ | | */ | |
| typedef struct _SLV2UIInstance { | | typedef struct _SLV2UIInstance { | |
| SLV2UIInstanceImpl pimpl; ///< Private implementation | | SLV2UIInstanceImpl pimpl; ///< Private implementation | |
| }* SLV2UIInstance; | | }* SLV2UIInstance; | |
| | | | |
|
| | | /** \addtogroup slv2_library | |
| | | * @{ | |
| | | */ | |
| | | | |
| /** Instantiate a plugin UI. | | /** Instantiate a plugin UI. | |
| * | | * | |
| * The returned object represents shared library objects loaded into memory
, | | * The returned object represents shared library objects loaded into memory
, | |
| * it must be cleaned up with slv2_ui_instance_free when no longer | | * it must be cleaned up with slv2_ui_instance_free when no longer | |
| * needed. | | * needed. | |
| * | | * | |
| * \a plugin is not modified or directly referenced by the returned object | | * \a plugin is not modified or directly referenced by the returned object | |
| * (instances store only a copy of the plugin's URI). | | * (instances store only a copy of the plugin's URI). | |
| * | | * | |
| * \a host_features NULL-terminated array of features the host supports. | | * \a host_features NULL-terminated array of features the host supports. | |
| | | | |
End of changes. 3 change blocks. |
| 5 lines changed or deleted | | 5 lines changed or added | |
|
| values.h | | values.h | |
| | | | |
| skipping to change at line 29 | | skipping to change at line 29 | |
| #ifndef __SLV2_VALUES_H__ | | #ifndef __SLV2_VALUES_H__ | |
| #define __SLV2_VALUES_H__ | | #define __SLV2_VALUES_H__ | |
| | | | |
| #include <stdbool.h> | | #include <stdbool.h> | |
| #include <slv2/value.h> | | #include <slv2/value.h> | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
|
| /** \defgroup 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 | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| world.h | | world.h | |
| | | | |
| skipping to change at line 30 | | skipping to change at line 30 | |
| #define __SLV2_WORLD_H__ | | #define __SLV2_WORLD_H__ | |
| | | | |
| #include <slv2/plugins.h> | | #include <slv2/plugins.h> | |
| #include <slv2/pluginclasses.h> | | #include <slv2/pluginclasses.h> | |
| #include <librdf.h> | | #include <librdf.h> | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| extern "C" { | | extern "C" { | |
| #endif | | #endif | |
| | | | |
|
| /** \defgroup 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. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|