lv2.h   lv2.h 
/* LV2 - LADSPA (Linux Audio Developer's Simple Plugin API) Version 2.0 /* LV2 - LADSPA (Linux Audio Developer's Simple Plugin API) Version 2.0
* *** PROVISIONAL Revision 1.0beta6 (2007-10-03) *** * *** PROVISIONAL Revision 1.0beta7 (2007-11-14) ***
* *
* Copyright (C) 2000-2002 Richard W.E. Furse, Paul Barton-Davis, * Copyright (C) 2000-2002 Richard W.E. Furse, Paul Barton-Davis,
* Stefan Westerfeld. * Stefan Westerfeld.
* Copyright (C) 2006-2007 Steve Harris, Dave Robillard. * Copyright (C) 2006-2007 Steve Harris, Dave Robillard.
* *
* This header is free software; you can redistribute it and/or modify it * This header is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published * under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation; either version 2.1 of the License, * by the Free Software Foundation; either version 2.1 of the License,
* or (at your option) any later version. * or (at your option) any later version.
* *
skipping to change at line 37 skipping to change at line 37
#include <stdint.h> #include <stdint.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/* ************************************************************************ * */ /* ************************************************************************ * */
/** @file lv2.h /** @file lv2.h
* *
* Revision: 1.0beta6 * Revision: 1.0beta7
* *
* == Overview == * == Overview ==
* *
* There are a large number of open source and free software synthesis * There are a large number of open source and free software synthesis
* packages in use or development at this time. This API ('LV2') * packages in use or development at this time. This API ('LV2')
* attempts to give programmers the ability to write simple 'plugin' * attempts to give programmers the ability to write simple 'plugin'
* audio processors in C/C++ and link them dynamically ('plug') into * audio processors in C/C++ and link them dynamically ('plug') into
* a range of these packages ('hosts'). It should be possible for any * a range of these packages ('hosts'). It should be possible for any
* host and any plugin to communicate completely through this interface. * host and any plugin to communicate completely through this interface.
* *
skipping to change at line 172 skipping to change at line 172
* same ports (etc) which is 100% compatible. */ * same ports (etc) which is 100% compatible. */
const char * URI; const char * URI;
/** Function pointer that instantiates a plugin. /** Function pointer that instantiates a plugin.
* *
* A handle is returned indicating the new plugin instance. The * A handle is returned indicating the new plugin instance. The
* instantiation function accepts a sample rate as a parameter as we ll * instantiation function accepts a sample rate as a parameter as we ll
* as the plugin descriptor from which this instantiate function was * as the plugin descriptor from which this instantiate function was
* found. This function must return NULL if instantiation fails. * found. This function must return NULL if instantiation fails.
* *
* BundlePath is a string of the path to the LV2 bundle which contai ns * bundle_path is a string of the path to the LV2 bundle which conta ins
* this plugin binary. It MUST include the trailing directory separ ator * this plugin binary. It MUST include the trailing directory separ ator
* (e.g. '/') so that BundlePath + filename gives the path to a file * (e.g. '/') so that BundlePath + filename gives the path to a file
* in the bundle. * in the bundle.
* *
* HostFeatures is a NULL terminated array of the URIs of the LV2 * features is a NULL terminated array of LV2_Feature structs which
* features that the host supports. Plugins may refuse to instantiat * represent the features the host supports. Plugins may refuse to
e * instantiate if required features are not found here (however host
* if required features are not found here (however hosts SHOULD NOT s
use * SHOULD NOT use this as a discovery mechanism, instead reading the
* this as a discovery mechanism, instead reading the data file befo * data file before attempting to instantiate the plugin). This arr
re ay
* attempting to instantiate the plugin). This array must always ex * must always exist; if a host has no features, it MUST pass a sing
ist; le
* if a host has no features, it MUST pass a single element array * element array containing NULL (to simplify plugins).
* containing NULL (to simplify plugins).
* *
* Note that instance initialisation should generally occur in * Note that instance initialisation should generally occur in
* activate() rather than here. If a host calls instantiate, it MUS T * activate() rather than here. If a host calls instantiate, it MUS T
* call cleanup() at some point in the future. */ * call cleanup() at some point in the future. */
LV2_Handle (*instantiate)(const struct _LV2_Descriptor * descriptor, LV2_Handle (*instantiate)(const struct _LV2_Descriptor * descriptor,
double sample_rate , double sample_rate ,
const char * bundle_path , const char * bundle_path ,
const LV2_Feature *const * features); const LV2_Feature *const * features);
/** Function pointer that connects a port on a plugin instance to a memory /** Function pointer that connects a port on a plugin instance to a memory
skipping to change at line 271 skipping to change at line 271
* *
* Note that if an activate() function exists then it must be called * Note that if an activate() function exists then it must be called
* before run(). If deactivate() is called for a plugin instance the n * before run(). If deactivate() is called for a plugin instance the n
* the plugin instance may not be reused until activate() has been * the plugin instance may not be reused until activate() has been
* called again. * called again.
* *
* If the plugin has the feature lv2:hardRTCapable then there are * If the plugin has the feature lv2:hardRTCapable then there are
* various things that the plugin MUST NOT do within the run() * various things that the plugin MUST NOT do within the run()
* function (see lv2.ttl). */ * function (see lv2.ttl). */
void (*run)(LV2_Handle instance, void (*run)(LV2_Handle instance,
uint32_t sampleCount); uint32_t sample_count);
/** This is the counterpart to activate() (see above). If there is /** This is the counterpart to activate() (see above). If there is
* nothing for deactivate() to do then the plugin writer may provide * nothing for deactivate() to do then the plugin writer may provide
* a NULL rather than an empty function. * a NULL rather than an empty function.
* *
* Hosts must deactivate all activated units after they have been ru n() * Hosts must deactivate all activated units after they have been ru n()
* for the last time. This call SHOULD be made as close to the last * for the last time. This call SHOULD be made as close to the last
* run() call as possible and indicates to real-time plugins that * run() call as possible and indicates to real-time plugins that
* they are no longer live, however plugins MUST NOT rely on prompt * they are no longer live, however plugins MUST NOT rely on prompt
* deactivation. Note that connect_port() may be called before or * deactivation. Note that connect_port() may be called before or
 End of changes. 5 change blocks. 
15 lines changed or deleted 14 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/