VampPluginSDK
2.1
Main Page
Namespaces
Classes
Files
File List
File Members
vamp-sdk/PluginBase.h
Go to the documentation of this file.
1
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2
3
/*
4
Vamp
5
6
An API for audio analysis and feature extraction plugins.
7
8
Centre for Digital Music, Queen Mary, University of London.
9
Copyright 2006 Chris Cannam.
10
11
Permission is hereby granted, free of charge, to any person
12
obtaining a copy of this software and associated documentation
13
files (the "Software"), to deal in the Software without
14
restriction, including without limitation the rights to use, copy,
15
modify, merge, publish, distribute, sublicense, and/or sell copies
16
of the Software, and to permit persons to whom the Software is
17
furnished to do so, subject to the following conditions:
18
19
The above copyright notice and this permission notice shall be
20
included in all copies or substantial portions of the Software.
21
22
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
26
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
27
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29
30
Except as contained in this notice, the names of the Centre for
31
Digital Music; Queen Mary, University of London; and Chris Cannam
32
shall not be used in advertising or otherwise to promote the sale,
33
use or other dealings in this Software without prior written
34
authorization.
35
*/
36
37
#ifndef _VAMP_SDK_PLUGIN_BASE_H_
38
#define _VAMP_SDK_PLUGIN_BASE_H_
39
40
#include <string>
41
#include <vector>
42
43
#define VAMP_SDK_VERSION "2.0"
44
#define VAMP_SDK_MAJOR_VERSION 2
45
#define VAMP_SDK_MINOR_VERSION 0
46
47
#include "
plugguard.h
"
48
_VAMP_SDK_PLUGSPACE_BEGIN
(PluginBase.h)
49
50
namespace Vamp {
51
64
class
PluginBase
65
{
66
public
:
67
virtual
~PluginBase
() { }
68
72
virtual
unsigned
int
getVampApiVersion
()
const
{
return
2; }
73
87
virtual
std::string getIdentifier()
const
= 0;
88
97
virtual
std::string getName()
const
= 0;
98
107
virtual
std::string getDescription()
const
= 0;
108
115
virtual
std::string getMaker()
const
= 0;
116
122
virtual
std::string getCopyright()
const
= 0;
123
127
virtual
int
getPluginVersion()
const
= 0;
128
129
130
struct
ParameterDescriptor
131
{
137
std::string
identifier
;
138
142
std::string
name
;
143
148
std::string
description
;
149
153
std::string
unit
;
154
158
float
minValue
;
159
163
float
maxValue
;
164
171
float
defaultValue
;
172
177
bool
isQuantized
;
178
184
float
quantizeStep
;
185
197
std::vector<std::string>
valueNames
;
198
199
ParameterDescriptor
() :
// the defaults are invalid: you must set them
200
minValue(0), maxValue(0), defaultValue(0), isQuantized(false) { }
201
};
202
203
typedef
std::vector<ParameterDescriptor>
ParameterList
;
204
208
virtual
ParameterList
getParameterDescriptors
()
const
{
209
return
ParameterList
();
210
}
211
216
virtual
float
getParameter
(std::string)
const
{
return
0.0; }
217
222
virtual
void
setParameter
(std::string,
float
) { }
223
224
225
typedef
std::vector<std::string>
ProgramList
;
226
237
virtual
ProgramList
getPrograms
()
const
{
return
ProgramList
(); }
238
242
virtual
std::string
getCurrentProgram
()
const
{
return
""
; }
243
248
virtual
void
selectProgram
(std::string) { }
249
255
virtual
std::string getType()
const
= 0;
256
};
257
258
}
259
260
_VAMP_SDK_PLUGSPACE_END
(PluginBase.h)
261
262
#endif
vamp-sdk
PluginBase.h
Generated on Thu Nov 21 2013 22:36:43 for VampPluginSDK by
1.8.1.2