Mercurial > hg > vamp-website
view 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 |
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="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.5 --> <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="navpath"><a class="el" href="dir_b086eb10f854304ab96fb3af468374a7.html">vamp</a> </div> </div> <div class="contents"> <h1>vamp.h File Reference</h1> <p> <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" 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> <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__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> 1</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> <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="memItemLeft" nowrap align="right" valign="top">typedef struct <br> <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__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> <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> <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 1 </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="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> </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> </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="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#l00204">204</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#l00340">340</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#l00197">197</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 width="100%"></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" 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> 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. <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> <p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00138">Vamp::PluginAdapterBase::getDescriptor()</a>.</p> </div> </div><p> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address> </body> </html>