Chris@1: Chris@1: Chris@1: Chris@1: Chris@3: Chris@6: Chris@6: Chris@1: VampPluginSDK: vamp.h File Reference Chris@1: Chris@6: Chris@6: Chris@1: Chris@1: Chris@6: Chris@1: Chris@1: Chris@6: Chris@1: Chris@1: Chris@6:
Chris@1:
Chris@1: Chris@1: Chris@1: Chris@6: Chris@1: Chris@1: Chris@1:
Chris@1:
VampPluginSDK Chris@6:  2.7 Chris@1:
Chris@1:
Chris@1:
Chris@6: Chris@6: Chris@6: Chris@6: Chris@6: Chris@6: Chris@6:
Chris@1:
Chris@1: Chris@1:
Chris@1:
Chris@1:
Chris@1: Chris@1:
Chris@1:
Chris@1:
Chris@1: Classes | Chris@6: Macros | Chris@1: Typedefs | Chris@1: Enumerations | Chris@1: Functions
Chris@1:
Chris@1:
vamp.h File Reference
Chris@3:
Chris@1:
Chris@6:
Chris@6: This graph shows which files directly or indirectly include this file:
Chris@6:
Chris@6:
Chris@6: Chris@6: Chris@6: Chris@6: Chris@6: Chris@6: Chris@6: Chris@6: Chris@6:
Chris@6:
Chris@1:

Go to the source code of this file.

Chris@1: Chris@6: Chris@3: Chris@6: Chris@6: Chris@3: Chris@6: Chris@3: Chris@6: Chris@3: Chris@6: Chris@3: Chris@6: Chris@3: Chris@6: Chris@3: Chris@6: Chris@6:

Chris@1: Classes

struct  _VampParameterDescriptor
 C language API for Vamp plugins. More...
 
struct  _VampOutputDescriptor
 
struct  _VampFeature
 
struct  _VampFeatureV2
 
union  _VampFeatureUnion
 
struct  _VampFeatureList
 
struct  _VampPluginDescriptor
 
Chris@6: Chris@3: Chris@6: Chris@6: Chris@6:

Chris@6: Macros

#define VAMP_API_VERSION   2
 Plugin API version. More...
 
Chris@6: Chris@6: Chris@6: Chris@6: Chris@6: Chris@6: Chris@3: Chris@6: Chris@3: Chris@6: Chris@3: Chris@6: Chris@3: Chris@6: Chris@3: Chris@6: Chris@6: Chris@6: Chris@6: Chris@6: Chris@6: Chris@6:

Chris@1: Typedefs

typedef struct _VampParameterDescriptor VampParameterDescriptor
 C language API for Vamp plugins. More...
 
typedef struct _VampOutputDescriptor VampOutputDescriptor
 
typedef struct _VampFeature VampFeature
 
typedef struct _VampFeatureV2 VampFeatureV2
 
typedef union _VampFeatureUnion VampFeatureUnion
 
typedef struct _VampFeatureList VampFeatureList
 
typedef void * VampPluginHandle
 
typedef struct _VampPluginDescriptor VampPluginDescriptor
 
typedef const VampPluginDescriptor *(* VampGetPluginDescriptorFunction) (unsigned int, unsigned int)
 Function pointer type for vampGetPluginDescriptor. More...
 
Chris@6: Chris@3: Chris@6: Chris@3: Chris@6: Chris@6:

Chris@1: Enumerations

enum  VampSampleType { vampOneSamplePerStep, Chris@1: vampFixedSampleRate, Chris@1: vampVariableSampleRate Chris@1: }
 
enum  VampInputDomain { vampTimeDomain, Chris@1: vampFrequencyDomain Chris@1: }
 
Chris@6: Chris@3: Chris@6: Chris@6: Chris@1:

Chris@1: Functions

const VampPluginDescriptorvampGetPluginDescriptor (unsigned int hostApiVersion, unsigned int index)
 Get the descriptor for a given plugin index in this library. More...
 
Chris@6:

Macro Definition Documentation

Chris@6: Chris@6:

◆ VAMP_API_VERSION

Chris@6: Chris@1:
Chris@1:
Chris@1: Chris@1: Chris@6: Chris@1: Chris@1:
#define VAMP_API_VERSION   2
Chris@6:
Chris@1: Chris@1:

Plugin API version.

Chris@1:

This is incremented when a change is made that changes the binary layout of the descriptor records. When this happens, there should be a mechanism for retaining compatibility with older hosts and/or plugins.

Chris@1:

See also the vampApiVersion field in the plugin descriptor, and the hostApiVersion argument to the vampGetPluginDescriptor function.

Chris@1: Chris@6:

Definition at line 53 of file vamp.h.

Chris@1: Chris@6:

Referenced by main().

Chris@1: Chris@1:
Chris@1:
Chris@6:

Typedef Documentation

Chris@6: Chris@6:

◆ VampParameterDescriptor

Chris@6: Chris@1:
Chris@1:
Chris@1: Chris@1: Chris@1: Chris@1: Chris@1:
typedef struct _VampParameterDescriptor VampParameterDescriptor
Chris@6:
Chris@1: Chris@1:

C language API for Vamp plugins.

Chris@1:

This is the formal plugin API for Vamp. Plugin authors may prefer to use the C++ classes provided in the Vamp plugin SDK, instead of using this API directly. There is an adapter class provided that makes C++ plugins available using this C API with relatively little work, and the C++ headers are more thoroughly documented.

Chris@1:

IMPORTANT: The comments in this file summarise the purpose of each of the declared fields and functions, but do not provide a complete guide to their permitted values and expected usage. Please refer to the C++ headers in the Vamp plugin SDK for further details and plugin lifecycle documentation.

