VampPluginSDK
2.4
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
#include "
plugguard.h
"
44
_VAMP_SDK_PLUGSPACE_BEGIN
(PluginBase.h)
45
46
namespace Vamp {
47
60
class
PluginBase
61
{
62
public
:
63
virtual
~PluginBase
() { }
64
68
virtual
unsigned
int
getVampApiVersion
()
const
{
return
2; }
69
83
virtual
std::string getIdentifier()
const
= 0;
84
93
virtual
std::string getName()
const
= 0;
94
103
virtual
std::string getDescription()
const
= 0;
104
111
virtual
std::string getMaker()
const
= 0;
112
118
virtual
std::string getCopyright()
const
= 0;
119
123
virtual
int
getPluginVersion()
const
= 0;
124
125
126
struct
ParameterDescriptor
127
{
133
std::string
identifier
;
134
138
std::string
name
;
139
144
std::string
description
;
145
149
std::string
unit
;
150
154
float
minValue
;
155
159
float
maxValue
;
160
167
float
defaultValue
;
168
173
bool
isQuantized
;
174
180
float
quantizeStep
;
181
193
std::vector<std::string>
valueNames
;
194
195
ParameterDescriptor
() :
// the defaults are invalid: you must set them
196
minValue(0), maxValue(0), defaultValue(0), isQuantized(false) { }
197
};
198
199
typedef
std::vector<ParameterDescriptor>
ParameterList
;
200
204
virtual
ParameterList
getParameterDescriptors
()
const
{
205
return
ParameterList
();
206
}
207
212
virtual
float
getParameter
(std::string)
const
{
return
0.0; }
213
218
virtual
void
setParameter
(std::string,
float
) { }
219
220
221
typedef
std::vector<std::string>
ProgramList
;
222
233
virtual
ProgramList
getPrograms
()
const
{
return
ProgramList
(); }
234
238
virtual
std::string
getCurrentProgram
()
const
{
return
""
; }
239
244
virtual
void
selectProgram
(std::string) { }
245
251
virtual
std::string getType()
const
= 0;
252
};
253
254
}
255
256
_VAMP_SDK_PLUGSPACE_END
(PluginBase.h)
257
258
#endif
vamp-sdk
PluginBase.h
Generated on Tue Nov 13 2012 17:33:11 for VampPluginSDK by
1.8.1.2