Mercurial > hg > vamp-website
view code-doc/vamp_8h.html @ 35:0976232e353b website
* Update for 2.1 release; add wiki link
author | cannam |
---|---|
date | Fri, 25 Sep 2009 15:40:18 +0000 |
parents | cc0be37dc9d3 |
children | 8260c0f4e05b |
line wrap: on
line source
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>VampPluginSDK: vamp.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.8 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="dir_b086eb10f854304ab96fb3af468374a7.html">vamp</a> </div> </div> <div class="contents"> <h1>vamp.h File Reference</h1> <p> <a href="vamp_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampParameterDescriptor.html">_VampParameterDescriptor</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">C language API for <a class="el" href="namespaceVamp.html">Vamp</a> plugins. <a href="struct__VampParameterDescriptor.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampFeature.html">_VampFeature</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampFeatureV2.html">_VampFeatureV2</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">union </td><td class="memItemRight" valign="bottom"><a class="el" href="union__VampFeatureUnion.html">_VampFeatureUnion</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampFeatureList.html">_VampFeatureList</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a></td></tr> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#6d6c8c755dbabf161f72712e0e2143c7">VAMP_API_VERSION</a> 2</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Plugin API version. <a href="#6d6c8c755dbabf161f72712e0e2143c7"></a><br></td></tr> <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br class="typebreak"> <a class="el" href="struct__VampParameterDescriptor.html">_VampParameterDescriptor</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#e26a9d54a92f1c083a1b209a25a8e44e">VampParameterDescriptor</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">C language API for <a class="el" href="namespaceVamp.html">Vamp</a> plugins. <a href="#e26a9d54a92f1c083a1b209a25a8e44e"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br class="typebreak"> <a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#a8429dd9c60d65800c58574c2b06bf66">VampOutputDescriptor</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__VampFeature.html">_VampFeature</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#8d04355c13e5ff7a146abcb168cb919f">VampFeature</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__VampFeatureV2.html">_VampFeatureV2</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#41cb3518127d0971b1d2c8edfbbe2763">VampFeatureV2</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef union <a class="el" href="union__VampFeatureUnion.html">_VampFeatureUnion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#2517349f1c97e0c59faab6085e092fcd">VampFeatureUnion</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__VampFeatureList.html">_VampFeatureList</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#5f257e3f8b5ca1ca4c159d486e219078">VampFeatureList</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void * </td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br class="typebreak"> <a class="el" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#a1d6e0792099b9516a89b5fb7ed2ad2b">VampPluginDescriptor</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef const <br class="typebreak"> <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *(* </td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#551bb7e0d8c970c2202be5f881817478">VampGetPluginDescriptorFunction</a> )(unsigned int, unsigned int)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Function pointer type for vampGetPluginDescriptor. <a href="#551bb7e0d8c970c2202be5f881817478"></a><br></td></tr> <tr><td colspan="2"><br><h2>Enumerations</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum </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>, <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821afc8a05f722bc83ecce227e12e838cf8">vampFixedSampleRate</a>, <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821bae8a21a9e30eb73e16d6abc6c7415e8">vampVariableSampleRate</a> }</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum </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>, <a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d">vampFrequencyDomain</a> }</td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#50cf6f17d0718f02093be6c7f63fcf30">vampGetPluginDescriptor</a> (unsigned int hostApiVersion, unsigned int index)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the descriptor for a given plugin index in this library. <a href="#50cf6f17d0718f02093be6c7f63fcf30"></a><br></td></tr> </table> <hr><h2>Define Documentation</h2> <a class="anchor" name="6d6c8c755dbabf161f72712e0e2143c7"></a><!-- doxytag: member="vamp.h::VAMP_API_VERSION" ref="6d6c8c755dbabf161f72712e0e2143c7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VAMP_API_VERSION 2 </td> </tr> </table> </div> <div class="memdoc"> <p> Plugin API version. <p> 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> See also the vampApiVersion field in the plugin descriptor, and the hostApiVersion argument to the vampGetPluginDescriptor function. <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> <p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00137">main()</a>.</p> </div> </div><p> <hr><h2>Typedef Documentation</h2> <a class="anchor" name="e26a9d54a92f1c083a1b209a25a8e44e"></a><!-- doxytag: member="vamp.h::VampParameterDescriptor" ref="e26a9d54a92f1c083a1b209a25a8e44e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="struct__VampParameterDescriptor.html">_VampParameterDescriptor</a> <a class="el" href="struct__VampParameterDescriptor.html">VampParameterDescriptor</a> </td> </tr> </table> </div> <div class="memdoc"> <p> C language API for <a class="el" href="namespaceVamp.html">Vamp</a> plugins. <p> This is the formal plugin API for <a class="el" href="namespaceVamp.html">Vamp</a>. Plugin authors may prefer to use the C++ classes provided in the <a class="el" href="namespaceVamp.html">Vamp</a> 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.<p> 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 <a class="el" href="namespaceVamp.html">Vamp</a> plugin SDK for further details and plugin lifecycle documentation. </div> </div><p> <a class="anchor" name="a8429dd9c60d65800c58574c2b06bf66"></a><!-- doxytag: member="vamp.h::VampOutputDescriptor" ref="a8429dd9c60d65800c58574c2b06bf66" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a> <a class="el" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="8d04355c13e5ff7a146abcb168cb919f"></a><!-- doxytag: member="vamp.h::VampFeature" ref="8d04355c13e5ff7a146abcb168cb919f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="struct__VampFeature.html">_VampFeature</a> <a class="el" href="struct__VampFeature.html">VampFeature</a> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="41cb3518127d0971b1d2c8edfbbe2763"></a><!-- doxytag: member="vamp.h::VampFeatureV2" ref="41cb3518127d0971b1d2c8edfbbe2763" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="struct__VampFeatureV2.html">_VampFeatureV2</a> <a class="el" href="struct__VampFeatureV2.html">VampFeatureV2</a> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="2517349f1c97e0c59faab6085e092fcd"></a><!-- doxytag: member="vamp.h::VampFeatureUnion" ref="2517349f1c97e0c59faab6085e092fcd" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef union <a class="el" href="union__VampFeatureUnion.html">_VampFeatureUnion</a> <a class="el" href="union__VampFeatureUnion.html">VampFeatureUnion</a> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="5f257e3f8b5ca1ca4c159d486e219078"></a><!-- doxytag: member="vamp.h::VampFeatureList" ref="5f257e3f8b5ca1ca4c159d486e219078" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="struct__VampFeatureList.html">_VampFeatureList</a> <a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="d3be2952b1f4ad7d775940a6db75c79b"></a><!-- doxytag: member="vamp.h::VampPluginHandle" ref="d3be2952b1f4ad7d775940a6db75c79b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void* <a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="vamp_8h-source.html#l00246">246</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p> </div> </div><p> <a class="anchor" name="a1d6e0792099b9516a89b5fb7ed2ad2b"></a><!-- doxytag: member="vamp.h::VampPluginDescriptor" ref="a1d6e0792099b9516a89b5fb7ed2ad2b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a> <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="551bb7e0d8c970c2202be5f881817478"></a><!-- doxytag: member="vamp.h::VampGetPluginDescriptorFunction" ref="551bb7e0d8c970c2202be5f881817478" args=")(unsigned int, unsigned int)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <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> </tr> </table> </div> <div class="memdoc"> <p> Function pointer type for vampGetPluginDescriptor. <p> <p>Definition at line <a class="el" href="vamp_8h-source.html#l00382">382</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p> </div> </div><p> <hr><h2>Enumeration Type Documentation</h2> <a class="anchor" name="a24a8cee023d8b7659d25cbe0584b821"></a><!-- doxytag: member="vamp.h::VampSampleType" ref="a24a8cee023d8b7659d25cbe0584b821" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821">VampSampleType</a> </td> </tr> </table> </div> <div class="memdoc"> <p> <dl compact><dt><b>Enumerator: </b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" name="a24a8cee023d8b7659d25cbe0584b821b546deafd57f175fb1e7f9cbea1c5113"></a><!-- doxytag: member="vampOneSamplePerStep" ref="a24a8cee023d8b7659d25cbe0584b821b546deafd57f175fb1e7f9cbea1c5113" args="" -->vampOneSamplePerStep</em> </td><td> Each process call returns results aligned with call's block start. <p> </td></tr> <tr><td valign="top"><em><a class="anchor" name="a24a8cee023d8b7659d25cbe0584b821afc8a05f722bc83ecce227e12e838cf8"></a><!-- doxytag: member="vampFixedSampleRate" ref="a24a8cee023d8b7659d25cbe0584b821afc8a05f722bc83ecce227e12e838cf8" args="" -->vampFixedSampleRate</em> </td><td> Returned results are evenly spaced at samplerate specified below. <p> </td></tr> <tr><td valign="top"><em><a class="anchor" name="a24a8cee023d8b7659d25cbe0584b821bae8a21a9e30eb73e16d6abc6c7415e8"></a><!-- doxytag: member="vampVariableSampleRate" ref="a24a8cee023d8b7659d25cbe0584b821bae8a21a9e30eb73e16d6abc6c7415e8" args="" -->vampVariableSampleRate</em> </td><td> Returned results have their own individual timestamps. <p> </td></tr> </table> </dl> <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> </div> </div><p> <a class="anchor" name="b107386a5f042feddf6446bea23bb765"></a><!-- doxytag: member="vamp.h::VampInputDomain" ref="b107386a5f042feddf6446bea23bb765" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765">VampInputDomain</a> </td> </tr> </table> </div> <div class="memdoc"> <p> <dl compact><dt><b>Enumerator: </b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" name="b107386a5f042feddf6446bea23bb765e3dbb77ff3e8f292966fd3748888e1a1"></a><!-- doxytag: member="vampTimeDomain" ref="b107386a5f042feddf6446bea23bb765e3dbb77ff3e8f292966fd3748888e1a1" args="" -->vampTimeDomain</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d"></a><!-- doxytag: member="vampFrequencyDomain" ref="b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d" args="" -->vampFrequencyDomain</em> </td><td> </td></tr> </table> </dl> <p>Definition at line <a class="el" href="vamp_8h-source.html#l00239">239</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p> </div> </div><p> <hr><h2>Function Documentation</h2> <a class="anchor" name="50cf6f17d0718f02093be6c7f63fcf30"></a><!-- doxytag: member="vamp.h::vampGetPluginDescriptor" ref="50cf6f17d0718f02093be6c7f63fcf30" args="(unsigned int hostApiVersion, unsigned int index)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a>* vampGetPluginDescriptor </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>hostApiVersion</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>index</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Get the descriptor for a given plugin index in this library. <p> Return NULL if the index is outside the range of valid indices for this plugin library.<p> The hostApiVersion argument tells the library code the highest <a class="el" href="namespaceVamp.html">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> This is the only symbol that a <a class="el" href="namespaceVamp.html">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. <p>Definition at line <a class="el" href="plugins_8cpp-source.html#l00054">54</a> of file <a class="el" href="plugins_8cpp-source.html">plugins.cpp</a>.</p> <p>References <a class="el" href="classVamp_1_1PluginAdapterBase.html#d24595002512f9f00e8e45216d6f5dfb">Vamp::PluginAdapterBase::getDescriptor()</a>.</p> </div> </div><p> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Thu Sep 24 13:40:13 2009 for VampPluginSDK by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address> </body> </html>