Chris@1: Chris@1:
Chris@1:
Chris@6: Chris@6:

◆ VampOutputDescriptor

Chris@6: Chris@1:
Chris@1:
Chris@1: Chris@1: Chris@1: Chris@1: Chris@1:
typedef struct _VampOutputDescriptor VampOutputDescriptor
Chris@6:
Chris@1: Chris@1:
Chris@1:
Chris@6: Chris@6:

◆ VampFeature

Chris@6: Chris@1:
Chris@1:
Chris@1: Chris@1: Chris@1: Chris@1: Chris@1:
typedef struct _VampFeature VampFeature
Chris@6:
Chris@1: Chris@1:
Chris@1:
Chris@6: Chris@6:

◆ VampFeatureV2

Chris@6: Chris@1:
Chris@1:
Chris@1: Chris@1: Chris@1: Chris@1: Chris@1:
typedef struct _VampFeatureV2 VampFeatureV2
Chris@6:
Chris@1: Chris@1:
Chris@1:
Chris@6: Chris@6:

◆ VampFeatureUnion

Chris@6: Chris@1:
Chris@1:
Chris@1: Chris@1: Chris@1: Chris@1: Chris@1:
typedef union _VampFeatureUnion VampFeatureUnion
Chris@6:
Chris@1: Chris@1:
Chris@1:
Chris@6: Chris@6:

◆ VampFeatureList

Chris@6: Chris@1:
Chris@1:
Chris@1: Chris@1: Chris@1: Chris@1: Chris@1:
typedef struct _VampFeatureList VampFeatureList
Chris@6:
Chris@1: Chris@1:
Chris@1:
Chris@6: Chris@6:

◆ VampPluginHandle

Chris@6: Chris@1:
Chris@1:
Chris@1: Chris@1: Chris@1: Chris@1: Chris@1:
typedef void* VampPluginHandle
Chris@6:
Chris@1: Chris@6:

Definition at line 246 of file vamp.h.

Chris@1: Chris@1:
Chris@1:
Chris@6: Chris@6:

◆ VampPluginDescriptor

Chris@6: Chris@1:
Chris@1:
Chris@1: Chris@1: Chris@1: Chris@1: Chris@1:
typedef struct _VampPluginDescriptor VampPluginDescriptor
Chris@6:
Chris@1: Chris@1:
Chris@1:
Chris@6: Chris@6:

◆ VampGetPluginDescriptorFunction

Chris@6: Chris@1:
Chris@1:
Chris@1: Chris@1: Chris@6: Chris@1: Chris@1:
typedef const VampPluginDescriptor*(* VampGetPluginDescriptorFunction) (unsigned int, unsigned int)
Chris@6:
Chris@1: Chris@1:

Function pointer type for vampGetPluginDescriptor.

Chris@1: Chris@6:

Definition at line 382 of file vamp.h.

Chris@1: Chris@1:
Chris@1:
Chris@6:

Enumeration Type Documentation

Chris@6: Chris@6:

◆ VampSampleType

Chris@6: Chris@1:
Chris@1:
Chris@1: Chris@1: Chris@1: Chris@1: Chris@1:
enum VampSampleType
Chris@6:
Chris@6: Chris@6: Chris@6: Chris@6: Chris@1:
Enumerator
vampOneSamplePerStep 

Each process call returns results aligned with call's block start.

Chris@1:
vampFixedSampleRate 

Returned results are evenly spaced at samplerate specified below.

Chris@1:
vampVariableSampleRate 

Returned results have their own individual timestamps.

Chris@1:
Chris@1: Chris@6:

Definition at line 105 of file vamp.h.

Chris@1: Chris@1:
Chris@1:
Chris@6: Chris@6:

◆ VampInputDomain

Chris@6: Chris@1:
Chris@1:
Chris@1: Chris@1: Chris@1: Chris@1: Chris@1:
enum VampInputDomain
Chris@6:
Chris@6: Chris@6: Chris@6: Chris@1:
Enumerator
vampTimeDomain 
vampFrequencyDomain 
Chris@1: Chris@6:

Definition at line 239 of file vamp.h.

Chris@1: Chris@1:
Chris@1:
Chris@6:

Function Documentation

Chris@6: Chris@6:

◆ vampGetPluginDescriptor()

Chris@6: Chris@1:
Chris@1:
Chris@1: Chris@1: Chris@6: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1: Chris@1:
const VampPluginDescriptor* vampGetPluginDescriptor (unsigned int hostApiVersion,
unsigned int index 
)
Chris@6:
Chris@1: Chris@1:

Get the descriptor for a given plugin index in this library.

Chris@1:

Return NULL if the index is outside the range of valid indices for this plugin library.

Chris@1:

The hostApiVersion argument tells the library code the highest Vamp API version supported by the host. The function should return a plugin descriptor compatible with the highest API version supported by the library that is no higher than that supported by the host. Provided the descriptor has the correct vampApiVersion field for its actual compatibility level, the host should be able to do the right thing with it: use it if possible, discard it otherwise.

Chris@1:

This is the only symbol that a Vamp plugin actually needs to export from its shared object; all others can be hidden. See the accompanying documentation for notes on how to achieve this with certain compilers.

Chris@1: Chris@6:

Definition at line 54 of file plugins.cpp.

Chris@1: Chris@6:

References Vamp::PluginAdapterBase::getDescriptor().

Chris@1: Chris@1:
Chris@1:
Chris@3:
Chris@6:
Chris@6: Chris@6: Chris@1: Chris@1: