comparison code-doc/vamp_8h.html @ 0:351c4ebce5f9 website

* Move website from vamp-website/trunk to plain website
author cannam
date Mon, 22 Sep 2008 13:01:46 +0000
parents
children cc0be37dc9d3
comparison
equal deleted inserted replaced
-1:000000000000 0:351c4ebce5f9
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3 <title>VampPluginSDK: vamp.h File Reference</title>
4 <link href="doxygen.css" rel="stylesheet" type="text/css">
5 <link href="tabs.css" rel="stylesheet" type="text/css">
6 </head><body>
7 <!-- Generated by Doxygen 1.5.5 -->
8 <div class="navigation" id="top">
9 <div class="tabs">
10 <ul>
11 <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
12 <li><a href="namespaces.html"><span>Namespaces</span></a></li>
13 <li><a href="annotated.html"><span>Classes</span></a></li>
14 <li class="current"><a href="files.html"><span>Files</span></a></li>
15 <li><a href="dirs.html"><span>Directories</span></a></li>
16 </ul>
17 </div>
18 <div class="navpath"><a class="el" href="dir_b086eb10f854304ab96fb3af468374a7.html">vamp</a>
19 </div>
20 </div>
21 <div class="contents">
22 <h1>vamp.h File Reference</h1>
23 <p>
24
25 <p>
26 <a href="vamp_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
27 <tr><td></td></tr>
28 <tr><td colspan="2"><br><h2>Classes</h2></td></tr>
29 <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampParameterDescriptor.html">_VampParameterDescriptor</a></td></tr>
30
31 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">C language API for <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> plugins. <a href="struct__VampParameterDescriptor.html#_details">More...</a><br></td></tr>
32 <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a></td></tr>
33
34 <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampFeature.html">_VampFeature</a></td></tr>
35
36 <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampFeatureList.html">_VampFeatureList</a></td></tr>
37
38 <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a></td></tr>
39
40 <tr><td colspan="2"><br><h2>Defines</h2></td></tr>
41 <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#6d6c8c755dbabf161f72712e0e2143c7">VAMP_API_VERSION</a>&nbsp;&nbsp;&nbsp;1</td></tr>
42
43 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Plugin API version. <a href="#6d6c8c755dbabf161f72712e0e2143c7"></a><br></td></tr>
44 <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
45 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
46 <a class="el" href="struct__VampParameterDescriptor.html">_VampParameterDescriptor</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#e26a9d54a92f1c083a1b209a25a8e44e">VampParameterDescriptor</a></td></tr>
47
48 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
49 <a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#a8429dd9c60d65800c58574c2b06bf66">VampOutputDescriptor</a></td></tr>
50
51 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__VampFeature.html">_VampFeature</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#8d04355c13e5ff7a146abcb168cb919f">VampFeature</a></td></tr>
52
53 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__VampFeatureList.html">_VampFeatureList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#5f257e3f8b5ca1ca4c159d486e219078">VampFeatureList</a></td></tr>
54
55 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a></td></tr>
56
57 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
58 <a class="el" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#a1d6e0792099b9516a89b5fb7ed2ad2b">VampPluginDescriptor</a></td></tr>
59
60 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef const <br>
61 <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#551bb7e0d8c970c2202be5f881817478">VampGetPluginDescriptorFunction</a> )(unsigned int, unsigned int)</td></tr>
62
63 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Function pointer type for vampGetPluginDescriptor. <a href="#551bb7e0d8c970c2202be5f881817478"></a><br></td></tr>
64 <tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
65 <tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821">VampSampleType</a> { <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821b546deafd57f175fb1e7f9cbea1c5113">vampOneSamplePerStep</a>,
66 <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821afc8a05f722bc83ecce227e12e838cf8">vampFixedSampleRate</a>,
67 <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821bae8a21a9e30eb73e16d6abc6c7415e8">vampVariableSampleRate</a>
68 }</td></tr>
69
70 <tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765">VampInputDomain</a> { <a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765e3dbb77ff3e8f292966fd3748888e1a1">vampTimeDomain</a>,
71 <a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d">vampFrequencyDomain</a>
72 }</td></tr>
73
74 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
75 <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#50cf6f17d0718f02093be6c7f63fcf30">vampGetPluginDescriptor</a> (unsigned int hostApiVersion, unsigned int index)</td></tr>
76
77 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the descriptor for a given plugin index in this library. <a href="#50cf6f17d0718f02093be6c7f63fcf30"></a><br></td></tr>
78 </table>
79 <hr><h2>Define Documentation</h2>
80 <a class="anchor" name="6d6c8c755dbabf161f72712e0e2143c7"></a><!-- doxytag: member="vamp.h::VAMP_API_VERSION" ref="6d6c8c755dbabf161f72712e0e2143c7" args="" -->
81 <div class="memitem">
82 <div class="memproto">
83 <table class="memname">
84 <tr>
85 <td class="memname">#define VAMP_API_VERSION&nbsp;&nbsp;&nbsp;1 </td>
86 </tr>
87 </table>
88 </div>
89 <div class="memdoc">
90
91 <p>
92 Plugin API version.
93 <p>
94 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.<p>
95 See also the vampApiVersion field in the plugin descriptor, and the hostApiVersion argument to the vampGetPluginDescriptor function.
96 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00053">53</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
97
98 <p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00226">Vamp::HostExt::PluginLoader::Impl::enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00355">Vamp::HostExt::PluginLoader::Impl::loadPlugin()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">main()</a>.</p>
99
100 </div>
101 </div><p>
102 <hr><h2>Typedef Documentation</h2>
103 <a class="anchor" name="e26a9d54a92f1c083a1b209a25a8e44e"></a><!-- doxytag: member="vamp.h::VampParameterDescriptor" ref="e26a9d54a92f1c083a1b209a25a8e44e" args="" -->
104 <div class="memitem">
105 <div class="memproto">
106 <table class="memname">
107 <tr>
108 <td class="memname">typedef struct <a class="el" href="struct__VampParameterDescriptor.html">_VampParameterDescriptor</a> <a class="el" href="struct__VampParameterDescriptor.html">VampParameterDescriptor</a> </td>
109 </tr>
110 </table>
111 </div>
112 <div class="memdoc">
113
114 <p>
115
116 </div>
117 </div><p>
118 <a class="anchor" name="a8429dd9c60d65800c58574c2b06bf66"></a><!-- doxytag: member="vamp.h::VampOutputDescriptor" ref="a8429dd9c60d65800c58574c2b06bf66" args="" -->
119 <div class="memitem">
120 <div class="memproto">
121 <table class="memname">
122 <tr>
123 <td class="memname">typedef struct <a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a> <a class="el" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> </td>
124 </tr>
125 </table>
126 </div>
127 <div class="memdoc">
128
129 <p>
130
131 </div>
132 </div><p>
133 <a class="anchor" name="8d04355c13e5ff7a146abcb168cb919f"></a><!-- doxytag: member="vamp.h::VampFeature" ref="8d04355c13e5ff7a146abcb168cb919f" args="" -->
134 <div class="memitem">
135 <div class="memproto">
136 <table class="memname">
137 <tr>
138 <td class="memname">typedef struct <a class="el" href="struct__VampFeature.html">_VampFeature</a> <a class="el" href="struct__VampFeature.html">VampFeature</a> </td>
139 </tr>
140 </table>
141 </div>
142 <div class="memdoc">
143
144 <p>
145
146 </div>
147 </div><p>
148 <a class="anchor" name="5f257e3f8b5ca1ca4c159d486e219078"></a><!-- doxytag: member="vamp.h::VampFeatureList" ref="5f257e3f8b5ca1ca4c159d486e219078" args="" -->
149 <div class="memitem">
150 <div class="memproto">
151 <table class="memname">
152 <tr>
153 <td class="memname">typedef struct <a class="el" href="struct__VampFeatureList.html">_VampFeatureList</a> <a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> </td>
154 </tr>
155 </table>
156 </div>
157 <div class="memdoc">
158
159 <p>
160
161 </div>
162 </div><p>
163 <a class="anchor" name="d3be2952b1f4ad7d775940a6db75c79b"></a><!-- doxytag: member="vamp.h::VampPluginHandle" ref="d3be2952b1f4ad7d775940a6db75c79b" args="" -->
164 <div class="memitem">
165 <div class="memproto">
166 <table class="memname">
167 <tr>
168 <td class="memname">typedef void* <a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> </td>
169 </tr>
170 </table>
171 </div>
172 <div class="memdoc">
173
174 <p>
175
176 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00204">204</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
177
178 </div>
179 </div><p>
180 <a class="anchor" name="a1d6e0792099b9516a89b5fb7ed2ad2b"></a><!-- doxytag: member="vamp.h::VampPluginDescriptor" ref="a1d6e0792099b9516a89b5fb7ed2ad2b" args="" -->
181 <div class="memitem">
182 <div class="memproto">
183 <table class="memname">
184 <tr>
185 <td class="memname">typedef struct <a class="el" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a> <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> </td>
186 </tr>
187 </table>
188 </div>
189 <div class="memdoc">
190
191 <p>
192
193 </div>
194 </div><p>
195 <a class="anchor" name="551bb7e0d8c970c2202be5f881817478"></a><!-- doxytag: member="vamp.h::VampGetPluginDescriptorFunction" ref="551bb7e0d8c970c2202be5f881817478" args=")(unsigned int, unsigned int)" -->
196 <div class="memitem">
197 <div class="memproto">
198 <table class="memname">
199 <tr>
200 <td class="memname">typedef const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a>*(* <a class="el" href="vamp_8h.html#551bb7e0d8c970c2202be5f881817478">VampGetPluginDescriptorFunction</a>)(unsigned int, unsigned int) </td>
201 </tr>
202 </table>
203 </div>
204 <div class="memdoc">
205
206 <p>
207 Function pointer type for vampGetPluginDescriptor.
208 <p>
209
210 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00340">340</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
211
212 </div>
213 </div><p>
214 <hr><h2>Enumeration Type Documentation</h2>
215 <a class="anchor" name="a24a8cee023d8b7659d25cbe0584b821"></a><!-- doxytag: member="vamp.h::VampSampleType" ref="a24a8cee023d8b7659d25cbe0584b821" args="" -->
216 <div class="memitem">
217 <div class="memproto">
218 <table class="memname">
219 <tr>
220 <td class="memname">enum <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821">VampSampleType</a> </td>
221 </tr>
222 </table>
223 </div>
224 <div class="memdoc">
225
226 <p>
227 <dl compact><dt><b>Enumerator: </b></dt><dd>
228 <table border="0" cellspacing="2" cellpadding="0">
229 <tr><td valign="top"><em><a class="anchor" name="a24a8cee023d8b7659d25cbe0584b821b546deafd57f175fb1e7f9cbea1c5113"></a><!-- doxytag: member="vampOneSamplePerStep" ref="a24a8cee023d8b7659d25cbe0584b821b546deafd57f175fb1e7f9cbea1c5113" args="" -->vampOneSamplePerStep</em>&nbsp;</td><td>
230 Each process call returns results aligned with call's block start.
231 <p>
232 </td></tr>
233 <tr><td valign="top"><em><a class="anchor" name="a24a8cee023d8b7659d25cbe0584b821afc8a05f722bc83ecce227e12e838cf8"></a><!-- doxytag: member="vampFixedSampleRate" ref="a24a8cee023d8b7659d25cbe0584b821afc8a05f722bc83ecce227e12e838cf8" args="" -->vampFixedSampleRate</em>&nbsp;</td><td>
234 Returned results are evenly spaced at samplerate specified below.
235 <p>
236 </td></tr>
237 <tr><td valign="top"><em><a class="anchor" name="a24a8cee023d8b7659d25cbe0584b821bae8a21a9e30eb73e16d6abc6c7415e8"></a><!-- doxytag: member="vampVariableSampleRate" ref="a24a8cee023d8b7659d25cbe0584b821bae8a21a9e30eb73e16d6abc6c7415e8" args="" -->vampVariableSampleRate</em>&nbsp;</td><td>
238 Returned results have their own individual timestamps.
239 <p>
240 </td></tr>
241 </table>
242 </dl>
243
244 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00105">105</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
245
246 </div>
247 </div><p>
248 <a class="anchor" name="b107386a5f042feddf6446bea23bb765"></a><!-- doxytag: member="vamp.h::VampInputDomain" ref="b107386a5f042feddf6446bea23bb765" args="" -->
249 <div class="memitem">
250 <div class="memproto">
251 <table class="memname">
252 <tr>
253 <td class="memname">enum <a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765">VampInputDomain</a> </td>
254 </tr>
255 </table>
256 </div>
257 <div class="memdoc">
258
259 <p>
260 <dl compact><dt><b>Enumerator: </b></dt><dd>
261 <table border="0" cellspacing="2" cellpadding="0">
262 <tr><td valign="top"><em><a class="anchor" name="b107386a5f042feddf6446bea23bb765e3dbb77ff3e8f292966fd3748888e1a1"></a><!-- doxytag: member="vampTimeDomain" ref="b107386a5f042feddf6446bea23bb765e3dbb77ff3e8f292966fd3748888e1a1" args="" -->vampTimeDomain</em>&nbsp;</td><td>
263 </td></tr>
264 <tr><td valign="top"><em><a class="anchor" name="b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d"></a><!-- doxytag: member="vampFrequencyDomain" ref="b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d" args="" -->vampFrequencyDomain</em>&nbsp;</td><td>
265 </td></tr>
266 </table>
267 </dl>
268
269 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00197">197</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
270
271 </div>
272 </div><p>
273 <hr><h2>Function Documentation</h2>
274 <a class="anchor" name="50cf6f17d0718f02093be6c7f63fcf30"></a><!-- doxytag: member="vamp.h::vampGetPluginDescriptor" ref="50cf6f17d0718f02093be6c7f63fcf30" args="(unsigned int hostApiVersion, unsigned int index)" -->
275 <div class="memitem">
276 <div class="memproto">
277 <table class="memname">
278 <tr>
279 <td class="memname">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a>* vampGetPluginDescriptor </td>
280 <td>(</td>
281 <td class="paramtype">unsigned int&nbsp;</td>
282 <td class="paramname"> <em>hostApiVersion</em>, </td>
283 </tr>
284 <tr>
285 <td class="paramkey"></td>
286 <td></td>
287 <td class="paramtype">unsigned int&nbsp;</td>
288 <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
289 </tr>
290 <tr>
291 <td></td>
292 <td>)</td>
293 <td></td><td></td><td width="100%"></td>
294 </tr>
295 </table>
296 </div>
297 <div class="memdoc">
298
299 <p>
300 Get the descriptor for a given plugin index in this library.
301 <p>
302 Return NULL if the index is outside the range of valid indices for this plugin library.<p>
303 The hostApiVersion argument tells the library code the highest <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> 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.<p>
304 This is the only symbol that a <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> 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.
305 <p>Definition at line <a class="el" href="plugins_8cpp-source.html#l00050">50</a> of file <a class="el" href="plugins_8cpp-source.html">plugins.cpp</a>.</p>
306
307 <p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00138">Vamp::PluginAdapterBase::getDescriptor()</a>.</p>
308
309 </div>
310 </div><p>
311 </div>
312 <hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
313 <a href="http://www.doxygen.org/index.html">
314 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
315 </body>
316 </html>