changeset 21:cc0be37dc9d3 website

* Updates for 2.0
author cannam
date Tue, 09 Dec 2008 11:02:57 +0000
parents 34e758355884
children d83d60afe81e
files code-doc/AmplitudeFollower_8cpp-source.html code-doc/AmplitudeFollower_8cpp.html code-doc/AmplitudeFollower_8h-source.html code-doc/AmplitudeFollower_8h.html code-doc/FixedTempoEstimator_8cpp-source.html code-doc/FixedTempoEstimator_8cpp.html code-doc/FixedTempoEstimator_8h-source.html code-doc/FixedTempoEstimator_8h.html code-doc/PercussionOnsetDetector_8cpp-source.html code-doc/PercussionOnsetDetector_8cpp.html code-doc/PercussionOnsetDetector_8h-source.html code-doc/PercussionOnsetDetector_8h.html code-doc/PluginAdapter_8cpp-source.html code-doc/PluginAdapter_8cpp.html code-doc/PluginAdapter_8h-source.html code-doc/PluginAdapter_8h.html code-doc/PluginBase_8h-source.html code-doc/PluginBase_8h.html code-doc/PluginBufferingAdapter_8cpp-source.html code-doc/PluginBufferingAdapter_8cpp.html code-doc/PluginBufferingAdapter_8h-source.html code-doc/PluginBufferingAdapter_8h.html code-doc/PluginChannelAdapter_8cpp-source.html code-doc/PluginChannelAdapter_8cpp.html code-doc/PluginChannelAdapter_8h-source.html code-doc/PluginChannelAdapter_8h.html code-doc/PluginHostAdapter_8cpp-source.html code-doc/PluginHostAdapter_8cpp.html code-doc/PluginHostAdapter_8h-source.html code-doc/PluginHostAdapter_8h.html code-doc/PluginInputDomainAdapter_8cpp-source.html code-doc/PluginInputDomainAdapter_8cpp.html code-doc/PluginInputDomainAdapter_8h-source.html code-doc/PluginInputDomainAdapter_8h.html code-doc/PluginLoader_8cpp-source.html code-doc/PluginLoader_8cpp.html code-doc/PluginLoader_8h-source.html code-doc/PluginLoader_8h.html code-doc/PluginSummarisingAdapter_8h-source.html code-doc/PluginSummarisingAdapter_8h.html code-doc/PluginWrapper_8cpp-source.html code-doc/PluginWrapper_8cpp.html code-doc/PluginWrapper_8h-source.html code-doc/PluginWrapper_8h.html code-doc/Plugin_8h-source.html code-doc/Plugin_8h.html code-doc/PowerSpectrum_8cpp-source.html code-doc/PowerSpectrum_8cpp.html code-doc/PowerSpectrum_8h-source.html code-doc/PowerSpectrum_8h.html code-doc/RealTime_8cpp-source.html code-doc/RealTime_8cpp.html code-doc/RealTime_8h-source.html code-doc/RealTime_8h.html code-doc/SpectralCentroid_8cpp-source.html code-doc/SpectralCentroid_8cpp.html code-doc/SpectralCentroid_8h-source.html code-doc/SpectralCentroid_8h.html code-doc/ZeroCrossing_8cpp-source.html code-doc/ZeroCrossing_8cpp.html code-doc/ZeroCrossing_8h-source.html code-doc/ZeroCrossing_8h.html code-doc/annotated.html code-doc/classAmplitudeFollower-members.html code-doc/classAmplitudeFollower.html code-doc/classAmplitudeFollower__inherit__graph.map code-doc/classAmplitudeFollower__inherit__graph.png code-doc/classFixedTempoEstimator-members.html code-doc/classFixedTempoEstimator.html code-doc/classFixedTempoEstimator_1_1D-members.html code-doc/classFixedTempoEstimator_1_1D.html code-doc/classFixedTempoEstimator__inherit__graph.map code-doc/classFixedTempoEstimator__inherit__graph.md5 code-doc/classFixedTempoEstimator__inherit__graph.png code-doc/classPercussionOnsetDetector-members.html code-doc/classPercussionOnsetDetector.html code-doc/classPercussionOnsetDetector__inherit__graph.map code-doc/classPercussionOnsetDetector__inherit__graph.png code-doc/classPowerSpectrum-members.html code-doc/classPowerSpectrum.html code-doc/classPowerSpectrum__inherit__graph.map code-doc/classPowerSpectrum__inherit__graph.md5 code-doc/classPowerSpectrum__inherit__graph.png code-doc/classSpectralCentroid-members.html code-doc/classSpectralCentroid.html code-doc/classSpectralCentroid__inherit__graph.map code-doc/classSpectralCentroid__inherit__graph.png code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter-members.html code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter.html code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl-members.html code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer-members.html code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.map code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.png code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter-members.html code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter.html code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl-members.html code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.map code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.png code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter-members.html code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl-members.html code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.map code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.png code-doc/classVamp_1_1HostExt_1_1PluginLoader-members.html code-doc/classVamp_1_1HostExt_1_1PluginLoader.html code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl-members.html code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner-members.html code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter-members.html code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter__inherit__graph.map code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter__inherit__graph.md5 code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter__inherit__graph.png code-doc/classVamp_1_1HostExt_1_1PluginRateExtractor-members.html code-doc/classVamp_1_1HostExt_1_1PluginRateExtractor.html code-doc/classVamp_1_1HostExt_1_1PluginRateExtractor__inherit__graph.map code-doc/classVamp_1_1HostExt_1_1PluginRateExtractor__inherit__graph.md5 code-doc/classVamp_1_1HostExt_1_1PluginRateExtractor__inherit__graph.png code-doc/classVamp_1_1HostExt_1_1PluginSummarisingAdapter-members.html code-doc/classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html code-doc/classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.map code-doc/classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.md5 code-doc/classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.png code-doc/classVamp_1_1HostExt_1_1PluginWrapper-members.html code-doc/classVamp_1_1HostExt_1_1PluginWrapper.html code-doc/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.map code-doc/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.md5 code-doc/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.png code-doc/classVamp_1_1Plugin-members.html code-doc/classVamp_1_1Plugin.html code-doc/classVamp_1_1PluginAdapter-members.html code-doc/classVamp_1_1PluginAdapter.html code-doc/classVamp_1_1PluginAdapterBase-members.html code-doc/classVamp_1_1PluginAdapterBase.html code-doc/classVamp_1_1PluginAdapterBase_1_1Impl-members.html code-doc/classVamp_1_1PluginAdapterBase_1_1Impl.html code-doc/classVamp_1_1PluginAdapterBase__inherit__graph.map code-doc/classVamp_1_1PluginAdapterBase__inherit__graph.png code-doc/classVamp_1_1PluginAdapter__inherit__graph.map code-doc/classVamp_1_1PluginAdapter__inherit__graph.png code-doc/classVamp_1_1PluginBase-members.html code-doc/classVamp_1_1PluginBase.html code-doc/classVamp_1_1PluginBase__inherit__graph.map code-doc/classVamp_1_1PluginBase__inherit__graph.md5 code-doc/classVamp_1_1PluginBase__inherit__graph.png code-doc/classVamp_1_1PluginHostAdapter-members.html code-doc/classVamp_1_1PluginHostAdapter.html code-doc/classVamp_1_1PluginHostAdapter__inherit__graph.map code-doc/classVamp_1_1PluginHostAdapter__inherit__graph.png code-doc/classVamp_1_1Plugin__inherit__graph.map code-doc/classVamp_1_1Plugin__inherit__graph.md5 code-doc/classVamp_1_1Plugin__inherit__graph.png code-doc/classVamp_1_1RealTime-members.html code-doc/classZeroCrossing-members.html code-doc/classZeroCrossing.html code-doc/classZeroCrossing__inherit__graph.map code-doc/classZeroCrossing__inherit__graph.png code-doc/dir_2d75386d541e768dd0382c2de0bcb161.html code-doc/dir_2d75386d541e768dd0382c2de0bcb161_dep.map code-doc/dir_2d75386d541e768dd0382c2de0bcb161_dep.png code-doc/dir_35887283b966ca996e4ff77f459c38ce.html code-doc/dir_35887283b966ca996e4ff77f459c38ce_dep.png code-doc/dir_4571ebff077265f6d30f5427df02fcd6.html code-doc/dir_4571ebff077265f6d30f5427df02fcd6_dep.map code-doc/dir_4571ebff077265f6d30f5427df02fcd6_dep.png code-doc/dir_5b77fce4b90561041d958141b45c7c55.html code-doc/dir_5b77fce4b90561041d958141b45c7c55_dep.map code-doc/dir_5b77fce4b90561041d958141b45c7c55_dep.png code-doc/dir_b086eb10f854304ab96fb3af468374a7.html code-doc/dir_b086eb10f854304ab96fb3af468374a7_dep.png code-doc/dir_dc0199af6955c245f7b5a687135670df.html code-doc/dir_dc0199af6955c245f7b5a687135670df_dep.png code-doc/dir_fa454903fff8cd477733ebe28a3468c0.html code-doc/dir_fa454903fff8cd477733ebe28a3468c0_dep.map code-doc/dir_fa454903fff8cd477733ebe28a3468c0_dep.png code-doc/dirs.html code-doc/doc-overview-source.html code-doc/doc-overview.html code-doc/doxygen.css code-doc/files.html code-doc/functions.html code-doc/functions_0x62.html code-doc/functions_0x63.html code-doc/functions_0x64.html code-doc/functions_0x65.html code-doc/functions_0x66.html code-doc/functions_0x67.html code-doc/functions_0x68.html code-doc/functions_0x69.html code-doc/functions_0x6c.html code-doc/functions_0x6d.html code-doc/functions_0x6e.html code-doc/functions_0x6f.html code-doc/functions_0x70.html code-doc/functions_0x71.html code-doc/functions_0x72.html code-doc/functions_0x73.html code-doc/functions_0x74.html code-doc/functions_0x75.html code-doc/functions_0x76.html code-doc/functions_0x77.html code-doc/functions_0x7a.html code-doc/functions_0x7e.html code-doc/functions_enum.html code-doc/functions_eval.html code-doc/functions_func.html code-doc/functions_func_0x63.html code-doc/functions_func_0x64.html code-doc/functions_func_0x65.html code-doc/functions_func_0x66.html code-doc/functions_func_0x67.html code-doc/functions_func_0x69.html code-doc/functions_func_0x6c.html code-doc/functions_func_0x6d.html code-doc/functions_func_0x6f.html code-doc/functions_func_0x70.html code-doc/functions_func_0x72.html code-doc/functions_func_0x73.html code-doc/functions_func_0x74.html code-doc/functions_func_0x75.html code-doc/functions_func_0x76.html code-doc/functions_func_0x77.html code-doc/functions_func_0x7a.html code-doc/functions_func_0x7e.html code-doc/functions_type.html code-doc/functions_vars.html code-doc/globals.html code-doc/globals_defs.html code-doc/globals_enum.html code-doc/globals_eval.html code-doc/globals_func.html code-doc/globals_type.html code-doc/globals_vars.html code-doc/graph_legend.html code-doc/graph_legend.png code-doc/hierarchy.html code-doc/hostguard_8h-source.html code-doc/hostguard_8h.html code-doc/inherit__graph__0.map code-doc/inherit__graph__0.png code-doc/inherit__graph__1.map code-doc/inherit__graph__1.png code-doc/inherit__graph__10.map code-doc/inherit__graph__10.md5 code-doc/inherit__graph__10.png code-doc/inherit__graph__11.map code-doc/inherit__graph__11.md5 code-doc/inherit__graph__11.png code-doc/inherit__graph__12.map code-doc/inherit__graph__12.md5 code-doc/inherit__graph__12.png code-doc/inherit__graph__13.map code-doc/inherit__graph__13.md5 code-doc/inherit__graph__13.png code-doc/inherit__graph__14.map code-doc/inherit__graph__14.md5 code-doc/inherit__graph__14.png code-doc/inherit__graph__15.map code-doc/inherit__graph__15.md5 code-doc/inherit__graph__15.png code-doc/inherit__graph__16.map code-doc/inherit__graph__16.md5 code-doc/inherit__graph__16.png code-doc/inherit__graph__17.map code-doc/inherit__graph__17.md5 code-doc/inherit__graph__17.png code-doc/inherit__graph__18.map code-doc/inherit__graph__18.md5 code-doc/inherit__graph__18.png code-doc/inherit__graph__2.map code-doc/inherit__graph__2.md5 code-doc/inherit__graph__2.png code-doc/inherit__graph__3.map code-doc/inherit__graph__3.md5 code-doc/inherit__graph__3.png code-doc/inherit__graph__4.map code-doc/inherit__graph__4.md5 code-doc/inherit__graph__4.png code-doc/inherit__graph__5.map code-doc/inherit__graph__5.md5 code-doc/inherit__graph__5.png code-doc/inherit__graph__6.map code-doc/inherit__graph__6.md5 code-doc/inherit__graph__6.png code-doc/inherit__graph__7.map code-doc/inherit__graph__7.md5 code-doc/inherit__graph__7.png code-doc/inherit__graph__8.map code-doc/inherit__graph__8.md5 code-doc/inherit__graph__8.png code-doc/inherit__graph__9.map code-doc/inherit__graph__9.md5 code-doc/inherit__graph__9.png code-doc/inherits.html code-doc/main.html code-doc/namespaceVamp.html code-doc/namespaceVamp_1_1HostExt.html code-doc/namespacemembers.html code-doc/namespacemembers_func.html code-doc/namespaces.html code-doc/plugguard_8h-source.html code-doc/plugguard_8h.html code-doc/plugins_8cpp-source.html code-doc/plugins_8cpp.html code-doc/structVamp_1_1PluginBase_1_1ParameterDescriptor-members.html code-doc/structVamp_1_1PluginBase_1_1ParameterDescriptor.html code-doc/structVamp_1_1Plugin_1_1Feature-members.html code-doc/structVamp_1_1Plugin_1_1Feature.html code-doc/structVamp_1_1Plugin_1_1OutputDescriptor-members.html code-doc/structVamp_1_1Plugin_1_1OutputDescriptor.html code-doc/structVamp_1_1RealTime.html code-doc/struct__VampFeature-members.html code-doc/struct__VampFeature.html code-doc/struct__VampFeatureList-members.html code-doc/struct__VampFeatureList.html code-doc/struct__VampFeatureV2-members.html code-doc/struct__VampFeatureV2.html code-doc/struct__VampOutputDescriptor-members.html code-doc/struct__VampOutputDescriptor.html code-doc/struct__VampParameterDescriptor-members.html code-doc/struct__VampParameterDescriptor.html code-doc/struct__VampPluginDescriptor-members.html code-doc/struct__VampPluginDescriptor.html code-doc/system_8h-source.html code-doc/system_8h.html code-doc/tree.html code-doc/union__VampFeatureUnion-members.html code-doc/union__VampFeatureUnion.html code-doc/vamp-hostsdk_2PluginBase_8h-source.html code-doc/vamp-hostsdk_2PluginBase_8h.html code-doc/vamp-hostsdk_2Plugin_8h-source.html code-doc/vamp-hostsdk_2Plugin_8h.html code-doc/vamp-hostsdk_2RealTime_8h-source.html code-doc/vamp-hostsdk_2RealTime_8h.html code-doc/vamp-hostsdk_8h-source.html code-doc/vamp-hostsdk_8h.html code-doc/vamp-sdk_2PluginBase_8h-source.html code-doc/vamp-sdk_2PluginBase_8h.html code-doc/vamp-sdk_2Plugin_8h-source.html code-doc/vamp-sdk_2Plugin_8h.html code-doc/vamp-sdk_2RealTime_8h-source.html code-doc/vamp-sdk_2RealTime_8h.html code-doc/vamp-sdk_8h-source.html code-doc/vamp-sdk_8h.html code-doc/vamp-simple-host_8cpp-source.html code-doc/vamp-simple-host_8cpp.html code-doc/vamp_8h-source.html code-doc/vamp_8h.html develop.html download.html index.html screen.css
diffstat 357 files changed, 13168 insertions(+), 17252 deletions(-) [+]
line wrap: on
line diff
--- a/code-doc/AmplitudeFollower_8cpp-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/AmplitudeFollower_8cpp-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -18,7 +18,7 @@
   <div class="navpath"><a class="el" href="dir_35887283b966ca996e4ff77f459c38ce.html">examples</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>AmplitudeFollower.cpp</h1><a href="AmplitudeFollower_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -262,8 +262,8 @@
 <a name="l00246"></a>00246 }
 <a name="l00247"></a>00247 
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/AmplitudeFollower_8cpp.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/AmplitudeFollower_8cpp.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -27,8 +27,8 @@
 <tr><td></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/AmplitudeFollower_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/AmplitudeFollower_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -18,7 +18,7 @@
   <div class="navpath"><a class="el" href="dir_35887283b966ca996e4ff77f459c38ce.html">examples</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>AmplitudeFollower.h</h1><a href="AmplitudeFollower_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -58,7 +58,7 @@
 <a name="l00037"></a>00037 <span class="preprocessor">#ifndef _AMPLITUDE_FOLLOWER_PLUGIN_H_</span>
 <a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _AMPLITUDE_FOLLOWER_PLUGIN_H_</span>
 <a name="l00039"></a>00039 <span class="preprocessor"></span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="Plugin_8h.html">vamp-sdk/Plugin.h</a>"</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="vamp-sdk_2Plugin_8h.html">vamp-sdk/Plugin.h</a>"</span>
 <a name="l00041"></a>00041 
 <a name="l00047"></a><a class="code" href="classAmplitudeFollower.html">00047</a> <span class="keyword">class </span><a class="code" href="classAmplitudeFollower.html" title="Example plugin implementing the SuperCollider amplitude follower function.">AmplitudeFollower</a> : <span class="keyword">public</span> Vamp::<a class="code" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>
 <a name="l00048"></a>00048 {
@@ -99,8 +99,8 @@
 <a name="l00083"></a>00083 
 <a name="l00084"></a>00084 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/AmplitudeFollower_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/AmplitudeFollower_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -31,8 +31,8 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Example plugin implementing the SuperCollider amplitude follower function.  <a href="classAmplitudeFollower.html#_details">More...</a><br></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/FixedTempoEstimator_8cpp-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,751 @@
+<!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: FixedTempoEstimator.cpp Source File</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>FixedTempoEstimator.cpp</h1><a href="FixedTempoEstimator_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/*</span>
+<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
+<a name="l00005"></a>00005 <span class="comment"></span>
+<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2006-2008 Chris Cannam and QMUL.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="FixedTempoEstimator_8h.html">FixedTempoEstimator.h</a>"</span>
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="keyword">using</span> std::string;
+<a name="l00040"></a>00040 <span class="keyword">using</span> std::vector;
+<a name="l00041"></a>00041 <span class="keyword">using</span> std::cerr;
+<a name="l00042"></a>00042 <span class="keyword">using</span> std::endl;
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="keyword">using</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">Vamp::RealTime</a>;
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="preprocessor">#include &lt;cmath&gt;</span>
+<a name="l00047"></a>00047 
+<a name="l00048"></a>00048 
+<a name="l00049"></a><a class="code" href="classFixedTempoEstimator_1_1D.html">00049</a> <span class="keyword">class </span><a class="code" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a>
+<a name="l00050"></a>00050 <span class="comment">// this class just avoids us having to declare any data members in the header</span>
+<a name="l00051"></a>00051 {
+<a name="l00052"></a>00052 <span class="keyword">public</span>:
+<a name="l00053"></a>00053     <a class="code" href="classFixedTempoEstimator_1_1D.html#104a9b64d47eca678844584f69ca0b9d">D</a>(<span class="keywordtype">float</span> inputSampleRate);
+<a name="l00054"></a>00054     <a class="code" href="classFixedTempoEstimator_1_1D.html#78a63ac8bbf342cb0405747871adf4cc">~D</a>();
+<a name="l00055"></a>00055 
+<a name="l00056"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#dd749be18355ab1ae5c1ccbacfd2e192">00056</a>     <span class="keywordtype">size_t</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#dd749be18355ab1ae5c1ccbacfd2e192">getPreferredStepSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 64; }
+<a name="l00057"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#c02826f981736fc2aa5d835fa14e174d">00057</a>     <span class="keywordtype">size_t</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#c02826f981736fc2aa5d835fa14e174d">getPreferredBlockSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 256; }
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059     <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#06fcf80a9a22c4b90abbc88eb592621a">getParameterDescriptors</a>() <span class="keyword">const</span>;
+<a name="l00060"></a>00060     <span class="keywordtype">float</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#968ef2e555c81e4a3bde89d19fafb31a">getParameter</a>(<span class="keywordtype">string</span> <span class="keywordtype">id</span>) <span class="keyword">const</span>;
+<a name="l00061"></a>00061     <span class="keywordtype">void</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#6cafa64d4cc8aa3556bc0ce6b0c49bc4">setParameter</a>(<span class="keywordtype">string</span> <span class="keywordtype">id</span>, <span class="keywordtype">float</span> value);
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#7ce98af800f36045a0dae4b1dbed943f">getOutputDescriptors</a>() <span class="keyword">const</span>;
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065     <span class="keywordtype">bool</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#f0fcad4493650728babb7e341963c91d">initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
+<a name="l00066"></a>00066     <span class="keywordtype">void</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#f5ac8147bfe79371d00aba8a19c2f8fd">reset</a>();
+<a name="l00067"></a>00067     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#7fac74fc9fc54f436408705d1e125e20">process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>);
+<a name="l00068"></a>00068     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#7f9c3603bb3374d6936885010dbdd82b">getRemainingFeatures</a>();
+<a name="l00069"></a>00069 
+<a name="l00070"></a>00070 <span class="keyword">private</span>:
+<a name="l00071"></a>00071     <span class="keywordtype">void</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#4f2cbc11fba5bc8af3fd2a0078156091">calculate</a>();
+<a name="l00072"></a>00072     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#20389ba1515f6ce4181d3f41e5c4f347">assembleFeatures</a>();
+<a name="l00073"></a>00073 
+<a name="l00074"></a>00074     <span class="keywordtype">float</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#0a7cb0705938097ab23a6f9187e6bae5">lag2tempo</a>(<span class="keywordtype">int</span>);
+<a name="l00075"></a>00075     <span class="keywordtype">int</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#c6a75212293fc855de6ed0c6581a0fb9">tempo2lag</a>(<span class="keywordtype">float</span>);
+<a name="l00076"></a>00076 
+<a name="l00077"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">00077</a>     <span class="keywordtype">float</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">m_inputSampleRate</a>;
+<a name="l00078"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">00078</a>     <span class="keywordtype">size_t</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">m_stepSize</a>;
+<a name="l00079"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#0b9bf37e600f0564b9f305f73a9517c8">00079</a>     <span class="keywordtype">size_t</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#0b9bf37e600f0564b9f305f73a9517c8">m_blockSize</a>;
+<a name="l00080"></a>00080 
+<a name="l00081"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#768fdbb62e4b21a39897963fdbd486ed">00081</a>     <span class="keywordtype">float</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#768fdbb62e4b21a39897963fdbd486ed">m_minbpm</a>;
+<a name="l00082"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#33e8d045b222addc6173b50df2553ba8">00082</a>     <span class="keywordtype">float</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#33e8d045b222addc6173b50df2553ba8">m_maxbpm</a>;
+<a name="l00083"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#ca506973452865d436e07462eabdebad">00083</a>     <span class="keywordtype">float</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#ca506973452865d436e07462eabdebad">m_maxdflen</a>;
+<a name="l00084"></a>00084 
+<a name="l00085"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#a59cf1cb5640a910c70884579e5d99ad">00085</a>     <span class="keywordtype">float</span> *<a class="code" href="classFixedTempoEstimator_1_1D.html#a59cf1cb5640a910c70884579e5d99ad">m_priorMagnitudes</a>;
+<a name="l00086"></a>00086 
+<a name="l00087"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#e739e006f2d10ef2b13677770b23e663">00087</a>     <span class="keywordtype">size_t</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#e739e006f2d10ef2b13677770b23e663">m_dfsize</a>;
+<a name="l00088"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#8e2312120e87ad9a48fedeebbaefa396">00088</a>     <span class="keywordtype">float</span> *<a class="code" href="classFixedTempoEstimator_1_1D.html#8e2312120e87ad9a48fedeebbaefa396">m_df</a>;
+<a name="l00089"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">00089</a>     <span class="keywordtype">float</span> *<a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>;
+<a name="l00090"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">00090</a>     <span class="keywordtype">float</span> *<a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a>;
+<a name="l00091"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">00091</a>     <span class="keywordtype">float</span> *<a class="code" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">m_t</a>;
+<a name="l00092"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">00092</a>     <span class="keywordtype">size_t</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a>;
+<a name="l00093"></a>00093 
+<a name="l00094"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#3a3a0b4a4c259087f02d0046241674d0">00094</a>     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">Vamp::RealTime</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#3a3a0b4a4c259087f02d0046241674d0">m_start</a>;
+<a name="l00095"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#bacd5ff19c301020efb99c03136b849a">00095</a>     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">Vamp::RealTime</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#bacd5ff19c301020efb99c03136b849a">m_lasttime</a>;
+<a name="l00096"></a>00096 };
+<a name="l00097"></a>00097 
+<a name="l00098"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#104a9b64d47eca678844584f69ca0b9d">00098</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#104a9b64d47eca678844584f69ca0b9d">FixedTempoEstimator::D::D</a>(<span class="keywordtype">float</span> inputSampleRate) :
+<a name="l00099"></a>00099     m_inputSampleRate(inputSampleRate),
+<a name="l00100"></a>00100     m_stepSize(0),
+<a name="l00101"></a>00101     m_blockSize(0),
+<a name="l00102"></a>00102     m_minbpm(50),
+<a name="l00103"></a>00103     m_maxbpm(190),
+<a name="l00104"></a>00104     m_maxdflen(10),
+<a name="l00105"></a>00105     m_priorMagnitudes(0),
+<a name="l00106"></a>00106     m_df(0),
+<a name="l00107"></a>00107     m_r(0),
+<a name="l00108"></a>00108     m_fr(0),
+<a name="l00109"></a>00109     m_t(0),
+<a name="l00110"></a>00110     m_n(0)
+<a name="l00111"></a>00111 {
+<a name="l00112"></a>00112 }
+<a name="l00113"></a>00113 
+<a name="l00114"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#78a63ac8bbf342cb0405747871adf4cc">00114</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#78a63ac8bbf342cb0405747871adf4cc">FixedTempoEstimator::D::~D</a>()
+<a name="l00115"></a>00115 {
+<a name="l00116"></a>00116     <span class="keyword">delete</span>[] <a class="code" href="classFixedTempoEstimator_1_1D.html#a59cf1cb5640a910c70884579e5d99ad">m_priorMagnitudes</a>;
+<a name="l00117"></a>00117     <span class="keyword">delete</span>[] <a class="code" href="classFixedTempoEstimator_1_1D.html#8e2312120e87ad9a48fedeebbaefa396">m_df</a>;
+<a name="l00118"></a>00118     <span class="keyword">delete</span>[] <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>;
+<a name="l00119"></a>00119     <span class="keyword">delete</span>[] <a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a>;
+<a name="l00120"></a>00120     <span class="keyword">delete</span>[] <a class="code" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">m_t</a>;
+<a name="l00121"></a>00121 }
+<a name="l00122"></a>00122 
+<a name="l00123"></a>00123 <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">FixedTempoEstimator::ParameterList</a>
+<a name="l00124"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#06fcf80a9a22c4b90abbc88eb592621a">00124</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#06fcf80a9a22c4b90abbc88eb592621a">FixedTempoEstimator::D::getParameterDescriptors</a>()<span class="keyword"> const</span>
+<a name="l00125"></a>00125 <span class="keyword"></span>{
+<a name="l00126"></a>00126     <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> list;
+<a name="l00127"></a>00127 
+<a name="l00128"></a>00128     <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a> d;
+<a name="l00129"></a>00129     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#116fd9f0dc94c2bc4bbc60b5443c598c" title="The name of the parameter, in computer-usable form.">identifier</a> = <span class="stringliteral">"minbpm"</span>;
+<a name="l00130"></a>00130     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#0ecebb94fb4ada4aad2640e20aa57084" title="The human-readable name of the parameter.">name</a> = <span class="stringliteral">"Minimum estimated tempo"</span>;
+<a name="l00131"></a>00131     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#780ddad41e433d85c82f9ea4d959cbaf" title="A human-readable short text describing the parameter.">description</a> = <span class="stringliteral">"Minimum beat-per-minute value which the tempo estimator is able to return"</span>;
+<a name="l00132"></a>00132     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#3bc3df322e4c02e17e96bc6d44982d7b" title="The unit of the parameter, in human-readable form.">unit</a> = <span class="stringliteral">"bpm"</span>;
+<a name="l00133"></a>00133     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8" title="The minimum value of the parameter.">minValue</a> = 10;
+<a name="l00134"></a>00134     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4" title="The maximum value of the parameter.">maxValue</a> = 360;
+<a name="l00135"></a>00135     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc" title="The default value of the parameter.">defaultValue</a> = 50;
+<a name="l00136"></a>00136     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#7c556d58d552f737ee5a34efdf7f9425" title="True if the parameter values are quantized to a particular resolution.">isQuantized</a> = <span class="keyword">false</span>;
+<a name="l00137"></a>00137     list.push_back(d);
+<a name="l00138"></a>00138 
+<a name="l00139"></a>00139     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#116fd9f0dc94c2bc4bbc60b5443c598c" title="The name of the parameter, in computer-usable form.">identifier</a> = <span class="stringliteral">"maxbpm"</span>;
+<a name="l00140"></a>00140     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#0ecebb94fb4ada4aad2640e20aa57084" title="The human-readable name of the parameter.">name</a> = <span class="stringliteral">"Maximum estimated tempo"</span>;
+<a name="l00141"></a>00141     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#780ddad41e433d85c82f9ea4d959cbaf" title="A human-readable short text describing the parameter.">description</a> = <span class="stringliteral">"Maximum beat-per-minute value which the tempo estimator is able to return"</span>;
+<a name="l00142"></a>00142     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc" title="The default value of the parameter.">defaultValue</a> = 190;
+<a name="l00143"></a>00143     list.push_back(d);
+<a name="l00144"></a>00144 
+<a name="l00145"></a>00145     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#116fd9f0dc94c2bc4bbc60b5443c598c" title="The name of the parameter, in computer-usable form.">identifier</a> = <span class="stringliteral">"maxdflen"</span>;
+<a name="l00146"></a>00146     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#0ecebb94fb4ada4aad2640e20aa57084" title="The human-readable name of the parameter.">name</a> = <span class="stringliteral">"Input duration to study"</span>;
+<a name="l00147"></a>00147     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#780ddad41e433d85c82f9ea4d959cbaf" title="A human-readable short text describing the parameter.">description</a> = <span class="stringliteral">"Length of audio input, in seconds, which should be taken into account when estimating tempo.  There is no need to supply the plugin with any further input once this time has elapsed since the start of the audio.  The tempo estimator may use only the first part of this, up to eight times the slowest beat duration: increasing this value further than that is unlikely to improve results."</span>;
+<a name="l00148"></a>00148     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#3bc3df322e4c02e17e96bc6d44982d7b" title="The unit of the parameter, in human-readable form.">unit</a> = <span class="stringliteral">"s"</span>;
+<a name="l00149"></a>00149     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8" title="The minimum value of the parameter.">minValue</a> = 2;
+<a name="l00150"></a>00150     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4" title="The maximum value of the parameter.">maxValue</a> = 40;
+<a name="l00151"></a>00151     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc" title="The default value of the parameter.">defaultValue</a> = 10;
+<a name="l00152"></a>00152     list.push_back(d);
+<a name="l00153"></a>00153 
+<a name="l00154"></a>00154     <span class="keywordflow">return</span> list;
+<a name="l00155"></a>00155 }
+<a name="l00156"></a>00156 
+<a name="l00157"></a>00157 <span class="keywordtype">float</span>
+<a name="l00158"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#968ef2e555c81e4a3bde89d19fafb31a">00158</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#968ef2e555c81e4a3bde89d19fafb31a">FixedTempoEstimator::D::getParameter</a>(<span class="keywordtype">string</span> <span class="keywordtype">id</span>)<span class="keyword"> const</span>
+<a name="l00159"></a>00159 <span class="keyword"></span>{
+<a name="l00160"></a>00160     <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == <span class="stringliteral">"minbpm"</span>) {
+<a name="l00161"></a>00161         <span class="keywordflow">return</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#768fdbb62e4b21a39897963fdbd486ed">m_minbpm</a>;
+<a name="l00162"></a>00162     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == <span class="stringliteral">"maxbpm"</span>) {
+<a name="l00163"></a>00163         <span class="keywordflow">return</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#33e8d045b222addc6173b50df2553ba8">m_maxbpm</a>;
+<a name="l00164"></a>00164     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == <span class="stringliteral">"maxdflen"</span>) {
+<a name="l00165"></a>00165         <span class="keywordflow">return</span> <a class="code" href="classFixedTempoEstimator_1_1D.html#ca506973452865d436e07462eabdebad">m_maxdflen</a>;
+<a name="l00166"></a>00166     }
+<a name="l00167"></a>00167     <span class="keywordflow">return</span> 0.f;
+<a name="l00168"></a>00168 }
+<a name="l00169"></a>00169 
+<a name="l00170"></a>00170 <span class="keywordtype">void</span>
+<a name="l00171"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#6cafa64d4cc8aa3556bc0ce6b0c49bc4">00171</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#6cafa64d4cc8aa3556bc0ce6b0c49bc4">FixedTempoEstimator::D::setParameter</a>(<span class="keywordtype">string</span> <span class="keywordtype">id</span>, <span class="keywordtype">float</span> value)
+<a name="l00172"></a>00172 {
+<a name="l00173"></a>00173     <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == <span class="stringliteral">"minbpm"</span>) {
+<a name="l00174"></a>00174         <a class="code" href="classFixedTempoEstimator_1_1D.html#768fdbb62e4b21a39897963fdbd486ed">m_minbpm</a> = value;
+<a name="l00175"></a>00175     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == <span class="stringliteral">"maxbpm"</span>) {
+<a name="l00176"></a>00176         <a class="code" href="classFixedTempoEstimator_1_1D.html#33e8d045b222addc6173b50df2553ba8">m_maxbpm</a> = value;
+<a name="l00177"></a>00177     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == <span class="stringliteral">"maxdflen"</span>) {
+<a name="l00178"></a>00178         <a class="code" href="classFixedTempoEstimator_1_1D.html#ca506973452865d436e07462eabdebad">m_maxdflen</a> = value;
+<a name="l00179"></a>00179     }
+<a name="l00180"></a>00180 }
+<a name="l00181"></a>00181 
+<a name="l00182"></a><a class="code" href="FixedTempoEstimator_8cpp.html#7a8511e62dffb5334ad3b70d57b2fcee">00182</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="FixedTempoEstimator_8cpp.html#7a8511e62dffb5334ad3b70d57b2fcee">TempoOutput</a> = 0;
+<a name="l00183"></a><a class="code" href="FixedTempoEstimator_8cpp.html#554b16c6b7516530e52c65318bfe08eb">00183</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="FixedTempoEstimator_8cpp.html#554b16c6b7516530e52c65318bfe08eb">CandidatesOutput</a> = 1;
+<a name="l00184"></a><a class="code" href="FixedTempoEstimator_8cpp.html#caa4524f29afce03c812a88ff31159c1">00184</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="FixedTempoEstimator_8cpp.html#caa4524f29afce03c812a88ff31159c1">DFOutput</a> = 2;
+<a name="l00185"></a><a class="code" href="FixedTempoEstimator_8cpp.html#382c1fe740ac8911c6078cfbceffc870">00185</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="FixedTempoEstimator_8cpp.html#382c1fe740ac8911c6078cfbceffc870">ACFOutput</a> = 3;
+<a name="l00186"></a><a class="code" href="FixedTempoEstimator_8cpp.html#5b284021783d79785d46b043b458368d">00186</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="FixedTempoEstimator_8cpp.html#5b284021783d79785d46b043b458368d">FilteredACFOutput</a> = 4;
+<a name="l00187"></a>00187 
+<a name="l00188"></a>00188 <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">FixedTempoEstimator::OutputList</a>
+<a name="l00189"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#7ce98af800f36045a0dae4b1dbed943f">00189</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#7ce98af800f36045a0dae4b1dbed943f">FixedTempoEstimator::D::getOutputDescriptors</a>()<span class="keyword"> const</span>
+<a name="l00190"></a>00190 <span class="keyword"></span>{
+<a name="l00191"></a>00191     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> list;
+<a name="l00192"></a>00192 
+<a name="l00193"></a>00193     <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> d;
+<a name="l00194"></a>00194     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a> = <span class="stringliteral">"tempo"</span>;
+<a name="l00195"></a>00195     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = <span class="stringliteral">"Tempo"</span>;
+<a name="l00196"></a>00196     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a> = <span class="stringliteral">"Estimated tempo"</span>;
+<a name="l00197"></a>00197     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4" title="The unit of the output, in human-readable form.">unit</a> = <span class="stringliteral">"bpm"</span>;
+<a name="l00198"></a>00198     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d" title="True if the output has the same number of values per sample for every output sample...">hasFixedBinCount</a> = <span class="keyword">true</span>;
+<a name="l00199"></a>00199     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a> = 1;
+<a name="l00200"></a>00200     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31" title="True if the results in each output bin fall within a fixed numeric range (minimum...">hasKnownExtents</a> = <span class="keyword">false</span>;
+<a name="l00201"></a>00201     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1b4858928d23bfd7d5bc557c82a83fb4" title="True if the output values are quantized to a particular resolution.">isQuantized</a> = <span class="keyword">false</span>;
+<a name="l00202"></a>00202     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d" title="Positioning in time of the output results.">sampleType</a> = <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e" title="Results are unevenly spaced and have individual timestamps.">OutputDescriptor::VariableSampleRate</a>;
+<a name="l00203"></a>00203     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#dd0cbbdfa9c91764037c39365b1d42af" title="Sample rate of the output results, as samples per second.">sampleRate</a> = <a class="code" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">m_inputSampleRate</a>;
+<a name="l00204"></a>00204     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b0d7cc6ab19e53b5bd12ee234f549ea3" title="True if the returned results for this output are known to have a duration field.">hasDuration</a> = <span class="keyword">true</span>; <span class="comment">// our returned tempo spans a certain range</span>
+<a name="l00205"></a>00205     list.push_back(d);
+<a name="l00206"></a>00206 
+<a name="l00207"></a>00207     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a> = <span class="stringliteral">"candidates"</span>;
+<a name="l00208"></a>00208     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = <span class="stringliteral">"Tempo candidates"</span>;
+<a name="l00209"></a>00209     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a> = <span class="stringliteral">"Possible tempo estimates, one per bin with the most likely in the first bin"</span>;
+<a name="l00210"></a>00210     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4" title="The unit of the output, in human-readable form.">unit</a> = <span class="stringliteral">"bpm"</span>;
+<a name="l00211"></a>00211     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d" title="True if the output has the same number of values per sample for every output sample...">hasFixedBinCount</a> = <span class="keyword">false</span>;
+<a name="l00212"></a>00212     list.push_back(d);
+<a name="l00213"></a>00213 
+<a name="l00214"></a>00214     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a> = <span class="stringliteral">"detectionfunction"</span>;
+<a name="l00215"></a>00215     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = <span class="stringliteral">"Detection Function"</span>;
+<a name="l00216"></a>00216     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a> = <span class="stringliteral">"Onset detection function"</span>;
+<a name="l00217"></a>00217     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4" title="The unit of the output, in human-readable form.">unit</a> = <span class="stringliteral">""</span>;
+<a name="l00218"></a>00218     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d" title="True if the output has the same number of values per sample for every output sample...">hasFixedBinCount</a> = 1;
+<a name="l00219"></a>00219     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a> = 1;
+<a name="l00220"></a>00220     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31" title="True if the results in each output bin fall within a fixed numeric range (minimum...">hasKnownExtents</a> = <span class="keyword">true</span>;
+<a name="l00221"></a>00221     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#c9f5924c0be7571bba8e7ae7e7a921f4" title="Minimum value of the results in the output.">minValue</a> = 0.0;
+<a name="l00222"></a>00222     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#907b4e8fbb48a46ac5a05f880d72719f" title="Maximum value of the results in the output.">maxValue</a> = 1.0;
+<a name="l00223"></a>00223     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1b4858928d23bfd7d5bc557c82a83fb4" title="True if the output values are quantized to a particular resolution.">isQuantized</a> = <span class="keyword">false</span>;
+<a name="l00224"></a>00224     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#3bed37153067b625b95acb40b60dbf0b" title="Quantization resolution of the output values (e.g.">quantizeStep</a> = 0.0;
+<a name="l00225"></a>00225     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d" title="Positioning in time of the output results.">sampleType</a> = <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c4c74bd2fc96dfe2815623f94b40e5629" title="Results are evenly spaced in time (sampleRate specified below).">OutputDescriptor::FixedSampleRate</a>;
+<a name="l00226"></a>00226     <span class="keywordflow">if</span> (<a class="code" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">m_stepSize</a>) {
+<a name="l00227"></a>00227         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#dd0cbbdfa9c91764037c39365b1d42af" title="Sample rate of the output results, as samples per second.">sampleRate</a> = <a class="code" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">m_inputSampleRate</a> / <a class="code" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">m_stepSize</a>;
+<a name="l00228"></a>00228     } <span class="keywordflow">else</span> {
+<a name="l00229"></a>00229         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#dd0cbbdfa9c91764037c39365b1d42af" title="Sample rate of the output results, as samples per second.">sampleRate</a> = <a class="code" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">m_inputSampleRate</a> / (<a class="code" href="classFixedTempoEstimator_1_1D.html#c02826f981736fc2aa5d835fa14e174d">getPreferredBlockSize</a>()/2);
+<a name="l00230"></a>00230     }
+<a name="l00231"></a>00231     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b0d7cc6ab19e53b5bd12ee234f549ea3" title="True if the returned results for this output are known to have a duration field.">hasDuration</a> = <span class="keyword">false</span>;
+<a name="l00232"></a>00232     list.push_back(d);
+<a name="l00233"></a>00233 
+<a name="l00234"></a>00234     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a> = <span class="stringliteral">"acf"</span>;
+<a name="l00235"></a>00235     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = <span class="stringliteral">"Autocorrelation Function"</span>;
+<a name="l00236"></a>00236     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a> = <span class="stringliteral">"Autocorrelation of onset detection function"</span>;
+<a name="l00237"></a>00237     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31" title="True if the results in each output bin fall within a fixed numeric range (minimum...">hasKnownExtents</a> = <span class="keyword">false</span>;
+<a name="l00238"></a>00238     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4" title="The unit of the output, in human-readable form.">unit</a> = <span class="stringliteral">"r"</span>;
+<a name="l00239"></a>00239     list.push_back(d);
+<a name="l00240"></a>00240 
+<a name="l00241"></a>00241     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a> = <span class="stringliteral">"filtered_acf"</span>;
+<a name="l00242"></a>00242     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = <span class="stringliteral">"Filtered Autocorrelation"</span>;
+<a name="l00243"></a>00243     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a> = <span class="stringliteral">"Filtered autocorrelation of onset detection function"</span>;
+<a name="l00244"></a>00244     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4" title="The unit of the output, in human-readable form.">unit</a> = <span class="stringliteral">"r"</span>;
+<a name="l00245"></a>00245     list.push_back(d);
+<a name="l00246"></a>00246 
+<a name="l00247"></a>00247     <span class="keywordflow">return</span> list;
+<a name="l00248"></a>00248 }
+<a name="l00249"></a>00249 
+<a name="l00250"></a>00250 <span class="keywordtype">bool</span>
+<a name="l00251"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#f0fcad4493650728babb7e341963c91d">00251</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#f0fcad4493650728babb7e341963c91d">FixedTempoEstimator::D::initialise</a>(<span class="keywordtype">size_t</span>, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize)
+<a name="l00252"></a>00252 {
+<a name="l00253"></a>00253     <a class="code" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">m_stepSize</a> = stepSize;
+<a name="l00254"></a>00254     <a class="code" href="classFixedTempoEstimator_1_1D.html#0b9bf37e600f0564b9f305f73a9517c8">m_blockSize</a> = blockSize;
+<a name="l00255"></a>00255 
+<a name="l00256"></a>00256     <span class="keywordtype">float</span> dfLengthSecs = <a class="code" href="classFixedTempoEstimator_1_1D.html#ca506973452865d436e07462eabdebad">m_maxdflen</a>;
+<a name="l00257"></a>00257     <a class="code" href="classFixedTempoEstimator_1_1D.html#e739e006f2d10ef2b13677770b23e663">m_dfsize</a> = (dfLengthSecs * <a class="code" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">m_inputSampleRate</a>) / <a class="code" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">m_stepSize</a>;
+<a name="l00258"></a>00258 
+<a name="l00259"></a>00259     <a class="code" href="classFixedTempoEstimator_1_1D.html#a59cf1cb5640a910c70884579e5d99ad">m_priorMagnitudes</a> = <span class="keyword">new</span> <span class="keywordtype">float</span>[<a class="code" href="classFixedTempoEstimator_1_1D.html#0b9bf37e600f0564b9f305f73a9517c8">m_blockSize</a>/2];
+<a name="l00260"></a>00260     <a class="code" href="classFixedTempoEstimator_1_1D.html#8e2312120e87ad9a48fedeebbaefa396">m_df</a> = <span class="keyword">new</span> <span class="keywordtype">float</span>[<a class="code" href="classFixedTempoEstimator_1_1D.html#e739e006f2d10ef2b13677770b23e663">m_dfsize</a>];
+<a name="l00261"></a>00261 
+<a name="l00262"></a>00262     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classFixedTempoEstimator_1_1D.html#0b9bf37e600f0564b9f305f73a9517c8">m_blockSize</a>/2; ++i) {
+<a name="l00263"></a>00263         <a class="code" href="classFixedTempoEstimator_1_1D.html#a59cf1cb5640a910c70884579e5d99ad">m_priorMagnitudes</a>[i] = 0.f;
+<a name="l00264"></a>00264     }
+<a name="l00265"></a>00265     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classFixedTempoEstimator_1_1D.html#e739e006f2d10ef2b13677770b23e663">m_dfsize</a>; ++i) {
+<a name="l00266"></a>00266         <a class="code" href="classFixedTempoEstimator_1_1D.html#8e2312120e87ad9a48fedeebbaefa396">m_df</a>[i] = 0.f;
+<a name="l00267"></a>00267     }
+<a name="l00268"></a>00268 
+<a name="l00269"></a>00269     <a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a> = 0;
+<a name="l00270"></a>00270 
+<a name="l00271"></a>00271     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00272"></a>00272 }
+<a name="l00273"></a>00273 
+<a name="l00274"></a>00274 <span class="keywordtype">void</span>
+<a name="l00275"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#f5ac8147bfe79371d00aba8a19c2f8fd">00275</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#f5ac8147bfe79371d00aba8a19c2f8fd">FixedTempoEstimator::D::reset</a>()
+<a name="l00276"></a>00276 {
+<a name="l00277"></a>00277     <span class="keywordflow">if</span> (!<a class="code" href="classFixedTempoEstimator_1_1D.html#a59cf1cb5640a910c70884579e5d99ad">m_priorMagnitudes</a>) <span class="keywordflow">return</span>;
+<a name="l00278"></a>00278 
+<a name="l00279"></a>00279     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classFixedTempoEstimator_1_1D.html#0b9bf37e600f0564b9f305f73a9517c8">m_blockSize</a>/2; ++i) {
+<a name="l00280"></a>00280         <a class="code" href="classFixedTempoEstimator_1_1D.html#a59cf1cb5640a910c70884579e5d99ad">m_priorMagnitudes</a>[i] = 0.f;
+<a name="l00281"></a>00281     }
+<a name="l00282"></a>00282     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classFixedTempoEstimator_1_1D.html#e739e006f2d10ef2b13677770b23e663">m_dfsize</a>; ++i) {
+<a name="l00283"></a>00283         <a class="code" href="classFixedTempoEstimator_1_1D.html#8e2312120e87ad9a48fedeebbaefa396">m_df</a>[i] = 0.f;
+<a name="l00284"></a>00284     }
+<a name="l00285"></a>00285 
+<a name="l00286"></a>00286     <span class="keyword">delete</span>[] <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>;
+<a name="l00287"></a>00287     <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a> = 0;
+<a name="l00288"></a>00288 
+<a name="l00289"></a>00289     <span class="keyword">delete</span>[] <a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a>; 
+<a name="l00290"></a>00290     <a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a> = 0;
+<a name="l00291"></a>00291 
+<a name="l00292"></a>00292     <span class="keyword">delete</span>[] <a class="code" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">m_t</a>; 
+<a name="l00293"></a>00293     <a class="code" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">m_t</a> = 0;
+<a name="l00294"></a>00294 
+<a name="l00295"></a>00295     <a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a> = 0;
+<a name="l00296"></a>00296 
+<a name="l00297"></a>00297     <a class="code" href="classFixedTempoEstimator_1_1D.html#3a3a0b4a4c259087f02d0046241674d0">m_start</a> = RealTime::zeroTime;
+<a name="l00298"></a>00298     <a class="code" href="classFixedTempoEstimator_1_1D.html#bacd5ff19c301020efb99c03136b849a">m_lasttime</a> = RealTime::zeroTime;
+<a name="l00299"></a>00299 }
+<a name="l00300"></a>00300 
+<a name="l00301"></a>00301 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FixedTempoEstimator::FeatureSet</a>
+<a name="l00302"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#7fac74fc9fc54f436408705d1e125e20">00302</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#7fac74fc9fc54f436408705d1e125e20">FixedTempoEstimator::D::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> ts)
+<a name="l00303"></a>00303 {
+<a name="l00304"></a>00304     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> fs;
+<a name="l00305"></a>00305 
+<a name="l00306"></a>00306     <span class="keywordflow">if</span> (<a class="code" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">m_stepSize</a> == 0) {
+<a name="l00307"></a>00307         cerr &lt;&lt; <span class="stringliteral">"ERROR: FixedTempoEstimator::process: "</span>
+<a name="l00308"></a>00308              &lt;&lt; <span class="stringliteral">"FixedTempoEstimator has not been initialised"</span>
+<a name="l00309"></a>00309              &lt;&lt; endl;
+<a name="l00310"></a>00310         <span class="keywordflow">return</span> fs;
+<a name="l00311"></a>00311     }
+<a name="l00312"></a>00312 
+<a name="l00313"></a>00313     <span class="keywordflow">if</span> (<a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a> == 0) <a class="code" href="classFixedTempoEstimator_1_1D.html#3a3a0b4a4c259087f02d0046241674d0">m_start</a> = ts;
+<a name="l00314"></a>00314     <a class="code" href="classFixedTempoEstimator_1_1D.html#bacd5ff19c301020efb99c03136b849a">m_lasttime</a> = ts;
+<a name="l00315"></a>00315 
+<a name="l00316"></a>00316     <span class="keywordflow">if</span> (<a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a> == <a class="code" href="classFixedTempoEstimator_1_1D.html#e739e006f2d10ef2b13677770b23e663">m_dfsize</a>) {
+<a name="l00317"></a>00317         <span class="comment">// If we have seen enough input, do the estimation and return</span>
+<a name="l00318"></a>00318         <a class="code" href="classFixedTempoEstimator_1_1D.html#4f2cbc11fba5bc8af3fd2a0078156091">calculate</a>();
+<a name="l00319"></a>00319         fs = <a class="code" href="classFixedTempoEstimator_1_1D.html#20389ba1515f6ce4181d3f41e5c4f347">assembleFeatures</a>();
+<a name="l00320"></a>00320         ++<a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a>;
+<a name="l00321"></a>00321         <span class="keywordflow">return</span> fs;
+<a name="l00322"></a>00322     }
+<a name="l00323"></a>00323 
+<a name="l00324"></a>00324     <span class="comment">// If we have seen more than enough, just discard and return!</span>
+<a name="l00325"></a>00325     <span class="keywordflow">if</span> (<a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a> &gt; <a class="code" href="classFixedTempoEstimator_1_1D.html#e739e006f2d10ef2b13677770b23e663">m_dfsize</a>) <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>();
+<a name="l00326"></a>00326 
+<a name="l00327"></a>00327     <span class="keywordtype">float</span> value = 0.f;
+<a name="l00328"></a>00328 
+<a name="l00329"></a>00329     <span class="comment">// m_df will contain an onset detection function based on the rise</span>
+<a name="l00330"></a>00330     <span class="comment">// in overall power from one spectral frame to the next --</span>
+<a name="l00331"></a>00331     <span class="comment">// simplistic but reasonably effective for our purposes.</span>
+<a name="l00332"></a>00332 
+<a name="l00333"></a>00333     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 1; i &lt; <a class="code" href="classFixedTempoEstimator_1_1D.html#0b9bf37e600f0564b9f305f73a9517c8">m_blockSize</a>/2; ++i) {
+<a name="l00334"></a>00334 
+<a name="l00335"></a>00335         <span class="keywordtype">float</span> real = inputBuffers[0][i*2];
+<a name="l00336"></a>00336         <span class="keywordtype">float</span> imag = inputBuffers[0][i*2 + 1];
+<a name="l00337"></a>00337 
+<a name="l00338"></a>00338         <span class="keywordtype">float</span> sqrmag = real * real + imag * imag;
+<a name="l00339"></a>00339         value += fabsf(sqrmag - <a class="code" href="classFixedTempoEstimator_1_1D.html#a59cf1cb5640a910c70884579e5d99ad">m_priorMagnitudes</a>[i]);
+<a name="l00340"></a>00340 
+<a name="l00341"></a>00341         <a class="code" href="classFixedTempoEstimator_1_1D.html#a59cf1cb5640a910c70884579e5d99ad">m_priorMagnitudes</a>[i] = sqrmag;
+<a name="l00342"></a>00342     }
+<a name="l00343"></a>00343 
+<a name="l00344"></a>00344     <a class="code" href="classFixedTempoEstimator_1_1D.html#8e2312120e87ad9a48fedeebbaefa396">m_df</a>[<a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a>] = value;
+<a name="l00345"></a>00345 
+<a name="l00346"></a>00346     ++<a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a>;
+<a name="l00347"></a>00347     <span class="keywordflow">return</span> fs;
+<a name="l00348"></a>00348 }    
+<a name="l00349"></a>00349 
+<a name="l00350"></a>00350 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FixedTempoEstimator::FeatureSet</a>
+<a name="l00351"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#7f9c3603bb3374d6936885010dbdd82b">00351</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#7f9c3603bb3374d6936885010dbdd82b">FixedTempoEstimator::D::getRemainingFeatures</a>()
+<a name="l00352"></a>00352 {
+<a name="l00353"></a>00353     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> fs;
+<a name="l00354"></a>00354     <span class="keywordflow">if</span> (<a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a> &gt; <a class="code" href="classFixedTempoEstimator_1_1D.html#e739e006f2d10ef2b13677770b23e663">m_dfsize</a>) <span class="keywordflow">return</span> fs;
+<a name="l00355"></a>00355     <a class="code" href="classFixedTempoEstimator_1_1D.html#4f2cbc11fba5bc8af3fd2a0078156091">calculate</a>();
+<a name="l00356"></a>00356     fs = <a class="code" href="classFixedTempoEstimator_1_1D.html#20389ba1515f6ce4181d3f41e5c4f347">assembleFeatures</a>();
+<a name="l00357"></a>00357     ++<a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a>;
+<a name="l00358"></a>00358     <span class="keywordflow">return</span> fs;
+<a name="l00359"></a>00359 }
+<a name="l00360"></a>00360 
+<a name="l00361"></a>00361 <span class="keywordtype">float</span>
+<a name="l00362"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#0a7cb0705938097ab23a6f9187e6bae5">00362</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#0a7cb0705938097ab23a6f9187e6bae5">FixedTempoEstimator::D::lag2tempo</a>(<span class="keywordtype">int</span> lag)
+<a name="l00363"></a>00363 {
+<a name="l00364"></a>00364     <span class="keywordflow">return</span> 60.f / ((lag * <a class="code" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">m_stepSize</a>) / <a class="code" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">m_inputSampleRate</a>);
+<a name="l00365"></a>00365 }
+<a name="l00366"></a>00366 
+<a name="l00367"></a>00367 <span class="keywordtype">int</span>
+<a name="l00368"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#c6a75212293fc855de6ed0c6581a0fb9">00368</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#c6a75212293fc855de6ed0c6581a0fb9">FixedTempoEstimator::D::tempo2lag</a>(<span class="keywordtype">float</span> tempo)
+<a name="l00369"></a>00369 {
+<a name="l00370"></a>00370     <span class="keywordflow">return</span> ((60.f / tempo) * <a class="code" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">m_inputSampleRate</a>) / <a class="code" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">m_stepSize</a>;
+<a name="l00371"></a>00371 }
+<a name="l00372"></a>00372 
+<a name="l00373"></a>00373 <span class="keywordtype">void</span>
+<a name="l00374"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#4f2cbc11fba5bc8af3fd2a0078156091">00374</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#4f2cbc11fba5bc8af3fd2a0078156091">FixedTempoEstimator::D::calculate</a>()
+<a name="l00375"></a>00375 {    
+<a name="l00376"></a>00376     <span class="keywordflow">if</span> (<a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>) {
+<a name="l00377"></a>00377         cerr &lt;&lt; <span class="stringliteral">"FixedTempoEstimator::calculate: calculation already happened?"</span> &lt;&lt; endl;
+<a name="l00378"></a>00378         <span class="keywordflow">return</span>;
+<a name="l00379"></a>00379     }
+<a name="l00380"></a>00380 
+<a name="l00381"></a>00381     <span class="keywordflow">if</span> (<a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a> &lt; <a class="code" href="classFixedTempoEstimator_1_1D.html#e739e006f2d10ef2b13677770b23e663">m_dfsize</a> / 9 &amp;&amp;
+<a name="l00382"></a>00382         <a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a> &lt; (1.0 * <a class="code" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">m_inputSampleRate</a>) / <a class="code" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">m_stepSize</a>) { <span class="comment">// 1 second</span>
+<a name="l00383"></a>00383         cerr &lt;&lt; <span class="stringliteral">"FixedTempoEstimator::calculate: Input is too short"</span> &lt;&lt; endl;
+<a name="l00384"></a>00384         <span class="keywordflow">return</span>;
+<a name="l00385"></a>00385     }
+<a name="l00386"></a>00386 
+<a name="l00387"></a>00387     <span class="comment">// This function takes m_df (the detection function array filled</span>
+<a name="l00388"></a>00388     <span class="comment">// out in process()) and calculates m_r (the raw autocorrelation)</span>
+<a name="l00389"></a>00389     <span class="comment">// and m_fr (the filtered autocorrelation from whose peaks tempo</span>
+<a name="l00390"></a>00390     <span class="comment">// estimates will be taken).</span>
+<a name="l00391"></a>00391 
+<a name="l00392"></a>00392     <span class="keywordtype">int</span> n = <a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a>; <span class="comment">// length of actual df array (m_dfsize is the theoretical max)</span>
+<a name="l00393"></a>00393 
+<a name="l00394"></a>00394     <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>  = <span class="keyword">new</span> <span class="keywordtype">float</span>[n/2]; <span class="comment">// raw autocorrelation</span>
+<a name="l00395"></a>00395     <a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a> = <span class="keyword">new</span> <span class="keywordtype">float</span>[n/2]; <span class="comment">// filtered autocorrelation</span>
+<a name="l00396"></a>00396     <a class="code" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">m_t</a>  = <span class="keyword">new</span> <span class="keywordtype">float</span>[n/2]; <span class="comment">// averaged tempo estimate for each lag value</span>
+<a name="l00397"></a>00397 
+<a name="l00398"></a>00398     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n/2; ++i) {
+<a name="l00399"></a>00399         <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>[i]  = 0.f;
+<a name="l00400"></a>00400         <a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a>[i] = 0.f;
+<a name="l00401"></a>00401         <a class="code" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">m_t</a>[i]  = <a class="code" href="classFixedTempoEstimator_1_1D.html#0a7cb0705938097ab23a6f9187e6bae5">lag2tempo</a>(i);
+<a name="l00402"></a>00402     }
+<a name="l00403"></a>00403 
+<a name="l00404"></a>00404     <span class="comment">// Calculate the raw autocorrelation of the detection function</span>
+<a name="l00405"></a>00405 
+<a name="l00406"></a>00406     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n/2; ++i) {
+<a name="l00407"></a>00407 
+<a name="l00408"></a>00408         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = i; j &lt; n; ++j) {
+<a name="l00409"></a>00409             <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>[i] += <a class="code" href="classFixedTempoEstimator_1_1D.html#8e2312120e87ad9a48fedeebbaefa396">m_df</a>[j] * <a class="code" href="classFixedTempoEstimator_1_1D.html#8e2312120e87ad9a48fedeebbaefa396">m_df</a>[j - i];
+<a name="l00410"></a>00410         }
+<a name="l00411"></a>00411 
+<a name="l00412"></a>00412         <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>[i] /= n - i - 1;
+<a name="l00413"></a>00413     }
+<a name="l00414"></a>00414 
+<a name="l00415"></a>00415     <span class="comment">// Filter the autocorrelation and average out the tempo estimates</span>
+<a name="l00416"></a>00416     
+<a name="l00417"></a>00417     <span class="keywordtype">float</span> related[] = { 0.5, 2, 4, 8 };
+<a name="l00418"></a>00418 
+<a name="l00419"></a>00419     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i &lt; n/2-1; ++i) {
+<a name="l00420"></a>00420 
+<a name="l00421"></a>00421         <a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a>[i] = <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>[i];
+<a name="l00422"></a>00422 
+<a name="l00423"></a>00423         <span class="keywordtype">int</span> div = 1;
+<a name="l00424"></a>00424 
+<a name="l00425"></a>00425         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; int(<span class="keyword">sizeof</span>(related)/<span class="keyword">sizeof</span>(related[0])); ++j) {
+<a name="l00426"></a>00426 
+<a name="l00427"></a>00427             <span class="comment">// Check for an obvious peak at each metrically related lag</span>
+<a name="l00428"></a>00428 
+<a name="l00429"></a>00429             <span class="keywordtype">int</span> k0 = int(i * related[j] + 0.5);
+<a name="l00430"></a>00430 
+<a name="l00431"></a>00431             <span class="keywordflow">if</span> (k0 &gt;= 0 &amp;&amp; k0 &lt; <span class="keywordtype">int</span>(n/2)) {
+<a name="l00432"></a>00432 
+<a name="l00433"></a>00433                 <span class="keywordtype">int</span> kmax = 0, kmin = 0;
+<a name="l00434"></a>00434                 <span class="keywordtype">float</span> kvmax = 0, kvmin = 0;
+<a name="l00435"></a>00435                 <span class="keywordtype">bool</span> have = <span class="keyword">false</span>;
+<a name="l00436"></a>00436 
+<a name="l00437"></a>00437                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = k0 - 1; k &lt;= k0 + 1; ++k) {
+<a name="l00438"></a>00438 
+<a name="l00439"></a>00439                     <span class="keywordflow">if</span> (k &lt; 0 || k &gt;= n/2) <span class="keywordflow">continue</span>;
+<a name="l00440"></a>00440 
+<a name="l00441"></a>00441                     <span class="keywordflow">if</span> (!have || (<a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>[k] &gt; kvmax)) { kmax = k; kvmax = <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>[k]; }
+<a name="l00442"></a>00442                     <span class="keywordflow">if</span> (!have || (<a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>[k] &lt; kvmin)) { kmin = k; kvmin = <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>[k]; }
+<a name="l00443"></a>00443                     
+<a name="l00444"></a>00444                     have = <span class="keyword">true</span>;
+<a name="l00445"></a>00445                 }
+<a name="l00446"></a>00446                 
+<a name="l00447"></a>00447                 <span class="comment">// Boost the original lag according to the strongest</span>
+<a name="l00448"></a>00448                 <span class="comment">// value found close to this related lag</span>
+<a name="l00449"></a>00449 
+<a name="l00450"></a>00450                 <a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a>[i] += <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>[kmax] / 5;
+<a name="l00451"></a>00451 
+<a name="l00452"></a>00452                 <span class="keywordflow">if</span> ((kmax == 0 || <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>[kmax] &gt; <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>[kmax-1]) &amp;&amp;
+<a name="l00453"></a>00453                     (kmax == n/2-1 || <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>[kmax] &gt; <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>[kmax+1]) &amp;&amp;
+<a name="l00454"></a>00454                     kvmax &gt; kvmin * 1.05) {
+<a name="l00455"></a>00455 
+<a name="l00456"></a>00456                     <span class="comment">// The strongest value close to the related lag is</span>
+<a name="l00457"></a>00457                     <span class="comment">// also a pretty good looking peak, so use it to</span>
+<a name="l00458"></a>00458                     <span class="comment">// improve our tempo estimate for the original lag</span>
+<a name="l00459"></a>00459                     
+<a name="l00460"></a>00460                     <a class="code" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">m_t</a>[i] = <a class="code" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">m_t</a>[i] + <a class="code" href="classFixedTempoEstimator_1_1D.html#0a7cb0705938097ab23a6f9187e6bae5">lag2tempo</a>(kmax) * related[j];
+<a name="l00461"></a>00461                     ++div;
+<a name="l00462"></a>00462                 }
+<a name="l00463"></a>00463             }
+<a name="l00464"></a>00464         }
+<a name="l00465"></a>00465         
+<a name="l00466"></a>00466         <a class="code" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">m_t</a>[i] /= div;
+<a name="l00467"></a>00467         
+<a name="l00468"></a>00468         <span class="comment">// Finally apply a primitive perceptual weighting (to prefer</span>
+<a name="l00469"></a>00469         <span class="comment">// tempi of around 120-130)</span>
+<a name="l00470"></a>00470 
+<a name="l00471"></a>00471         <span class="keywordtype">float</span> weight = 1.f - fabsf(128.f - <a class="code" href="classFixedTempoEstimator_1_1D.html#0a7cb0705938097ab23a6f9187e6bae5">lag2tempo</a>(i)) * 0.005;
+<a name="l00472"></a>00472         <span class="keywordflow">if</span> (weight &lt; 0.f) weight = 0.f;
+<a name="l00473"></a>00473         weight = weight * weight * weight;
+<a name="l00474"></a>00474 
+<a name="l00475"></a>00475         <a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a>[i] += <a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a>[i] * (weight / 3);
+<a name="l00476"></a>00476     }
+<a name="l00477"></a>00477 }
+<a name="l00478"></a>00478     
+<a name="l00479"></a>00479 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FixedTempoEstimator::FeatureSet</a>
+<a name="l00480"></a><a class="code" href="classFixedTempoEstimator_1_1D.html#20389ba1515f6ce4181d3f41e5c4f347">00480</a> <a class="code" href="classFixedTempoEstimator_1_1D.html#20389ba1515f6ce4181d3f41e5c4f347">FixedTempoEstimator::D::assembleFeatures</a>()
+<a name="l00481"></a>00481 {
+<a name="l00482"></a>00482     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> fs;
+<a name="l00483"></a>00483     <span class="keywordflow">if</span> (!<a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>) <span class="keywordflow">return</span> fs; <span class="comment">// No autocorrelation: no results</span>
+<a name="l00484"></a>00484 
+<a name="l00485"></a>00485     <a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> feature;
+<a name="l00486"></a>00486     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b" title="True if an output feature has its own timestamp.">hasTimestamp</a> = <span class="keyword">true</span>;
+<a name="l00487"></a>00487     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#33686757bd4481c72494122e9bfb9fba" title="True if an output feature has a specified duration.">hasDuration</a> = <span class="keyword">false</span>;
+<a name="l00488"></a>00488     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036" title="Label for the sample of this feature.">label</a> = <span class="stringliteral">""</span>;
+<a name="l00489"></a>00489     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.clear();
+<a name="l00490"></a>00490     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.push_back(0.f);
+<a name="l00491"></a>00491 
+<a name="l00492"></a>00492     <span class="keywordtype">char</span> buffer[40];
+<a name="l00493"></a>00493 
+<a name="l00494"></a>00494     <span class="keywordtype">int</span> n = <a class="code" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a>;
+<a name="l00495"></a>00495 
+<a name="l00496"></a>00496     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; ++i) {
+<a name="l00497"></a>00497 
+<a name="l00498"></a>00498         <span class="comment">// Return the detection function in the DF output</span>
+<a name="l00499"></a>00499 
+<a name="l00500"></a>00500         feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7" title="Timestamp of the output feature.">timestamp</a> = <a class="code" href="classFixedTempoEstimator_1_1D.html#3a3a0b4a4c259087f02d0046241674d0">m_start</a> +
+<a name="l00501"></a>00501             RealTime::frame2RealTime(i * <a class="code" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">m_stepSize</a>, <a class="code" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">m_inputSampleRate</a>);
+<a name="l00502"></a>00502         feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>[0] = <a class="code" href="classFixedTempoEstimator_1_1D.html#8e2312120e87ad9a48fedeebbaefa396">m_df</a>[i];
+<a name="l00503"></a>00503         feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036" title="Label for the sample of this feature.">label</a> = <span class="stringliteral">""</span>;
+<a name="l00504"></a>00504         fs[<a class="code" href="FixedTempoEstimator_8cpp.html#caa4524f29afce03c812a88ff31159c1">DFOutput</a>].push_back(feature);
+<a name="l00505"></a>00505     }
+<a name="l00506"></a>00506 
+<a name="l00507"></a>00507     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i &lt; n/2; ++i) {
+<a name="l00508"></a>00508 
+<a name="l00509"></a>00509         <span class="comment">// Return the raw autocorrelation in the ACF output, each</span>
+<a name="l00510"></a>00510         <span class="comment">// value labelled according to its corresponding tempo</span>
+<a name="l00511"></a>00511 
+<a name="l00512"></a>00512         feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7" title="Timestamp of the output feature.">timestamp</a> = <a class="code" href="classFixedTempoEstimator_1_1D.html#3a3a0b4a4c259087f02d0046241674d0">m_start</a> +
+<a name="l00513"></a>00513             RealTime::frame2RealTime(i * <a class="code" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">m_stepSize</a>, <a class="code" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">m_inputSampleRate</a>);
+<a name="l00514"></a>00514         feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>[0] = <a class="code" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a>[i];
+<a name="l00515"></a>00515         sprintf(buffer, <span class="stringliteral">"%.1f bpm"</span>, <a class="code" href="classFixedTempoEstimator_1_1D.html#0a7cb0705938097ab23a6f9187e6bae5">lag2tempo</a>(i));
+<a name="l00516"></a>00516         <span class="keywordflow">if</span> (i == n/2-1) feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036" title="Label for the sample of this feature.">label</a> = <span class="stringliteral">""</span>;
+<a name="l00517"></a>00517         <span class="keywordflow">else</span> feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036" title="Label for the sample of this feature.">label</a> = buffer;
+<a name="l00518"></a>00518         fs[<a class="code" href="FixedTempoEstimator_8cpp.html#382c1fe740ac8911c6078cfbceffc870">ACFOutput</a>].push_back(feature);
+<a name="l00519"></a>00519     }
+<a name="l00520"></a>00520 
+<a name="l00521"></a>00521     <span class="keywordtype">float</span> t0 = <a class="code" href="classFixedTempoEstimator_1_1D.html#768fdbb62e4b21a39897963fdbd486ed">m_minbpm</a>; <span class="comment">// our minimum detected tempo</span>
+<a name="l00522"></a>00522     <span class="keywordtype">float</span> t1 = <a class="code" href="classFixedTempoEstimator_1_1D.html#33e8d045b222addc6173b50df2553ba8">m_maxbpm</a>; <span class="comment">// our maximum detected tempo</span>
+<a name="l00523"></a>00523 
+<a name="l00524"></a>00524     <span class="keywordtype">int</span> p0 = <a class="code" href="classFixedTempoEstimator_1_1D.html#c6a75212293fc855de6ed0c6581a0fb9">tempo2lag</a>(t1);
+<a name="l00525"></a>00525     <span class="keywordtype">int</span> p1 = <a class="code" href="classFixedTempoEstimator_1_1D.html#c6a75212293fc855de6ed0c6581a0fb9">tempo2lag</a>(t0);
+<a name="l00526"></a>00526 
+<a name="l00527"></a>00527     std::map&lt;float, int&gt; candidates;
+<a name="l00528"></a>00528 
+<a name="l00529"></a>00529     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = p0; i &lt;= p1 &amp;&amp; i+1 &lt; n/2; ++i) {
+<a name="l00530"></a>00530 
+<a name="l00531"></a>00531         <span class="keywordflow">if</span> (<a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a>[i] &gt; <a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a>[i-1] &amp;&amp;
+<a name="l00532"></a>00532             <a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a>[i] &gt; <a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a>[i+1]) {
+<a name="l00533"></a>00533 
+<a name="l00534"></a>00534             <span class="comment">// This is a peak in the filtered autocorrelation: stick</span>
+<a name="l00535"></a>00535             <span class="comment">// it into the map from filtered autocorrelation to lag</span>
+<a name="l00536"></a>00536             <span class="comment">// index -- this sorts our peaks by filtered acf value</span>
+<a name="l00537"></a>00537 
+<a name="l00538"></a>00538             candidates[<a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a>[i]] = i;
+<a name="l00539"></a>00539         }
+<a name="l00540"></a>00540 
+<a name="l00541"></a>00541         <span class="comment">// Also return the filtered autocorrelation in its own output</span>
+<a name="l00542"></a>00542 
+<a name="l00543"></a>00543         feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7" title="Timestamp of the output feature.">timestamp</a> = <a class="code" href="classFixedTempoEstimator_1_1D.html#3a3a0b4a4c259087f02d0046241674d0">m_start</a> +
+<a name="l00544"></a>00544             RealTime::frame2RealTime(i * <a class="code" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">m_stepSize</a>, <a class="code" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">m_inputSampleRate</a>);
+<a name="l00545"></a>00545         feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>[0] = <a class="code" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a>[i];
+<a name="l00546"></a>00546         sprintf(buffer, <span class="stringliteral">"%.1f bpm"</span>, <a class="code" href="classFixedTempoEstimator_1_1D.html#0a7cb0705938097ab23a6f9187e6bae5">lag2tempo</a>(i));
+<a name="l00547"></a>00547         <span class="keywordflow">if</span> (i == p1 || i == n/2-2) feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036" title="Label for the sample of this feature.">label</a> = <span class="stringliteral">""</span>;
+<a name="l00548"></a>00548         <span class="keywordflow">else</span> feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036" title="Label for the sample of this feature.">label</a> = buffer;
+<a name="l00549"></a>00549         fs[<a class="code" href="FixedTempoEstimator_8cpp.html#5b284021783d79785d46b043b458368d">FilteredACFOutput</a>].push_back(feature);
+<a name="l00550"></a>00550     }
+<a name="l00551"></a>00551 
+<a name="l00552"></a>00552     <span class="keywordflow">if</span> (candidates.empty()) {
+<a name="l00553"></a>00553         cerr &lt;&lt; <span class="stringliteral">"No tempo candidates!"</span> &lt;&lt; endl;
+<a name="l00554"></a>00554         <span class="keywordflow">return</span> fs;
+<a name="l00555"></a>00555     }
+<a name="l00556"></a>00556 
+<a name="l00557"></a>00557     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b" title="True if an output feature has its own timestamp.">hasTimestamp</a> = <span class="keyword">true</span>;
+<a name="l00558"></a>00558     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7" title="Timestamp of the output feature.">timestamp</a> = <a class="code" href="classFixedTempoEstimator_1_1D.html#3a3a0b4a4c259087f02d0046241674d0">m_start</a>;
+<a name="l00559"></a>00559     
+<a name="l00560"></a>00560     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#33686757bd4481c72494122e9bfb9fba" title="True if an output feature has a specified duration.">hasDuration</a> = <span class="keyword">true</span>;
+<a name="l00561"></a>00561     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#f687c0a7fe041757e922ec296862b115" title="Duration of the output feature.">duration</a> = <a class="code" href="classFixedTempoEstimator_1_1D.html#bacd5ff19c301020efb99c03136b849a">m_lasttime</a> - <a class="code" href="classFixedTempoEstimator_1_1D.html#3a3a0b4a4c259087f02d0046241674d0">m_start</a>;
+<a name="l00562"></a>00562 
+<a name="l00563"></a>00563     <span class="comment">// The map contains only peaks and is sorted by filtered acf</span>
+<a name="l00564"></a>00564     <span class="comment">// value, so the final element in it is our "best" tempo guess</span>
+<a name="l00565"></a>00565 
+<a name="l00566"></a>00566     std::map&lt;float, int&gt;::const_iterator ci = candidates.end();
+<a name="l00567"></a>00567     --ci;
+<a name="l00568"></a>00568     <span class="keywordtype">int</span> maxpi = ci-&gt;second;
+<a name="l00569"></a>00569 
+<a name="l00570"></a>00570     <span class="keywordflow">if</span> (<a class="code" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">m_t</a>[maxpi] &gt; 0) {
+<a name="l00571"></a>00571 
+<a name="l00572"></a>00572         <span class="comment">// This lag has an adjusted tempo from the averaging process:</span>
+<a name="l00573"></a>00573         <span class="comment">// use it</span>
+<a name="l00574"></a>00574 
+<a name="l00575"></a>00575         feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>[0] = <a class="code" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">m_t</a>[maxpi];
+<a name="l00576"></a>00576 
+<a name="l00577"></a>00577     } <span class="keywordflow">else</span> {
+<a name="l00578"></a>00578 
+<a name="l00579"></a>00579         <span class="comment">// shouldn't happen -- it would imply that this high value was</span>
+<a name="l00580"></a>00580         <span class="comment">// not a peak!</span>
+<a name="l00581"></a>00581 
+<a name="l00582"></a>00582         feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>[0] = <a class="code" href="classFixedTempoEstimator_1_1D.html#0a7cb0705938097ab23a6f9187e6bae5">lag2tempo</a>(maxpi);
+<a name="l00583"></a>00583         cerr &lt;&lt; <span class="stringliteral">"WARNING: No stored tempo for index "</span> &lt;&lt; maxpi &lt;&lt; endl;
+<a name="l00584"></a>00584     }
+<a name="l00585"></a>00585 
+<a name="l00586"></a>00586     sprintf(buffer, <span class="stringliteral">"%.1f bpm"</span>, feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>[0]);
+<a name="l00587"></a>00587     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036" title="Label for the sample of this feature.">label</a> = buffer;
+<a name="l00588"></a>00588 
+<a name="l00589"></a>00589     <span class="comment">// Return the best tempo in the main output</span>
+<a name="l00590"></a>00590 
+<a name="l00591"></a>00591     fs[<a class="code" href="FixedTempoEstimator_8cpp.html#7a8511e62dffb5334ad3b70d57b2fcee">TempoOutput</a>].push_back(feature);
+<a name="l00592"></a>00592 
+<a name="l00593"></a>00593     <span class="comment">// And return the other estimates (up to the arbitrarily chosen</span>
+<a name="l00594"></a>00594     <span class="comment">// number of 10 of them) in the candidates output</span>
+<a name="l00595"></a>00595 
+<a name="l00596"></a>00596     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.clear();
+<a name="l00597"></a>00597     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036" title="Label for the sample of this feature.">label</a> = <span class="stringliteral">""</span>;
+<a name="l00598"></a>00598 
+<a name="l00599"></a>00599     <span class="keywordflow">while</span> (feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.size() &lt; 10) {
+<a name="l00600"></a>00600         <span class="keywordflow">if</span> (<a class="code" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">m_t</a>[ci-&gt;second] &gt; 0) {
+<a name="l00601"></a>00601             feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.push_back(<a class="code" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">m_t</a>[ci-&gt;second]);
+<a name="l00602"></a>00602         } <span class="keywordflow">else</span> {
+<a name="l00603"></a>00603             feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.push_back(<a class="code" href="classFixedTempoEstimator_1_1D.html#0a7cb0705938097ab23a6f9187e6bae5">lag2tempo</a>(ci-&gt;second));
+<a name="l00604"></a>00604         }
+<a name="l00605"></a>00605         <span class="keywordflow">if</span> (ci == candidates.begin()) <span class="keywordflow">break</span>;
+<a name="l00606"></a>00606         --ci;
+<a name="l00607"></a>00607     }
+<a name="l00608"></a>00608 
+<a name="l00609"></a>00609     fs[<a class="code" href="FixedTempoEstimator_8cpp.html#554b16c6b7516530e52c65318bfe08eb">CandidatesOutput</a>].push_back(feature);
+<a name="l00610"></a>00610     
+<a name="l00611"></a>00611     <span class="keywordflow">return</span> fs;
+<a name="l00612"></a>00612 }
+<a name="l00613"></a>00613 
+<a name="l00614"></a>00614     
+<a name="l00615"></a>00615 
+<a name="l00616"></a><a class="code" href="classFixedTempoEstimator.html#3967c189f054f864639837c2519bd64d">00616</a> <a class="code" href="classFixedTempoEstimator.html#3967c189f054f864639837c2519bd64d">FixedTempoEstimator::FixedTempoEstimator</a>(<span class="keywordtype">float</span> inputSampleRate) :
+<a name="l00617"></a>00617     <a class="code" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>(inputSampleRate),
+<a name="l00618"></a>00618     <a class="code" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">m_d</a>(new <a class="code" href="classFixedTempoEstimator_1_1D.html">D</a>(inputSampleRate))
+<a name="l00619"></a>00619 {
+<a name="l00620"></a>00620 }
+<a name="l00621"></a>00621 
+<a name="l00622"></a><a class="code" href="classFixedTempoEstimator.html#0302c4bfdc163a3d34478cde93c96a53">00622</a> <a class="code" href="classFixedTempoEstimator.html#0302c4bfdc163a3d34478cde93c96a53">FixedTempoEstimator::~FixedTempoEstimator</a>()
+<a name="l00623"></a>00623 {
+<a name="l00624"></a>00624     <span class="keyword">delete</span> <a class="code" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">m_d</a>;
+<a name="l00625"></a>00625 }
+<a name="l00626"></a>00626 
+<a name="l00627"></a>00627 <span class="keywordtype">string</span>
+<a name="l00628"></a><a class="code" href="classFixedTempoEstimator.html#b818edcf1555177d10260e197e3a5e7a">00628</a> <a class="code" href="classFixedTempoEstimator.html#b818edcf1555177d10260e197e3a5e7a" title="Get the computer-usable name of the plugin.">FixedTempoEstimator::getIdentifier</a>()<span class="keyword"> const</span>
+<a name="l00629"></a>00629 <span class="keyword"></span>{
+<a name="l00630"></a>00630     <span class="keywordflow">return</span> <span class="stringliteral">"fixedtempo"</span>;
+<a name="l00631"></a>00631 }
+<a name="l00632"></a>00632 
+<a name="l00633"></a>00633 <span class="keywordtype">string</span>
+<a name="l00634"></a><a class="code" href="classFixedTempoEstimator.html#f9eb6fa8a98aa66b55e64e1795f9405f">00634</a> <a class="code" href="classFixedTempoEstimator.html#f9eb6fa8a98aa66b55e64e1795f9405f" title="Get a human-readable name or title of the plugin.">FixedTempoEstimator::getName</a>()<span class="keyword"> const</span>
+<a name="l00635"></a>00635 <span class="keyword"></span>{
+<a name="l00636"></a>00636     <span class="keywordflow">return</span> <span class="stringliteral">"Simple Fixed Tempo Estimator"</span>;
+<a name="l00637"></a>00637 }
+<a name="l00638"></a>00638 
+<a name="l00639"></a>00639 <span class="keywordtype">string</span>
+<a name="l00640"></a><a class="code" href="classFixedTempoEstimator.html#06b00853f00c2e78d490697fcd7d1920">00640</a> <a class="code" href="classFixedTempoEstimator.html#06b00853f00c2e78d490697fcd7d1920" title="Get a human-readable description for the plugin, typically a line of text that may...">FixedTempoEstimator::getDescription</a>()<span class="keyword"> const</span>
+<a name="l00641"></a>00641 <span class="keyword"></span>{
+<a name="l00642"></a>00642     <span class="keywordflow">return</span> <span class="stringliteral">"Study a short section of audio and estimate its tempo, assuming the tempo is constant"</span>;
+<a name="l00643"></a>00643 }
+<a name="l00644"></a>00644 
+<a name="l00645"></a>00645 <span class="keywordtype">string</span>
+<a name="l00646"></a><a class="code" href="classFixedTempoEstimator.html#e910d1b9250b11097fd6b51cd8285b68">00646</a> <a class="code" href="classFixedTempoEstimator.html#e910d1b9250b11097fd6b51cd8285b68" title="Get the name of the author or vendor of the plugin in human-readable form.">FixedTempoEstimator::getMaker</a>()<span class="keyword"> const</span>
+<a name="l00647"></a>00647 <span class="keyword"></span>{
+<a name="l00648"></a>00648     <span class="keywordflow">return</span> <span class="stringliteral">"Vamp SDK Example Plugins"</span>;
+<a name="l00649"></a>00649 }
+<a name="l00650"></a>00650 
+<a name="l00651"></a>00651 <span class="keywordtype">int</span>
+<a name="l00652"></a><a class="code" href="classFixedTempoEstimator.html#d002fddb3735c2dd7e31e6a9def9949f">00652</a> <a class="code" href="classFixedTempoEstimator.html#d002fddb3735c2dd7e31e6a9def9949f" title="Get the version number of the plugin.">FixedTempoEstimator::getPluginVersion</a>()<span class="keyword"> const</span>
+<a name="l00653"></a>00653 <span class="keyword"></span>{
+<a name="l00654"></a>00654     <span class="keywordflow">return</span> 1;
+<a name="l00655"></a>00655 }
+<a name="l00656"></a>00656 
+<a name="l00657"></a>00657 <span class="keywordtype">string</span>
+<a name="l00658"></a><a class="code" href="classFixedTempoEstimator.html#50c6b64530c84c0707ba3936c5022a48">00658</a> <a class="code" href="classFixedTempoEstimator.html#50c6b64530c84c0707ba3936c5022a48" title="Get the copyright statement or licensing summary for the plugin.">FixedTempoEstimator::getCopyright</a>()<span class="keyword"> const</span>
+<a name="l00659"></a>00659 <span class="keyword"></span>{
+<a name="l00660"></a>00660     <span class="keywordflow">return</span> <span class="stringliteral">"Code copyright 2008 Queen Mary, University of London.  Freely redistributable (BSD license)"</span>;
+<a name="l00661"></a>00661 }
+<a name="l00662"></a>00662 
+<a name="l00663"></a>00663 <span class="keywordtype">size_t</span>
+<a name="l00664"></a><a class="code" href="classFixedTempoEstimator.html#d450bb7e7df559ae3d68dfbfb085676f">00664</a> <a class="code" href="classFixedTempoEstimator.html#d450bb7e7df559ae3d68dfbfb085676f" title="Get the preferred step size (window increment -- the distance in sample frames between...">FixedTempoEstimator::getPreferredStepSize</a>()<span class="keyword"> const</span>
+<a name="l00665"></a>00665 <span class="keyword"></span>{
+<a name="l00666"></a>00666     <span class="keywordflow">return</span> <a class="code" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">m_d</a>-&gt;<a class="code" href="classFixedTempoEstimator_1_1D.html#dd749be18355ab1ae5c1ccbacfd2e192">getPreferredStepSize</a>();
+<a name="l00667"></a>00667 }
+<a name="l00668"></a>00668 
+<a name="l00669"></a>00669 <span class="keywordtype">size_t</span>
+<a name="l00670"></a><a class="code" href="classFixedTempoEstimator.html#68b8569b71504a0478caf990dbe30683">00670</a> <a class="code" href="classFixedTempoEstimator.html#68b8569b71504a0478caf990dbe30683" title="Get the preferred block size (window size -- the number of sample frames passed in...">FixedTempoEstimator::getPreferredBlockSize</a>()<span class="keyword"> const</span>
+<a name="l00671"></a>00671 <span class="keyword"></span>{
+<a name="l00672"></a>00672     <span class="keywordflow">return</span> <a class="code" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">m_d</a>-&gt;<a class="code" href="classFixedTempoEstimator_1_1D.html#c02826f981736fc2aa5d835fa14e174d">getPreferredBlockSize</a>();
+<a name="l00673"></a>00673 }
+<a name="l00674"></a>00674 
+<a name="l00675"></a>00675 <span class="keywordtype">bool</span>
+<a name="l00676"></a><a class="code" href="classFixedTempoEstimator.html#a7500a4ffbc4653baaf5101defdb37f5">00676</a> <a class="code" href="classFixedTempoEstimator.html#a7500a4ffbc4653baaf5101defdb37f5" title="Initialise a plugin to prepare it for use with the given number of input channels...">FixedTempoEstimator::initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize)
+<a name="l00677"></a>00677 {
+<a name="l00678"></a>00678     <span class="keywordflow">if</span> (channels &lt; <a class="code" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525" title="Get the minimum supported number of input channels.">getMinChannelCount</a>() ||
+<a name="l00679"></a>00679         channels &gt; <a class="code" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e" title="Get the maximum supported number of input channels.">getMaxChannelCount</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00680"></a>00680 
+<a name="l00681"></a>00681     <span class="keywordflow">return</span> <a class="code" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">m_d</a>-&gt;<a class="code" href="classFixedTempoEstimator_1_1D.html#f0fcad4493650728babb7e341963c91d">initialise</a>(channels, stepSize, blockSize);
+<a name="l00682"></a>00682 }
+<a name="l00683"></a>00683 
+<a name="l00684"></a>00684 <span class="keywordtype">void</span>
+<a name="l00685"></a><a class="code" href="classFixedTempoEstimator.html#c41708397255400c6682fee6c1b3d45f">00685</a> <a class="code" href="classFixedTempoEstimator.html#c41708397255400c6682fee6c1b3d45f" title="Reset the plugin after use, to prepare it for another clean run.">FixedTempoEstimator::reset</a>()
+<a name="l00686"></a>00686 {
+<a name="l00687"></a>00687     <span class="keywordflow">return</span> <a class="code" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">m_d</a>-&gt;<a class="code" href="classFixedTempoEstimator_1_1D.html#f5ac8147bfe79371d00aba8a19c2f8fd">reset</a>();
+<a name="l00688"></a>00688 }
+<a name="l00689"></a>00689 
+<a name="l00690"></a>00690 <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">FixedTempoEstimator::ParameterList</a>
+<a name="l00691"></a><a class="code" href="classFixedTempoEstimator.html#e157465a4e07d180bab05b5c3a4d8987">00691</a> <a class="code" href="classFixedTempoEstimator.html#e157465a4e07d180bab05b5c3a4d8987" title="Get the controllable parameters of this plugin.">FixedTempoEstimator::getParameterDescriptors</a>()<span class="keyword"> const</span>
+<a name="l00692"></a>00692 <span class="keyword"></span>{
+<a name="l00693"></a>00693     <span class="keywordflow">return</span> <a class="code" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">m_d</a>-&gt;<a class="code" href="classFixedTempoEstimator_1_1D.html#06fcf80a9a22c4b90abbc88eb592621a">getParameterDescriptors</a>();
+<a name="l00694"></a>00694 }
+<a name="l00695"></a>00695 
+<a name="l00696"></a>00696 <span class="keywordtype">float</span>
+<a name="l00697"></a><a class="code" href="classFixedTempoEstimator.html#2030b05fb1228b30ace16200780c9152">00697</a> <a class="code" href="classFixedTempoEstimator.html#2030b05fb1228b30ace16200780c9152" title="Get the value of a named parameter.">FixedTempoEstimator::getParameter</a>(std::string <span class="keywordtype">id</span>)<span class="keyword"> const</span>
+<a name="l00698"></a>00698 <span class="keyword"></span>{
+<a name="l00699"></a>00699     <span class="keywordflow">return</span> <a class="code" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">m_d</a>-&gt;<a class="code" href="classFixedTempoEstimator_1_1D.html#968ef2e555c81e4a3bde89d19fafb31a">getParameter</a>(<span class="keywordtype">id</span>);
+<a name="l00700"></a>00700 }
+<a name="l00701"></a>00701 
+<a name="l00702"></a>00702 <span class="keywordtype">void</span>
+<a name="l00703"></a><a class="code" href="classFixedTempoEstimator.html#8a5a413025384cf451c64d2c2ce13a75">00703</a> <a class="code" href="classFixedTempoEstimator.html#8a5a413025384cf451c64d2c2ce13a75" title="Set a named parameter.">FixedTempoEstimator::setParameter</a>(std::string <span class="keywordtype">id</span>, <span class="keywordtype">float</span> value)
+<a name="l00704"></a>00704 {
+<a name="l00705"></a>00705     <a class="code" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">m_d</a>-&gt;<a class="code" href="classFixedTempoEstimator_1_1D.html#6cafa64d4cc8aa3556bc0ce6b0c49bc4">setParameter</a>(<span class="keywordtype">id</span>, value);
+<a name="l00706"></a>00706 }
+<a name="l00707"></a>00707 
+<a name="l00708"></a>00708 <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">FixedTempoEstimator::OutputList</a>
+<a name="l00709"></a><a class="code" href="classFixedTempoEstimator.html#83121c205a723fe6297e2bf8870622a4">00709</a> <a class="code" href="classFixedTempoEstimator.html#83121c205a723fe6297e2bf8870622a4" title="Get the outputs of this plugin.">FixedTempoEstimator::getOutputDescriptors</a>()<span class="keyword"> const</span>
+<a name="l00710"></a>00710 <span class="keyword"></span>{
+<a name="l00711"></a>00711     <span class="keywordflow">return</span> <a class="code" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">m_d</a>-&gt;<a class="code" href="classFixedTempoEstimator_1_1D.html#7ce98af800f36045a0dae4b1dbed943f">getOutputDescriptors</a>();
+<a name="l00712"></a>00712 }
+<a name="l00713"></a>00713 
+<a name="l00714"></a>00714 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FixedTempoEstimator::FeatureSet</a>
+<a name="l00715"></a><a class="code" href="classFixedTempoEstimator.html#1cf76b0e55cf4ed3da095cffcdeaec3c">00715</a> <a class="code" href="classFixedTempoEstimator.html#1cf76b0e55cf4ed3da095cffcdeaec3c" title="Process a single block of input data.">FixedTempoEstimator::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> ts)
+<a name="l00716"></a>00716 {
+<a name="l00717"></a>00717     <span class="keywordflow">return</span> <a class="code" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">m_d</a>-&gt;<a class="code" href="classFixedTempoEstimator_1_1D.html#7fac74fc9fc54f436408705d1e125e20">process</a>(inputBuffers, ts);
+<a name="l00718"></a>00718 }
+<a name="l00719"></a>00719 
+<a name="l00720"></a>00720 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FixedTempoEstimator::FeatureSet</a>
+<a name="l00721"></a><a class="code" href="classFixedTempoEstimator.html#4965cf99be77fc4d1de51e11d83936b0">00721</a> <a class="code" href="classFixedTempoEstimator.html#4965cf99be77fc4d1de51e11d83936b0" title="After all blocks have been processed, calculate and return any remaining features...">FixedTempoEstimator::getRemainingFeatures</a>()
+<a name="l00722"></a>00722 {
+<a name="l00723"></a>00723     <span class="keywordflow">return</span> <a class="code" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">m_d</a>-&gt;<a class="code" href="classFixedTempoEstimator_1_1D.html#7f9c3603bb3374d6936885010dbdd82b">getRemainingFeatures</a>();
+<a name="l00724"></a>00724 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/FixedTempoEstimator_8cpp.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,144 @@
+<!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: FixedTempoEstimator.cpp 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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>FixedTempoEstimator.cpp File Reference</h1>
+<p>
+
+<p>
+<a href="FixedTempoEstimator_8cpp-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">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="FixedTempoEstimator_8cpp.html#7a8511e62dffb5334ad3b70d57b2fcee">TempoOutput</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="FixedTempoEstimator_8cpp.html#554b16c6b7516530e52c65318bfe08eb">CandidatesOutput</a> = 1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="FixedTempoEstimator_8cpp.html#caa4524f29afce03c812a88ff31159c1">DFOutput</a> = 2</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="FixedTempoEstimator_8cpp.html#382c1fe740ac8911c6078cfbceffc870">ACFOutput</a> = 3</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="FixedTempoEstimator_8cpp.html#5b284021783d79785d46b043b458368d">FilteredACFOutput</a> = 4</td></tr>
+
+</table>
+<hr><h2>Variable Documentation</h2>
+<a class="anchor" name="7a8511e62dffb5334ad3b70d57b2fcee"></a><!-- doxytag: member="FixedTempoEstimator.cpp::TempoOutput" ref="7a8511e62dffb5334ad3b70d57b2fcee" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="FixedTempoEstimator_8cpp.html#7a8511e62dffb5334ad3b70d57b2fcee">TempoOutput</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00182">182</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">FixedTempoEstimator::D::assembleFeatures()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="554b16c6b7516530e52c65318bfe08eb"></a><!-- doxytag: member="FixedTempoEstimator.cpp::CandidatesOutput" ref="554b16c6b7516530e52c65318bfe08eb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="FixedTempoEstimator_8cpp.html#554b16c6b7516530e52c65318bfe08eb">CandidatesOutput</a> = 1<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00183">183</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">FixedTempoEstimator::D::assembleFeatures()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="caa4524f29afce03c812a88ff31159c1"></a><!-- doxytag: member="FixedTempoEstimator.cpp::DFOutput" ref="caa4524f29afce03c812a88ff31159c1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="FixedTempoEstimator_8cpp.html#caa4524f29afce03c812a88ff31159c1">DFOutput</a> = 2<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00184">184</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">FixedTempoEstimator::D::assembleFeatures()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="382c1fe740ac8911c6078cfbceffc870"></a><!-- doxytag: member="FixedTempoEstimator.cpp::ACFOutput" ref="382c1fe740ac8911c6078cfbceffc870" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="FixedTempoEstimator_8cpp.html#382c1fe740ac8911c6078cfbceffc870">ACFOutput</a> = 3<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00185">185</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">FixedTempoEstimator::D::assembleFeatures()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="5b284021783d79785d46b043b458368d"></a><!-- doxytag: member="FixedTempoEstimator.cpp::FilteredACFOutput" ref="5b284021783d79785d46b043b458368d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="FixedTempoEstimator_8cpp.html#5b284021783d79785d46b043b458368d">FilteredACFOutput</a> = 4<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00186">186</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">FixedTempoEstimator::D::assembleFeatures()</a>.</p>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/FixedTempoEstimator_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,107 @@
+<!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: FixedTempoEstimator.h Source File</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>FixedTempoEstimator.h</h1><a href="FixedTempoEstimator_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/*</span>
+<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
+<a name="l00005"></a>00005 <span class="comment"></span>
+<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2006-2008 Chris Cannam and QMUL.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef _FIXED_TEMPO_ESTIMATOR_PLUGIN_H_</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _FIXED_TEMPO_ESTIMATOR_PLUGIN_H_</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="vamp-sdk_2Plugin_8h.html">vamp-sdk/Plugin.h</a>"</span>
+<a name="l00041"></a>00041 
+<a name="l00046"></a><a class="code" href="classFixedTempoEstimator.html">00046</a> <span class="keyword">class </span><a class="code" href="classFixedTempoEstimator.html" title="Example plugin that estimates the tempo of a short fixed-tempo sample.">FixedTempoEstimator</a> : <span class="keyword">public</span> Vamp::<a class="code" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>
+<a name="l00047"></a>00047 {
+<a name="l00048"></a>00048 <span class="keyword">public</span>:
+<a name="l00049"></a>00049     <a class="code" href="classFixedTempoEstimator.html#3967c189f054f864639837c2519bd64d">FixedTempoEstimator</a>(<span class="keywordtype">float</span> inputSampleRate);
+<a name="l00050"></a>00050     <span class="keyword">virtual</span> <a class="code" href="classFixedTempoEstimator.html#0302c4bfdc163a3d34478cde93c96a53">~FixedTempoEstimator</a>();
+<a name="l00051"></a>00051 
+<a name="l00052"></a>00052     <span class="keywordtype">bool</span> <a class="code" href="classFixedTempoEstimator.html#a7500a4ffbc4653baaf5101defdb37f5" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
+<a name="l00053"></a>00053     <span class="keywordtype">void</span> <a class="code" href="classFixedTempoEstimator.html#c41708397255400c6682fee6c1b3d45f" title="Reset the plugin after use, to prepare it for another clean run.">reset</a>();
+<a name="l00054"></a>00054 
+<a name="l00055"></a><a class="code" href="classFixedTempoEstimator.html#055689c9b41b0945e8d3cdbc3b8c3a2e">00055</a>     <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> <a class="code" href="classFixedTempoEstimator.html#055689c9b41b0945e8d3cdbc3b8c3a2e" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a>; }
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057     std::string <a class="code" href="classFixedTempoEstimator.html#b818edcf1555177d10260e197e3a5e7a" title="Get the computer-usable name of the plugin.">getIdentifier</a>() <span class="keyword">const</span>;
+<a name="l00058"></a>00058     std::string <a class="code" href="classFixedTempoEstimator.html#f9eb6fa8a98aa66b55e64e1795f9405f" title="Get a human-readable name or title of the plugin.">getName</a>() <span class="keyword">const</span>;
+<a name="l00059"></a>00059     std::string <a class="code" href="classFixedTempoEstimator.html#06b00853f00c2e78d490697fcd7d1920" title="Get a human-readable description for the plugin, typically a line of text that may...">getDescription</a>() <span class="keyword">const</span>;
+<a name="l00060"></a>00060     std::string <a class="code" href="classFixedTempoEstimator.html#e910d1b9250b11097fd6b51cd8285b68" title="Get the name of the author or vendor of the plugin in human-readable form.">getMaker</a>() <span class="keyword">const</span>;
+<a name="l00061"></a>00061     <span class="keywordtype">int</span> <a class="code" href="classFixedTempoEstimator.html#d002fddb3735c2dd7e31e6a9def9949f" title="Get the version number of the plugin.">getPluginVersion</a>() <span class="keyword">const</span>;
+<a name="l00062"></a>00062     std::string <a class="code" href="classFixedTempoEstimator.html#50c6b64530c84c0707ba3936c5022a48" title="Get the copyright statement or licensing summary for the plugin.">getCopyright</a>() <span class="keyword">const</span>;
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064     <span class="keywordtype">size_t</span> <a class="code" href="classFixedTempoEstimator.html#d450bb7e7df559ae3d68dfbfb085676f" title="Get the preferred step size (window increment -- the distance in sample frames between...">getPreferredStepSize</a>() <span class="keyword">const</span>;
+<a name="l00065"></a>00065     <span class="keywordtype">size_t</span> <a class="code" href="classFixedTempoEstimator.html#68b8569b71504a0478caf990dbe30683" title="Get the preferred block size (window size -- the number of sample frames passed in...">getPreferredBlockSize</a>() <span class="keyword">const</span>;
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067     <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> <a class="code" href="classFixedTempoEstimator.html#e157465a4e07d180bab05b5c3a4d8987" title="Get the controllable parameters of this plugin.">getParameterDescriptors</a>() <span class="keyword">const</span>;
+<a name="l00068"></a>00068     <span class="keywordtype">float</span> <a class="code" href="classFixedTempoEstimator.html#2030b05fb1228b30ace16200780c9152" title="Get the value of a named parameter.">getParameter</a>(std::string <span class="keywordtype">id</span>) <span class="keyword">const</span>;
+<a name="l00069"></a>00069     <span class="keywordtype">void</span> <a class="code" href="classFixedTempoEstimator.html#8a5a413025384cf451c64d2c2ce13a75" title="Set a named parameter.">setParameter</a>(std::string <span class="keywordtype">id</span>, <span class="keywordtype">float</span> value);
+<a name="l00070"></a>00070 
+<a name="l00071"></a>00071     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> <a class="code" href="classFixedTempoEstimator.html#83121c205a723fe6297e2bf8870622a4" title="Get the outputs of this plugin.">getOutputDescriptors</a>() <span class="keyword">const</span>;
+<a name="l00072"></a>00072 
+<a name="l00073"></a>00073     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classFixedTempoEstimator.html#1cf76b0e55cf4ed3da095cffcdeaec3c" title="Process a single block of input data.">process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
+<a name="l00074"></a>00074                        <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">Vamp::RealTime</a> timestamp);
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classFixedTempoEstimator.html#4965cf99be77fc4d1de51e11d83936b0" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures</a>();
+<a name="l00077"></a>00077 
+<a name="l00078"></a>00078 <span class="keyword">protected</span>:
+<a name="l00079"></a><a class="code" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">00079</a>     <span class="keyword">class </span><a class="code" href="classFixedTempoEstimator_1_1D.html">D</a>;
+<a name="l00080"></a>00080     <a class="code" href="classFixedTempoEstimator_1_1D.html">D</a> *<a class="code" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">m_d</a>;
+<a name="l00081"></a>00081 };
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083 
+<a name="l00084"></a>00084 <span class="preprocessor">#endif</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/FixedTempoEstimator_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,38 @@
+<!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: FixedTempoEstimator.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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>FixedTempoEstimator.h File Reference</h1>
+<p>
+
+<p>
+<a href="FixedTempoEstimator_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">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Example plugin that estimates the tempo of a short fixed-tempo sample.  <a href="classFixedTempoEstimator.html#_details">More...</a><br></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- a/code-doc/PercussionOnsetDetector_8cpp-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PercussionOnsetDetector_8cpp-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -18,7 +18,7 @@
   <div class="navpath"><a class="el" href="dir_35887283b966ca996e4ff77f459c38ce.html">examples</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>PercussionOnsetDetector.cpp</h1><a href="PercussionOnsetDetector_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -266,7 +266,7 @@
 <a name="l00245"></a>00245         <span class="keywordflow">if</span> (<a class="code" href="classPercussionOnsetDetector.html#30daa717267251a9d49afe57c328e989">m_priorMagnitudes</a>[i] &gt; 0.f) {
 <a name="l00246"></a>00246             <span class="keywordtype">float</span> diff = 10.f * log10f(sqrmag / <a class="code" href="classPercussionOnsetDetector.html#30daa717267251a9d49afe57c328e989">m_priorMagnitudes</a>[i]);
 <a name="l00247"></a>00247 
-<a name="l00248"></a>00248 <span class="comment">//        std::cout &lt;&lt; "i=" &lt;&lt; i &lt;&lt; ", mag=" &lt;&lt; mag &lt;&lt; ", prior=" &lt;&lt; m_priorMagnitudes[i] &lt;&lt; ", diff=" &lt;&lt; diff &lt;&lt; ", threshold=" &lt;&lt; m_threshold &lt;&lt; std::endl;</span>
+<a name="l00248"></a>00248 <span class="comment">//        std::cout &lt;&lt; "i=" &lt;&lt; i &lt;&lt; ", sqrmag=" &lt;&lt; sqrmag &lt;&lt; ", prior=" &lt;&lt; m_priorMagnitudes[i] &lt;&lt; ", diff=" &lt;&lt; diff &lt;&lt; ", threshold=" &lt;&lt; m_threshold &lt;&lt; " " &lt;&lt; (diff &gt;= m_threshold ? "[*]" : "") &lt;&lt; std::endl;</span>
 <a name="l00249"></a>00249 
 <a name="l00250"></a>00250             <span class="keywordflow">if</span> (diff &gt;= <a class="code" href="classPercussionOnsetDetector.html#b04119adad56d87f2e633de289aab507">m_threshold</a>) ++count;
 <a name="l00251"></a>00251         }
@@ -285,28 +285,30 @@
 <a name="l00264"></a>00264         <a class="code" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">m_dfMinus1</a> &gt;= count &amp;&amp;
 <a name="l00265"></a>00265         <a class="code" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">m_dfMinus1</a> &gt; ((100 - <a class="code" href="classPercussionOnsetDetector.html#4e9770f246ba3bc75e7fc2cb8f9010af">m_sensitivity</a>) * <a class="code" href="classPercussionOnsetDetector.html#920de543dbcf70a2edd80b5b31313285">m_blockSize</a>) / 200) {
 <a name="l00266"></a>00266 
-<a name="l00267"></a>00267         <a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> onset;
-<a name="l00268"></a>00268         onset.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b" title="True if an output feature has its own timestamp.">hasTimestamp</a> = <span class="keyword">true</span>;
-<a name="l00269"></a>00269         onset.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7" title="Timestamp of the output feature.">timestamp</a> = ts - <a class="code" href="structVamp_1_1RealTime.html#3a5ecc8888b559aad3b7d96911786b3a" title="Convert a sample frame at the given sample rate into a RealTime.">Vamp::RealTime::frame2RealTime</a>
-<a name="l00270"></a>00270             (<a class="code" href="classPercussionOnsetDetector.html#abac0cf7e961482b075777e5f0686e6c">m_stepSize</a>, lrintf(<a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>));
-<a name="l00271"></a>00271         returnFeatures[0].push_back(onset);
-<a name="l00272"></a>00272     }
-<a name="l00273"></a>00273 
-<a name="l00274"></a>00274     <a class="code" href="classPercussionOnsetDetector.html#6ad7d8353cc681ff42a63b127cca5779">m_dfMinus2</a> = <a class="code" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">m_dfMinus1</a>;
-<a name="l00275"></a>00275     <a class="code" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">m_dfMinus1</a> = count;
-<a name="l00276"></a>00276 
-<a name="l00277"></a>00277     <span class="keywordflow">return</span> returnFeatures;
-<a name="l00278"></a>00278 }
-<a name="l00279"></a>00279 
-<a name="l00280"></a>00280 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PercussionOnsetDetector::FeatureSet</a>
-<a name="l00281"></a><a class="code" href="classPercussionOnsetDetector.html#d3d6767ed137783e84f842b4d4732ffa">00281</a> <a class="code" href="classPercussionOnsetDetector.html#d3d6767ed137783e84f842b4d4732ffa" title="After all blocks have been processed, calculate and return any remaining features...">PercussionOnsetDetector::getRemainingFeatures</a>()
-<a name="l00282"></a>00282 {
-<a name="l00283"></a>00283     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>();
-<a name="l00284"></a>00284 }
-<a name="l00285"></a>00285 
+<a name="l00267"></a>00267 <span class="comment">//std::cout &lt;&lt; "result at " &lt;&lt; ts &lt;&lt; "! (count == " &lt;&lt; count &lt;&lt; ", prev == " &lt;&lt; m_dfMinus1 &lt;&lt; ")" &lt;&lt; std::endl;</span>
+<a name="l00268"></a>00268 
+<a name="l00269"></a>00269         <a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> onset;
+<a name="l00270"></a>00270         onset.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b" title="True if an output feature has its own timestamp.">hasTimestamp</a> = <span class="keyword">true</span>;
+<a name="l00271"></a>00271         onset.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7" title="Timestamp of the output feature.">timestamp</a> = ts - <a class="code" href="structVamp_1_1RealTime.html#939b4b1d1ca190db69a418883f16ce8a" title="Convert a sample frame at the given sample rate into a RealTime.">Vamp::RealTime::frame2RealTime</a>
+<a name="l00272"></a>00272             (<a class="code" href="classPercussionOnsetDetector.html#abac0cf7e961482b075777e5f0686e6c">m_stepSize</a>, <span class="keywordtype">int</span>(<a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a> + 0.5));
+<a name="l00273"></a>00273         returnFeatures[0].push_back(onset);
+<a name="l00274"></a>00274     }
+<a name="l00275"></a>00275 
+<a name="l00276"></a>00276     <a class="code" href="classPercussionOnsetDetector.html#6ad7d8353cc681ff42a63b127cca5779">m_dfMinus2</a> = <a class="code" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">m_dfMinus1</a>;
+<a name="l00277"></a>00277     <a class="code" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">m_dfMinus1</a> = count;
+<a name="l00278"></a>00278 
+<a name="l00279"></a>00279     <span class="keywordflow">return</span> returnFeatures;
+<a name="l00280"></a>00280 }
+<a name="l00281"></a>00281 
+<a name="l00282"></a>00282 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PercussionOnsetDetector::FeatureSet</a>
+<a name="l00283"></a><a class="code" href="classPercussionOnsetDetector.html#d3d6767ed137783e84f842b4d4732ffa">00283</a> <a class="code" href="classPercussionOnsetDetector.html#d3d6767ed137783e84f842b4d4732ffa" title="After all blocks have been processed, calculate and return any remaining features...">PercussionOnsetDetector::getRemainingFeatures</a>()
+<a name="l00284"></a>00284 {
+<a name="l00285"></a>00285     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>();
+<a name="l00286"></a>00286 }
+<a name="l00287"></a>00287 
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PercussionOnsetDetector_8cpp.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PercussionOnsetDetector_8cpp.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -27,8 +27,8 @@
 <tr><td></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PercussionOnsetDetector_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PercussionOnsetDetector_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -18,7 +18,7 @@
   <div class="navpath"><a class="el" href="dir_35887283b966ca996e4ff77f459c38ce.html">examples</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>PercussionOnsetDetector.h</h1><a href="PercussionOnsetDetector_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -58,7 +58,7 @@
 <a name="l00037"></a>00037 <span class="preprocessor">#ifndef _PERCUSSION_ONSET_DETECTOR_PLUGIN_H_</span>
 <a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _PERCUSSION_ONSET_DETECTOR_PLUGIN_H_</span>
 <a name="l00039"></a>00039 <span class="preprocessor"></span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="Plugin_8h.html">vamp-sdk/Plugin.h</a>"</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="vamp-sdk_2Plugin_8h.html">vamp-sdk/Plugin.h</a>"</span>
 <a name="l00041"></a>00041 
 <a name="l00046"></a><a class="code" href="classPercussionOnsetDetector.html">00046</a> <span class="keyword">class </span><a class="code" href="classPercussionOnsetDetector.html" title="Example plugin that detects percussive events.">PercussionOnsetDetector</a> : <span class="keyword">public</span> Vamp::<a class="code" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>
 <a name="l00047"></a>00047 {
@@ -106,8 +106,8 @@
 <a name="l00089"></a>00089 
 <a name="l00090"></a>00090 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PercussionOnsetDetector_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PercussionOnsetDetector_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -31,8 +31,8 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Example plugin that detects percussive events.  <a href="classPercussionOnsetDetector.html#_details">More...</a><br></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PluginAdapter_8cpp-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,880 +0,0 @@
-<!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: PluginAdapter.cpp Source File</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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
-  </div>
-</div>
-</div>
-<h1>PluginAdapter.cpp</h1><a href="PluginAdapter_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
-<a name="l00002"></a>00002 
-<a name="l00003"></a>00003 <span class="comment">/*</span>
-<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
-<a name="l00005"></a>00005 <span class="comment"></span>
-<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
-<a name="l00007"></a>00007 <span class="comment"></span>
-<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
-<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
-<a name="l00010"></a>00010 <span class="comment">  </span>
-<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
-<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
-<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
-<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
-<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
-<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
-<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
-<a name="l00018"></a>00018 <span class="comment"></span>
-<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
-<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
-<a name="l00021"></a>00021 <span class="comment"></span>
-<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
-<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
-<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
-<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
-<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
-<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
-<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
-<a name="l00029"></a>00029 <span class="comment"></span>
-<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
-<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
-<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
-<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
-<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
-<a name="l00035"></a>00035 <span class="comment">*/</span>
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="PluginAdapter_8h.html">PluginAdapter.h</a>"</span>
-<a name="l00038"></a>00038 
-<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;cstring&gt;</span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;cstdlib&gt;</span>
-<a name="l00041"></a>00041 
-<a name="l00042"></a>00042 <span class="comment">//#define DEBUG_PLUGIN_ADAPTER 1</span>
-<a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="keyword">namespace </span>Vamp {
-<a name="l00045"></a>00045 
-<a name="l00046"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">00046</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">PluginAdapterBase::Impl</a>
-<a name="l00047"></a>00047 {
-<a name="l00048"></a>00048 <span class="keyword">public</span>:
-<a name="l00049"></a>00049     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9b5cff59377109e63b3894920205be9a">Impl</a>(<a class="code" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a> *);
-<a name="l00050"></a>00050     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#75b00d5c8012db240fc410d18fd1235a">~Impl</a>();
-<a name="l00051"></a>00051 
-<a name="l00052"></a>00052     <span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#31d6c53c6ef9851782674f3e14bf891d">getDescriptor</a>();
-<a name="l00053"></a>00053 
-<a name="l00054"></a>00054 <span class="keyword">protected</span>:
-<a name="l00055"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#c0372df58956b4bf99a9ec070b11dea4">00055</a>     <a class="code" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a> *<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#c0372df58956b4bf99a9ec070b11dea4">m_base</a>;
-<a name="l00056"></a>00056 
-<a name="l00057"></a>00057     <span class="keyword">static</span> <a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8cf9e01074559a6b23064d920629dd55">vampInstantiate</a>(<span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *desc,
-<a name="l00058"></a>00058                                           <span class="keywordtype">float</span> inputSampleRate);
-<a name="l00059"></a>00059 
-<a name="l00060"></a>00060     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#198dddb40f4fedc71f8ec45088d22d93">vampCleanup</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle);
-<a name="l00061"></a>00061 
-<a name="l00062"></a>00062     <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#210cd61fc3fd8f66eda087a6d726cd2b">vampInitialise</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels,
-<a name="l00063"></a>00063                              <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> stepSize, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> blockSize);
-<a name="l00064"></a>00064 
-<a name="l00065"></a>00065     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9dc6a2cc51118525c50583e2f7ac339a">vampReset</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle);
-<a name="l00066"></a>00066 
-<a name="l00067"></a>00067     <span class="keyword">static</span> <span class="keywordtype">float</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#e3791f409c626f856133d1ed473dbcdd">vampGetParameter</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle, <span class="keywordtype">int</span> param);
-<a name="l00068"></a>00068     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#96a4f1c8359479d41e9b9c3438b561a6">vampSetParameter</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle, <span class="keywordtype">int</span> param, <span class="keywordtype">float</span> value);
-<a name="l00069"></a>00069 
-<a name="l00070"></a>00070     <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#62824538d09f38a060bcc593f79ca8a1">vampGetCurrentProgram</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle);
-<a name="l00071"></a>00071     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#124b1ee65cbb733004ae96f4fa001246">vampSelectProgram</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> program);
-<a name="l00072"></a>00072 
-<a name="l00073"></a>00073     <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a6e7c06690fed8d7af284be34a590b4b">vampGetPreferredStepSize</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle);
-<a name="l00074"></a>00074     <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#46d39ad29bb4c689e21379e1eb387ace">vampGetPreferredBlockSize</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle);
-<a name="l00075"></a>00075     <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9825e946f36f8838ec3d4cb838c00220">vampGetMinChannelCount</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle);
-<a name="l00076"></a>00076     <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#16bfdb3fc7b683a170b01bf92a49dee2">vampGetMaxChannelCount</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle);
-<a name="l00077"></a>00077 
-<a name="l00078"></a>00078     <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#debb9f604929cde924e783997e9efda3">vampGetOutputCount</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle);
-<a name="l00079"></a>00079 
-<a name="l00080"></a>00080     <span class="keyword">static</span> <a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#5118f9af094598b9f8c8a295a5e2290c">vampGetOutputDescriptor</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle,
-<a name="l00081"></a>00081                                                        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i);
-<a name="l00082"></a>00082 
-<a name="l00083"></a>00083     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#ff063ab7b4dfb0d13883e7ce19cf93a3">vampReleaseOutputDescriptor</a>(<a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *desc);
-<a name="l00084"></a>00084 
-<a name="l00085"></a>00085     <span class="keyword">static</span> <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#bc8f37b80648a0a7108a6e0ebaf45525">vampProcess</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle,
-<a name="l00086"></a>00086                                         <span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
-<a name="l00087"></a>00087                                         <span class="keywordtype">int</span> sec,
-<a name="l00088"></a>00088                                         <span class="keywordtype">int</span> nsec);
-<a name="l00089"></a>00089 
-<a name="l00090"></a>00090     <span class="keyword">static</span> <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f6af04fcb927463cfe1f85e936935767">vampGetRemainingFeatures</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle);
-<a name="l00091"></a>00091 
-<a name="l00092"></a>00092     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b0bc48dbdb1396410690d1b190522a95">vampReleaseFeatureSet</a>(<a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *fs);
-<a name="l00093"></a>00093 
-<a name="l00094"></a>00094     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b4199ab4a8ba40098aac387032c52aa4">cleanup</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin);
-<a name="l00095"></a>00095     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8274f19566392f843cbf5f745308fd2c">checkOutputMap</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin);
-<a name="l00096"></a>00096     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#17af6e67c075bfb9b5069c51c7861e64">getOutputCount</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin);
-<a name="l00097"></a>00097     <a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#088345ac72041e44e18b7bf5edd32f44">getOutputDescriptor</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin,
-<a name="l00098"></a>00098                                              <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i);
-<a name="l00099"></a>00099     <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0eca18a4ae046e4ac1ebd25bb3ac5a08">process</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin,
-<a name="l00100"></a>00100                              <span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
-<a name="l00101"></a>00101                              <span class="keywordtype">int</span> sec, <span class="keywordtype">int</span> nsec);
-<a name="l00102"></a>00102     <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9fe7df06eb951c259763d56c49544676">getRemainingFeatures</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin);
-<a name="l00103"></a>00103     <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#550b4522bfbf1ad23297be28c51a4d72">convertFeatures</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin,
-<a name="l00104"></a>00104                                      <span class="keyword">const</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a> &amp;features);
-<a name="l00105"></a>00105     
-<a name="l00106"></a>00106     <span class="comment">// maps both plugins and descriptors to adapters</span>
-<a name="l00107"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#6c8f2c8fce370d586785353c939601d5">00107</a>     <span class="keyword">typedef</span> std::map&lt;const void *, Impl *&gt; <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#6c8f2c8fce370d586785353c939601d5">AdapterMap</a>;
-<a name="l00108"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">00108</a>     <span class="keyword">static</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#6c8f2c8fce370d586785353c939601d5">AdapterMap</a> *<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>;
-<a name="l00109"></a>00109     <span class="keyword">static</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">lookupAdapter</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>);
-<a name="l00110"></a>00110 
-<a name="l00111"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#93384198b121720dfa627dafe77839a6">00111</a>     <span class="keywordtype">bool</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#93384198b121720dfa627dafe77839a6">m_populated</a>;
-<a name="l00112"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">00112</a>     <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>;
-<a name="l00113"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">00113</a>     <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">Plugin::ParameterList</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>;
-<a name="l00114"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#79666690394693c9e293a4e74960b444">00114</a>     <a class="code" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">Plugin::ProgramList</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#79666690394693c9e293a4e74960b444">m_programs</a>;
-<a name="l00115"></a>00115     
-<a name="l00116"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#fd448b66d5973d8e14ec592dabcbbd2d">00116</a>     <span class="keyword">typedef</span> std::map&lt;Plugin *, Plugin::OutputList *&gt; <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#fd448b66d5973d8e14ec592dabcbbd2d">OutputMap</a>;
-<a name="l00117"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">00117</a>     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#fd448b66d5973d8e14ec592dabcbbd2d">OutputMap</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a>;
-<a name="l00118"></a>00118 
-<a name="l00119"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">00119</a>     std::map&lt;Plugin *, VampFeatureList *&gt; <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>;
-<a name="l00120"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">00120</a>     std::map&lt;Plugin *, std::vector&lt;size_t&gt; &gt; <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">m_fsizes</a>;
-<a name="l00121"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#166ff8e5df4fcd27f74bc7179e14c33e">00121</a>     std::map&lt;Plugin *, std::vector&lt;std::vector&lt;size_t&gt; &gt; &gt; <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#166ff8e5df4fcd27f74bc7179e14c33e">m_fvsizes</a>;
-<a name="l00122"></a>00122     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#429c029c0068230d1afa97426b04ce0d">resizeFS</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin, <span class="keywordtype">int</span> n);
-<a name="l00123"></a>00123     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f5fcc5331f2dfa4c650eee636af72403">resizeFL</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin, <span class="keywordtype">int</span> n, <span class="keywordtype">size_t</span> sz);
-<a name="l00124"></a>00124     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9b0791b97e91f8b8c3d18f3ed3bed861">resizeFV</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin, <span class="keywordtype">int</span> n, <span class="keywordtype">int</span> j, <span class="keywordtype">size_t</span> sz);
-<a name="l00125"></a>00125 };
-<a name="l00126"></a>00126 
-<a name="l00127"></a><a class="code" href="classVamp_1_1PluginAdapterBase.html#5dad6a9b4b170c0f284962e125ac988e">00127</a> <a class="code" href="classVamp_1_1PluginAdapterBase.html#5dad6a9b4b170c0f284962e125ac988e">PluginAdapterBase::PluginAdapterBase</a>()
-<a name="l00128"></a>00128 {
-<a name="l00129"></a>00129     <a class="code" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">m_impl</a> = <span class="keyword">new</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a>(<span class="keyword">this</span>);
-<a name="l00130"></a>00130 }
-<a name="l00131"></a>00131 
-<a name="l00132"></a><a class="code" href="classVamp_1_1PluginAdapterBase.html#e39492abdca4b588a582962fdeab819d">00132</a> PluginAdapterBase::~PluginAdapterBase()
-<a name="l00133"></a>00133 {
-<a name="l00134"></a>00134     <span class="keyword">delete</span> <a class="code" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">m_impl</a>;
-<a name="l00135"></a>00135 }
-<a name="l00136"></a>00136 
-<a name="l00137"></a>00137 <span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *
-<a name="l00138"></a><a class="code" href="classVamp_1_1PluginAdapterBase.html#7ff5c9374a8dc43f977c3707d1da45b5">00138</a> <a class="code" href="classVamp_1_1PluginAdapterBase.html#7ff5c9374a8dc43f977c3707d1da45b5" title="Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter...">PluginAdapterBase::getDescriptor</a>()
-<a name="l00139"></a>00139 {
-<a name="l00140"></a>00140     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">m_impl</a>-&gt;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#31d6c53c6ef9851782674f3e14bf891d">getDescriptor</a>();
-<a name="l00141"></a>00141 }
-<a name="l00142"></a>00142 
-<a name="l00143"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9b5cff59377109e63b3894920205be9a">00143</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9b5cff59377109e63b3894920205be9a">PluginAdapterBase::Impl::Impl</a>(<a class="code" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a> *base) :
-<a name="l00144"></a>00144     m_base(base),
-<a name="l00145"></a>00145     m_populated(false)
-<a name="l00146"></a>00146 {
-<a name="l00147"></a>00147 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00148"></a>00148 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl["</span> &lt;&lt; <span class="keyword">this</span> &lt;&lt; <span class="stringliteral">"]::Impl"</span> &lt;&lt; std::endl;
-<a name="l00149"></a>00149 <span class="preprocessor">#endif</span>
-<a name="l00150"></a>00150 <span class="preprocessor"></span>}
-<a name="l00151"></a>00151 
-<a name="l00152"></a>00152 <span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *
-<a name="l00153"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#31d6c53c6ef9851782674f3e14bf891d">00153</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#31d6c53c6ef9851782674f3e14bf891d">PluginAdapterBase::Impl::getDescriptor</a>()
-<a name="l00154"></a>00154 {
-<a name="l00155"></a>00155 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00156"></a>00156 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl["</span> &lt;&lt; <span class="keyword">this</span> &lt;&lt; <span class="stringliteral">"]::getDescriptor"</span> &lt;&lt; std::endl;
-<a name="l00157"></a>00157 <span class="preprocessor">#endif</span>
-<a name="l00158"></a>00158 <span class="preprocessor"></span>
-<a name="l00159"></a>00159     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#93384198b121720dfa627dafe77839a6">m_populated</a>) <span class="keywordflow">return</span> &amp;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>;
-<a name="l00160"></a>00160 
-<a name="l00161"></a>00161     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#c0372df58956b4bf99a9ec070b11dea4">m_base</a>-&gt;<a class="code" href="classVamp_1_1PluginAdapterBase.html#9116adb9b7a426f4f0ded15e45a5531b">createPlugin</a>(48000);
-<a name="l00162"></a>00162 
-<a name="l00163"></a>00163     <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf" title="Get the Vamp API compatibility level of the plugin.">getVampApiVersion</a>() != <a class="code" href="vamp_8h.html#6d6c8c755dbabf161f72712e0e2143c7" title="Plugin API version.">VAMP_API_VERSION</a>) {
-<a name="l00164"></a>00164         std::cerr &lt;&lt; <span class="stringliteral">"Vamp::PluginAdapterBase::Impl::getDescriptor: ERROR: "</span>
-<a name="l00165"></a>00165                   &lt;&lt; <span class="stringliteral">"Plugin object API version "</span>
-<a name="l00166"></a>00166                   &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf" title="Get the Vamp API compatibility level of the plugin.">getVampApiVersion</a>()
-<a name="l00167"></a>00167                   &lt;&lt; <span class="stringliteral">" does not match actual API version "</span>
-<a name="l00168"></a>00168                   &lt;&lt; <a class="code" href="vamp_8h.html#6d6c8c755dbabf161f72712e0e2143c7" title="Plugin API version.">VAMP_API_VERSION</a> &lt;&lt; std::endl;
-<a name="l00169"></a>00169         <span class="keyword">delete</span> plugin;
-<a name="l00170"></a>00170         <span class="keywordflow">return</span> 0;
-<a name="l00171"></a>00171     }
-<a name="l00172"></a>00172 
-<a name="l00173"></a>00173     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a> = plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21" title="Get the controllable parameters of this plugin.">getParameterDescriptors</a>();
-<a name="l00174"></a>00174     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#79666690394693c9e293a4e74960b444">m_programs</a> = plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af" title="Get the program settings available in this plugin.">getPrograms</a>();
-<a name="l00175"></a>00175 
-<a name="l00176"></a>00176     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#b6c87760e87ddaa9ac3491bccaaa28c2" title="API version with which this descriptor is compatible.">vampApiVersion</a> = plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf" title="Get the Vamp API compatibility level of the plugin.">getVampApiVersion</a>();
-<a name="l00177"></a>00177     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#4915ec8276749cb505c01d25a6d02219" title="Computer-usable name of the plugin.">identifier</a> = strdup(plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a" title="Get the computer-usable name of the plugin.">getIdentifier</a>().c_str());
-<a name="l00178"></a>00178     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#9dd5a0190e4d453ff36b5acb7000b150" title="Human-readable name of the plugin.">name</a> = strdup(plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232" title="Get a human-readable name or title of the plugin.">getName</a>().c_str());
-<a name="l00179"></a>00179     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#9ff8050f92f1a04a68bb34a9d368295e" title="Human-readable short text about the plugin.">description</a> = strdup(plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a" title="Get a human-readable description for the plugin, typically a line of text that may...">getDescription</a>().c_str());
-<a name="l00180"></a>00180     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#4dca3d57331802964716edfa80580c9b" title="Human-readable name of plugin&amp;#39;s author or vendor.">maker</a> = strdup(plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637" title="Get the name of the author or vendor of the plugin in human-readable form.">getMaker</a>().c_str());
-<a name="l00181"></a>00181     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#04427c420d9252c7796c0bf5101345ae" title="Version number of the plugin.">pluginVersion</a> = plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151" title="Get the version number of the plugin.">getPluginVersion</a>();
-<a name="l00182"></a>00182     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#e704bba384af0de056a26da1b13ee521" title="Human-readable summary of copyright or licensing for plugin.">copyright</a> = strdup(plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661" title="Get the copyright statement or licensing summary for the plugin.">getCopyright</a>().c_str());
-<a name="l00183"></a>00183     
-<a name="l00184"></a>00184     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#e6271dc3ea0cea959c84a64185492cab" title="Number of parameter inputs.">parameterCount</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>.size();
-<a name="l00185"></a>00185     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#64d614862604c31d6b84c49005f51913" title="Fixed descriptors for parameter inputs.">parameters</a> = (<span class="keyword">const</span> <a class="code" href="struct__VampParameterDescriptor.html" title="C language API for Vamp plugins.">VampParameterDescriptor</a> **)
-<a name="l00186"></a>00186         malloc(<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>.size() * <span class="keyword">sizeof</span>(<a class="code" href="struct__VampParameterDescriptor.html" title="C language API for Vamp plugins.">VampParameterDescriptor</a>));
-<a name="l00187"></a>00187 
-<a name="l00188"></a>00188     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i;
-<a name="l00189"></a>00189     
-<a name="l00190"></a>00190     <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>.size(); ++i) {
-<a name="l00191"></a>00191         <a class="code" href="struct__VampParameterDescriptor.html" title="C language API for Vamp plugins.">VampParameterDescriptor</a> *desc = (<a class="code" href="struct__VampParameterDescriptor.html" title="C language API for Vamp plugins.">VampParameterDescriptor</a> *)
-<a name="l00192"></a>00192             malloc(<span class="keyword">sizeof</span>(<a class="code" href="struct__VampParameterDescriptor.html" title="C language API for Vamp plugins.">VampParameterDescriptor</a>));
-<a name="l00193"></a>00193         desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#26d74afd6a3341a673f15955031845ab" title="Computer-usable name of the parameter.">identifier</a> = strdup(<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>[i].identifier.c_str());
-<a name="l00194"></a>00194         desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#bba810bce9656f6002777f6c3f655957" title="Human-readable name of the parameter.">name</a> = strdup(<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>[i].name.c_str());
-<a name="l00195"></a>00195         desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#95489272d6cf5a5b487e949da8e4fac6" title="Human-readable short text about the parameter.">description</a> = strdup(<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>[i].description.c_str());
-<a name="l00196"></a>00196         desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#8ca235f816b56dc99125e010eee08fc7" title="Human-readable unit of the parameter.">unit</a> = strdup(<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>[i].unit.c_str());
-<a name="l00197"></a>00197         desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#b59c84f0bbe0d4d0c578d893c087b0db" title="Minimum value.">minValue</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>[i].minValue;
-<a name="l00198"></a>00198         desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#6e7646babdb265c4abfc107ba4350d80" title="Maximum value.">maxValue</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>[i].maxValue;
-<a name="l00199"></a>00199         desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#3d37f986ee152ab55feb9902b35f7aca" title="Default value.">defaultValue</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>[i].defaultValue;
-<a name="l00200"></a>00200         desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#3f41e3b6b69c7a95ff0ce8625794f83a" title="1 if parameter values are quantized to a particular resolution.">isQuantized</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>[i].isQuantized;
-<a name="l00201"></a>00201         desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#68c91fd3fc0b0b3617c2d343fe32d0e5" title="Quantization resolution, if isQuantized.">quantizeStep</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>[i].quantizeStep;
-<a name="l00202"></a>00202         desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d" title="Human-readable names of the values, if isQuantized.">valueNames</a> = 0;
-<a name="l00203"></a>00203         <span class="keywordflow">if</span> (desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#3f41e3b6b69c7a95ff0ce8625794f83a" title="1 if parameter values are quantized to a particular resolution.">isQuantized</a> &amp;&amp; !<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>[i].valueNames.empty()) {
-<a name="l00204"></a>00204             desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d" title="Human-readable names of the values, if isQuantized.">valueNames</a> = (<span class="keyword">const</span> <span class="keywordtype">char</span> **)
-<a name="l00205"></a>00205                 malloc((<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>[i].valueNames.size()+1) * <span class="keyword">sizeof</span>(<span class="keywordtype">char</span> *));
-<a name="l00206"></a>00206             <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j &lt; <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>[i].valueNames.size(); ++j) {
-<a name="l00207"></a>00207                 desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d" title="Human-readable names of the values, if isQuantized.">valueNames</a>[j] = strdup(<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>[i].valueNames[j].c_str());
-<a name="l00208"></a>00208             }
-<a name="l00209"></a>00209             desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d" title="Human-readable names of the values, if isQuantized.">valueNames</a>[<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>[i].valueNames.size()] = 0;
-<a name="l00210"></a>00210         }
-<a name="l00211"></a>00211         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#64d614862604c31d6b84c49005f51913" title="Fixed descriptors for parameter inputs.">parameters</a>[i] = desc;
-<a name="l00212"></a>00212     }
-<a name="l00213"></a>00213     
-<a name="l00214"></a>00214     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#1962666aa173e7a9a2c30dc82e4b2e00" title="Number of programs.">programCount</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#79666690394693c9e293a4e74960b444">m_programs</a>.size();
-<a name="l00215"></a>00215     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#d488470c582d8472d86455889d71c5ec" title="Fixed names for programs.">programs</a> = (<span class="keyword">const</span> <span class="keywordtype">char</span> **)
-<a name="l00216"></a>00216         malloc(<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#79666690394693c9e293a4e74960b444">m_programs</a>.size() * <span class="keyword">sizeof</span>(<span class="keyword">const</span> <span class="keywordtype">char</span> *));
-<a name="l00217"></a>00217     
-<a name="l00218"></a>00218     <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#79666690394693c9e293a4e74960b444">m_programs</a>.size(); ++i) {
-<a name="l00219"></a>00219         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#d488470c582d8472d86455889d71c5ec" title="Fixed names for programs.">programs</a>[i] = strdup(<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#79666690394693c9e293a4e74960b444">m_programs</a>[i].c_str());
-<a name="l00220"></a>00220     }
-<a name="l00221"></a>00221     
-<a name="l00222"></a>00222     <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() == <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">Plugin::FrequencyDomain</a>) {
-<a name="l00223"></a>00223         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#ffc4d1796da7ced2c0cbb2cc2c4a22f4" title="Preferred input domain for audio input (time or frequency).">inputDomain</a> = <a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d">vampFrequencyDomain</a>;
-<a name="l00224"></a>00224     } <span class="keywordflow">else</span> {
-<a name="l00225"></a>00225         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#ffc4d1796da7ced2c0cbb2cc2c4a22f4" title="Preferred input domain for audio input (time or frequency).">inputDomain</a> = <a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765e3dbb77ff3e8f292966fd3748888e1a1">vampTimeDomain</a>;
-<a name="l00226"></a>00226     }
-<a name="l00227"></a>00227 
-<a name="l00228"></a>00228     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#19c4ce36fdeb88eeedb539efc544b8ee" title="Create and return a new instance of this plugin.">instantiate</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8cf9e01074559a6b23064d920629dd55">vampInstantiate</a>;
-<a name="l00229"></a>00229     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#0e4522c33e59c3c518b9262f2477bc27" title="Destroy an instance of this plugin.">cleanup</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#198dddb40f4fedc71f8ec45088d22d93">vampCleanup</a>;
-<a name="l00230"></a>00230     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#d0978f17a5e568079470a1978a9aad22" title="Initialise an instance following parameter configuration.">initialise</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#210cd61fc3fd8f66eda087a6d726cd2b">vampInitialise</a>;
-<a name="l00231"></a>00231     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#12267f6b506aeda3792ff7c982b02336" title="Reset an instance, ready to use again on new input data.">reset</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9dc6a2cc51118525c50583e2f7ac339a">vampReset</a>;
-<a name="l00232"></a>00232     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#07174981875b55ee2ec7521a7f4fc395" title="Get a parameter value.">getParameter</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#e3791f409c626f856133d1ed473dbcdd">vampGetParameter</a>;
-<a name="l00233"></a>00233     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#ad3cfc7a3b432df40bd9db13eee6a481" title="Set a parameter value.">setParameter</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#96a4f1c8359479d41e9b9c3438b561a6">vampSetParameter</a>;
-<a name="l00234"></a>00234     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#861a77525a95d424cb846820b018af53" title="Get the current program (if programCount &amp;gt; 0).">getCurrentProgram</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#62824538d09f38a060bcc593f79ca8a1">vampGetCurrentProgram</a>;
-<a name="l00235"></a>00235     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#d9af40cb165ca187e49250964af5f5cf" title="Set the current program.">selectProgram</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#124b1ee65cbb733004ae96f4fa001246">vampSelectProgram</a>;
-<a name="l00236"></a>00236     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#2beddf2ce156c05dd24477ac663adcbb" title="Get the plugin&amp;#39;s preferred processing window increment in samples.">getPreferredStepSize</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a6e7c06690fed8d7af284be34a590b4b">vampGetPreferredStepSize</a>;
-<a name="l00237"></a>00237     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#c626e42554ab1532c8d8b5132a0faee8" title="Get the plugin&amp;#39;s preferred processing window size in samples.">getPreferredBlockSize</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#46d39ad29bb4c689e21379e1eb387ace">vampGetPreferredBlockSize</a>;
-<a name="l00238"></a>00238     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#f175ca17716db5a7545b61b01caabd92" title="Get the minimum number of input channels this plugin can handle.">getMinChannelCount</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9825e946f36f8838ec3d4cb838c00220">vampGetMinChannelCount</a>;
-<a name="l00239"></a>00239     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#d1600203418d9646332f5b917284261b" title="Get the maximum number of input channels this plugin can handle.">getMaxChannelCount</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#16bfdb3fc7b683a170b01bf92a49dee2">vampGetMaxChannelCount</a>;
-<a name="l00240"></a>00240     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#a8fc88da704e24b2b5f674821dd380c1" title="Get the number of feature outputs (distinct sets of results).">getOutputCount</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#debb9f604929cde924e783997e9efda3">vampGetOutputCount</a>;
-<a name="l00241"></a>00241     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#92c58b8ff99ad0c23a42333aa55c144d" title="Get a descriptor for a given feature output.">getOutputDescriptor</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#5118f9af094598b9f8c8a295a5e2290c">vampGetOutputDescriptor</a>;
-<a name="l00242"></a>00242     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#8cc38edc921616e67e551aa03397ec79" title="Destroy a descriptor for a feature output.">releaseOutputDescriptor</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#ff063ab7b4dfb0d13883e7ce19cf93a3">vampReleaseOutputDescriptor</a>;
-<a name="l00243"></a>00243     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#c5a0a75b6e68b22fed536765d1f2f254" title="Process an input block and return a set of features.">process</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#bc8f37b80648a0a7108a6e0ebaf45525">vampProcess</a>;
-<a name="l00244"></a>00244     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#d22c666188aadab83c354a0edb18fcf0" title="Return any remaining features at the end of processing.">getRemainingFeatures</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f6af04fcb927463cfe1f85e936935767">vampGetRemainingFeatures</a>;
-<a name="l00245"></a>00245     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#c4bafe8ad2734d21a433d745b18e7d63" title="Release a feature set returned from process or getRemainingFeatures.">releaseFeatureSet</a> = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b0bc48dbdb1396410690d1b190522a95">vampReleaseFeatureSet</a>;
-<a name="l00246"></a>00246     
-<a name="l00247"></a>00247     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>) {
-<a name="l00248"></a>00248         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a> = <span class="keyword">new</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#6c8f2c8fce370d586785353c939601d5">AdapterMap</a>;
-<a name="l00249"></a>00249     }
-<a name="l00250"></a>00250     (*m_adapterMap)[&amp;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>] = <span class="keyword">this</span>;
-<a name="l00251"></a>00251 
-<a name="l00252"></a>00252     <span class="keyword">delete</span> plugin;
-<a name="l00253"></a>00253 
-<a name="l00254"></a>00254     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#93384198b121720dfa627dafe77839a6">m_populated</a> = <span class="keyword">true</span>;
-<a name="l00255"></a>00255     <span class="keywordflow">return</span> &amp;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>;
-<a name="l00256"></a>00256 }
-<a name="l00257"></a>00257 
-<a name="l00258"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#75b00d5c8012db240fc410d18fd1235a">00258</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#75b00d5c8012db240fc410d18fd1235a">PluginAdapterBase::Impl::~Impl</a>()
-<a name="l00259"></a>00259 {
-<a name="l00260"></a>00260 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00261"></a>00261 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl["</span> &lt;&lt; <span class="keyword">this</span> &lt;&lt; <span class="stringliteral">"]::~Impl"</span> &lt;&lt; std::endl;
-<a name="l00262"></a>00262 <span class="preprocessor">#endif</span>
-<a name="l00263"></a>00263 <span class="preprocessor"></span>
-<a name="l00264"></a>00264     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#93384198b121720dfa627dafe77839a6">m_populated</a>) <span class="keywordflow">return</span>;
-<a name="l00265"></a>00265 
-<a name="l00266"></a>00266     free((<span class="keywordtype">void</span> *)<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#4915ec8276749cb505c01d25a6d02219" title="Computer-usable name of the plugin.">identifier</a>);
-<a name="l00267"></a>00267     free((<span class="keywordtype">void</span> *)<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#9dd5a0190e4d453ff36b5acb7000b150" title="Human-readable name of the plugin.">name</a>);
-<a name="l00268"></a>00268     free((<span class="keywordtype">void</span> *)<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#9ff8050f92f1a04a68bb34a9d368295e" title="Human-readable short text about the plugin.">description</a>);
-<a name="l00269"></a>00269     free((<span class="keywordtype">void</span> *)<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#4dca3d57331802964716edfa80580c9b" title="Human-readable name of plugin&amp;#39;s author or vendor.">maker</a>);
-<a name="l00270"></a>00270     free((<span class="keywordtype">void</span> *)<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#e704bba384af0de056a26da1b13ee521" title="Human-readable summary of copyright or licensing for plugin.">copyright</a>);
-<a name="l00271"></a>00271         
-<a name="l00272"></a>00272     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#e6271dc3ea0cea959c84a64185492cab" title="Number of parameter inputs.">parameterCount</a>; ++i) {
-<a name="l00273"></a>00273         <span class="keyword">const</span> <a class="code" href="struct__VampParameterDescriptor.html" title="C language API for Vamp plugins.">VampParameterDescriptor</a> *desc = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#64d614862604c31d6b84c49005f51913" title="Fixed descriptors for parameter inputs.">parameters</a>[i];
-<a name="l00274"></a>00274         free((<span class="keywordtype">void</span> *)desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#26d74afd6a3341a673f15955031845ab" title="Computer-usable name of the parameter.">identifier</a>);
-<a name="l00275"></a>00275         free((<span class="keywordtype">void</span> *)desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#bba810bce9656f6002777f6c3f655957" title="Human-readable name of the parameter.">name</a>);
-<a name="l00276"></a>00276         free((<span class="keywordtype">void</span> *)desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#95489272d6cf5a5b487e949da8e4fac6" title="Human-readable short text about the parameter.">description</a>);
-<a name="l00277"></a>00277         free((<span class="keywordtype">void</span> *)desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#8ca235f816b56dc99125e010eee08fc7" title="Human-readable unit of the parameter.">unit</a>);
-<a name="l00278"></a>00278         <span class="keywordflow">if</span> (desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d" title="Human-readable names of the values, if isQuantized.">valueNames</a>) {
-<a name="l00279"></a>00279             <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d" title="Human-readable names of the values, if isQuantized.">valueNames</a>[j]; ++j) {
-<a name="l00280"></a>00280                 free((<span class="keywordtype">void</span> *)desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d" title="Human-readable names of the values, if isQuantized.">valueNames</a>[j]);
-<a name="l00281"></a>00281             }
-<a name="l00282"></a>00282             free((<span class="keywordtype">void</span> *)desc-&gt;<a class="code" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d" title="Human-readable names of the values, if isQuantized.">valueNames</a>);
-<a name="l00283"></a>00283         }
-<a name="l00284"></a>00284     }
-<a name="l00285"></a>00285     free((<span class="keywordtype">void</span> *)<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#64d614862604c31d6b84c49005f51913" title="Fixed descriptors for parameter inputs.">parameters</a>);
-<a name="l00286"></a>00286 
-<a name="l00287"></a>00287     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#1962666aa173e7a9a2c30dc82e4b2e00" title="Number of programs.">programCount</a>; ++i) {
-<a name="l00288"></a>00288         free((<span class="keywordtype">void</span> *)<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#d488470c582d8472d86455889d71c5ec" title="Fixed names for programs.">programs</a>[i]);
-<a name="l00289"></a>00289     }
-<a name="l00290"></a>00290     free((<span class="keywordtype">void</span> *)<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>.<a class="code" href="struct__VampPluginDescriptor.html#d488470c582d8472d86455889d71c5ec" title="Fixed names for programs.">programs</a>);
-<a name="l00291"></a>00291 
-<a name="l00292"></a>00292     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>) {
-<a name="l00293"></a>00293         
-<a name="l00294"></a>00294         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>-&gt;erase(&amp;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>);
-<a name="l00295"></a>00295 
-<a name="l00296"></a>00296         <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>-&gt;empty()) {
-<a name="l00297"></a>00297             <span class="keyword">delete</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>;
-<a name="l00298"></a>00298             <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a> = 0;
-<a name="l00299"></a>00299         }
-<a name="l00300"></a>00300     }
-<a name="l00301"></a>00301 }
-<a name="l00302"></a>00302 
-<a name="l00303"></a>00303 <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">PluginAdapterBase::Impl</a> *
-<a name="l00304"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">00304</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">PluginAdapterBase::Impl::lookupAdapter</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)
-<a name="l00305"></a>00305 {
-<a name="l00306"></a>00306 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00307"></a>00307 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::lookupAdapter("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00308"></a>00308 <span class="preprocessor">#endif</span>
-<a name="l00309"></a>00309 <span class="preprocessor"></span>
-<a name="l00310"></a>00310     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>) <span class="keywordflow">return</span> 0;
-<a name="l00311"></a>00311     AdapterMap::const_iterator i = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>-&gt;find(handle);
-<a name="l00312"></a>00312     <span class="keywordflow">if</span> (i == <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>-&gt;end()) <span class="keywordflow">return</span> 0;
-<a name="l00313"></a>00313     <span class="keywordflow">return</span> i-&gt;second;
-<a name="l00314"></a>00314 }
-<a name="l00315"></a>00315 
-<a name="l00316"></a>00316 <a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>
-<a name="l00317"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8cf9e01074559a6b23064d920629dd55">00317</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8cf9e01074559a6b23064d920629dd55">PluginAdapterBase::Impl::vampInstantiate</a>(<span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *desc,
-<a name="l00318"></a>00318                                    <span class="keywordtype">float</span> inputSampleRate)
-<a name="l00319"></a>00319 {
-<a name="l00320"></a>00320 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00321"></a>00321 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampInstantiate("</span> &lt;&lt; desc &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00322"></a>00322 <span class="preprocessor">#endif</span>
-<a name="l00323"></a>00323 <span class="preprocessor"></span>
-<a name="l00324"></a>00324     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>) {
-<a name="l00325"></a>00325         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a> = <span class="keyword">new</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#6c8f2c8fce370d586785353c939601d5">AdapterMap</a>();
-<a name="l00326"></a>00326     }
-<a name="l00327"></a>00327 
-<a name="l00328"></a>00328     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>-&gt;find(desc) == <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>-&gt;end()) {
-<a name="l00329"></a>00329         std::cerr &lt;&lt; <span class="stringliteral">"WARNING: PluginAdapterBase::Impl::vampInstantiate: Descriptor "</span> &lt;&lt; desc &lt;&lt; <span class="stringliteral">" not in adapter map"</span> &lt;&lt; std::endl;
-<a name="l00330"></a>00330         <span class="keywordflow">return</span> 0;
-<a name="l00331"></a>00331     }
-<a name="l00332"></a>00332 
-<a name="l00333"></a>00333     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *adapter = (*m_adapterMap)[desc];
-<a name="l00334"></a>00334     <span class="keywordflow">if</span> (desc != &amp;adapter-&gt;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a>) <span class="keywordflow">return</span> 0;
-<a name="l00335"></a>00335 
-<a name="l00336"></a>00336     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin = adapter-&gt;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#c0372df58956b4bf99a9ec070b11dea4">m_base</a>-&gt;<a class="code" href="classVamp_1_1PluginAdapterBase.html#9116adb9b7a426f4f0ded15e45a5531b">createPlugin</a>(inputSampleRate);
-<a name="l00337"></a>00337     <span class="keywordflow">if</span> (plugin) {
-<a name="l00338"></a>00338         (*m_adapterMap)[plugin] = adapter;
-<a name="l00339"></a>00339     }
-<a name="l00340"></a>00340 
-<a name="l00341"></a>00341 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00342"></a>00342 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampInstantiate("</span> &lt;&lt; desc &lt;&lt; <span class="stringliteral">"): returning handle "</span> &lt;&lt; plugin &lt;&lt; std::endl;
-<a name="l00343"></a>00343 <span class="preprocessor">#endif</span>
-<a name="l00344"></a>00344 <span class="preprocessor"></span>
-<a name="l00345"></a>00345     <span class="keywordflow">return</span> plugin;
-<a name="l00346"></a>00346 }
-<a name="l00347"></a>00347 
-<a name="l00348"></a>00348 <span class="keywordtype">void</span>
-<a name="l00349"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#198dddb40f4fedc71f8ec45088d22d93">00349</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#198dddb40f4fedc71f8ec45088d22d93">PluginAdapterBase::Impl::vampCleanup</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)
-<a name="l00350"></a>00350 {
-<a name="l00351"></a>00351 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00352"></a>00352 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampCleanup("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00353"></a>00353 <span class="preprocessor">#endif</span>
-<a name="l00354"></a>00354 <span class="preprocessor"></span>
-<a name="l00355"></a>00355     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *adapter = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">lookupAdapter</a>(handle);
-<a name="l00356"></a>00356     <span class="keywordflow">if</span> (!adapter) {
-<a name="l00357"></a>00357         <span class="keyword">delete</span> ((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle);
-<a name="l00358"></a>00358         <span class="keywordflow">return</span>;
-<a name="l00359"></a>00359     }
-<a name="l00360"></a>00360     adapter-&gt;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b4199ab4a8ba40098aac387032c52aa4">cleanup</a>(((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle));
-<a name="l00361"></a>00361 }
-<a name="l00362"></a>00362 
-<a name="l00363"></a>00363 <span class="keywordtype">int</span>
-<a name="l00364"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#210cd61fc3fd8f66eda087a6d726cd2b">00364</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#210cd61fc3fd8f66eda087a6d726cd2b">PluginAdapterBase::Impl::vampInitialise</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle,
-<a name="l00365"></a>00365                                   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> channels,
-<a name="l00366"></a>00366                                   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> stepSize,
-<a name="l00367"></a>00367                                   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> blockSize)
-<a name="l00368"></a>00368 {
-<a name="l00369"></a>00369 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00370"></a>00370 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampInitialise("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">", "</span> &lt;&lt; channels &lt;&lt; <span class="stringliteral">", "</span> &lt;&lt; stepSize &lt;&lt; <span class="stringliteral">", "</span> &lt;&lt; blockSize &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00371"></a>00371 <span class="preprocessor">#endif</span>
-<a name="l00372"></a>00372 <span class="preprocessor"></span>
-<a name="l00373"></a>00373     <span class="keywordtype">bool</span> result = ((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle)-&gt;initialise
-<a name="l00374"></a>00374         (channels, stepSize, blockSize);
-<a name="l00375"></a>00375     <span class="keywordflow">return</span> result ? 1 : 0;
-<a name="l00376"></a>00376 }
-<a name="l00377"></a>00377 
-<a name="l00378"></a>00378 <span class="keywordtype">void</span>
-<a name="l00379"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9dc6a2cc51118525c50583e2f7ac339a">00379</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9dc6a2cc51118525c50583e2f7ac339a">PluginAdapterBase::Impl::vampReset</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle) 
-<a name="l00380"></a>00380 {
-<a name="l00381"></a>00381 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00382"></a>00382 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampReset("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00383"></a>00383 <span class="preprocessor">#endif</span>
-<a name="l00384"></a>00384 <span class="preprocessor"></span>
-<a name="l00385"></a>00385     ((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle)-&gt;reset();
-<a name="l00386"></a>00386 }
-<a name="l00387"></a>00387 
-<a name="l00388"></a>00388 <span class="keywordtype">float</span>
-<a name="l00389"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#e3791f409c626f856133d1ed473dbcdd">00389</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#e3791f409c626f856133d1ed473dbcdd">PluginAdapterBase::Impl::vampGetParameter</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle,
-<a name="l00390"></a>00390                                     <span class="keywordtype">int</span> param) 
-<a name="l00391"></a>00391 {
-<a name="l00392"></a>00392 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00393"></a>00393 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampGetParameter("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">", "</span> &lt;&lt; param &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00394"></a>00394 <span class="preprocessor">#endif</span>
-<a name="l00395"></a>00395 <span class="preprocessor"></span>
-<a name="l00396"></a>00396     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *adapter = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">lookupAdapter</a>(handle);
-<a name="l00397"></a>00397     <span class="keywordflow">if</span> (!adapter) <span class="keywordflow">return</span> 0.0;
-<a name="l00398"></a>00398     <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">Plugin::ParameterList</a> &amp;list = adapter-&gt;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>;
-<a name="l00399"></a>00399     <span class="keywordflow">return</span> ((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle)-&gt;getParameter(list[param].identifier);
-<a name="l00400"></a>00400 }
-<a name="l00401"></a>00401 
-<a name="l00402"></a>00402 <span class="keywordtype">void</span>
-<a name="l00403"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#96a4f1c8359479d41e9b9c3438b561a6">00403</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#96a4f1c8359479d41e9b9c3438b561a6">PluginAdapterBase::Impl::vampSetParameter</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle,
-<a name="l00404"></a>00404                                     <span class="keywordtype">int</span> param, <span class="keywordtype">float</span> value)
-<a name="l00405"></a>00405 {
-<a name="l00406"></a>00406 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00407"></a>00407 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampSetParameter("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">", "</span> &lt;&lt; param &lt;&lt; <span class="stringliteral">", "</span> &lt;&lt; value &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00408"></a>00408 <span class="preprocessor">#endif</span>
-<a name="l00409"></a>00409 <span class="preprocessor"></span>
-<a name="l00410"></a>00410     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *adapter = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">lookupAdapter</a>(handle);
-<a name="l00411"></a>00411     <span class="keywordflow">if</span> (!adapter) <span class="keywordflow">return</span>;
-<a name="l00412"></a>00412     <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">Plugin::ParameterList</a> &amp;list = adapter-&gt;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a>;
-<a name="l00413"></a>00413     ((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle)-&gt;setParameter(list[param].identifier, value);
-<a name="l00414"></a>00414 }
-<a name="l00415"></a>00415 
-<a name="l00416"></a>00416 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
-<a name="l00417"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#62824538d09f38a060bcc593f79ca8a1">00417</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#62824538d09f38a060bcc593f79ca8a1">PluginAdapterBase::Impl::vampGetCurrentProgram</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)
-<a name="l00418"></a>00418 {
-<a name="l00419"></a>00419 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00420"></a>00420 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampGetCurrentProgram("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00421"></a>00421 <span class="preprocessor">#endif</span>
-<a name="l00422"></a>00422 <span class="preprocessor"></span>
-<a name="l00423"></a>00423     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *adapter = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">lookupAdapter</a>(handle);
-<a name="l00424"></a>00424     <span class="keywordflow">if</span> (!adapter) <span class="keywordflow">return</span> 0;
-<a name="l00425"></a>00425     <a class="code" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">Plugin::ProgramList</a> &amp;list = adapter-&gt;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#79666690394693c9e293a4e74960b444">m_programs</a>;
-<a name="l00426"></a>00426     std::string program = ((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle)-&gt;getCurrentProgram();
-<a name="l00427"></a>00427     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; list.size(); ++i) {
-<a name="l00428"></a>00428         <span class="keywordflow">if</span> (list[i] == program) <span class="keywordflow">return</span> i;
-<a name="l00429"></a>00429     }
-<a name="l00430"></a>00430     <span class="keywordflow">return</span> 0;
-<a name="l00431"></a>00431 }
-<a name="l00432"></a>00432 
-<a name="l00433"></a>00433 <span class="keywordtype">void</span>
-<a name="l00434"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#124b1ee65cbb733004ae96f4fa001246">00434</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#124b1ee65cbb733004ae96f4fa001246">PluginAdapterBase::Impl::vampSelectProgram</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle,
-<a name="l00435"></a>00435                                      <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> program)
-<a name="l00436"></a>00436 {
-<a name="l00437"></a>00437 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00438"></a>00438 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampSelectProgram("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">", "</span> &lt;&lt; program &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00439"></a>00439 <span class="preprocessor">#endif</span>
-<a name="l00440"></a>00440 <span class="preprocessor"></span>
-<a name="l00441"></a>00441     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *adapter = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">lookupAdapter</a>(handle);
-<a name="l00442"></a>00442     <span class="keywordflow">if</span> (!adapter) <span class="keywordflow">return</span>;
-<a name="l00443"></a>00443     <a class="code" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">Plugin::ProgramList</a> &amp;list = adapter-&gt;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#79666690394693c9e293a4e74960b444">m_programs</a>;
-<a name="l00444"></a>00444     ((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle)-&gt;selectProgram(list[program]);
-<a name="l00445"></a>00445 }
-<a name="l00446"></a>00446 
-<a name="l00447"></a>00447 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
-<a name="l00448"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a6e7c06690fed8d7af284be34a590b4b">00448</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a6e7c06690fed8d7af284be34a590b4b">PluginAdapterBase::Impl::vampGetPreferredStepSize</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)
-<a name="l00449"></a>00449 {
-<a name="l00450"></a>00450 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00451"></a>00451 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampGetPreferredStepSize("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00452"></a>00452 <span class="preprocessor">#endif</span>
-<a name="l00453"></a>00453 <span class="preprocessor"></span>
-<a name="l00454"></a>00454     <span class="keywordflow">return</span> ((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle)-&gt;getPreferredStepSize();
-<a name="l00455"></a>00455 }
-<a name="l00456"></a>00456 
-<a name="l00457"></a>00457 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
-<a name="l00458"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#46d39ad29bb4c689e21379e1eb387ace">00458</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#46d39ad29bb4c689e21379e1eb387ace">PluginAdapterBase::Impl::vampGetPreferredBlockSize</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle) 
-<a name="l00459"></a>00459 {
-<a name="l00460"></a>00460 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00461"></a>00461 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampGetPreferredBlockSize("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00462"></a>00462 <span class="preprocessor">#endif</span>
-<a name="l00463"></a>00463 <span class="preprocessor"></span>
-<a name="l00464"></a>00464     <span class="keywordflow">return</span> ((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle)-&gt;getPreferredBlockSize();
-<a name="l00465"></a>00465 }
-<a name="l00466"></a>00466 
-<a name="l00467"></a>00467 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
-<a name="l00468"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9825e946f36f8838ec3d4cb838c00220">00468</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9825e946f36f8838ec3d4cb838c00220">PluginAdapterBase::Impl::vampGetMinChannelCount</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)
-<a name="l00469"></a>00469 {
-<a name="l00470"></a>00470 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00471"></a>00471 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampGetMinChannelCount("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00472"></a>00472 <span class="preprocessor">#endif</span>
-<a name="l00473"></a>00473 <span class="preprocessor"></span>
-<a name="l00474"></a>00474     <span class="keywordflow">return</span> ((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle)-&gt;getMinChannelCount();
-<a name="l00475"></a>00475 }
-<a name="l00476"></a>00476 
-<a name="l00477"></a>00477 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
-<a name="l00478"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#16bfdb3fc7b683a170b01bf92a49dee2">00478</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#16bfdb3fc7b683a170b01bf92a49dee2">PluginAdapterBase::Impl::vampGetMaxChannelCount</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)
-<a name="l00479"></a>00479 {
-<a name="l00480"></a>00480 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00481"></a>00481 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampGetMaxChannelCount("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00482"></a>00482 <span class="preprocessor">#endif</span>
-<a name="l00483"></a>00483 <span class="preprocessor"></span>
-<a name="l00484"></a>00484     <span class="keywordflow">return</span> ((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle)-&gt;getMaxChannelCount();
-<a name="l00485"></a>00485 }
-<a name="l00486"></a>00486 
-<a name="l00487"></a>00487 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
-<a name="l00488"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#debb9f604929cde924e783997e9efda3">00488</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#debb9f604929cde924e783997e9efda3">PluginAdapterBase::Impl::vampGetOutputCount</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)
-<a name="l00489"></a>00489 {
-<a name="l00490"></a>00490 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00491"></a>00491 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampGetOutputCount("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00492"></a>00492 <span class="preprocessor">#endif</span>
-<a name="l00493"></a>00493 <span class="preprocessor"></span>
-<a name="l00494"></a>00494     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *adapter = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">lookupAdapter</a>(handle);
-<a name="l00495"></a>00495 
-<a name="l00496"></a>00496 <span class="comment">//    std::cerr &lt;&lt; "vampGetOutputCount: handle " &lt;&lt; handle &lt;&lt; " -&gt; adapter "&lt;&lt; adapter &lt;&lt; std::endl;</span>
-<a name="l00497"></a>00497 
-<a name="l00498"></a>00498     <span class="keywordflow">if</span> (!adapter) <span class="keywordflow">return</span> 0;
-<a name="l00499"></a>00499     <span class="keywordflow">return</span> adapter-&gt;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#17af6e67c075bfb9b5069c51c7861e64">getOutputCount</a>((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle);
-<a name="l00500"></a>00500 }
-<a name="l00501"></a>00501 
-<a name="l00502"></a>00502 <a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *
-<a name="l00503"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#5118f9af094598b9f8c8a295a5e2290c">00503</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#5118f9af094598b9f8c8a295a5e2290c">PluginAdapterBase::Impl::vampGetOutputDescriptor</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle,
-<a name="l00504"></a>00504                                            <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i)
-<a name="l00505"></a>00505 {
-<a name="l00506"></a>00506 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00507"></a>00507 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampGetOutputDescriptor("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">", "</span> &lt;&lt; i &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00508"></a>00508 <span class="preprocessor">#endif</span>
-<a name="l00509"></a>00509 <span class="preprocessor"></span>
-<a name="l00510"></a>00510     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *adapter = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">lookupAdapter</a>(handle);
-<a name="l00511"></a>00511 
-<a name="l00512"></a>00512 <span class="comment">//    std::cerr &lt;&lt; "vampGetOutputDescriptor: handle " &lt;&lt; handle &lt;&lt; " -&gt; adapter "&lt;&lt; adapter &lt;&lt; std::endl;</span>
-<a name="l00513"></a>00513 
-<a name="l00514"></a>00514     <span class="keywordflow">if</span> (!adapter) <span class="keywordflow">return</span> 0;
-<a name="l00515"></a>00515     <span class="keywordflow">return</span> adapter-&gt;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#088345ac72041e44e18b7bf5edd32f44">getOutputDescriptor</a>((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle, i);
-<a name="l00516"></a>00516 }
-<a name="l00517"></a>00517 
-<a name="l00518"></a>00518 <span class="keywordtype">void</span>
-<a name="l00519"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#ff063ab7b4dfb0d13883e7ce19cf93a3">00519</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#ff063ab7b4dfb0d13883e7ce19cf93a3">PluginAdapterBase::Impl::vampReleaseOutputDescriptor</a>(<a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *desc)
-<a name="l00520"></a>00520 {
-<a name="l00521"></a>00521 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00522"></a>00522 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampReleaseOutputDescriptor("</span> &lt;&lt; desc &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00523"></a>00523 <span class="preprocessor">#endif</span>
-<a name="l00524"></a>00524 <span class="preprocessor"></span>
-<a name="l00525"></a>00525     <span class="keywordflow">if</span> (desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#461161b2010370176115967e4f58a5f5" title="Computer-usable name of the output.">identifier</a>) free((<span class="keywordtype">void</span> *)desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#461161b2010370176115967e4f58a5f5" title="Computer-usable name of the output.">identifier</a>);
-<a name="l00526"></a>00526     <span class="keywordflow">if</span> (desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#f4fca576bd47167fd2bf9b43d588815f" title="Human-readable name of the output.">name</a>) free((<span class="keywordtype">void</span> *)desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#f4fca576bd47167fd2bf9b43d588815f" title="Human-readable name of the output.">name</a>);
-<a name="l00527"></a>00527     <span class="keywordflow">if</span> (desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#bfa911b138cfb80cf63e8f2e0fa0fb89" title="Human-readable short text about the output.">description</a>) free((<span class="keywordtype">void</span> *)desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#bfa911b138cfb80cf63e8f2e0fa0fb89" title="Human-readable short text about the output.">description</a>);
-<a name="l00528"></a>00528     <span class="keywordflow">if</span> (desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#d038caa8e596dfd037035637202f1d63" title="Human-readable name of the unit of the output.">unit</a>) free((<span class="keywordtype">void</span> *)desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#d038caa8e596dfd037035637202f1d63" title="Human-readable name of the unit of the output.">unit</a>);
-<a name="l00529"></a>00529     <span class="keywordflow">if</span> (desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#e8571f5a2bc740738af0cb7dda0c4749" title="1 if output has equal number of values for each returned result.">hasFixedBinCount</a> &amp;&amp; desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447" title="Names of returned value bins, if hasFixedBinCount.">binNames</a>) {
-<a name="l00530"></a>00530         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#652ee422092720e44d23d98bdb68f978" title="Number of values per result, if hasFixedBinCount.">binCount</a>; ++i) {
-<a name="l00531"></a>00531             <span class="keywordflow">if</span> (desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447" title="Names of returned value bins, if hasFixedBinCount.">binNames</a>[i]) {
-<a name="l00532"></a>00532                 free((<span class="keywordtype">void</span> *)desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447" title="Names of returned value bins, if hasFixedBinCount.">binNames</a>[i]);
-<a name="l00533"></a>00533             }
-<a name="l00534"></a>00534         }
-<a name="l00535"></a>00535     }
-<a name="l00536"></a>00536     <span class="keywordflow">if</span> (desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447" title="Names of returned value bins, if hasFixedBinCount.">binNames</a>) free((<span class="keywordtype">void</span> *)desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447" title="Names of returned value bins, if hasFixedBinCount.">binNames</a>);
-<a name="l00537"></a>00537     free((<span class="keywordtype">void</span> *)desc);
-<a name="l00538"></a>00538 }
-<a name="l00539"></a>00539 
-<a name="l00540"></a>00540 <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *
-<a name="l00541"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#bc8f37b80648a0a7108a6e0ebaf45525">00541</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#bc8f37b80648a0a7108a6e0ebaf45525">PluginAdapterBase::Impl::vampProcess</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle,
-<a name="l00542"></a>00542                                      <span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
-<a name="l00543"></a>00543                                      <span class="keywordtype">int</span> sec,
-<a name="l00544"></a>00544                                      <span class="keywordtype">int</span> nsec)
-<a name="l00545"></a>00545 {
-<a name="l00546"></a>00546 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00547"></a>00547 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampProcess("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">", "</span> &lt;&lt; sec &lt;&lt; <span class="stringliteral">", "</span> &lt;&lt; nsec &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00548"></a>00548 <span class="preprocessor">#endif</span>
-<a name="l00549"></a>00549 <span class="preprocessor"></span>
-<a name="l00550"></a>00550     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *adapter = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">lookupAdapter</a>(handle);
-<a name="l00551"></a>00551     <span class="keywordflow">if</span> (!adapter) <span class="keywordflow">return</span> 0;
-<a name="l00552"></a>00552     <span class="keywordflow">return</span> adapter-&gt;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0eca18a4ae046e4ac1ebd25bb3ac5a08">process</a>((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle,
-<a name="l00553"></a>00553                             inputBuffers, sec, nsec);
-<a name="l00554"></a>00554 }
-<a name="l00555"></a>00555 
-<a name="l00556"></a>00556 <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *
-<a name="l00557"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f6af04fcb927463cfe1f85e936935767">00557</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f6af04fcb927463cfe1f85e936935767">PluginAdapterBase::Impl::vampGetRemainingFeatures</a>(<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)
-<a name="l00558"></a>00558 {
-<a name="l00559"></a>00559 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00560"></a>00560 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampGetRemainingFeatures("</span> &lt;&lt; handle &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00561"></a>00561 <span class="preprocessor">#endif</span>
-<a name="l00562"></a>00562 <span class="preprocessor"></span>
-<a name="l00563"></a>00563     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *adapter = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">lookupAdapter</a>(handle);
-<a name="l00564"></a>00564     <span class="keywordflow">if</span> (!adapter) <span class="keywordflow">return</span> 0;
-<a name="l00565"></a>00565     <span class="keywordflow">return</span> adapter-&gt;<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9fe7df06eb951c259763d56c49544676">getRemainingFeatures</a>((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)handle);
-<a name="l00566"></a>00566 }
-<a name="l00567"></a>00567 
-<a name="l00568"></a>00568 <span class="keywordtype">void</span>
-<a name="l00569"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b0bc48dbdb1396410690d1b190522a95">00569</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b0bc48dbdb1396410690d1b190522a95">PluginAdapterBase::Impl::vampReleaseFeatureSet</a>(<a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *fs)
-<a name="l00570"></a>00570 {
-<a name="l00571"></a>00571 <span class="preprocessor">#ifdef DEBUG_PLUGIN_ADAPTER</span>
-<a name="l00572"></a>00572 <span class="preprocessor"></span>    std::cerr &lt;&lt; <span class="stringliteral">"PluginAdapterBase::Impl::vampReleaseFeatureSet"</span> &lt;&lt; std::endl;
-<a name="l00573"></a>00573 <span class="preprocessor">#endif</span>
-<a name="l00574"></a>00574 <span class="preprocessor"></span>}
-<a name="l00575"></a>00575 
-<a name="l00576"></a>00576 <span class="keywordtype">void</span> 
-<a name="l00577"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b4199ab4a8ba40098aac387032c52aa4">00577</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b4199ab4a8ba40098aac387032c52aa4">PluginAdapterBase::Impl::cleanup</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin)
-<a name="l00578"></a>00578 {
-<a name="l00579"></a>00579     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>.find(plugin) != <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>.end()) {
-<a name="l00580"></a>00580         <span class="keywordtype">size_t</span> outputCount = 0;
-<a name="l00581"></a>00581         <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a>[plugin]) {
-<a name="l00582"></a>00582             outputCount = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a>[plugin]-&gt;size();
-<a name="l00583"></a>00583         }
-<a name="l00584"></a>00584         <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *list = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>[plugin];
-<a name="l00585"></a>00585         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; outputCount; ++i) {
-<a name="l00586"></a>00586             <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j &lt; <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">m_fsizes</a>[plugin][i]; ++j) {
-<a name="l00587"></a>00587                 <span class="keywordflow">if</span> (list[i].features[j].label) {
-<a name="l00588"></a>00588                     free(list[i].features[j].label);
-<a name="l00589"></a>00589                 }
-<a name="l00590"></a>00590                 <span class="keywordflow">if</span> (list[i].features[j].values) {
-<a name="l00591"></a>00591                     free(list[i].features[j].values);
-<a name="l00592"></a>00592                 }
-<a name="l00593"></a>00593             }
-<a name="l00594"></a>00594             <span class="keywordflow">if</span> (list[i].features) free(list[i].features);
-<a name="l00595"></a>00595         }
-<a name="l00596"></a>00596         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>.erase(plugin);
-<a name="l00597"></a>00597         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">m_fsizes</a>.erase(plugin);
-<a name="l00598"></a>00598         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#166ff8e5df4fcd27f74bc7179e14c33e">m_fvsizes</a>.erase(plugin);
-<a name="l00599"></a>00599     }
-<a name="l00600"></a>00600 
-<a name="l00601"></a>00601     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a>.find(plugin) != <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a>.end()) {
-<a name="l00602"></a>00602         <span class="keyword">delete</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a>[plugin];
-<a name="l00603"></a>00603         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a>.erase(plugin);
-<a name="l00604"></a>00604     }
-<a name="l00605"></a>00605 
-<a name="l00606"></a>00606     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>) {
-<a name="l00607"></a>00607         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>-&gt;erase(plugin);
-<a name="l00608"></a>00608 
-<a name="l00609"></a>00609         <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>-&gt;empty()) {
-<a name="l00610"></a>00610             <span class="keyword">delete</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a>;
-<a name="l00611"></a>00611             <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a> = 0;
-<a name="l00612"></a>00612         }
-<a name="l00613"></a>00613     }
-<a name="l00614"></a>00614 
-<a name="l00615"></a>00615     <span class="keyword">delete</span> ((<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *)plugin);
-<a name="l00616"></a>00616 }
-<a name="l00617"></a>00617 
-<a name="l00618"></a>00618 <span class="keywordtype">void</span> 
-<a name="l00619"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8274f19566392f843cbf5f745308fd2c">00619</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8274f19566392f843cbf5f745308fd2c">PluginAdapterBase::Impl::checkOutputMap</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin)
-<a name="l00620"></a>00620 {
-<a name="l00621"></a>00621     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a>.find(plugin) == <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a>.end() ||
-<a name="l00622"></a>00622         !<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a>[plugin]) {
-<a name="l00623"></a>00623         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a>[plugin] = <span class="keyword">new</span> <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Plugin::OutputList</a>
-<a name="l00624"></a>00624             (plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35" title="Get the outputs of this plugin.">getOutputDescriptors</a>());
-<a name="l00625"></a>00625 <span class="comment">//        std::cerr &lt;&lt; "PluginAdapterBase::Impl::checkOutputMap: Have " &lt;&lt; m_pluginOutputs[plugin]-&gt;size() &lt;&lt; " outputs for plugin " &lt;&lt; plugin-&gt;getIdentifier() &lt;&lt; std::endl;</span>
-<a name="l00626"></a>00626     }
-<a name="l00627"></a>00627 }
-<a name="l00628"></a>00628 
-<a name="l00629"></a>00629 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> 
-<a name="l00630"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#17af6e67c075bfb9b5069c51c7861e64">00630</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#17af6e67c075bfb9b5069c51c7861e64">PluginAdapterBase::Impl::getOutputCount</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin)
-<a name="l00631"></a>00631 {
-<a name="l00632"></a>00632     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8274f19566392f843cbf5f745308fd2c">checkOutputMap</a>(plugin);
-<a name="l00633"></a>00633     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a>[plugin]-&gt;size();
-<a name="l00634"></a>00634 }
-<a name="l00635"></a>00635 
-<a name="l00636"></a>00636 <a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *
-<a name="l00637"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#088345ac72041e44e18b7bf5edd32f44">00637</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#088345ac72041e44e18b7bf5edd32f44">PluginAdapterBase::Impl::getOutputDescriptor</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin,
-<a name="l00638"></a>00638                                        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i)
-<a name="l00639"></a>00639 {
-<a name="l00640"></a>00640     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8274f19566392f843cbf5f745308fd2c">checkOutputMap</a>(plugin);
-<a name="l00641"></a>00641     <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Plugin::OutputDescriptor</a> &amp;od =
-<a name="l00642"></a>00642         (*<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a>[plugin])[i];
-<a name="l00643"></a>00643 
-<a name="l00644"></a>00644     <a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *desc = (<a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *)
-<a name="l00645"></a>00645         malloc(<span class="keyword">sizeof</span>(<a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a>));
-<a name="l00646"></a>00646 
-<a name="l00647"></a>00647     desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#461161b2010370176115967e4f58a5f5" title="Computer-usable name of the output.">identifier</a> = strdup(od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a>.c_str());
-<a name="l00648"></a>00648     desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#f4fca576bd47167fd2bf9b43d588815f" title="Human-readable name of the output.">name</a> = strdup(od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a>.c_str());
-<a name="l00649"></a>00649     desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#bfa911b138cfb80cf63e8f2e0fa0fb89" title="Human-readable short text about the output.">description</a> = strdup(od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a>.c_str());
-<a name="l00650"></a>00650     desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#d038caa8e596dfd037035637202f1d63" title="Human-readable name of the unit of the output.">unit</a> = strdup(od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4" title="The unit of the output, in human-readable form.">unit</a>.c_str());
-<a name="l00651"></a>00651     desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#e8571f5a2bc740738af0cb7dda0c4749" title="1 if output has equal number of values for each returned result.">hasFixedBinCount</a> = od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d" title="True if the output has the same number of values per sample for every output sample...">hasFixedBinCount</a>;
-<a name="l00652"></a>00652     desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#652ee422092720e44d23d98bdb68f978" title="Number of values per result, if hasFixedBinCount.">binCount</a> = od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a>;
-<a name="l00653"></a>00653 
-<a name="l00654"></a>00654     <span class="keywordflow">if</span> (od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d" title="True if the output has the same number of values per sample for every output sample...">hasFixedBinCount</a> &amp;&amp; od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a> &gt; 0) {
-<a name="l00655"></a>00655         desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447" title="Names of returned value bins, if hasFixedBinCount.">binNames</a> = (<span class="keyword">const</span> <span class="keywordtype">char</span> **)
-<a name="l00656"></a>00656             malloc(od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a> * <span class="keyword">sizeof</span>(<span class="keyword">const</span> <span class="keywordtype">char</span> *));
-<a name="l00657"></a>00657         
-<a name="l00658"></a>00658         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a>; ++i) {
-<a name="l00659"></a>00659             <span class="keywordflow">if</span> (i &lt; od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#31d9b79e2d8241344f551a22fcb5c8c7" title="The (human-readable) names of each of the bins, if appropriate.">binNames</a>.size()) {
-<a name="l00660"></a>00660                 desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447" title="Names of returned value bins, if hasFixedBinCount.">binNames</a>[i] = strdup(od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#31d9b79e2d8241344f551a22fcb5c8c7" title="The (human-readable) names of each of the bins, if appropriate.">binNames</a>[i].c_str());
-<a name="l00661"></a>00661             } <span class="keywordflow">else</span> {
-<a name="l00662"></a>00662                 desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447" title="Names of returned value bins, if hasFixedBinCount.">binNames</a>[i] = 0;
-<a name="l00663"></a>00663             }
-<a name="l00664"></a>00664         }
-<a name="l00665"></a>00665     } <span class="keywordflow">else</span> {
-<a name="l00666"></a>00666         desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447" title="Names of returned value bins, if hasFixedBinCount.">binNames</a> = 0;
-<a name="l00667"></a>00667     }
-<a name="l00668"></a>00668 
-<a name="l00669"></a>00669     desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#f6b512d772023b4e852216689c1c4465" title="1 if each returned value falls within the same fixed min/max range.">hasKnownExtents</a> = od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31" title="True if the results in each output bin fall within a fixed numeric range (minimum...">hasKnownExtents</a>;
-<a name="l00670"></a>00670     desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#9a28180989e3d028c12a98517479dc46" title="Minimum value for a returned result in any bin, if hasKnownExtents.">minValue</a> = od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#c9f5924c0be7571bba8e7ae7e7a921f4" title="Minimum value of the results in the output.">minValue</a>;
-<a name="l00671"></a>00671     desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#4cbe540a247df60f85b00b2aa16461ee" title="Maximum value for a returned result in any bin, if hasKnownExtents.">maxValue</a> = od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#907b4e8fbb48a46ac5a05f880d72719f" title="Maximum value of the results in the output.">maxValue</a>;
-<a name="l00672"></a>00672     desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#b56cf0bbb17136819024574d5cc65e30" title="1 if returned results are quantized to a particular resolution.">isQuantized</a> = od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1b4858928d23bfd7d5bc557c82a83fb4" title="True if the output values are quantized to a particular resolution.">isQuantized</a>;
-<a name="l00673"></a>00673     desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#71aa40222dda4321030cccd0bb655fe3" title="Quantization resolution for returned results, if isQuantized.">quantizeStep</a> = od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#3bed37153067b625b95acb40b60dbf0b" title="Quantization resolution of the output values (e.g.">quantizeStep</a>;
-<a name="l00674"></a>00674 
-<a name="l00675"></a>00675     <span class="keywordflow">switch</span> (od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d" title="Positioning in time of the output results.">sampleType</a>) {
-<a name="l00676"></a>00676     <span class="keywordflow">case</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca" title="Results from each process() align with that call&amp;#39;s block start.">Plugin::OutputDescriptor::OneSamplePerStep</a>:
-<a name="l00677"></a>00677         desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#5da1d27cc99badc214640e859b882072" title="Time positioning method for returned results (see VampSampleType).">sampleType</a> = <a class="code" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821b546deafd57f175fb1e7f9cbea1c5113" title="Each process call returns results aligned with call&amp;#39;s block start.">vampOneSamplePerStep</a>; <span class="keywordflow">break</span>;
-<a name="l00678"></a>00678     <span class="keywordflow">case</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c4c74bd2fc96dfe2815623f94b40e5629" title="Results are evenly spaced in time (sampleRate specified below).">Plugin::OutputDescriptor::FixedSampleRate</a>:
-<a name="l00679"></a>00679         desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#5da1d27cc99badc214640e859b882072" title="Time positioning method for returned results (see VampSampleType).">sampleType</a> = <a class="code" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821afc8a05f722bc83ecce227e12e838cf8" title="Returned results are evenly spaced at samplerate specified below.">vampFixedSampleRate</a>; <span class="keywordflow">break</span>;
-<a name="l00680"></a>00680     <span class="keywordflow">case</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e" title="Results are unevenly spaced and have individual timestamps.">Plugin::OutputDescriptor::VariableSampleRate</a>:
-<a name="l00681"></a>00681         desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#5da1d27cc99badc214640e859b882072" title="Time positioning method for returned results (see VampSampleType).">sampleType</a> = <a class="code" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821bae8a21a9e30eb73e16d6abc6c7415e8" title="Returned results have their own individual timestamps.">vampVariableSampleRate</a>; <span class="keywordflow">break</span>;
-<a name="l00682"></a>00682     }
-<a name="l00683"></a>00683 
-<a name="l00684"></a>00684     desc-&gt;<a class="code" href="struct__VampOutputDescriptor.html#1ccf193317b2b9c2eb0dbd8dcf61d26e" title="Sample rate of returned results, if sampleType is vampFixedSampleRate.">sampleRate</a> = od.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#dd0cbbdfa9c91764037c39365b1d42af" title="Sample rate of the output results, as samples per second.">sampleRate</a>;
-<a name="l00685"></a>00685 
-<a name="l00686"></a>00686     <span class="keywordflow">return</span> desc;
-<a name="l00687"></a>00687 }
-<a name="l00688"></a>00688     
-<a name="l00689"></a>00689 <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *
-<a name="l00690"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0eca18a4ae046e4ac1ebd25bb3ac5a08">00690</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0eca18a4ae046e4ac1ebd25bb3ac5a08">PluginAdapterBase::Impl::process</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin,
-<a name="l00691"></a>00691                                  <span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
-<a name="l00692"></a>00692                                  <span class="keywordtype">int</span> sec, <span class="keywordtype">int</span> nsec)
-<a name="l00693"></a>00693 {
-<a name="l00694"></a>00694 <span class="comment">//    std::cerr &lt;&lt; "PluginAdapterBase::Impl::process" &lt;&lt; std::endl;</span>
-<a name="l00695"></a>00695     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> rt(sec, nsec);
-<a name="l00696"></a>00696     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8274f19566392f843cbf5f745308fd2c">checkOutputMap</a>(plugin);
-<a name="l00697"></a>00697     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#550b4522bfbf1ad23297be28c51a4d72">convertFeatures</a>(plugin, plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process</a>(inputBuffers, rt));
-<a name="l00698"></a>00698 }
-<a name="l00699"></a>00699     
-<a name="l00700"></a>00700 <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *
-<a name="l00701"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9fe7df06eb951c259763d56c49544676">00701</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9fe7df06eb951c259763d56c49544676">PluginAdapterBase::Impl::getRemainingFeatures</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin)
-<a name="l00702"></a>00702 {
-<a name="l00703"></a>00703 <span class="comment">//    std::cerr &lt;&lt; "PluginAdapterBase::Impl::getRemainingFeatures" &lt;&lt; std::endl;</span>
-<a name="l00704"></a>00704     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8274f19566392f843cbf5f745308fd2c">checkOutputMap</a>(plugin);
-<a name="l00705"></a>00705     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#550b4522bfbf1ad23297be28c51a4d72">convertFeatures</a>(plugin, plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures</a>());
-<a name="l00706"></a>00706 }
-<a name="l00707"></a>00707 
-<a name="l00708"></a>00708 <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *
-<a name="l00709"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#550b4522bfbf1ad23297be28c51a4d72">00709</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#550b4522bfbf1ad23297be28c51a4d72">PluginAdapterBase::Impl::convertFeatures</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin,
-<a name="l00710"></a>00710                                    <span class="keyword">const</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a> &amp;features)
-<a name="l00711"></a>00711 {
-<a name="l00712"></a>00712     <span class="keywordtype">int</span> lastN = -1;
-<a name="l00713"></a>00713 
-<a name="l00714"></a>00714     <span class="keywordtype">int</span> outputCount = 0;
-<a name="l00715"></a>00715     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a>[plugin]) outputCount = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a>[plugin]-&gt;size();
-<a name="l00716"></a>00716     
-<a name="l00717"></a>00717     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#429c029c0068230d1afa97426b04ce0d">resizeFS</a>(plugin, outputCount);
-<a name="l00718"></a>00718     <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *fs = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>[plugin];
-<a name="l00719"></a>00719 
-<a name="l00720"></a>00720     <span class="keywordflow">for</span> (Plugin::FeatureSet::const_iterator fi = features.begin();
-<a name="l00721"></a>00721          fi != features.end(); ++fi) {
-<a name="l00722"></a>00722 
-<a name="l00723"></a>00723         <span class="keywordtype">int</span> n = fi-&gt;first;
-<a name="l00724"></a>00724         
-<a name="l00725"></a>00725 <span class="comment">//        std::cerr &lt;&lt; "PluginAdapterBase::Impl::convertFeatures: n = " &lt;&lt; n &lt;&lt; std::endl;</span>
-<a name="l00726"></a>00726 
-<a name="l00727"></a>00727         <span class="keywordflow">if</span> (n &gt;= <span class="keywordtype">int</span>(outputCount)) {
-<a name="l00728"></a>00728             std::cerr &lt;&lt; <span class="stringliteral">"WARNING: PluginAdapterBase::Impl::convertFeatures: Too many outputs from plugin ("</span> &lt;&lt; n+1 &lt;&lt; <span class="stringliteral">", only should be "</span> &lt;&lt; outputCount &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00729"></a>00729             <span class="keywordflow">continue</span>;
-<a name="l00730"></a>00730         }
-<a name="l00731"></a>00731 
-<a name="l00732"></a>00732         <span class="keywordflow">if</span> (n &gt; lastN + 1) {
-<a name="l00733"></a>00733             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = lastN + 1; i &lt; n; ++i) {
-<a name="l00734"></a>00734                 fs[i].<a class="code" href="struct__VampFeatureList.html#01db33a31ae5e04a4bd097f4b6aa75f1" title="Number of features in this feature list.">featureCount</a> = 0;
-<a name="l00735"></a>00735             }
-<a name="l00736"></a>00736         }
-<a name="l00737"></a>00737 
-<a name="l00738"></a>00738         <span class="keyword">const</span> <a class="code" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">Plugin::FeatureList</a> &amp;fl = fi-&gt;second;
-<a name="l00739"></a>00739 
-<a name="l00740"></a>00740         <span class="keywordtype">size_t</span> sz = fl.size();
-<a name="l00741"></a>00741         <span class="keywordflow">if</span> (sz &gt; <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">m_fsizes</a>[plugin][n]) <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f5fcc5331f2dfa4c650eee636af72403">resizeFL</a>(plugin, n, sz);
-<a name="l00742"></a>00742         fs[n].<a class="code" href="struct__VampFeatureList.html#01db33a31ae5e04a4bd097f4b6aa75f1" title="Number of features in this feature list.">featureCount</a> = sz;
-<a name="l00743"></a>00743         
-<a name="l00744"></a>00744         <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; sz; ++j) {
-<a name="l00745"></a>00745 
-<a name="l00746"></a>00746 <span class="comment">//            std::cerr &lt;&lt; "PluginAdapterBase::Impl::convertFeatures: j = " &lt;&lt; j &lt;&lt; std::endl;</span>
-<a name="l00747"></a>00747 
-<a name="l00748"></a>00748             <a class="code" href="struct__VampFeature.html">VampFeature</a> *feature = &amp;fs[n].<a class="code" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f" title="Features in this feature list.">features</a>[j];
-<a name="l00749"></a>00749 
-<a name="l00750"></a>00750             feature-&gt;<a class="code" href="struct__VampFeature.html#be6aa7a08185beeb9deca2d08d99859f" title="1 if the feature has a timestamp (i.e.">hasTimestamp</a> = fl[j].hasTimestamp;
-<a name="l00751"></a>00751             feature-&gt;<a class="code" href="struct__VampFeature.html#31f0b57050e33d082692536097953d9c" title="Seconds component of timestamp.">sec</a> = fl[j].timestamp.sec;
-<a name="l00752"></a>00752             feature-&gt;<a class="code" href="struct__VampFeature.html#8874cb23600c6b10ca6e8a40920d999e" title="Nanoseconds component of timestamp.">nsec</a> = fl[j].timestamp.nsec;
-<a name="l00753"></a>00753             feature-&gt;<a class="code" href="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd" title="Number of values.">valueCount</a> = fl[j].values.size();
-<a name="l00754"></a>00754 
-<a name="l00755"></a>00755             <span class="keywordflow">if</span> (feature-&gt;<a class="code" href="struct__VampFeature.html#6662b7489a7890cae713bf4e8f6d52cd" title="Label for this returned sample.">label</a>) free(feature-&gt;<a class="code" href="struct__VampFeature.html#6662b7489a7890cae713bf4e8f6d52cd" title="Label for this returned sample.">label</a>);
-<a name="l00756"></a>00756 
-<a name="l00757"></a>00757             <span class="keywordflow">if</span> (fl[j].label.empty()) {
-<a name="l00758"></a>00758                 feature-&gt;<a class="code" href="struct__VampFeature.html#6662b7489a7890cae713bf4e8f6d52cd" title="Label for this returned sample.">label</a> = 0;
-<a name="l00759"></a>00759             } <span class="keywordflow">else</span> {
-<a name="l00760"></a>00760                 feature-&gt;<a class="code" href="struct__VampFeature.html#6662b7489a7890cae713bf4e8f6d52cd" title="Label for this returned sample.">label</a> = strdup(fl[j].label.c_str());
-<a name="l00761"></a>00761             }
-<a name="l00762"></a>00762 
-<a name="l00763"></a>00763             <span class="keywordflow">if</span> (feature-&gt;<a class="code" href="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd" title="Number of values.">valueCount</a> &gt; <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#166ff8e5df4fcd27f74bc7179e14c33e">m_fvsizes</a>[plugin][n][j]) {
-<a name="l00764"></a>00764                 <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9b0791b97e91f8b8c3d18f3ed3bed861">resizeFV</a>(plugin, n, j, feature-&gt;<a class="code" href="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd" title="Number of values.">valueCount</a>);
-<a name="l00765"></a>00765             }
-<a name="l00766"></a>00766 
-<a name="l00767"></a>00767             <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k = 0; k &lt; feature-&gt;<a class="code" href="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd" title="Number of values.">valueCount</a>; ++k) {
-<a name="l00768"></a>00768 <span class="comment">//                std::cerr &lt;&lt; "PluginAdapterBase::Impl::convertFeatures: k = " &lt;&lt; k &lt;&lt; std::endl;</span>
-<a name="l00769"></a>00769                 feature-&gt;<a class="code" href="struct__VampFeature.html#e4030f941ddb2bab8bc147b88e1f1c15" title="Values for this returned sample.">values</a>[k] = fl[j].values[k];
-<a name="l00770"></a>00770             }
-<a name="l00771"></a>00771         }
-<a name="l00772"></a>00772 
-<a name="l00773"></a>00773         lastN = n;
-<a name="l00774"></a>00774     }
-<a name="l00775"></a>00775 
-<a name="l00776"></a>00776     <span class="keywordflow">if</span> (lastN == -1) <span class="keywordflow">return</span> 0;
-<a name="l00777"></a>00777 
-<a name="l00778"></a>00778     <span class="keywordflow">if</span> (<span class="keywordtype">int</span>(outputCount) &gt; lastN + 1) {
-<a name="l00779"></a>00779         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = lastN + 1; i &lt; int(outputCount); ++i) {
-<a name="l00780"></a>00780             fs[i].<a class="code" href="struct__VampFeatureList.html#01db33a31ae5e04a4bd097f4b6aa75f1" title="Number of features in this feature list.">featureCount</a> = 0;
-<a name="l00781"></a>00781         }
-<a name="l00782"></a>00782     }
-<a name="l00783"></a>00783 
-<a name="l00784"></a>00784     <span class="keywordflow">return</span> fs;
-<a name="l00785"></a>00785 }
-<a name="l00786"></a>00786 
-<a name="l00787"></a>00787 <span class="keywordtype">void</span>
-<a name="l00788"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#429c029c0068230d1afa97426b04ce0d">00788</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#429c029c0068230d1afa97426b04ce0d">PluginAdapterBase::Impl::resizeFS</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin, <span class="keywordtype">int</span> n)
-<a name="l00789"></a>00789 {
-<a name="l00790"></a>00790 <span class="comment">//    std::cerr &lt;&lt; "PluginAdapterBase::Impl::resizeFS(" &lt;&lt; plugin &lt;&lt; ", " &lt;&lt; n &lt;&lt; ")" &lt;&lt; std::endl;</span>
-<a name="l00791"></a>00791 
-<a name="l00792"></a>00792     <span class="keywordtype">int</span> i = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">m_fsizes</a>[plugin].size();
-<a name="l00793"></a>00793     <span class="keywordflow">if</span> (i &gt;= n) <span class="keywordflow">return</span>;
-<a name="l00794"></a>00794 
-<a name="l00795"></a>00795 <span class="comment">//    std::cerr &lt;&lt; "resizing from " &lt;&lt; i &lt;&lt; std::endl;</span>
-<a name="l00796"></a>00796 
-<a name="l00797"></a>00797     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>[plugin] = (<a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *)realloc
-<a name="l00798"></a>00798         (<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>[plugin], n * <span class="keyword">sizeof</span>(<a class="code" href="struct__VampFeatureList.html">VampFeatureList</a>));
-<a name="l00799"></a>00799 
-<a name="l00800"></a>00800     <span class="keywordflow">while</span> (i &lt; n) {
-<a name="l00801"></a>00801         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>[plugin][i].featureCount = 0;
-<a name="l00802"></a>00802         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>[plugin][i].features = 0;
-<a name="l00803"></a>00803         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">m_fsizes</a>[plugin].push_back(0);
-<a name="l00804"></a>00804         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#166ff8e5df4fcd27f74bc7179e14c33e">m_fvsizes</a>[plugin].push_back(std::vector&lt;size_t&gt;());
-<a name="l00805"></a>00805         i++;
-<a name="l00806"></a>00806     }
-<a name="l00807"></a>00807 }
-<a name="l00808"></a>00808 
-<a name="l00809"></a>00809 <span class="keywordtype">void</span>
-<a name="l00810"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f5fcc5331f2dfa4c650eee636af72403">00810</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f5fcc5331f2dfa4c650eee636af72403">PluginAdapterBase::Impl::resizeFL</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin, <span class="keywordtype">int</span> n, <span class="keywordtype">size_t</span> sz)
-<a name="l00811"></a>00811 {
-<a name="l00812"></a>00812 <span class="comment">//    std::cerr &lt;&lt; "PluginAdapterBase::Impl::resizeFL(" &lt;&lt; plugin &lt;&lt; ", " &lt;&lt; n &lt;&lt; ", "</span>
-<a name="l00813"></a>00813 <span class="comment">//              &lt;&lt; sz &lt;&lt; ")" &lt;&lt; std::endl;</span>
-<a name="l00814"></a>00814 
-<a name="l00815"></a>00815     <span class="keywordtype">size_t</span> i = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">m_fsizes</a>[plugin][n];
-<a name="l00816"></a>00816     <span class="keywordflow">if</span> (i &gt;= sz) <span class="keywordflow">return</span>;
-<a name="l00817"></a>00817 
-<a name="l00818"></a>00818 <span class="comment">//    std::cerr &lt;&lt; "resizing from " &lt;&lt; i &lt;&lt; std::endl;</span>
-<a name="l00819"></a>00819 
-<a name="l00820"></a>00820     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>[plugin][n].features = (<a class="code" href="struct__VampFeature.html">VampFeature</a> *)realloc
-<a name="l00821"></a>00821         (<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>[plugin][n].features, sz * <span class="keyword">sizeof</span>(<a class="code" href="struct__VampFeature.html">VampFeature</a>));
-<a name="l00822"></a>00822 
-<a name="l00823"></a>00823     <span class="keywordflow">while</span> (<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">m_fsizes</a>[plugin][n] &lt; sz) {
-<a name="l00824"></a>00824         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>[plugin][n].features[<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">m_fsizes</a>[plugin][n]].valueCount = 0;
-<a name="l00825"></a>00825         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>[plugin][n].features[<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">m_fsizes</a>[plugin][n]].values = 0;
-<a name="l00826"></a>00826         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>[plugin][n].features[<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">m_fsizes</a>[plugin][n]].label = 0;
-<a name="l00827"></a>00827         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#166ff8e5df4fcd27f74bc7179e14c33e">m_fvsizes</a>[plugin][n].push_back(0);
-<a name="l00828"></a>00828         <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">m_fsizes</a>[plugin][n]++;
-<a name="l00829"></a>00829     }
-<a name="l00830"></a>00830 }
-<a name="l00831"></a>00831 
-<a name="l00832"></a>00832 <span class="keywordtype">void</span>
-<a name="l00833"></a><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9b0791b97e91f8b8c3d18f3ed3bed861">00833</a> <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9b0791b97e91f8b8c3d18f3ed3bed861">PluginAdapterBase::Impl::resizeFV</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin, <span class="keywordtype">int</span> n, <span class="keywordtype">int</span> j, <span class="keywordtype">size_t</span> sz)
-<a name="l00834"></a>00834 {
-<a name="l00835"></a>00835 <span class="comment">//    std::cerr &lt;&lt; "PluginAdapterBase::Impl::resizeFV(" &lt;&lt; plugin &lt;&lt; ", " &lt;&lt; n &lt;&lt; ", "</span>
-<a name="l00836"></a>00836 <span class="comment">//              &lt;&lt; j &lt;&lt; ", " &lt;&lt; sz &lt;&lt; ")" &lt;&lt; std::endl;</span>
-<a name="l00837"></a>00837 
-<a name="l00838"></a>00838     <span class="keywordtype">size_t</span> i = <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#166ff8e5df4fcd27f74bc7179e14c33e">m_fvsizes</a>[plugin][n][j];
-<a name="l00839"></a>00839     <span class="keywordflow">if</span> (i &gt;= sz) <span class="keywordflow">return</span>;
-<a name="l00840"></a>00840 
-<a name="l00841"></a>00841 <span class="comment">//    std::cerr &lt;&lt; "resizing from " &lt;&lt; i &lt;&lt; std::endl;</span>
-<a name="l00842"></a>00842 
-<a name="l00843"></a>00843     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>[plugin][n].features[j].values = (<span class="keywordtype">float</span> *)realloc
-<a name="l00844"></a>00844         (<a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a>[plugin][n].features[j].values, sz * <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>));
-<a name="l00845"></a>00845 
-<a name="l00846"></a>00846     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#166ff8e5df4fcd27f74bc7179e14c33e">m_fvsizes</a>[plugin][n][j] = sz;
-<a name="l00847"></a>00847 }
-<a name="l00848"></a>00848   
-<a name="l00849"></a>00849 <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#6c8f2c8fce370d586785353c939601d5">PluginAdapterBase::Impl::AdapterMap</a> *
-<a name="l00850"></a>00850 <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">PluginAdapterBase::Impl::m_adapterMap</a> = 0;
-<a name="l00851"></a>00851 
-<a name="l00852"></a>00852 }
-<a name="l00853"></a>00853 
-</pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/PluginAdapter_8cpp.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-<!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: PluginAdapter.cpp 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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
-  </div>
-</div>
-<div class="contents">
-<h1>PluginAdapter.cpp File Reference</h1>
-<p>
-
-<p>
-<a href="PluginAdapter_8cpp-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>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html">Vamp</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td></tr>
-
-</table>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/PluginAdapter_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PluginAdapter_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -18,7 +18,7 @@
   <div class="navpath"><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>PluginAdapter.h</h1><a href="PluginAdapter_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -58,59 +58,63 @@
 <a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_PLUGIN_ADAPTER_H_</span>
 <a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_PLUGIN_ADAPTER_H_</span>
 <a name="l00039"></a>00039 <span class="preprocessor"></span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;<a class="code" href="vamp_8h.html">vamp/vamp.h</a>&gt;</span>
-<a name="l00041"></a>00041 
-<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="Plugin_8h.html">Plugin.h</a>"</span>
-<a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;map&gt;</span>
-<a name="l00045"></a>00045 
-<a name="l00046"></a>00046 <span class="keyword">namespace </span>Vamp {
+<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;map&gt;</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;<a class="code" href="vamp_8h.html">vamp/vamp.h</a>&gt;</span>
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 <span class="preprocessor">#include "Plugin.h"</span>
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <span class="preprocessor">#include "<a class="code" href="plugguard_8h.html">plugguard.h</a>"</span>
+<a name="l00046"></a>00046 <a class="code" href="plugguard_8h.html#1a2724ea453971288d3218e4eab3072c">_VAMP_SDK_PLUGSPACE_BEGIN</a>(PluginAdapter.h)
 <a name="l00047"></a>00047 
-<a name="l00063"></a><a class="code" href="classVamp_1_1PluginAdapterBase.html">00063</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a>
-<a name="l00064"></a>00064 {
-<a name="l00065"></a>00065 <span class="keyword">public</span>:
-<a name="l00066"></a>00066     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1PluginAdapterBase.html#e39492abdca4b588a582962fdeab819d">~PluginAdapterBase</a>();
-<a name="l00067"></a>00067 
-<a name="l00072"></a>00072     <span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *<a class="code" href="classVamp_1_1PluginAdapterBase.html#7ff5c9374a8dc43f977c3707d1da45b5" title="Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter...">getDescriptor</a>();
-<a name="l00073"></a>00073 
-<a name="l00074"></a>00074 <span class="keyword">protected</span>:
-<a name="l00075"></a>00075     <a class="code" href="classVamp_1_1PluginAdapterBase.html#5dad6a9b4b170c0f284962e125ac988e">PluginAdapterBase</a>();
-<a name="l00076"></a>00076 
-<a name="l00077"></a>00077     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *<a class="code" href="classVamp_1_1PluginAdapterBase.html#9116adb9b7a426f4f0ded15e45a5531b">createPlugin</a>(<span class="keywordtype">float</span> inputSampleRate) = 0;
+<a name="l00048"></a>00048 namespace Vamp {
+<a name="l00049"></a>00049 
+<a name="l00065"></a><a class="code" href="classVamp_1_1PluginAdapterBase.html">00065</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a>
+<a name="l00066"></a>00066 {
+<a name="l00067"></a>00067 <span class="keyword">public</span>:
+<a name="l00068"></a>00068     <span class="keyword">virtual</span> ~<a class="code" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a>();
+<a name="l00069"></a>00069 
+<a name="l00074"></a>00074     <span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *getDescriptor();
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076 <span class="keyword">protected</span>:
+<a name="l00077"></a>00077     <a class="code" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a>();
 <a name="l00078"></a>00078 
-<a name="l00079"></a><a class="code" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">00079</a>     <span class="keyword">class </span><a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a>;
-<a name="l00080"></a>00080     <a class="code" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *<a class="code" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">m_impl</a>;
-<a name="l00081"></a>00081 };
-<a name="l00082"></a>00082 
-<a name="l00092"></a>00092 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> P&gt;
-<a name="l00093"></a><a class="code" href="classVamp_1_1PluginAdapter.html">00093</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a>
-<a name="l00094"></a>00094 {
-<a name="l00095"></a>00095 <span class="keyword">public</span>:
-<a name="l00096"></a><a class="code" href="classVamp_1_1PluginAdapter.html#16312efd629b7063d7b6d67889a2c15a">00096</a>     <a class="code" href="classVamp_1_1PluginAdapter.html#16312efd629b7063d7b6d67889a2c15a">PluginAdapter</a>() : <a class="code" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a>() { }
-<a name="l00097"></a><a class="code" href="classVamp_1_1PluginAdapter.html#9612c9df7d4844959a36921d43d4bd50">00097</a>     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1PluginAdapter.html#9612c9df7d4844959a36921d43d4bd50">~PluginAdapter</a>() { }
-<a name="l00098"></a>00098 
-<a name="l00099"></a>00099 <span class="keyword">protected</span>:
-<a name="l00100"></a><a class="code" href="classVamp_1_1PluginAdapter.html#3f387e7e37409e00d32477903b5b13d3">00100</a>     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *<a class="code" href="classVamp_1_1PluginAdapter.html#3f387e7e37409e00d32477903b5b13d3">createPlugin</a>(<span class="keywordtype">float</span> inputSampleRate) {
-<a name="l00101"></a>00101         P *p = <span class="keyword">new</span> P(inputSampleRate);
-<a name="l00102"></a>00102         <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin = <span class="keyword">dynamic_cast&lt;</span><a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *<span class="keyword">&gt;</span>(p);
-<a name="l00103"></a>00103         <span class="keywordflow">if</span> (!plugin) {
-<a name="l00104"></a>00104             std::cerr &lt;&lt; <span class="stringliteral">"ERROR: PluginAdapter::createPlugin: "</span>
-<a name="l00105"></a>00105                       &lt;&lt; <span class="stringliteral">"Template type is not a plugin!"</span>
-<a name="l00106"></a>00106                       &lt;&lt; std::endl;
-<a name="l00107"></a>00107             <span class="keyword">delete</span> p;
-<a name="l00108"></a>00108             <span class="keywordflow">return</span> 0;
-<a name="l00109"></a>00109         }
-<a name="l00110"></a>00110         <span class="keywordflow">return</span> plugin;
-<a name="l00111"></a>00111     }
-<a name="l00112"></a>00112 };
-<a name="l00113"></a>00113     
-<a name="l00114"></a>00114 }
-<a name="l00115"></a>00115 
-<a name="l00116"></a>00116 <span class="preprocessor">#endif</span>
-<a name="l00117"></a>00117 <span class="preprocessor"></span>
+<a name="l00079"></a>00079     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *createPlugin(<span class="keywordtype">float</span> inputSampleRate) = 0;
+<a name="l00080"></a>00080 
+<a name="l00081"></a><a class="code" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">00081</a>     <span class="keyword">class </span>Impl;
+<a name="l00082"></a>00082     Impl *m_impl;
+<a name="l00083"></a>00083 };
+<a name="l00084"></a>00084 
+<a name="l00094"></a>00094 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> P&gt;
+<a name="l00095"></a><a class="code" href="classVamp_1_1PluginAdapter.html">00095</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a>
+<a name="l00096"></a>00096 {
+<a name="l00097"></a>00097 <span class="keyword">public</span>:
+<a name="l00098"></a><a class="code" href="classVamp_1_1PluginAdapter.html#16312efd629b7063d7b6d67889a2c15a">00098</a>     <a class="code" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a>() : <a class="code" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a>() { }
+<a name="l00099"></a><a class="code" href="classVamp_1_1PluginAdapter.html#9612c9df7d4844959a36921d43d4bd50">00099</a>     <span class="keyword">virtual</span> ~<a class="code" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a>() { }
+<a name="l00100"></a>00100 
+<a name="l00101"></a>00101 <span class="keyword">protected</span>:
+<a name="l00102"></a><a class="code" href="classVamp_1_1PluginAdapter.html#3f387e7e37409e00d32477903b5b13d3">00102</a>     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *createPlugin(<span class="keywordtype">float</span> inputSampleRate) {
+<a name="l00103"></a>00103         P *p = <span class="keyword">new</span> P(inputSampleRate);
+<a name="l00104"></a>00104         <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin = <span class="keyword">dynamic_cast&lt;</span><a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *<span class="keyword">&gt;</span>(p);
+<a name="l00105"></a>00105         <span class="keywordflow">if</span> (!plugin) {
+<a name="l00106"></a>00106             std::cerr &lt;&lt; <span class="stringliteral">"ERROR: PluginAdapter::createPlugin: "</span>
+<a name="l00107"></a>00107                       &lt;&lt; <span class="stringliteral">"Template type is not a plugin!"</span>
+<a name="l00108"></a>00108                       &lt;&lt; std::endl;
+<a name="l00109"></a>00109             <span class="keyword">delete</span> p;
+<a name="l00110"></a>00110             <span class="keywordflow">return</span> 0;
+<a name="l00111"></a>00111         }
+<a name="l00112"></a>00112         <span class="keywordflow">return</span> plugin;
+<a name="l00113"></a>00113     }
+<a name="l00114"></a>00114 };
+<a name="l00115"></a>00115     
+<a name="l00116"></a>00116 }
+<a name="l00117"></a>00117 
+<a name="l00118"></a>00118 <a class="code" href="plugguard_8h.html#c879bb1077ecc6132ea3581ef9033753">_VAMP_SDK_PLUGSPACE_END</a>(PluginAdapter.h)
+<a name="l00119"></a>00119 
+<a name="l00120"></a>00120 <span class="preprocessor">#endif</span>
+<a name="l00121"></a>00121 <span class="preprocessor"></span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PluginAdapter_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PluginAdapter_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -31,14 +31,14 @@
 <tr><td colspan="2"><br><h2>Classes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a> and <a class="el" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a> provide a wrapper class that a plugin library can use to make its C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> objects available through the <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> C API.  <a href="classVamp_1_1PluginAdapterBase.html#_details">More...</a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a> and <a class="el" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a> provide a wrapper class that a plugin library can use to make its C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> objects available through the <a class="el" href="namespaceVamp.html">Vamp</a> C API.  <a href="classVamp_1_1PluginAdapterBase.html#_details">More...</a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapter.html">Vamp::PluginAdapter&lt; P &gt;</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a> turns a <a class="el" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a> into a specific wrapper for a particular plugin implementation.  <a href="classVamp_1_1PluginAdapter.html#_details">More...</a><br></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PluginBase_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-<!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: PluginBase.h Source File</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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
-  </div>
-</div>
-</div>
-<h1>PluginBase.h</h1><a href="PluginBase_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
-<a name="l00002"></a>00002 
-<a name="l00003"></a>00003 <span class="comment">/*</span>
-<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
-<a name="l00005"></a>00005 <span class="comment"></span>
-<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
-<a name="l00007"></a>00007 <span class="comment"></span>
-<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
-<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
-<a name="l00010"></a>00010 <span class="comment">  </span>
-<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
-<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
-<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
-<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
-<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
-<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
-<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
-<a name="l00018"></a>00018 <span class="comment"></span>
-<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
-<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
-<a name="l00021"></a>00021 <span class="comment"></span>
-<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
-<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
-<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
-<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
-<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
-<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
-<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
-<a name="l00029"></a>00029 <span class="comment"></span>
-<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
-<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
-<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
-<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
-<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
-<a name="l00035"></a>00035 <span class="comment">*/</span>
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_PLUGIN_BASE_H_</span>
-<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_PLUGIN_BASE_H_</span>
-<a name="l00039"></a>00039 <span class="preprocessor"></span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;string&gt;</span>
-<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;vector&gt;</span>
-<a name="l00042"></a>00042 
-<a name="l00043"></a><a class="code" href="PluginBase_8h.html#9b7a8e1ac1c91366bec5f2f33c137a2f">00043</a> <span class="preprocessor">#define VAMP_SDK_VERSION "1.2"</span>
-<a name="l00044"></a>00044 <span class="preprocessor"></span>
-<a name="l00045"></a>00045 <span class="keyword">namespace </span>Vamp {
-<a name="l00046"></a>00046 
-<a name="l00059"></a><a class="code" href="classVamp_1_1PluginBase.html">00059</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a> 
-<a name="l00060"></a>00060 {
-<a name="l00061"></a>00061 <span class="keyword">public</span>:
-<a name="l00062"></a><a class="code" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">00062</a>     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>() { }
-<a name="l00063"></a>00063 
-<a name="l00067"></a><a class="code" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">00067</a>     <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf" title="Get the Vamp API compatibility level of the plugin.">getVampApiVersion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 1; }
-<a name="l00068"></a>00068 
-<a name="l00082"></a>00082     <span class="keyword">virtual</span> std::string <a class="code" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a" title="Get the computer-usable name of the plugin.">getIdentifier</a>() <span class="keyword">const</span> = 0;
-<a name="l00083"></a>00083 
-<a name="l00092"></a>00092     <span class="keyword">virtual</span> std::string <a class="code" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232" title="Get a human-readable name or title of the plugin.">getName</a>() <span class="keyword">const</span> = 0;
-<a name="l00093"></a>00093 
-<a name="l00102"></a>00102     <span class="keyword">virtual</span> std::string <a class="code" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a" title="Get a human-readable description for the plugin, typically a line of text that may...">getDescription</a>() <span class="keyword">const</span> = 0;
-<a name="l00103"></a>00103     
-<a name="l00110"></a>00110     <span class="keyword">virtual</span> std::string <a class="code" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637" title="Get the name of the author or vendor of the plugin in human-readable form.">getMaker</a>() <span class="keyword">const</span> = 0;
-<a name="l00111"></a>00111 
-<a name="l00117"></a>00117     <span class="keyword">virtual</span> std::string <a class="code" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661" title="Get the copyright statement or licensing summary for the plugin.">getCopyright</a>() <span class="keyword">const</span> = 0;
-<a name="l00118"></a>00118 
-<a name="l00122"></a>00122     <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151" title="Get the version number of the plugin.">getPluginVersion</a>() <span class="keyword">const</span> = 0;
-<a name="l00123"></a>00123 
-<a name="l00124"></a>00124 
-<a name="l00125"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">00125</a>     <span class="keyword">struct </span><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a>
-<a name="l00126"></a>00126     {
-<a name="l00132"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#116fd9f0dc94c2bc4bbc60b5443c598c">00132</a>         std::string <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#116fd9f0dc94c2bc4bbc60b5443c598c" title="The name of the parameter, in computer-usable form.">identifier</a>;
-<a name="l00133"></a>00133 
-<a name="l00137"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#0ecebb94fb4ada4aad2640e20aa57084">00137</a>         std::string <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#0ecebb94fb4ada4aad2640e20aa57084" title="The human-readable name of the parameter.">name</a>;
-<a name="l00138"></a>00138 
-<a name="l00143"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#780ddad41e433d85c82f9ea4d959cbaf">00143</a>         std::string <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#780ddad41e433d85c82f9ea4d959cbaf" title="A human-readable short text describing the parameter.">description</a>;
-<a name="l00144"></a>00144 
-<a name="l00148"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#3bc3df322e4c02e17e96bc6d44982d7b">00148</a>         std::string <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#3bc3df322e4c02e17e96bc6d44982d7b" title="The unit of the parameter, in human-readable form.">unit</a>;
-<a name="l00149"></a>00149 
-<a name="l00153"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8">00153</a>         <span class="keywordtype">float</span> <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8" title="The minimum value of the parameter.">minValue</a>;
-<a name="l00154"></a>00154 
-<a name="l00158"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4">00158</a>         <span class="keywordtype">float</span> <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4" title="The maximum value of the parameter.">maxValue</a>;
-<a name="l00159"></a>00159 
-<a name="l00166"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc">00166</a>         <span class="keywordtype">float</span> <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc" title="The default value of the parameter.">defaultValue</a>;
-<a name="l00167"></a>00167         
-<a name="l00172"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#7c556d58d552f737ee5a34efdf7f9425">00172</a>         <span class="keywordtype">bool</span> <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#7c556d58d552f737ee5a34efdf7f9425" title="True if the parameter values are quantized to a particular resolution.">isQuantized</a>;
-<a name="l00173"></a>00173 
-<a name="l00179"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#01f8387e7c853d5e4e35d4e9a37353d7">00179</a>         <span class="keywordtype">float</span> <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#01f8387e7c853d5e4e35d4e9a37353d7" title="Quantization resolution of the parameter values (e.g.">quantizeStep</a>;
-<a name="l00180"></a>00180 
-<a name="l00192"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#94df96f53835980b4739965007ff222b">00192</a>         std::vector&lt;std::string&gt; <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#94df96f53835980b4739965007ff222b" title="Names for the quantized values.">valueNames</a>;
-<a name="l00193"></a>00193     };
-<a name="l00194"></a>00194 
-<a name="l00195"></a><a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">00195</a>     <span class="keyword">typedef</span> std::vector&lt;ParameterDescriptor&gt; <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>;
-<a name="l00196"></a>00196 
-<a name="l00200"></a><a class="code" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">00200</a>     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> <a class="code" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21" title="Get the controllable parameters of this plugin.">getParameterDescriptors</a>()<span class="keyword"> const </span>{
-<a name="l00201"></a>00201         <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>();
-<a name="l00202"></a>00202     }
-<a name="l00203"></a>00203 
-<a name="l00208"></a><a class="code" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">00208</a>     <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7" title="Get the value of a named parameter.">getParameter</a>(std::string)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 0.0; }
-<a name="l00209"></a>00209 
-<a name="l00214"></a><a class="code" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">00214</a>     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366" title="Set a named parameter.">setParameter</a>(std::string, <span class="keywordtype">float</span>) { } 
-<a name="l00215"></a>00215 
-<a name="l00216"></a>00216     
-<a name="l00217"></a><a class="code" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">00217</a>     <span class="keyword">typedef</span> std::vector&lt;std::string&gt; <a class="code" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>;
-<a name="l00218"></a>00218 
-<a name="l00229"></a><a class="code" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">00229</a>     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> <a class="code" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af" title="Get the program settings available in this plugin.">getPrograms</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>(); }
-<a name="l00230"></a>00230 
-<a name="l00234"></a><a class="code" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">00234</a>     <span class="keyword">virtual</span> std::string <a class="code" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3" title="Get the current program.">getCurrentProgram</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="stringliteral">""</span>; }
-<a name="l00235"></a>00235 
-<a name="l00240"></a><a class="code" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">00240</a>     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353" title="Select a program.">selectProgram</a>(std::string) { }
-<a name="l00241"></a>00241 
-<a name="l00247"></a>00247     <span class="keyword">virtual</span> std::string <a class="code" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff" title="Get the type of plugin.">getType</a>() <span class="keyword">const</span> = 0;
-<a name="l00248"></a>00248 };
-<a name="l00249"></a>00249 
-<a name="l00250"></a>00250 }
-<a name="l00251"></a>00251 
-<a name="l00252"></a>00252 <span class="preprocessor">#endif</span>
-</pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/PluginBase_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-<!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: PluginBase.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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
-  </div>
-</div>
-<div class="contents">
-<h1>PluginBase.h File Reference</h1>
-<p>
-
-<p>
-<a href="PluginBase_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>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html">Vamp</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A base class for plugins with optional configurable parameters, programs, etc.  <a href="classVamp_1_1PluginBase.html#_details">More...</a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">Vamp::PluginBase::ParameterDescriptor</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginBase_8h.html#9b7a8e1ac1c91366bec5f2f33c137a2f">VAMP_SDK_VERSION</a>&nbsp;&nbsp;&nbsp;&quot;1.2&quot;</td></tr>
-
-</table>
-<hr><h2>Define Documentation</h2>
-<a class="anchor" name="9b7a8e1ac1c91366bec5f2f33c137a2f"></a><!-- doxytag: member="PluginBase.h::VAMP_SDK_VERSION" ref="9b7a8e1ac1c91366bec5f2f33c137a2f" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define VAMP_SDK_VERSION&nbsp;&nbsp;&nbsp;&quot;1.2&quot;          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00043">43</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">main()</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&nbsp;
-<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>
--- a/code-doc/PluginBufferingAdapter_8cpp-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,581 +0,0 @@
-<!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: PluginBufferingAdapter.cpp Source File</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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
-  </div>
-</div>
-</div>
-<h1>PluginBufferingAdapter.cpp</h1><a href="PluginBufferingAdapter_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
-<a name="l00002"></a>00002 
-<a name="l00003"></a>00003 <span class="comment">/*</span>
-<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
-<a name="l00005"></a>00005 <span class="comment"></span>
-<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
-<a name="l00007"></a>00007 <span class="comment"></span>
-<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
-<a name="l00009"></a>00009 <span class="comment">    Copyright 2006-2007 Chris Cannam and QMUL.</span>
-<a name="l00010"></a>00010 <span class="comment">    This file by Mark Levy and Chris Cannam.</span>
-<a name="l00011"></a>00011 <span class="comment">  </span>
-<a name="l00012"></a>00012 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
-<a name="l00013"></a>00013 <span class="comment">    obtaining a copy of this software and associated documentation</span>
-<a name="l00014"></a>00014 <span class="comment">    files (the "Software"), to deal in the Software without</span>
-<a name="l00015"></a>00015 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
-<a name="l00016"></a>00016 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
-<a name="l00017"></a>00017 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
-<a name="l00018"></a>00018 <span class="comment">    furnished to do so, subject to the following conditions:</span>
-<a name="l00019"></a>00019 <span class="comment"></span>
-<a name="l00020"></a>00020 <span class="comment">    The above copyright notice and this permission notice shall be</span>
-<a name="l00021"></a>00021 <span class="comment">    included in all copies or substantial portions of the Software.</span>
-<a name="l00022"></a>00022 <span class="comment"></span>
-<a name="l00023"></a>00023 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
-<a name="l00024"></a>00024 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
-<a name="l00025"></a>00025 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
-<a name="l00026"></a>00026 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
-<a name="l00027"></a>00027 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
-<a name="l00028"></a>00028 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
-<a name="l00029"></a>00029 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
-<a name="l00030"></a>00030 <span class="comment"></span>
-<a name="l00031"></a>00031 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
-<a name="l00032"></a>00032 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
-<a name="l00033"></a>00033 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
-<a name="l00034"></a>00034 <span class="comment">    use or other dealings in this Software without prior written</span>
-<a name="l00035"></a>00035 <span class="comment">    authorization.</span>
-<a name="l00036"></a>00036 <span class="comment">*/</span>
-<a name="l00037"></a>00037 
-<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;vector&gt;</span>
-<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;map&gt;</span>
-<a name="l00040"></a>00040 
-<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="PluginBufferingAdapter_8h.html">PluginBufferingAdapter.h</a>"</span>
-<a name="l00042"></a>00042 
-<a name="l00043"></a>00043 <span class="keyword">using</span> std::vector;
-<a name="l00044"></a>00044 <span class="keyword">using</span> std::map;
-<a name="l00045"></a>00045 
-<a name="l00046"></a>00046 <span class="keyword">namespace </span>Vamp {
-<a name="l00047"></a>00047         
-<a name="l00048"></a><a class="code" href="namespaceVamp_1_1HostExt.html">00048</a> <span class="keyword">namespace </span>HostExt {
-<a name="l00049"></a>00049                 
-<a name="l00050"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">00050</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">PluginBufferingAdapter::Impl</a>
-<a name="l00051"></a>00051 {
-<a name="l00052"></a>00052 <span class="keyword">public</span>:
-<a name="l00053"></a>00053     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#97990c497a954220254172f2554e608e">Impl</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin, <span class="keywordtype">float</span> inputSampleRate);
-<a name="l00054"></a>00054     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#772d000b68dde932323ed39ab65e1a9a">~Impl</a>();
-<a name="l00055"></a>00055                 
-<a name="l00056"></a>00056     <span class="keywordtype">bool</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4b2bbe763ec728b5494145abcebca2e2">initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
-<a name="l00057"></a>00057 
-<a name="l00058"></a>00058     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4e8dcacfca3f1b82ac7d70c9d3ddddaf">getOutputDescriptors</a>() <span class="keyword">const</span>;
-<a name="l00059"></a>00059 
-<a name="l00060"></a>00060     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#102263ad3dc229a1292792d73da2f0a1">reset</a>();
-<a name="l00061"></a>00061 
-<a name="l00062"></a>00062     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#03718981c892400287483cc8501adfeb">process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp);
-<a name="l00063"></a>00063                 
-<a name="l00064"></a>00064     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#242913f6f438bef150e270cbeeacf711">getRemainingFeatures</a>();
-<a name="l00065"></a>00065                 
-<a name="l00066"></a>00066 <span class="keyword">protected</span>:
-<a name="l00067"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">00067</a>     <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">RingBuffer</a>
-<a name="l00068"></a>00068     {
-<a name="l00069"></a>00069     <span class="keyword">public</span>:
-<a name="l00070"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3ee5e4cfee66645629063b1db5cffa96">00070</a>         <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3ee5e4cfee66645629063b1db5cffa96">RingBuffer</a>(<span class="keywordtype">int</span> n) :
-<a name="l00071"></a>00071             <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#4cdf77619ee8e8650b1c71da3ba9b758">m_buffer</a>(new float[n+1]), <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3798697f4cf46c5e9a5433e1bf160b2c">m_writer</a>(0), <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#1775ce5ba3d60520c3634cb2ac8a1dc9">m_reader</a>(0), <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a>(n+1) { }
-<a name="l00072"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f1e12002a506cc1433793e7b93e73b80">00072</a>         <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f1e12002a506cc1433793e7b93e73b80">~RingBuffer</a>() { <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#4cdf77619ee8e8650b1c71da3ba9b758">m_buffer</a>; }
-<a name="l00073"></a>00073 
-<a name="l00074"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#205516271035fef2e94bb1af17b6c47d">00074</a>         <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#205516271035fef2e94bb1af17b6c47d">getSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a>-1; }
-<a name="l00075"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#c3eba9efa4b5bdb4bfa9907ad9203fe1">00075</a>         <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#c3eba9efa4b5bdb4bfa9907ad9203fe1">reset</a>() { <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3798697f4cf46c5e9a5433e1bf160b2c">m_writer</a> = 0; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#1775ce5ba3d60520c3634cb2ac8a1dc9">m_reader</a> = 0; }
-<a name="l00076"></a>00076 
-<a name="l00077"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#830be6afbe2b46f0c9cd6071cf287cf8">00077</a>         <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#830be6afbe2b46f0c9cd6071cf287cf8">getReadSpace</a>()<span class="keyword"> const </span>{
-<a name="l00078"></a>00078             <span class="keywordtype">int</span> writer = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3798697f4cf46c5e9a5433e1bf160b2c">m_writer</a>, reader = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#1775ce5ba3d60520c3634cb2ac8a1dc9">m_reader</a>, space;
-<a name="l00079"></a>00079             <span class="keywordflow">if</span> (writer &gt; reader) space = writer - reader;
-<a name="l00080"></a>00080             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (writer &lt; reader) space = (writer + <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a>) - reader;
-<a name="l00081"></a>00081             <span class="keywordflow">else</span> space = 0;
-<a name="l00082"></a>00082             <span class="keywordflow">return</span> space;
-<a name="l00083"></a>00083         }
-<a name="l00084"></a>00084 
-<a name="l00085"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f9edfe7748168802019429af240bcc74">00085</a>         <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f9edfe7748168802019429af240bcc74">getWriteSpace</a>()<span class="keyword"> const </span>{
-<a name="l00086"></a>00086             <span class="keywordtype">int</span> writer = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3798697f4cf46c5e9a5433e1bf160b2c">m_writer</a>;
-<a name="l00087"></a>00087             <span class="keywordtype">int</span> reader = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#1775ce5ba3d60520c3634cb2ac8a1dc9">m_reader</a>;
-<a name="l00088"></a>00088             <span class="keywordtype">int</span> space = (reader + <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a> - writer - 1);
-<a name="l00089"></a>00089             <span class="keywordflow">if</span> (space &gt;= <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a>) space -= <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a>;
-<a name="l00090"></a>00090             <span class="keywordflow">return</span> space;
-<a name="l00091"></a>00091         }
-<a name="l00092"></a>00092         
-<a name="l00093"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#c68e9b2b24e1ac17f017c80ade70b355">00093</a>         <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#c68e9b2b24e1ac17f017c80ade70b355">peek</a>(<span class="keywordtype">float</span> *destination, <span class="keywordtype">int</span> n)<span class="keyword"> const </span>{
-<a name="l00094"></a>00094 
-<a name="l00095"></a>00095             <span class="keywordtype">int</span> available = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#830be6afbe2b46f0c9cd6071cf287cf8">getReadSpace</a>();
-<a name="l00096"></a>00096 
-<a name="l00097"></a>00097             <span class="keywordflow">if</span> (n &gt; available) {
-<a name="l00098"></a>00098                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = available; i &lt; n; ++i) {
-<a name="l00099"></a>00099                     destination[i] = 0.f;
-<a name="l00100"></a>00100                 }
-<a name="l00101"></a>00101                 n = available;
-<a name="l00102"></a>00102             }
-<a name="l00103"></a>00103             <span class="keywordflow">if</span> (n == 0) <span class="keywordflow">return</span> n;
-<a name="l00104"></a>00104 
-<a name="l00105"></a>00105             <span class="keywordtype">int</span> reader = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#1775ce5ba3d60520c3634cb2ac8a1dc9">m_reader</a>;
-<a name="l00106"></a>00106             <span class="keywordtype">int</span> here = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a> - reader;
-<a name="l00107"></a>00107             <span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> bufbase = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#4cdf77619ee8e8650b1c71da3ba9b758">m_buffer</a> + reader;
-<a name="l00108"></a>00108 
-<a name="l00109"></a>00109             <span class="keywordflow">if</span> (here &gt;= n) {
-<a name="l00110"></a>00110                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; ++i) {
-<a name="l00111"></a>00111                     destination[i] = bufbase[i];
-<a name="l00112"></a>00112                 }
-<a name="l00113"></a>00113             } <span class="keywordflow">else</span> {
-<a name="l00114"></a>00114                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; here; ++i) {
-<a name="l00115"></a>00115                     destination[i] = bufbase[i];
-<a name="l00116"></a>00116                 }
-<a name="l00117"></a>00117                 <span class="keywordtype">float</span> *<span class="keyword">const</span> destbase = destination + here;
-<a name="l00118"></a>00118                 <span class="keyword">const</span> <span class="keywordtype">int</span> nh = n - here;
-<a name="l00119"></a>00119                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; nh; ++i) {
-<a name="l00120"></a>00120                     destbase[i] = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#4cdf77619ee8e8650b1c71da3ba9b758">m_buffer</a>[i];
-<a name="l00121"></a>00121                 }
-<a name="l00122"></a>00122             }
-<a name="l00123"></a>00123 
-<a name="l00124"></a>00124             <span class="keywordflow">return</span> n;
-<a name="l00125"></a>00125         }
-<a name="l00126"></a>00126 
-<a name="l00127"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#62e7a7a8fd76bf3f04add2a7b6932211">00127</a>         <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#62e7a7a8fd76bf3f04add2a7b6932211">skip</a>(<span class="keywordtype">int</span> n) {
-<a name="l00128"></a>00128             
-<a name="l00129"></a>00129             <span class="keywordtype">int</span> available = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#830be6afbe2b46f0c9cd6071cf287cf8">getReadSpace</a>();
-<a name="l00130"></a>00130             <span class="keywordflow">if</span> (n &gt; available) {
-<a name="l00131"></a>00131                 n = available;
-<a name="l00132"></a>00132             }
-<a name="l00133"></a>00133             <span class="keywordflow">if</span> (n == 0) <span class="keywordflow">return</span> n;
-<a name="l00134"></a>00134 
-<a name="l00135"></a>00135             <span class="keywordtype">int</span> reader = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#1775ce5ba3d60520c3634cb2ac8a1dc9">m_reader</a>;
-<a name="l00136"></a>00136             reader += n;
-<a name="l00137"></a>00137             <span class="keywordflow">while</span> (reader &gt;= <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a>) reader -= <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a>;
-<a name="l00138"></a>00138             <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#1775ce5ba3d60520c3634cb2ac8a1dc9">m_reader</a> = reader;
-<a name="l00139"></a>00139             <span class="keywordflow">return</span> n;
-<a name="l00140"></a>00140         }
-<a name="l00141"></a>00141         
-<a name="l00142"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#8e5b1d24ec4534563c48439980368135">00142</a>         <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#8e5b1d24ec4534563c48439980368135">write</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *source, <span class="keywordtype">int</span> n) {
-<a name="l00143"></a>00143 
-<a name="l00144"></a>00144             <span class="keywordtype">int</span> available = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f9edfe7748168802019429af240bcc74">getWriteSpace</a>();
-<a name="l00145"></a>00145             <span class="keywordflow">if</span> (n &gt; available) {
-<a name="l00146"></a>00146                 n = available;
-<a name="l00147"></a>00147             }
-<a name="l00148"></a>00148             <span class="keywordflow">if</span> (n == 0) <span class="keywordflow">return</span> n;
-<a name="l00149"></a>00149 
-<a name="l00150"></a>00150             <span class="keywordtype">int</span> writer = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3798697f4cf46c5e9a5433e1bf160b2c">m_writer</a>;
-<a name="l00151"></a>00151             <span class="keywordtype">int</span> here = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a> - writer;
-<a name="l00152"></a>00152             <span class="keywordtype">float</span> *<span class="keyword">const</span> bufbase = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#4cdf77619ee8e8650b1c71da3ba9b758">m_buffer</a> + writer;
-<a name="l00153"></a>00153             
-<a name="l00154"></a>00154             <span class="keywordflow">if</span> (here &gt;= n) {
-<a name="l00155"></a>00155                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; ++i) {
-<a name="l00156"></a>00156                     bufbase[i] = source[i];
-<a name="l00157"></a>00157                 }
-<a name="l00158"></a>00158             } <span class="keywordflow">else</span> {
-<a name="l00159"></a>00159                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; here; ++i) {
-<a name="l00160"></a>00160                     bufbase[i] = source[i];
-<a name="l00161"></a>00161                 }
-<a name="l00162"></a>00162                 <span class="keyword">const</span> <span class="keywordtype">int</span> nh = n - here;
-<a name="l00163"></a>00163                 <span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> srcbase = source + here;
-<a name="l00164"></a>00164                 <span class="keywordtype">float</span> *<span class="keyword">const</span> buf = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#4cdf77619ee8e8650b1c71da3ba9b758">m_buffer</a>;
-<a name="l00165"></a>00165                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; nh; ++i) {
-<a name="l00166"></a>00166                     buf[i] = srcbase[i];
-<a name="l00167"></a>00167                 }
-<a name="l00168"></a>00168             }
-<a name="l00169"></a>00169 
-<a name="l00170"></a>00170             writer += n;
-<a name="l00171"></a>00171             <span class="keywordflow">while</span> (writer &gt;= <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a>) writer -= <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a>;
-<a name="l00172"></a>00172             <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3798697f4cf46c5e9a5433e1bf160b2c">m_writer</a> = writer;
-<a name="l00173"></a>00173 
-<a name="l00174"></a>00174             <span class="keywordflow">return</span> n;
-<a name="l00175"></a>00175         }
-<a name="l00176"></a>00176 
-<a name="l00177"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f9d1d2df1f27bd2399b81c82ee9af6df">00177</a>         <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f9d1d2df1f27bd2399b81c82ee9af6df">zero</a>(<span class="keywordtype">int</span> n) {
-<a name="l00178"></a>00178             
-<a name="l00179"></a>00179             <span class="keywordtype">int</span> available = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f9edfe7748168802019429af240bcc74">getWriteSpace</a>();
-<a name="l00180"></a>00180             <span class="keywordflow">if</span> (n &gt; available) {
-<a name="l00181"></a>00181                 n = available;
-<a name="l00182"></a>00182             }
-<a name="l00183"></a>00183             <span class="keywordflow">if</span> (n == 0) <span class="keywordflow">return</span> n;
-<a name="l00184"></a>00184 
-<a name="l00185"></a>00185             <span class="keywordtype">int</span> writer = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3798697f4cf46c5e9a5433e1bf160b2c">m_writer</a>;
-<a name="l00186"></a>00186             <span class="keywordtype">int</span> here = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a> - writer;
-<a name="l00187"></a>00187             <span class="keywordtype">float</span> *<span class="keyword">const</span> bufbase = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#4cdf77619ee8e8650b1c71da3ba9b758">m_buffer</a> + writer;
-<a name="l00188"></a>00188 
-<a name="l00189"></a>00189             <span class="keywordflow">if</span> (here &gt;= n) {
-<a name="l00190"></a>00190                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; ++i) {
-<a name="l00191"></a>00191                     bufbase[i] = 0.f;
-<a name="l00192"></a>00192                 }
-<a name="l00193"></a>00193             } <span class="keywordflow">else</span> {
-<a name="l00194"></a>00194                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; here; ++i) {
-<a name="l00195"></a>00195                     bufbase[i] = 0.f;
-<a name="l00196"></a>00196                 }
-<a name="l00197"></a>00197                 <span class="keyword">const</span> <span class="keywordtype">int</span> nh = n - here;
-<a name="l00198"></a>00198                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; nh; ++i) {
-<a name="l00199"></a>00199                     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#4cdf77619ee8e8650b1c71da3ba9b758">m_buffer</a>[i] = 0.f;
-<a name="l00200"></a>00200                 }
-<a name="l00201"></a>00201             }
-<a name="l00202"></a>00202             
-<a name="l00203"></a>00203             writer += n;
-<a name="l00204"></a>00204             <span class="keywordflow">while</span> (writer &gt;= <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a>) writer -= <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a>;
-<a name="l00205"></a>00205             <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3798697f4cf46c5e9a5433e1bf160b2c">m_writer</a> = writer;
-<a name="l00206"></a>00206 
-<a name="l00207"></a>00207             <span class="keywordflow">return</span> n;
-<a name="l00208"></a>00208         }
-<a name="l00209"></a>00209 
-<a name="l00210"></a>00210     <span class="keyword">protected</span>:
-<a name="l00211"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#4cdf77619ee8e8650b1c71da3ba9b758">00211</a>         <span class="keywordtype">float</span> *<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#4cdf77619ee8e8650b1c71da3ba9b758">m_buffer</a>;
-<a name="l00212"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3798697f4cf46c5e9a5433e1bf160b2c">00212</a>         <span class="keywordtype">int</span>    <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3798697f4cf46c5e9a5433e1bf160b2c">m_writer</a>;
-<a name="l00213"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#1775ce5ba3d60520c3634cb2ac8a1dc9">00213</a>         <span class="keywordtype">int</span>    <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#1775ce5ba3d60520c3634cb2ac8a1dc9">m_reader</a>;
-<a name="l00214"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">00214</a>         <span class="keywordtype">int</span>    <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a>;
-<a name="l00215"></a>00215 
-<a name="l00216"></a>00216     <span class="keyword">private</span>:
-<a name="l00217"></a>00217         <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3ee5e4cfee66645629063b1db5cffa96">RingBuffer</a>(<span class="keyword">const</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">RingBuffer</a> &amp;); <span class="comment">// not provided</span>
-<a name="l00218"></a>00218         <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">RingBuffer</a> &amp;<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#7166d8a3f7312064f9b2bb1e874ca8ef">operator=</a>(<span class="keyword">const</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">RingBuffer</a> &amp;); <span class="comment">// not provided</span>
-<a name="l00219"></a>00219     };
-<a name="l00220"></a>00220 
-<a name="l00221"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#9c9acb7f9bf51b7406c15d2e60fd4ce2">00221</a>     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#9c9acb7f9bf51b7406c15d2e60fd4ce2">m_plugin</a>;
-<a name="l00222"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#6140f55c9120314194d3e73a54b25139">00222</a>     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#6140f55c9120314194d3e73a54b25139">m_inputStepSize</a>;
-<a name="l00223"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#2a8d125110b2ee19407d10b4e21a865f">00223</a>     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#2a8d125110b2ee19407d10b4e21a865f">m_inputBlockSize</a>;
-<a name="l00224"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">00224</a>     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a>;
-<a name="l00225"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">00225</a>     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a>;
-<a name="l00226"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#3b8801196c981a9953f6f1fbf5a8aabd">00226</a>     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#3b8801196c981a9953f6f1fbf5a8aabd">m_channels</a>;
-<a name="l00227"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">00227</a>     vector&lt;RingBuffer *&gt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">m_queue</a>;
-<a name="l00228"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d0b81884ecf1f01e8272667e59cce02e">00228</a>     <span class="keywordtype">float</span> **<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d0b81884ecf1f01e8272667e59cce02e">m_buffers</a>;
-<a name="l00229"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#cc747b4e448a316346f9f59e2c85dcfc">00229</a>     <span class="keywordtype">float</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#cc747b4e448a316346f9f59e2c85dcfc">m_inputSampleRate</a>;
-<a name="l00230"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#26fe691e7c9ddf55bb55b3d4eb80d8a7">00230</a>     <span class="keywordtype">long</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#26fe691e7c9ddf55bb55b3d4eb80d8a7">m_frame</a>;
-<a name="l00231"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#fa825144d91babf38fb27aa7c287dc1e">00231</a>     <span class="keywordtype">bool</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#fa825144d91babf38fb27aa7c287dc1e">m_unrun</a>;
-<a name="l00232"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#e65848a6788b5c984635d252fbc8365c">00232</a>     <span class="keyword">mutable</span> <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#e65848a6788b5c984635d252fbc8365c">m_outputs</a>;
-<a name="l00233"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#c3055f44b2a62c1a7aa915e180ed054b">00233</a>     <span class="keyword">mutable</span> std::map&lt;int, bool&gt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#c3055f44b2a62c1a7aa915e180ed054b">m_rewriteOutputTimes</a>;
-<a name="l00234"></a>00234                 
-<a name="l00235"></a>00235     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#65f718273e06cb3d2e0ef09ca173aa54">processBlock</a>(<a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&amp; allFeatureSets);
-<a name="l00236"></a>00236 };
-<a name="l00237"></a>00237                 
-<a name="l00238"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#1276bcfcbe1414b33eeefbd7b2b702fe">00238</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#1276bcfcbe1414b33eeefbd7b2b702fe">PluginBufferingAdapter::PluginBufferingAdapter</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin) :
-<a name="l00239"></a>00239     <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a>(plugin)
-<a name="l00240"></a>00240 {
-<a name="l00241"></a>00241     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">m_impl</a> = <span class="keyword">new</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Impl</a>(plugin, <a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>);
-<a name="l00242"></a>00242 }
-<a name="l00243"></a>00243                 
-<a name="l00244"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#539423b54a4ede511476125f4a97d977">00244</a> PluginBufferingAdapter::~PluginBufferingAdapter()
-<a name="l00245"></a>00245 {
-<a name="l00246"></a>00246     <span class="keyword">delete</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">m_impl</a>;
-<a name="l00247"></a>00247 }
-<a name="l00248"></a>00248                 
-<a name="l00249"></a>00249 <span class="keywordtype">bool</span>
-<a name="l00250"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8">00250</a> PluginBufferingAdapter::initialise(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize)
-<a name="l00251"></a>00251 {
-<a name="l00252"></a>00252     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4b2bbe763ec728b5494145abcebca2e2">initialise</a>(channels, stepSize, blockSize);
-<a name="l00253"></a>00253 }
-<a name="l00254"></a>00254 
-<a name="l00255"></a>00255 <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">PluginBufferingAdapter::OutputList</a>
-<a name="l00256"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#85a027f5859efb31d315205e234e94c0">00256</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#85a027f5859efb31d315205e234e94c0" title="Get the outputs of this plugin.">PluginBufferingAdapter::getOutputDescriptors</a>()<span class="keyword"> const</span>
-<a name="l00257"></a>00257 <span class="keyword"></span>{
-<a name="l00258"></a>00258     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4e8dcacfca3f1b82ac7d70c9d3ddddaf">getOutputDescriptors</a>();
-<a name="l00259"></a>00259 }
-<a name="l00260"></a>00260 
-<a name="l00261"></a>00261 <span class="keywordtype">void</span>
-<a name="l00262"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a">00262</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a" title="Reset the plugin after use, to prepare it for another clean run.">PluginBufferingAdapter::reset</a>()
-<a name="l00263"></a>00263 {
-<a name="l00264"></a>00264     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#102263ad3dc229a1292792d73da2f0a1">reset</a>();
-<a name="l00265"></a>00265 }
-<a name="l00266"></a>00266                 
-<a name="l00267"></a>00267 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginBufferingAdapter::FeatureSet</a>
-<a name="l00268"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#262206b978d9de28ee4bb35f437e915e">00268</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#262206b978d9de28ee4bb35f437e915e" title="Process a single block of input data.">PluginBufferingAdapter::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
-<a name="l00269"></a>00269                                 <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp)
-<a name="l00270"></a>00270 {
-<a name="l00271"></a>00271     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#03718981c892400287483cc8501adfeb">process</a>(inputBuffers, timestamp);
-<a name="l00272"></a>00272 }
-<a name="l00273"></a>00273                 
-<a name="l00274"></a>00274 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginBufferingAdapter::FeatureSet</a>
-<a name="l00275"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#8771cba75552aaa1340b68de9bf1659c">00275</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#8771cba75552aaa1340b68de9bf1659c" title="After all blocks have been processed, calculate and return any remaining features...">PluginBufferingAdapter::getRemainingFeatures</a>()
-<a name="l00276"></a>00276 {
-<a name="l00277"></a>00277     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#242913f6f438bef150e270cbeeacf711">getRemainingFeatures</a>();
-<a name="l00278"></a>00278 }
-<a name="l00279"></a>00279                 
-<a name="l00280"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#97990c497a954220254172f2554e608e">00280</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#97990c497a954220254172f2554e608e">PluginBufferingAdapter::Impl::Impl</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin, <span class="keywordtype">float</span> inputSampleRate) :
-<a name="l00281"></a>00281     <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>(plugin),
-<a name="l00282"></a>00282     m_inputStepSize(0),
-<a name="l00283"></a>00283     m_inputBlockSize(0),
-<a name="l00284"></a>00284     m_stepSize(0),
-<a name="l00285"></a>00285     m_blockSize(0),
-<a name="l00286"></a>00286     m_channels(0), 
-<a name="l00287"></a>00287     m_queue(0),
-<a name="l00288"></a>00288     m_buffers(0),
-<a name="l00289"></a>00289     <a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>(inputSampleRate),
-<a name="l00290"></a>00290     m_frame(0),
-<a name="l00291"></a>00291     m_unrun(true)
-<a name="l00292"></a>00292 {
-<a name="l00293"></a>00293     (void)<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4e8dcacfca3f1b82ac7d70c9d3ddddaf">getOutputDescriptors</a>(); <span class="comment">// set up m_outputs and m_rewriteOutputTimes</span>
-<a name="l00294"></a>00294 }
-<a name="l00295"></a>00295                 
-<a name="l00296"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#772d000b68dde932323ed39ab65e1a9a">00296</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#772d000b68dde932323ed39ab65e1a9a">PluginBufferingAdapter::Impl::~Impl</a>()
-<a name="l00297"></a>00297 {
-<a name="l00298"></a>00298     <span class="comment">// the adapter will delete the plugin</span>
-<a name="l00299"></a>00299 
-<a name="l00300"></a>00300     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#3b8801196c981a9953f6f1fbf5a8aabd">m_channels</a>; ++i) {
-<a name="l00301"></a>00301         <span class="keyword">delete</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">m_queue</a>[i];
-<a name="l00302"></a>00302         <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d0b81884ecf1f01e8272667e59cce02e">m_buffers</a>[i];
-<a name="l00303"></a>00303     }
-<a name="l00304"></a>00304     <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d0b81884ecf1f01e8272667e59cce02e">m_buffers</a>;
-<a name="l00305"></a>00305 }
-<a name="l00306"></a>00306 
-<a name="l00307"></a>00307 <span class="keywordtype">size_t</span>
-<a name="l00308"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">00308</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60" title="Get the preferred step size (window increment -- the distance in sample frames between...">PluginBufferingAdapter::getPreferredStepSize</a>()<span class="keyword"> const</span>
-<a name="l00309"></a>00309 <span class="keyword"></span>{
-<a name="l00310"></a>00310     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01" title="Get the preferred block size (window size -- the number of sample frames passed in...">getPreferredBlockSize</a>();
-<a name="l00311"></a>00311 }
-<a name="l00312"></a>00312                 
-<a name="l00313"></a>00313 <span class="keywordtype">bool</span>
-<a name="l00314"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4b2bbe763ec728b5494145abcebca2e2">00314</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4b2bbe763ec728b5494145abcebca2e2">PluginBufferingAdapter::Impl::initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize)
-<a name="l00315"></a>00315 {
-<a name="l00316"></a>00316     <span class="keywordflow">if</span> (stepSize != blockSize) {
-<a name="l00317"></a>00317         std::cerr &lt;&lt; <span class="stringliteral">"PluginBufferingAdapter::initialise: input stepSize must be equal to blockSize for this adapter (stepSize = "</span> &lt;&lt; stepSize &lt;&lt; <span class="stringliteral">", blockSize = "</span> &lt;&lt; blockSize &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00318"></a>00318         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00319"></a>00319     }
-<a name="l00320"></a>00320 
-<a name="l00321"></a>00321     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#3b8801196c981a9953f6f1fbf5a8aabd">m_channels</a> = channels;      
-<a name="l00322"></a>00322     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#6140f55c9120314194d3e73a54b25139">m_inputStepSize</a> = stepSize;
-<a name="l00323"></a>00323     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#2a8d125110b2ee19407d10b4e21a865f">m_inputBlockSize</a> = blockSize;
-<a name="l00324"></a>00324     
-<a name="l00325"></a>00325     <span class="comment">// use the step and block sizes which the plugin prefers</span>
-<a name="l00326"></a>00326     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a> = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#9c9acb7f9bf51b7406c15d2e60fd4ce2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567" title="Get the preferred step size (window increment -- the distance in sample frames between...">getPreferredStepSize</a>();
-<a name="l00327"></a>00327     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a> = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#9c9acb7f9bf51b7406c15d2e60fd4ce2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac" title="Get the preferred block size (window size -- the number of sample frames passed in...">getPreferredBlockSize</a>();
-<a name="l00328"></a>00328     
-<a name="l00329"></a>00329     <span class="comment">// or sensible defaults if it has no preference</span>
-<a name="l00330"></a>00330     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a> == 0) {
-<a name="l00331"></a>00331         <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a> = 1024;
-<a name="l00332"></a>00332     }
-<a name="l00333"></a>00333     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a> == 0) {
-<a name="l00334"></a>00334         <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#9c9acb7f9bf51b7406c15d2e60fd4ce2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() == <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">Vamp::Plugin::FrequencyDomain</a>) {
-<a name="l00335"></a>00335             <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a> = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a>/2;
-<a name="l00336"></a>00336         } <span class="keywordflow">else</span> {
-<a name="l00337"></a>00337             <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a> = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a>;
-<a name="l00338"></a>00338         }
-<a name="l00339"></a>00339     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a> &gt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a>) {
-<a name="l00340"></a>00340         <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#9c9acb7f9bf51b7406c15d2e60fd4ce2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() == <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">Vamp::Plugin::FrequencyDomain</a>) {
-<a name="l00341"></a>00341             <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a> = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a> * 2;
-<a name="l00342"></a>00342         } <span class="keywordflow">else</span> {
-<a name="l00343"></a>00343             <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a> = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a>;
-<a name="l00344"></a>00344         }
-<a name="l00345"></a>00345     }
-<a name="l00346"></a>00346     
-<a name="l00347"></a>00347     std::cerr &lt;&lt; <span class="stringliteral">"PluginBufferingAdapter::initialise: stepSize "</span> &lt;&lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#6140f55c9120314194d3e73a54b25139">m_inputStepSize</a> &lt;&lt; <span class="stringliteral">" -&gt; "</span> &lt;&lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a> 
-<a name="l00348"></a>00348               &lt;&lt; <span class="stringliteral">", blockSize "</span> &lt;&lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#2a8d125110b2ee19407d10b4e21a865f">m_inputBlockSize</a> &lt;&lt; <span class="stringliteral">" -&gt; "</span> &lt;&lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a> &lt;&lt; std::endl;                      
-<a name="l00349"></a>00349     
-<a name="l00350"></a>00350     <span class="comment">// current implementation breaks if step is greater than block</span>
-<a name="l00351"></a>00351     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a> &gt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a>) {
-<a name="l00352"></a>00352         std::cerr &lt;&lt; <span class="stringliteral">"PluginBufferingAdapter::initialise: plugin's preferred stepSize greater than blockSize, giving up!"</span> &lt;&lt; std::endl;
-<a name="l00353"></a>00353         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00354"></a>00354     }
-<a name="l00355"></a>00355 
-<a name="l00356"></a>00356     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d0b81884ecf1f01e8272667e59cce02e">m_buffers</a> = <span class="keyword">new</span> <span class="keywordtype">float</span> *[<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#3b8801196c981a9953f6f1fbf5a8aabd">m_channels</a>];
-<a name="l00357"></a>00357 
-<a name="l00358"></a>00358     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#3b8801196c981a9953f6f1fbf5a8aabd">m_channels</a>; ++i) {
-<a name="l00359"></a>00359         <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">m_queue</a>.push_back(<span class="keyword">new</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">RingBuffer</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a> + <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#2a8d125110b2ee19407d10b4e21a865f">m_inputBlockSize</a>));
-<a name="l00360"></a>00360         <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d0b81884ecf1f01e8272667e59cce02e">m_buffers</a>[i] = <span class="keyword">new</span> <span class="keywordtype">float</span>[<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a>];
-<a name="l00361"></a>00361     }
-<a name="l00362"></a>00362     
-<a name="l00363"></a>00363     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#9c9acb7f9bf51b7406c15d2e60fd4ce2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise</a>(m_channels, <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a>, <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a>);
-<a name="l00364"></a>00364 }
-<a name="l00365"></a>00365                 
-<a name="l00366"></a>00366 <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">PluginBufferingAdapter::OutputList</a>
-<a name="l00367"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4e8dcacfca3f1b82ac7d70c9d3ddddaf">00367</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4e8dcacfca3f1b82ac7d70c9d3ddddaf">PluginBufferingAdapter::Impl::getOutputDescriptors</a>()<span class="keyword"> const</span>
-<a name="l00368"></a>00368 <span class="keyword"></span>{
-<a name="l00369"></a>00369     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#e65848a6788b5c984635d252fbc8365c">m_outputs</a>.empty()) {
-<a name="l00370"></a>00370         <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#e65848a6788b5c984635d252fbc8365c">m_outputs</a> = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#9c9acb7f9bf51b7406c15d2e60fd4ce2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35" title="Get the outputs of this plugin.">getOutputDescriptors</a>();
-<a name="l00371"></a>00371     }
-<a name="l00372"></a>00372 
-<a name="l00373"></a>00373     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">PluginBufferingAdapter::OutputList</a> outs = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#e65848a6788b5c984635d252fbc8365c">m_outputs</a>;
-<a name="l00374"></a>00374 
-<a name="l00375"></a>00375     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; outs.size(); ++i) {
-<a name="l00376"></a>00376 
-<a name="l00377"></a>00377         <span class="keywordflow">switch</span> (outs[i].sampleType) {
-<a name="l00378"></a>00378 
-<a name="l00379"></a>00379         <span class="keywordflow">case</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca" title="Results from each process() align with that call&amp;#39;s block start.">OutputDescriptor::OneSamplePerStep</a>:
-<a name="l00380"></a>00380             outs[i].sampleType = <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c4c74bd2fc96dfe2815623f94b40e5629" title="Results are evenly spaced in time (sampleRate specified below).">OutputDescriptor::FixedSampleRate</a>;
-<a name="l00381"></a>00381             outs[i].sampleRate = (1.f / <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#cc747b4e448a316346f9f59e2c85dcfc">m_inputSampleRate</a>) * <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a>;
-<a name="l00382"></a>00382             <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#c3055f44b2a62c1a7aa915e180ed054b">m_rewriteOutputTimes</a>[i] = <span class="keyword">true</span>;
-<a name="l00383"></a>00383             <span class="keywordflow">break</span>;
-<a name="l00384"></a>00384             
-<a name="l00385"></a>00385         <span class="keywordflow">case</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c4c74bd2fc96dfe2815623f94b40e5629" title="Results are evenly spaced in time (sampleRate specified below).">OutputDescriptor::FixedSampleRate</a>:
-<a name="l00386"></a>00386             <span class="keywordflow">if</span> (outs[i].sampleRate == 0.f) {
-<a name="l00387"></a>00387                 outs[i].sampleRate = (1.f / <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#cc747b4e448a316346f9f59e2c85dcfc">m_inputSampleRate</a>) * <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a>;
-<a name="l00388"></a>00388             }
-<a name="l00389"></a>00389             <span class="comment">// We actually only need to rewrite output times for</span>
-<a name="l00390"></a>00390             <span class="comment">// features that don't have timestamps already, but we</span>
-<a name="l00391"></a>00391             <span class="comment">// can't tell from here whether our features will have</span>
-<a name="l00392"></a>00392             <span class="comment">// timestamps or not</span>
-<a name="l00393"></a>00393             <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#c3055f44b2a62c1a7aa915e180ed054b">m_rewriteOutputTimes</a>[i] = <span class="keyword">true</span>;
-<a name="l00394"></a>00394             <span class="keywordflow">break</span>;
-<a name="l00395"></a>00395 
-<a name="l00396"></a>00396         <span class="keywordflow">case</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e" title="Results are unevenly spaced and have individual timestamps.">OutputDescriptor::VariableSampleRate</a>:
-<a name="l00397"></a>00397             <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#c3055f44b2a62c1a7aa915e180ed054b">m_rewriteOutputTimes</a>[i] = <span class="keyword">false</span>;
-<a name="l00398"></a>00398             <span class="keywordflow">break</span>;
-<a name="l00399"></a>00399         }
-<a name="l00400"></a>00400     }
-<a name="l00401"></a>00401 
-<a name="l00402"></a>00402     <span class="keywordflow">return</span> outs;
-<a name="l00403"></a>00403 }
-<a name="l00404"></a>00404 
-<a name="l00405"></a>00405 <span class="keywordtype">void</span>
-<a name="l00406"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#102263ad3dc229a1292792d73da2f0a1">00406</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#102263ad3dc229a1292792d73da2f0a1">PluginBufferingAdapter::Impl::reset</a>()
-<a name="l00407"></a>00407 {
-<a name="l00408"></a>00408     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#26fe691e7c9ddf55bb55b3d4eb80d8a7">m_frame</a> = 0;
-<a name="l00409"></a>00409     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#fa825144d91babf38fb27aa7c287dc1e">m_unrun</a> = <span class="keyword">true</span>;
-<a name="l00410"></a>00410 
-<a name="l00411"></a>00411     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">m_queue</a>.size(); ++i) {
-<a name="l00412"></a>00412         <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">m_queue</a>[i]-&gt;reset();
-<a name="l00413"></a>00413     }
-<a name="l00414"></a>00414 }
-<a name="l00415"></a>00415 
-<a name="l00416"></a>00416 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginBufferingAdapter::FeatureSet</a>
-<a name="l00417"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#03718981c892400287483cc8501adfeb">00417</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#03718981c892400287483cc8501adfeb">PluginBufferingAdapter::Impl::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
-<a name="l00418"></a>00418                                       <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp)
-<a name="l00419"></a>00419 {
-<a name="l00420"></a>00420     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> allFeatureSets;
-<a name="l00421"></a>00421 
-<a name="l00422"></a>00422     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#fa825144d91babf38fb27aa7c287dc1e">m_unrun</a>) {
-<a name="l00423"></a>00423         <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#26fe691e7c9ddf55bb55b3d4eb80d8a7">m_frame</a> = <a class="code" href="structVamp_1_1RealTime.html#1c32b50b1511cdca17cd6c1c3c05d9b5" title="Convert a RealTime into a sample frame at the given sample rate.">RealTime::realTime2Frame</a>(timestamp,
-<a name="l00424"></a>00424                                            <span class="keywordtype">int</span>(<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#cc747b4e448a316346f9f59e2c85dcfc">m_inputSampleRate</a> + 0.5));
-<a name="l00425"></a>00425         <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#fa825144d91babf38fb27aa7c287dc1e">m_unrun</a> = <span class="keyword">false</span>;
-<a name="l00426"></a>00426     }
-<a name="l00427"></a>00427                         
-<a name="l00428"></a>00428     <span class="comment">// queue the new input</span>
-<a name="l00429"></a>00429     
-<a name="l00430"></a>00430     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#3b8801196c981a9953f6f1fbf5a8aabd">m_channels</a>; ++i) {
-<a name="l00431"></a>00431         <span class="keywordtype">int</span> written = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">m_queue</a>[i]-&gt;write(inputBuffers[i], <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#2a8d125110b2ee19407d10b4e21a865f">m_inputBlockSize</a>);
-<a name="l00432"></a>00432         <span class="keywordflow">if</span> (written &lt; <span class="keywordtype">int</span>(<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#2a8d125110b2ee19407d10b4e21a865f">m_inputBlockSize</a>) &amp;&amp; i == 0) {
-<a name="l00433"></a>00433             std::cerr &lt;&lt; <span class="stringliteral">"WARNING: PluginBufferingAdapter::Impl::process: "</span>
-<a name="l00434"></a>00434                       &lt;&lt; <span class="stringliteral">"Buffer overflow: wrote "</span> &lt;&lt; written 
-<a name="l00435"></a>00435                       &lt;&lt; <span class="stringliteral">" of "</span> &lt;&lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#2a8d125110b2ee19407d10b4e21a865f">m_inputBlockSize</a> 
-<a name="l00436"></a>00436                       &lt;&lt; <span class="stringliteral">" input samples (for plugin step size "</span>
-<a name="l00437"></a>00437                       &lt;&lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a> &lt;&lt; <span class="stringliteral">", block size "</span> &lt;&lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a> &lt;&lt; <span class="stringliteral">")"</span>
-<a name="l00438"></a>00438                       &lt;&lt; std::endl;
-<a name="l00439"></a>00439         }
-<a name="l00440"></a>00440     }    
-<a name="l00441"></a>00441     
-<a name="l00442"></a>00442     <span class="comment">// process as much as we can</span>
-<a name="l00443"></a>00443 
-<a name="l00444"></a>00444     <span class="keywordflow">while</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">m_queue</a>[0]-&gt;getReadSpace() &gt;= <span class="keywordtype">int</span>(<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a>)) {
-<a name="l00445"></a>00445         <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#65f718273e06cb3d2e0ef09ca173aa54">processBlock</a>(allFeatureSets);
-<a name="l00446"></a>00446     }   
-<a name="l00447"></a>00447     
-<a name="l00448"></a>00448     <span class="keywordflow">return</span> allFeatureSets;
-<a name="l00449"></a>00449 }
-<a name="l00450"></a>00450     
-<a name="l00451"></a>00451 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginBufferingAdapter::FeatureSet</a>
-<a name="l00452"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#242913f6f438bef150e270cbeeacf711">00452</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#242913f6f438bef150e270cbeeacf711">PluginBufferingAdapter::Impl::getRemainingFeatures</a>() 
-<a name="l00453"></a>00453 {
-<a name="l00454"></a>00454     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> allFeatureSets;
-<a name="l00455"></a>00455     
-<a name="l00456"></a>00456     <span class="comment">// process remaining samples in queue</span>
-<a name="l00457"></a>00457     <span class="keywordflow">while</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">m_queue</a>[0]-&gt;getReadSpace() &gt;= <span class="keywordtype">int</span>(<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a>)) {
-<a name="l00458"></a>00458         <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#65f718273e06cb3d2e0ef09ca173aa54">processBlock</a>(allFeatureSets);
-<a name="l00459"></a>00459     }
-<a name="l00460"></a>00460     
-<a name="l00461"></a>00461     <span class="comment">// pad any last samples remaining and process</span>
-<a name="l00462"></a>00462     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">m_queue</a>[0]-&gt;getReadSpace() &gt; 0) {
-<a name="l00463"></a>00463         <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#3b8801196c981a9953f6f1fbf5a8aabd">m_channels</a>; ++i) {
-<a name="l00464"></a>00464             <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">m_queue</a>[i]-&gt;zero(<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a> - <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">m_queue</a>[i]-&gt;getReadSpace());
-<a name="l00465"></a>00465         }
-<a name="l00466"></a>00466         <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#65f718273e06cb3d2e0ef09ca173aa54">processBlock</a>(allFeatureSets);
-<a name="l00467"></a>00467     }                   
-<a name="l00468"></a>00468     
-<a name="l00469"></a>00469     <span class="comment">// get remaining features                   </span>
-<a name="l00470"></a>00470 
-<a name="l00471"></a>00471     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> featureSet = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#9c9acb7f9bf51b7406c15d2e60fd4ce2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures</a>();
-<a name="l00472"></a>00472 
-<a name="l00473"></a>00473     <span class="keywordflow">for</span> (map&lt;int, FeatureList&gt;::iterator iter = featureSet.begin();
-<a name="l00474"></a>00474          iter != featureSet.end(); ++iter) {
-<a name="l00475"></a>00475         <a class="code" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> featureList = iter-&gt;second;
-<a name="l00476"></a>00476         <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; featureList.size(); ++i) {
-<a name="l00477"></a>00477             allFeatureSets[iter-&gt;first].push_back(featureList[i]);
-<a name="l00478"></a>00478         }
-<a name="l00479"></a>00479     }
-<a name="l00480"></a>00480     
-<a name="l00481"></a>00481     <span class="keywordflow">return</span> allFeatureSets;
-<a name="l00482"></a>00482 }
-<a name="l00483"></a>00483     
-<a name="l00484"></a>00484 <span class="keywordtype">void</span>
-<a name="l00485"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#65f718273e06cb3d2e0ef09ca173aa54">00485</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#65f718273e06cb3d2e0ef09ca173aa54">PluginBufferingAdapter::Impl::processBlock</a>(<a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&amp; allFeatureSets)
-<a name="l00486"></a>00486 {
-<a name="l00487"></a>00487     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#3b8801196c981a9953f6f1fbf5a8aabd">m_channels</a>; ++i) {
-<a name="l00488"></a>00488         <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">m_queue</a>[i]-&gt;peek(<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d0b81884ecf1f01e8272667e59cce02e">m_buffers</a>[i], <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a>);
-<a name="l00489"></a>00489     }
-<a name="l00490"></a>00490 
-<a name="l00491"></a>00491     <span class="keywordtype">long</span> frame = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#26fe691e7c9ddf55bb55b3d4eb80d8a7">m_frame</a>;
-<a name="l00492"></a>00492     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp = <a class="code" href="structVamp_1_1RealTime.html#3a5ecc8888b559aad3b7d96911786b3a" title="Convert a sample frame at the given sample rate into a RealTime.">RealTime::frame2RealTime</a>
-<a name="l00493"></a>00493         (frame, <span class="keywordtype">int</span>(<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#cc747b4e448a316346f9f59e2c85dcfc">m_inputSampleRate</a> + 0.5));
-<a name="l00494"></a>00494 
-<a name="l00495"></a>00495     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> featureSet = <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#9c9acb7f9bf51b7406c15d2e60fd4ce2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d0b81884ecf1f01e8272667e59cce02e">m_buffers</a>, timestamp);
-<a name="l00496"></a>00496     
-<a name="l00497"></a>00497     <span class="keywordflow">for</span> (FeatureSet::iterator iter = featureSet.begin();
-<a name="l00498"></a>00498          iter != featureSet.end(); ++iter) {
-<a name="l00499"></a>00499 
-<a name="l00500"></a>00500         <span class="keywordtype">int</span> outputNo = iter-&gt;first;
-<a name="l00501"></a>00501 
-<a name="l00502"></a>00502         <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#c3055f44b2a62c1a7aa915e180ed054b">m_rewriteOutputTimes</a>[outputNo]) {
-<a name="l00503"></a>00503             
-<a name="l00504"></a>00504             <a class="code" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> featureList = iter-&gt;second;
-<a name="l00505"></a>00505         
-<a name="l00506"></a>00506             <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; featureList.size(); ++i) {
-<a name="l00507"></a>00507 
-<a name="l00508"></a>00508                 <span class="keywordflow">switch</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#e65848a6788b5c984635d252fbc8365c">m_outputs</a>[outputNo].sampleType) {
-<a name="l00509"></a>00509 
-<a name="l00510"></a>00510                 <span class="keywordflow">case</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca" title="Results from each process() align with that call&amp;#39;s block start.">OutputDescriptor::OneSamplePerStep</a>:
-<a name="l00511"></a>00511                     <span class="comment">// use our internal timestamp, always</span>
-<a name="l00512"></a>00512                     featureList[i].timestamp = timestamp;
-<a name="l00513"></a>00513                     featureList[i].hasTimestamp = <span class="keyword">true</span>;
-<a name="l00514"></a>00514                     <span class="keywordflow">break</span>;
-<a name="l00515"></a>00515 
-<a name="l00516"></a>00516                 <span class="keywordflow">case</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c4c74bd2fc96dfe2815623f94b40e5629" title="Results are evenly spaced in time (sampleRate specified below).">OutputDescriptor::FixedSampleRate</a>:
-<a name="l00517"></a>00517                     <span class="comment">// use our internal timestamp if feature lacks one</span>
-<a name="l00518"></a>00518                     <span class="keywordflow">if</span> (!featureList[i].hasTimestamp) {
-<a name="l00519"></a>00519                         featureList[i].timestamp = timestamp;
-<a name="l00520"></a>00520                         featureList[i].hasTimestamp = <span class="keyword">true</span>;
-<a name="l00521"></a>00521                     }
-<a name="l00522"></a>00522                     <span class="keywordflow">break</span>;
-<a name="l00523"></a>00523 
-<a name="l00524"></a>00524                 <span class="keywordflow">case</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e" title="Results are unevenly spaced and have individual timestamps.">OutputDescriptor::VariableSampleRate</a>:
-<a name="l00525"></a>00525                     <span class="keywordflow">break</span>;              <span class="comment">// plugin must set timestamp</span>
-<a name="l00526"></a>00526 
-<a name="l00527"></a>00527                 <span class="keywordflow">default</span>:
-<a name="l00528"></a>00528                     <span class="keywordflow">break</span>;
-<a name="l00529"></a>00529                 }
-<a name="l00530"></a>00530             
-<a name="l00531"></a>00531                 allFeatureSets[outputNo].push_back(featureList[i]);
-<a name="l00532"></a>00532             }
-<a name="l00533"></a>00533         } <span class="keywordflow">else</span> {
-<a name="l00534"></a>00534             <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; iter-&gt;second.size(); ++i) {
-<a name="l00535"></a>00535                 allFeatureSets[outputNo].push_back(iter-&gt;second[i]);
-<a name="l00536"></a>00536             }
-<a name="l00537"></a>00537         }
-<a name="l00538"></a>00538     }
-<a name="l00539"></a>00539     
-<a name="l00540"></a>00540     <span class="comment">// step forward</span>
-<a name="l00541"></a>00541 
-<a name="l00542"></a>00542     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; m_channels; ++i) {
-<a name="l00543"></a>00543         <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">m_queue</a>[i]-&gt;skip(<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a>);
-<a name="l00544"></a>00544     }
-<a name="l00545"></a>00545     
-<a name="l00546"></a>00546     <span class="comment">// increment internal frame counter each time we step forward</span>
-<a name="l00547"></a>00547     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#26fe691e7c9ddf55bb55b3d4eb80d8a7">m_frame</a> += <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a>;
-<a name="l00548"></a>00548 }
-<a name="l00549"></a>00549 
-<a name="l00550"></a>00550 }
-<a name="l00551"></a>00551         
-<a name="l00552"></a>00552 }
-<a name="l00553"></a>00553 
-<a name="l00554"></a>00554 
-</pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/PluginBufferingAdapter_8cpp.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<!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: PluginBufferingAdapter.cpp 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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
-  </div>
-</div>
-<div class="contents">
-<h1>PluginBufferingAdapter.cpp File Reference</h1>
-<p>
-
-<p>
-<a href="PluginBufferingAdapter_8cpp-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>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html">Vamp</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp_1_1HostExt.html">Vamp::HostExt</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td></tr>
-
-</table>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/PluginBufferingAdapter_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PluginBufferingAdapter_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -15,10 +15,10 @@
       <li><a href="dirs.html"><span>Directories</span></a></li>
     </ul>
   </div>
-  <div class="navpath"><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  <div class="navpath"><a class="el" href="dir_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>PluginBufferingAdapter.h</h1><a href="PluginBufferingAdapter_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -28,7 +28,7 @@
 <a name="l00007"></a>00007 <span class="comment"></span>
 <a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
 <a name="l00009"></a>00009 <span class="comment">    Copyright 2006-2007 Chris Cannam and QMUL.</span>
-<a name="l00010"></a>00010 <span class="comment">    This file by Mark Levy, Copyright 2007 QMUL.</span>
+<a name="l00010"></a>00010 <span class="comment">    This file by Mark Levy and Chris Cannam, Copyright 2007-2008 QMUL.</span>
 <a name="l00011"></a>00011 <span class="comment">  </span>
 <a name="l00012"></a>00012 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
 <a name="l00013"></a>00013 <span class="comment">    obtaining a copy of this software and associated documentation</span>
@@ -59,43 +59,63 @@
 <a name="l00038"></a>00038 <span class="preprocessor">#ifndef _VAMP_PLUGIN_BUFFERING_ADAPTER_H_</span>
 <a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_PLUGIN_BUFFERING_ADAPTER_H_</span>
 <a name="l00040"></a>00040 <span class="preprocessor"></span>
-<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="PluginWrapper_8h.html">PluginWrapper.h</a>"</span>
-<a name="l00042"></a>00042 
-<a name="l00043"></a>00043 <span class="keyword">namespace </span>Vamp {
-<a name="l00044"></a>00044         
-<a name="l00045"></a>00045 <span class="keyword">namespace </span>HostExt {
-<a name="l00046"></a>00046                 
-<a name="l00072"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">00072</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a>
-<a name="l00073"></a>00073 {
-<a name="l00074"></a>00074 <span class="keyword">public</span>:
-<a name="l00075"></a>00075     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#1276bcfcbe1414b33eeefbd7b2b702fe">PluginBufferingAdapter</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin); <span class="comment">// I take ownership of plugin</span>
-<a name="l00076"></a>00076     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#539423b54a4ede511476125f4a97d977">~PluginBufferingAdapter</a>();
-<a name="l00077"></a>00077     
-<a name="l00078"></a>00078     <span class="keywordtype">bool</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
-<a name="l00079"></a>00079 
-<a name="l00080"></a>00080     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60" title="Get the preferred step size (window increment -- the distance in sample frames between...">getPreferredStepSize</a>() <span class="keyword">const</span>;
-<a name="l00081"></a>00081     
-<a name="l00082"></a>00082     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#85a027f5859efb31d315205e234e94c0" title="Get the outputs of this plugin.">getOutputDescriptors</a>() <span class="keyword">const</span>;
-<a name="l00083"></a>00083 
-<a name="l00084"></a>00084     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a" title="Reset the plugin after use, to prepare it for another clean run.">reset</a>();
+<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="hostguard_8h.html">hostguard.h</a>"</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="PluginWrapper_8h.html">PluginWrapper.h</a>"</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <a class="code" href="hostguard_8h.html#ef42eae5f1b0b897d8dac58cd54afbcd">_VAMP_SDK_HOSTSPACE_BEGIN</a>(PluginBufferingAdapter.h)
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 namespace Vamp {
+<a name="l00047"></a>00047         
+<a name="l00048"></a><a class="code" href="namespaceVamp_1_1HostExt.html">00048</a> <span class="keyword">namespace </span>HostExt {
+<a name="l00049"></a>00049                 
+<a name="l00075"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">00075</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a>
+<a name="l00076"></a>00076 {
+<a name="l00077"></a>00077 <span class="keyword">public</span>:
+<a name="l00083"></a>00083     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin);
+<a name="l00084"></a>00084     <span class="keyword">virtual</span> ~<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a>();
 <a name="l00085"></a>00085 
-<a name="l00086"></a>00086     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#262206b978d9de28ee4bb35f437e915e" title="Process a single block of input data.">process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp);
-<a name="l00087"></a>00087     
-<a name="l00088"></a>00088     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#8771cba75552aaa1340b68de9bf1659c" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures</a>();
-<a name="l00089"></a>00089     
-<a name="l00090"></a>00090 <span class="keyword">protected</span>:
-<a name="l00091"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">00091</a>     <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Impl</a>;
-<a name="l00092"></a>00092     <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Impl</a> *<a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">m_impl</a>;
-<a name="l00093"></a>00093 };
-<a name="l00094"></a>00094     
-<a name="l00095"></a>00095 }
+<a name="l00095"></a>00095     <span class="keywordtype">size_t</span> getPreferredStepSize() <span class="keyword">const</span>;
 <a name="l00096"></a>00096 
-<a name="l00097"></a>00097 }
-<a name="l00098"></a>00098 
-<a name="l00099"></a>00099 <span class="preprocessor">#endif</span>
+<a name="l00107"></a>00107     <span class="keywordtype">size_t</span> getPreferredBlockSize() <span class="keyword">const</span>;
+<a name="l00108"></a>00108 
+<a name="l00118"></a>00118     <span class="keywordtype">bool</span> initialise(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
+<a name="l00119"></a>00119 
+<a name="l00131"></a>00131     <span class="keywordtype">size_t</span> getPluginPreferredStepSize() <span class="keyword">const</span>;
+<a name="l00132"></a>00132 
+<a name="l00139"></a>00139     <span class="keywordtype">size_t</span> getPluginPreferredBlockSize() <span class="keyword">const</span>;
+<a name="l00140"></a>00140 
+<a name="l00148"></a>00148     <span class="keywordtype">void</span> setPluginStepSize(<span class="keywordtype">size_t</span> stepSize);
+<a name="l00149"></a>00149 
+<a name="l00157"></a>00157     <span class="keywordtype">void</span> setPluginBlockSize(<span class="keywordtype">size_t</span> blockSize);
+<a name="l00158"></a>00158 
+<a name="l00170"></a>00170     <span class="keywordtype">void</span> getActualStepAndBlockSizes(<span class="keywordtype">size_t</span> &amp;stepSize, <span class="keywordtype">size_t</span> &amp;blockSize);
+<a name="l00171"></a>00171 
+<a name="l00172"></a>00172     <span class="keywordtype">void</span> setParameter(std::string, <span class="keywordtype">float</span>);
+<a name="l00173"></a>00173     <span class="keywordtype">void</span> selectProgram(std::string);
+<a name="l00174"></a>00174 
+<a name="l00175"></a>00175     OutputList getOutputDescriptors() <span class="keyword">const</span>;
+<a name="l00176"></a>00176 
+<a name="l00177"></a>00177     <span class="keywordtype">void</span> reset();
+<a name="l00178"></a>00178 
+<a name="l00179"></a>00179     FeatureSet process(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp);
+<a name="l00180"></a>00180     
+<a name="l00181"></a>00181     FeatureSet getRemainingFeatures();
+<a name="l00182"></a>00182     
+<a name="l00183"></a>00183 <span class="keyword">protected</span>:
+<a name="l00184"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">00184</a>     <span class="keyword">class </span>Impl;
+<a name="l00185"></a>00185     Impl *m_impl;
+<a name="l00186"></a>00186 };
+<a name="l00187"></a>00187     
+<a name="l00188"></a>00188 }
+<a name="l00189"></a>00189 
+<a name="l00190"></a>00190 }
+<a name="l00191"></a>00191 
+<a name="l00192"></a>00192 <a class="code" href="hostguard_8h.html#0e6efdc2909bdb0cfab70e087d91b171">_VAMP_SDK_HOSTSPACE_END</a>(PluginBufferingAdapter.h)
+<a name="l00193"></a>00193 
+<a name="l00194"></a>00194 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PluginBufferingAdapter_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PluginBufferingAdapter_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -15,7 +15,7 @@
       <li><a href="dirs.html"><span>Directories</span></a></li>
     </ul>
   </div>
-  <div class="navpath"><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  <div class="navpath"><a class="el" href="dir_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
   </div>
 </div>
 <div class="contents">
@@ -33,11 +33,11 @@
 <tr><td colspan="2"><br><h2>Classes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a> is 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 adapter that allows plugins to be used by a host supplying an audio stream in non-overlapping buffers of arbitrary size.  <a href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#_details">More...</a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that allows plugins to be used by a host supplying an audio stream in non-overlapping buffers of arbitrary size.  <a href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#_details">More...</a><br></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PluginChannelAdapter_8cpp-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,255 +0,0 @@
-<!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: PluginChannelAdapter.cpp Source File</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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
-  </div>
-</div>
-</div>
-<h1>PluginChannelAdapter.cpp</h1><a href="PluginChannelAdapter_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
-<a name="l00002"></a>00002 
-<a name="l00003"></a>00003 <span class="comment">/*</span>
-<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
-<a name="l00005"></a>00005 <span class="comment"></span>
-<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
-<a name="l00007"></a>00007 <span class="comment"></span>
-<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
-<a name="l00009"></a>00009 <span class="comment">    Copyright 2006-2007 Chris Cannam and QMUL.</span>
-<a name="l00010"></a>00010 <span class="comment">  </span>
-<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
-<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
-<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
-<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
-<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
-<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
-<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
-<a name="l00018"></a>00018 <span class="comment"></span>
-<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
-<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
-<a name="l00021"></a>00021 <span class="comment"></span>
-<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
-<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
-<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
-<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
-<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
-<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
-<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
-<a name="l00029"></a>00029 <span class="comment"></span>
-<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
-<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
-<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
-<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
-<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
-<a name="l00035"></a>00035 <span class="comment">*/</span>
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="PluginChannelAdapter_8h.html">PluginChannelAdapter.h</a>"</span>
-<a name="l00038"></a>00038 
-<a name="l00039"></a>00039 <span class="keyword">namespace </span>Vamp {
-<a name="l00040"></a>00040 
-<a name="l00041"></a>00041 <span class="keyword">namespace </span>HostExt {
-<a name="l00042"></a>00042 
-<a name="l00043"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">00043</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">PluginChannelAdapter::Impl</a>
-<a name="l00044"></a>00044 {
-<a name="l00045"></a>00045 <span class="keyword">public</span>:
-<a name="l00046"></a>00046     <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#dff6fc53236f067148f82da1adca7876">Impl</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin);
-<a name="l00047"></a>00047     <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#2f93eb032a41a52967e1c47a2901fa33">~Impl</a>();
-<a name="l00048"></a>00048 
-<a name="l00049"></a>00049     <span class="keywordtype">bool</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#bf47235b455880c94ec15bb71122afc8">initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
-<a name="l00050"></a>00050 
-<a name="l00051"></a>00051     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ce73f776af09556fa6dc000c8bfdbe06">process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp);
-<a name="l00052"></a>00052 
-<a name="l00053"></a>00053 <span class="keyword">protected</span>:
-<a name="l00054"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ff31c1cf3a0fb18ddab7e3ab213c3c07">00054</a>     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ff31c1cf3a0fb18ddab7e3ab213c3c07">m_plugin</a>;
-<a name="l00055"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#be7b76040411a4544a9a8b0808737626">00055</a>     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#be7b76040411a4544a9a8b0808737626">m_blockSize</a>;
-<a name="l00056"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">00056</a>     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a>;
-<a name="l00057"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">00057</a>     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a>;
-<a name="l00058"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">00058</a>     <span class="keywordtype">float</span> **<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a>;
-<a name="l00059"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#882147731ba96cf5da446265dbce11bd">00059</a>     <span class="keyword">const</span> <span class="keywordtype">float</span> **<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#882147731ba96cf5da446265dbce11bd">m_forwardPtrs</a>;
-<a name="l00060"></a>00060 };
-<a name="l00061"></a>00061 
-<a name="l00062"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#2cda2b672708264f9a33c43bad3acdd8">00062</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#2cda2b672708264f9a33c43bad3acdd8">PluginChannelAdapter::PluginChannelAdapter</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin) :
-<a name="l00063"></a>00063     <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a>(plugin)
-<a name="l00064"></a>00064 {
-<a name="l00065"></a>00065     <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">m_impl</a> = <span class="keyword">new</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Impl</a>(plugin);
-<a name="l00066"></a>00066 }
-<a name="l00067"></a>00067 
-<a name="l00068"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#7bd79ac5febc8d3c499e7339476c07b4">00068</a> PluginChannelAdapter::~PluginChannelAdapter()
-<a name="l00069"></a>00069 {
-<a name="l00070"></a>00070     <span class="keyword">delete</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">m_impl</a>;
-<a name="l00071"></a>00071 }
-<a name="l00072"></a>00072 
-<a name="l00073"></a>00073 <span class="keywordtype">bool</span>
-<a name="l00074"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#de0473c8fc54636431967cbf41649c1c">00074</a> PluginChannelAdapter::initialise(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize)
-<a name="l00075"></a>00075 {
-<a name="l00076"></a>00076     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#bf47235b455880c94ec15bb71122afc8">initialise</a>(channels, stepSize, blockSize);
-<a name="l00077"></a>00077 }
-<a name="l00078"></a>00078 
-<a name="l00079"></a>00079 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginChannelAdapter::FeatureSet</a>
-<a name="l00080"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#294e663b4d9ec885791faa1b440571ed">00080</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#294e663b4d9ec885791faa1b440571ed" title="Process a single block of input data.">PluginChannelAdapter::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
-<a name="l00081"></a>00081                               <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp)
-<a name="l00082"></a>00082 {
-<a name="l00083"></a>00083     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ce73f776af09556fa6dc000c8bfdbe06">process</a>(inputBuffers, timestamp);
-<a name="l00084"></a>00084 }
-<a name="l00085"></a>00085 
-<a name="l00086"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#dff6fc53236f067148f82da1adca7876">00086</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#dff6fc53236f067148f82da1adca7876">PluginChannelAdapter::Impl::Impl</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin) :
-<a name="l00087"></a>00087     <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>(plugin),
-<a name="l00088"></a>00088     m_blockSize(0),
-<a name="l00089"></a>00089     m_inputChannels(0),
-<a name="l00090"></a>00090     m_pluginChannels(0),
-<a name="l00091"></a>00091     m_buffer(0),
-<a name="l00092"></a>00092     m_forwardPtrs(0)
-<a name="l00093"></a>00093 {
-<a name="l00094"></a>00094 }
-<a name="l00095"></a>00095 
-<a name="l00096"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#2f93eb032a41a52967e1c47a2901fa33">00096</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#2f93eb032a41a52967e1c47a2901fa33">PluginChannelAdapter::Impl::~Impl</a>()
-<a name="l00097"></a>00097 {
-<a name="l00098"></a>00098     <span class="comment">// the adapter will delete the plugin</span>
-<a name="l00099"></a>00099 
-<a name="l00100"></a>00100     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a>) {
-<a name="l00101"></a>00101         <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a> &gt; <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a>) {
-<a name="l00102"></a>00102             <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a>[0];
-<a name="l00103"></a>00103         } <span class="keywordflow">else</span> {
-<a name="l00104"></a>00104             <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a> - <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a>; ++i) {
-<a name="l00105"></a>00105                 <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a>[i];
-<a name="l00106"></a>00106             }
-<a name="l00107"></a>00107         }
-<a name="l00108"></a>00108         <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a>;
-<a name="l00109"></a>00109         <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a> = 0;
-<a name="l00110"></a>00110     }
-<a name="l00111"></a>00111 
-<a name="l00112"></a>00112     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#882147731ba96cf5da446265dbce11bd">m_forwardPtrs</a>) {
-<a name="l00113"></a>00113         <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#882147731ba96cf5da446265dbce11bd">m_forwardPtrs</a>;
-<a name="l00114"></a>00114         <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#882147731ba96cf5da446265dbce11bd">m_forwardPtrs</a> = 0;
-<a name="l00115"></a>00115     }
-<a name="l00116"></a>00116 }
-<a name="l00117"></a>00117 
-<a name="l00118"></a>00118 <span class="keywordtype">bool</span>
-<a name="l00119"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#bf47235b455880c94ec15bb71122afc8">00119</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#bf47235b455880c94ec15bb71122afc8">PluginChannelAdapter::Impl::initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize)
-<a name="l00120"></a>00120 {
-<a name="l00121"></a>00121     <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#be7b76040411a4544a9a8b0808737626">m_blockSize</a> = blockSize;
-<a name="l00122"></a>00122 
-<a name="l00123"></a>00123     <span class="keywordtype">size_t</span> minch = <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ff31c1cf3a0fb18ddab7e3ab213c3c07">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525" title="Get the minimum supported number of input channels.">getMinChannelCount</a>();
-<a name="l00124"></a>00124     <span class="keywordtype">size_t</span> maxch = <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ff31c1cf3a0fb18ddab7e3ab213c3c07">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e" title="Get the maximum supported number of input channels.">getMaxChannelCount</a>();
-<a name="l00125"></a>00125 
-<a name="l00126"></a>00126     <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a> = channels;
-<a name="l00127"></a>00127 
-<a name="l00128"></a>00128     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a> &lt; minch) {
-<a name="l00129"></a>00129 
-<a name="l00130"></a>00130         <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#882147731ba96cf5da446265dbce11bd">m_forwardPtrs</a> = <span class="keyword">new</span> <span class="keyword">const</span> <span class="keywordtype">float</span> *[minch];
-<a name="l00131"></a>00131 
-<a name="l00132"></a>00132         <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a> &gt; 1) {
-<a name="l00133"></a>00133             <span class="comment">// We need a set of zero-valued buffers to add to the</span>
-<a name="l00134"></a>00134             <span class="comment">// forwarded pointers</span>
-<a name="l00135"></a>00135             <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a> = <span class="keyword">new</span> <span class="keywordtype">float</span>*[minch - channels];
-<a name="l00136"></a>00136             <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; minch; ++i) {
-<a name="l00137"></a>00137                 <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a>[i] = <span class="keyword">new</span> <span class="keywordtype">float</span>[blockSize];
-<a name="l00138"></a>00138                 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; blockSize; ++j) {
-<a name="l00139"></a>00139                     <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a>[i][j] = 0.f;
-<a name="l00140"></a>00140                 }
-<a name="l00141"></a>00141             }
-<a name="l00142"></a>00142         }
-<a name="l00143"></a>00143 
-<a name="l00144"></a>00144         <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a> = minch;
-<a name="l00145"></a>00145 
-<a name="l00146"></a>00146         std::cerr &lt;&lt; <span class="stringliteral">"PluginChannelAdapter::initialise: expanding "</span> &lt;&lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a> &lt;&lt; <span class="stringliteral">" to "</span> &lt;&lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a> &lt;&lt; <span class="stringliteral">" for plugin"</span> &lt;&lt; std::endl;
-<a name="l00147"></a>00147 
-<a name="l00148"></a>00148     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a> &gt; maxch) {
-<a name="l00149"></a>00149 
-<a name="l00150"></a>00150         <span class="comment">// We only need m_buffer if we are mixing down to a single</span>
-<a name="l00151"></a>00151         <span class="comment">// channel -- otherwise we can just forward the same float* as</span>
-<a name="l00152"></a>00152         <span class="comment">// passed in to process(), expecting the excess to be ignored</span>
-<a name="l00153"></a>00153 
-<a name="l00154"></a>00154         <span class="keywordflow">if</span> (maxch == 1) {
-<a name="l00155"></a>00155             <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a> = <span class="keyword">new</span> <span class="keywordtype">float</span> *[1];
-<a name="l00156"></a>00156             <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a>[0] = <span class="keyword">new</span> <span class="keywordtype">float</span>[blockSize];
-<a name="l00157"></a>00157 
-<a name="l00158"></a>00158             std::cerr &lt;&lt; <span class="stringliteral">"PluginChannelAdapter::initialise: mixing "</span> &lt;&lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a> &lt;&lt; <span class="stringliteral">" to mono for plugin"</span> &lt;&lt; std::endl;
-<a name="l00159"></a>00159 
-<a name="l00160"></a>00160         } <span class="keywordflow">else</span> {
-<a name="l00161"></a>00161             
-<a name="l00162"></a>00162             std::cerr &lt;&lt; <span class="stringliteral">"PluginChannelAdapter::initialise: reducing "</span> &lt;&lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a> &lt;&lt; <span class="stringliteral">" to "</span> &lt;&lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a> &lt;&lt; <span class="stringliteral">" for plugin"</span> &lt;&lt; std::endl;
-<a name="l00163"></a>00163         }
-<a name="l00164"></a>00164 
-<a name="l00165"></a>00165         <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a> = maxch;
-<a name="l00166"></a>00166 
-<a name="l00167"></a>00167     } <span class="keywordflow">else</span> {
-<a name="l00168"></a>00168  
-<a name="l00169"></a>00169         std::cerr &lt;&lt; <span class="stringliteral">"PluginChannelAdapter::initialise: accepting given number of channels ("</span> &lt;&lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a> &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; std::endl;
-<a name="l00170"></a>00170         <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a> = <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a>;
-<a name="l00171"></a>00171     }
-<a name="l00172"></a>00172 
-<a name="l00173"></a>00173     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ff31c1cf3a0fb18ddab7e3ab213c3c07">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a>, stepSize, blockSize);
-<a name="l00174"></a>00174 }
-<a name="l00175"></a>00175 
-<a name="l00176"></a>00176 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginChannelAdapter::FeatureSet</a>
-<a name="l00177"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ce73f776af09556fa6dc000c8bfdbe06">00177</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ce73f776af09556fa6dc000c8bfdbe06">PluginChannelAdapter::Impl::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
-<a name="l00178"></a>00178                                     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp)
-<a name="l00179"></a>00179 {
-<a name="l00180"></a>00180 <span class="comment">//    std::cerr &lt;&lt; "PluginChannelAdapter::process: " &lt;&lt; m_inputChannels &lt;&lt; " -&gt; " &lt;&lt; m_pluginChannels &lt;&lt; " channels" &lt;&lt; std::endl;</span>
-<a name="l00181"></a>00181 
-<a name="l00182"></a>00182     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a> &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a>) {
-<a name="l00183"></a>00183 
-<a name="l00184"></a>00184         <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a> == 1) {
-<a name="l00185"></a>00185             <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a>; ++i) {
-<a name="l00186"></a>00186                 <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#882147731ba96cf5da446265dbce11bd">m_forwardPtrs</a>[i] = inputBuffers[0];
-<a name="l00187"></a>00187             }
-<a name="l00188"></a>00188         } <span class="keywordflow">else</span> {
-<a name="l00189"></a>00189             <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a>; ++i) {
-<a name="l00190"></a>00190                 <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#882147731ba96cf5da446265dbce11bd">m_forwardPtrs</a>[i] = inputBuffers[i];
-<a name="l00191"></a>00191             }
-<a name="l00192"></a>00192             <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = m_inputChannels; i &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a>; ++i) {
-<a name="l00193"></a>00193                 <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#882147731ba96cf5da446265dbce11bd">m_forwardPtrs</a>[i] = <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a>[i - m_inputChannels];
-<a name="l00194"></a>00194             }
-<a name="l00195"></a>00195         }
-<a name="l00196"></a>00196 
-<a name="l00197"></a>00197         <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ff31c1cf3a0fb18ddab7e3ab213c3c07">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#882147731ba96cf5da446265dbce11bd">m_forwardPtrs</a>, timestamp);
-<a name="l00198"></a>00198 
-<a name="l00199"></a>00199     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a> &gt; <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a>) {
-<a name="l00200"></a>00200 
-<a name="l00201"></a>00201         <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a> == 1) {
-<a name="l00202"></a>00202             <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#be7b76040411a4544a9a8b0808737626">m_blockSize</a>; ++j) {
-<a name="l00203"></a>00203                 <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a>[0][j] = inputBuffers[0][j];
-<a name="l00204"></a>00204             }
-<a name="l00205"></a>00205             <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 1; i &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a>; ++i) {
-<a name="l00206"></a>00206                 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; m_blockSize; ++j) {
-<a name="l00207"></a>00207                     <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a>[0][j] += inputBuffers[i][j];
-<a name="l00208"></a>00208                 }
-<a name="l00209"></a>00209             }
-<a name="l00210"></a>00210             <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; m_blockSize; ++j) {
-<a name="l00211"></a>00211                 <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a>[0][j] /= m_inputChannels;
-<a name="l00212"></a>00212             }
-<a name="l00213"></a>00213             <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ff31c1cf3a0fb18ddab7e3ab213c3c07">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a>, timestamp);
-<a name="l00214"></a>00214         } <span class="keywordflow">else</span> {
-<a name="l00215"></a>00215             <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ff31c1cf3a0fb18ddab7e3ab213c3c07">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process</a>(inputBuffers, timestamp);
-<a name="l00216"></a>00216         }
-<a name="l00217"></a>00217 
-<a name="l00218"></a>00218     } <span class="keywordflow">else</span> {
-<a name="l00219"></a>00219 
-<a name="l00220"></a>00220         <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ff31c1cf3a0fb18ddab7e3ab213c3c07">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process</a>(inputBuffers, timestamp);
-<a name="l00221"></a>00221     }
-<a name="l00222"></a>00222 }
-<a name="l00223"></a>00223 
-<a name="l00224"></a>00224 }
-<a name="l00225"></a>00225 
-<a name="l00226"></a>00226 }
-<a name="l00227"></a>00227 
-<a name="l00228"></a>00228 
-</pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/PluginChannelAdapter_8cpp.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-<!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: PluginChannelAdapter.cpp 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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
-  </div>
-</div>
-<div class="contents">
-<h1>PluginChannelAdapter.cpp File Reference</h1>
-<p>
-
-<p>
-<a href="PluginChannelAdapter_8cpp-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>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html">Vamp</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp_1_1HostExt.html">Vamp::HostExt</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Vamp::HostExt::PluginChannelAdapter::Impl</a></td></tr>
-
-</table>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/PluginChannelAdapter_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PluginChannelAdapter_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -15,10 +15,10 @@
       <li><a href="dirs.html"><span>Directories</span></a></li>
     </ul>
   </div>
-  <div class="navpath"><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  <div class="navpath"><a class="el" href="dir_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>PluginChannelAdapter.h</h1><a href="PluginChannelAdapter_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -58,35 +58,42 @@
 <a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_PLUGIN_CHANNEL_ADAPTER_H_</span>
 <a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_PLUGIN_CHANNEL_ADAPTER_H_</span>
 <a name="l00039"></a>00039 <span class="preprocessor"></span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="PluginWrapper_8h.html">PluginWrapper.h</a>"</span>
-<a name="l00041"></a>00041 
-<a name="l00042"></a>00042 <span class="keyword">namespace </span>Vamp {
-<a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="keyword">namespace </span>HostExt {
-<a name="l00045"></a>00045 
-<a name="l00109"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">00109</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a>
-<a name="l00110"></a>00110 {
-<a name="l00111"></a>00111 <span class="keyword">public</span>:
-<a name="l00112"></a>00112     <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#2cda2b672708264f9a33c43bad3acdd8">PluginChannelAdapter</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin); <span class="comment">// I take ownership of plugin</span>
-<a name="l00113"></a>00113     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#7bd79ac5febc8d3c499e7339476c07b4">~PluginChannelAdapter</a>();
-<a name="l00114"></a>00114 
-<a name="l00115"></a>00115     <span class="keywordtype">bool</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#de0473c8fc54636431967cbf41649c1c" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
-<a name="l00116"></a>00116 
-<a name="l00117"></a>00117     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#294e663b4d9ec885791faa1b440571ed" title="Process a single block of input data.">process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp);
-<a name="l00118"></a>00118 
-<a name="l00119"></a>00119 <span class="keyword">protected</span>:
-<a name="l00120"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">00120</a>     <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Impl</a>;
-<a name="l00121"></a>00121     <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Impl</a> *<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">m_impl</a>;
-<a name="l00122"></a>00122 };
-<a name="l00123"></a>00123 
-<a name="l00124"></a>00124 }
-<a name="l00125"></a>00125 
-<a name="l00126"></a>00126 }
-<a name="l00127"></a>00127 
-<a name="l00128"></a>00128 <span class="preprocessor">#endif</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="hostguard_8h.html">hostguard.h</a>"</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="PluginWrapper_8h.html">PluginWrapper.h</a>"</span>
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 <a class="code" href="hostguard_8h.html#ef42eae5f1b0b897d8dac58cd54afbcd">_VAMP_SDK_HOSTSPACE_BEGIN</a>(PluginChannelAdapter.h)
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 namespace Vamp {
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 <span class="keyword">namespace </span>HostExt {
+<a name="l00048"></a>00048 
+<a name="l00112"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">00112</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a>
+<a name="l00113"></a>00113 {
+<a name="l00114"></a>00114 <span class="keyword">public</span>:
+<a name="l00120"></a>00120     <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin);
+<a name="l00121"></a>00121     <span class="keyword">virtual</span> ~<a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a>();
+<a name="l00122"></a>00122 
+<a name="l00123"></a>00123     <span class="keywordtype">bool</span> initialise(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
+<a name="l00124"></a>00124 
+<a name="l00125"></a>00125     FeatureSet process(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp);
+<a name="l00126"></a>00126 
+<a name="l00136"></a>00136     FeatureSet processInterleaved(<span class="keyword">const</span> <span class="keywordtype">float</span> *inputBuffer, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp);
+<a name="l00137"></a>00137 
+<a name="l00138"></a>00138 <span class="keyword">protected</span>:
+<a name="l00139"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">00139</a>     <span class="keyword">class </span>Impl;
+<a name="l00140"></a>00140     Impl *m_impl;
+<a name="l00141"></a>00141 };
+<a name="l00142"></a>00142 
+<a name="l00143"></a>00143 }
+<a name="l00144"></a>00144 
+<a name="l00145"></a>00145 }
+<a name="l00146"></a>00146 
+<a name="l00147"></a>00147 <a class="code" href="hostguard_8h.html#0e6efdc2909bdb0cfab70e087d91b171">_VAMP_SDK_HOSTSPACE_END</a>(PluginChannelAdapter.h)
+<a name="l00148"></a>00148 
+<a name="l00149"></a>00149 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PluginChannelAdapter_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PluginChannelAdapter_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -15,7 +15,7 @@
       <li><a href="dirs.html"><span>Directories</span></a></li>
     </ul>
   </div>
-  <div class="navpath"><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  <div class="navpath"><a class="el" href="dir_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
   </div>
 </div>
 <div class="contents">
@@ -33,11 +33,11 @@
 <tr><td colspan="2"><br><h2>Classes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">Vamp::HostExt::PluginChannelAdapter</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> is 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 adapter that implements a policy for management of plugins that expect a different number of input channels from the number actually available in the source audio data.  <a href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#_details">More...</a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that implements a policy for management of plugins that expect a different number of input channels from the number actually available in the source audio data.  <a href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#_details">More...</a><br></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PluginHostAdapter_8cpp-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,456 +0,0 @@
-<!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: PluginHostAdapter.cpp Source File</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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
-  </div>
-</div>
-</div>
-<h1>PluginHostAdapter.cpp</h1><a href="PluginHostAdapter_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
-<a name="l00002"></a>00002 
-<a name="l00003"></a>00003 <span class="comment">/*</span>
-<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
-<a name="l00005"></a>00005 <span class="comment"></span>
-<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
-<a name="l00007"></a>00007 <span class="comment"></span>
-<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
-<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
-<a name="l00010"></a>00010 <span class="comment">  </span>
-<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
-<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
-<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
-<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
-<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
-<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
-<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
-<a name="l00018"></a>00018 <span class="comment"></span>
-<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
-<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
-<a name="l00021"></a>00021 <span class="comment"></span>
-<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
-<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
-<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
-<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
-<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
-<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
-<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
-<a name="l00029"></a>00029 <span class="comment"></span>
-<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
-<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
-<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
-<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
-<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
-<a name="l00035"></a>00035 <span class="comment">*/</span>
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="PluginHostAdapter_8h.html">PluginHostAdapter.h</a>"</span>
-<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;cstdlib&gt;</span>
-<a name="l00039"></a>00039 
-<a name="l00040"></a>00040 <span class="keyword">namespace </span>Vamp
-<a name="l00041"></a>00041 {
-<a name="l00042"></a>00042 
-<a name="l00043"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#6535abd551acfbbaab381bbe1268cd49">00043</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#6535abd551acfbbaab381bbe1268cd49">PluginHostAdapter::PluginHostAdapter</a>(<span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *descriptor,
-<a name="l00044"></a>00044                                      <span class="keywordtype">float</span> inputSampleRate) :
-<a name="l00045"></a>00045     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a>(inputSampleRate),
-<a name="l00046"></a>00046     m_descriptor(descriptor)
-<a name="l00047"></a>00047 {
-<a name="l00048"></a>00048 <span class="comment">//    std::cerr &lt;&lt; "PluginHostAdapter::PluginHostAdapter (plugin = " &lt;&lt; descriptor-&gt;name &lt;&lt; ")" &lt;&lt; std::endl;</span>
-<a name="l00049"></a>00049     <a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a> = <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#19c4ce36fdeb88eeedb539efc544b8ee" title="Create and return a new instance of this plugin.">instantiate</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>, inputSampleRate);
-<a name="l00050"></a>00050     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>) {
-<a name="l00051"></a>00051 <span class="comment">//        std::cerr &lt;&lt; "WARNING: PluginHostAdapter: Plugin instantiation failed for plugin " &lt;&lt; m_descriptor-&gt;name &lt;&lt; std::endl;</span>
-<a name="l00052"></a>00052     }
-<a name="l00053"></a>00053 }
-<a name="l00054"></a>00054 
-<a name="l00055"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#b0f354cb332852ab1892488f6b8e8c0e">00055</a> PluginHostAdapter::~PluginHostAdapter()
-<a name="l00056"></a>00056 {
-<a name="l00057"></a>00057 <span class="comment">//    std::cerr &lt;&lt; "PluginHostAdapter::~PluginHostAdapter (plugin = " &lt;&lt; m_descriptor-&gt;name &lt;&lt; ")" &lt;&lt; std::endl;</span>
-<a name="l00058"></a>00058     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>) <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#0e4522c33e59c3c518b9262f2477bc27" title="Destroy an instance of this plugin.">cleanup</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>);
-<a name="l00059"></a>00059 }
-<a name="l00060"></a>00060 
-<a name="l00061"></a>00061 std::vector&lt;std::string&gt;
-<a name="l00062"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#08d7ed3a11bf4a3c30fa0f9b41a0fed6">00062</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#08d7ed3a11bf4a3c30fa0f9b41a0fed6">PluginHostAdapter::getPluginPath</a>()
-<a name="l00063"></a>00063 {
-<a name="l00064"></a>00064     std::vector&lt;std::string&gt; path;
-<a name="l00065"></a>00065     std::string envPath;
-<a name="l00066"></a>00066 
-<a name="l00067"></a>00067     <span class="keywordtype">char</span> *cpath = getenv(<span class="stringliteral">"VAMP_PATH"</span>);
-<a name="l00068"></a>00068     <span class="keywordflow">if</span> (cpath) envPath = cpath;
-<a name="l00069"></a>00069 
-<a name="l00070"></a>00070 <span class="preprocessor">#ifdef _WIN32</span>
-<a name="l00071"></a>00071 <span class="preprocessor"></span><span class="preprocessor">#define PATH_SEPARATOR ';'</span>
-<a name="l00072"></a>00072 <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_VAMP_PATH "%ProgramFiles%\\Vamp Plugins"</span>
-<a name="l00073"></a>00073 <span class="preprocessor"></span><span class="preprocessor">#else</span>
-<a name="l00074"></a>00074 <span class="preprocessor"></span><span class="preprocessor">#define PATH_SEPARATOR ':'</span>
-<a name="l00075"></a>00075 <span class="preprocessor"></span><span class="preprocessor">#ifdef __APPLE__</span>
-<a name="l00076"></a>00076 <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_VAMP_PATH "$HOME/Library/Audio/Plug-Ins/Vamp:/Library/Audio/Plug-Ins/Vamp"</span>
-<a name="l00077"></a>00077 <span class="preprocessor"></span><span class="preprocessor">#else</span>
-<a name="l00078"></a>00078 <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT_VAMP_PATH "$HOME/vamp:$HOME/.vamp:/usr/local/lib/vamp:/usr/lib/vamp"</span>
-<a name="l00079"></a>00079 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00080"></a>00080 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00081"></a>00081 <span class="preprocessor"></span>
-<a name="l00082"></a>00082     <span class="keywordflow">if</span> (envPath == <span class="stringliteral">""</span>) {
-<a name="l00083"></a>00083         envPath = <a class="code" href="PluginHostAdapter_8cpp.html#a7a9ce1e832e4f26cd5197ed38d4a58d">DEFAULT_VAMP_PATH</a>;
-<a name="l00084"></a>00084         <span class="keywordtype">char</span> *chome = getenv(<span class="stringliteral">"HOME"</span>);
-<a name="l00085"></a>00085         <span class="keywordflow">if</span> (chome) {
-<a name="l00086"></a>00086             std::string home(chome);
-<a name="l00087"></a>00087             std::string::size_type f;
-<a name="l00088"></a>00088             <span class="keywordflow">while</span> ((f = envPath.find(<span class="stringliteral">"$HOME"</span>)) != std::string::npos &amp;&amp;
-<a name="l00089"></a>00089                     f &lt; envPath.length()) {
-<a name="l00090"></a>00090                 envPath.replace(f, 5, home);
-<a name="l00091"></a>00091             }
-<a name="l00092"></a>00092         }
-<a name="l00093"></a>00093 <span class="preprocessor">#ifdef _WIN32</span>
-<a name="l00094"></a>00094 <span class="preprocessor"></span>        <span class="keywordtype">char</span> *cpfiles = getenv(<span class="stringliteral">"ProgramFiles"</span>);
-<a name="l00095"></a>00095         <span class="keywordflow">if</span> (!cpfiles) cpfiles = <span class="stringliteral">"C:\\Program Files"</span>;
-<a name="l00096"></a>00096         std::string pfiles(cpfiles);
-<a name="l00097"></a>00097         std::string::size_type f;
-<a name="l00098"></a>00098         <span class="keywordflow">while</span> ((f = envPath.find(<span class="stringliteral">"%ProgramFiles%"</span>)) != std::string::npos &amp;&amp;
-<a name="l00099"></a>00099                f &lt; envPath.length()) {
-<a name="l00100"></a>00100             envPath.replace(f, 14, pfiles);
-<a name="l00101"></a>00101         }
-<a name="l00102"></a>00102 <span class="preprocessor">#endif</span>
-<a name="l00103"></a>00103 <span class="preprocessor"></span>    }
-<a name="l00104"></a>00104 
-<a name="l00105"></a>00105     std::string::size_type index = 0, newindex = 0;
-<a name="l00106"></a>00106 
-<a name="l00107"></a>00107     <span class="keywordflow">while</span> ((newindex = envPath.find(<a class="code" href="PluginHostAdapter_8cpp.html#256a5721249aa3309437212cc21a9fe4">PATH_SEPARATOR</a>, index)) &lt; envPath.size()) {
-<a name="l00108"></a>00108         path.push_back(envPath.substr(index, newindex - index));
-<a name="l00109"></a>00109         index = newindex + 1;
-<a name="l00110"></a>00110     }
-<a name="l00111"></a>00111     
-<a name="l00112"></a>00112     path.push_back(envPath.substr(index));
-<a name="l00113"></a>00113 
-<a name="l00114"></a>00114     <span class="keywordflow">return</span> path;
-<a name="l00115"></a>00115 }
-<a name="l00116"></a>00116 
-<a name="l00117"></a>00117 <span class="keywordtype">bool</span>
-<a name="l00118"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738">00118</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738" title="Initialise a plugin to prepare it for use with the given number of input channels...">PluginHostAdapter::initialise</a>(<span class="keywordtype">size_t</span> channels,
-<a name="l00119"></a>00119                               <span class="keywordtype">size_t</span> stepSize,
-<a name="l00120"></a>00120                               <span class="keywordtype">size_t</span> blockSize)
-<a name="l00121"></a>00121 {
-<a name="l00122"></a>00122     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00123"></a>00123     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#d0978f17a5e568079470a1978a9aad22" title="Initialise an instance following parameter configuration.">initialise</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>, channels, stepSize, blockSize) ?
-<a name="l00124"></a>00124         <span class="keyword">true</span> : <span class="keyword">false</span>;
-<a name="l00125"></a>00125 }
-<a name="l00126"></a>00126 
-<a name="l00127"></a>00127 <span class="keywordtype">void</span>
-<a name="l00128"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#5d54c5bbd76bc27b7a243827148afeaa">00128</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#5d54c5bbd76bc27b7a243827148afeaa" title="Reset the plugin after use, to prepare it for another clean run.">PluginHostAdapter::reset</a>()
-<a name="l00129"></a>00129 {
-<a name="l00130"></a>00130     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>) <span class="keywordflow">return</span>;
-<a name="l00131"></a>00131     <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#12267f6b506aeda3792ff7c982b02336" title="Reset an instance, ready to use again on new input data.">reset</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>);
-<a name="l00132"></a>00132 }
-<a name="l00133"></a>00133 
-<a name="l00134"></a>00134 <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">PluginHostAdapter::InputDomain</a>
-<a name="l00135"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#9c5239a4da67f1a426cd059e1a2856eb">00135</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#9c5239a4da67f1a426cd059e1a2856eb" title="Get the plugin&amp;#39;s required input domain.">PluginHostAdapter::getInputDomain</a>()<span class="keyword"> const</span>
-<a name="l00136"></a>00136 <span class="keyword"></span>{
-<a name="l00137"></a>00137     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#ffc4d1796da7ced2c0cbb2cc2c4a22f4" title="Preferred input domain for audio input (time or frequency).">inputDomain</a> == <a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d">vampFrequencyDomain</a>) {
-<a name="l00138"></a>00138         <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a>;
-<a name="l00139"></a>00139     } <span class="keywordflow">else</span> {
-<a name="l00140"></a>00140         <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a>;
-<a name="l00141"></a>00141     }
-<a name="l00142"></a>00142 }
-<a name="l00143"></a>00143 
-<a name="l00144"></a>00144 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
-<a name="l00145"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">00145</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e" title="Get the Vamp API compatibility level of the plugin.">PluginHostAdapter::getVampApiVersion</a>()<span class="keyword"> const</span>
-<a name="l00146"></a>00146 <span class="keyword"></span>{
-<a name="l00147"></a>00147     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#b6c87760e87ddaa9ac3491bccaaa28c2" title="API version with which this descriptor is compatible.">vampApiVersion</a>;
-<a name="l00148"></a>00148 }
-<a name="l00149"></a>00149 
-<a name="l00150"></a>00150 std::string
-<a name="l00151"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#b27423a656f878d97d2ad2eba4e76c7a">00151</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#b27423a656f878d97d2ad2eba4e76c7a" title="Get the computer-usable name of the plugin.">PluginHostAdapter::getIdentifier</a>()<span class="keyword"> const</span>
-<a name="l00152"></a>00152 <span class="keyword"></span>{
-<a name="l00153"></a>00153     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#4915ec8276749cb505c01d25a6d02219" title="Computer-usable name of the plugin.">identifier</a>;
-<a name="l00154"></a>00154 }
-<a name="l00155"></a>00155 
-<a name="l00156"></a>00156 std::string
-<a name="l00157"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#45f1d0377e233eeddd1b7cefb48be62a">00157</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#45f1d0377e233eeddd1b7cefb48be62a" title="Get a human-readable name or title of the plugin.">PluginHostAdapter::getName</a>()<span class="keyword"> const</span>
-<a name="l00158"></a>00158 <span class="keyword"></span>{
-<a name="l00159"></a>00159     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#9dd5a0190e4d453ff36b5acb7000b150" title="Human-readable name of the plugin.">name</a>;
-<a name="l00160"></a>00160 }
-<a name="l00161"></a>00161 
-<a name="l00162"></a>00162 std::string
-<a name="l00163"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#5eaafcef030e81b90a3e77cf16cf8ae1">00163</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#5eaafcef030e81b90a3e77cf16cf8ae1" title="Get a human-readable description for the plugin, typically a line of text that may...">PluginHostAdapter::getDescription</a>()<span class="keyword"> const</span>
-<a name="l00164"></a>00164 <span class="keyword"></span>{
-<a name="l00165"></a>00165     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#9ff8050f92f1a04a68bb34a9d368295e" title="Human-readable short text about the plugin.">description</a>;
-<a name="l00166"></a>00166 }
-<a name="l00167"></a>00167 
-<a name="l00168"></a>00168 std::string
-<a name="l00169"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#f572be0b175f5661559006a380a0f3db">00169</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#f572be0b175f5661559006a380a0f3db" title="Get the name of the author or vendor of the plugin in human-readable form.">PluginHostAdapter::getMaker</a>()<span class="keyword"> const</span>
-<a name="l00170"></a>00170 <span class="keyword"></span>{
-<a name="l00171"></a>00171     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#4dca3d57331802964716edfa80580c9b" title="Human-readable name of plugin&amp;#39;s author or vendor.">maker</a>;
-<a name="l00172"></a>00172 }
-<a name="l00173"></a>00173 
-<a name="l00174"></a>00174 <span class="keywordtype">int</span>
-<a name="l00175"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#6fbd94781867ca46a20368c2a3593c77">00175</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#6fbd94781867ca46a20368c2a3593c77" title="Get the version number of the plugin.">PluginHostAdapter::getPluginVersion</a>()<span class="keyword"> const</span>
-<a name="l00176"></a>00176 <span class="keyword"></span>{
-<a name="l00177"></a>00177     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#04427c420d9252c7796c0bf5101345ae" title="Version number of the plugin.">pluginVersion</a>;
-<a name="l00178"></a>00178 }
-<a name="l00179"></a>00179 
-<a name="l00180"></a>00180 std::string
-<a name="l00181"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#c73c9d6baad04369beee695e99584815">00181</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#c73c9d6baad04369beee695e99584815" title="Get the copyright statement or licensing summary for the plugin.">PluginHostAdapter::getCopyright</a>()<span class="keyword"> const</span>
-<a name="l00182"></a>00182 <span class="keyword"></span>{
-<a name="l00183"></a>00183     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#e704bba384af0de056a26da1b13ee521" title="Human-readable summary of copyright or licensing for plugin.">copyright</a>;
-<a name="l00184"></a>00184 }
-<a name="l00185"></a>00185 
-<a name="l00186"></a>00186 <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">PluginHostAdapter::ParameterList</a>
-<a name="l00187"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#bfa93b20d9b5651a32042a9bb7c8df13">00187</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#bfa93b20d9b5651a32042a9bb7c8df13" title="Get the controllable parameters of this plugin.">PluginHostAdapter::getParameterDescriptors</a>()<span class="keyword"> const</span>
-<a name="l00188"></a>00188 <span class="keyword"></span>{
-<a name="l00189"></a>00189     <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> list;
-<a name="l00190"></a>00190     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#e6271dc3ea0cea959c84a64185492cab" title="Number of parameter inputs.">parameterCount</a>; ++i) {
-<a name="l00191"></a>00191         <span class="keyword">const</span> <a class="code" href="struct__VampParameterDescriptor.html" title="C language API for Vamp plugins.">VampParameterDescriptor</a> *spd = <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#64d614862604c31d6b84c49005f51913" title="Fixed descriptors for parameter inputs.">parameters</a>[i];
-<a name="l00192"></a>00192         <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a> pd;
-<a name="l00193"></a>00193         pd.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#116fd9f0dc94c2bc4bbc60b5443c598c" title="The name of the parameter, in computer-usable form.">identifier</a> = spd-&gt;<a class="code" href="struct__VampParameterDescriptor.html#26d74afd6a3341a673f15955031845ab" title="Computer-usable name of the parameter.">identifier</a>;
-<a name="l00194"></a>00194         pd.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#0ecebb94fb4ada4aad2640e20aa57084" title="The human-readable name of the parameter.">name</a> = spd-&gt;<a class="code" href="struct__VampParameterDescriptor.html#bba810bce9656f6002777f6c3f655957" title="Human-readable name of the parameter.">name</a>;
-<a name="l00195"></a>00195         pd.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#780ddad41e433d85c82f9ea4d959cbaf" title="A human-readable short text describing the parameter.">description</a> = spd-&gt;<a class="code" href="struct__VampParameterDescriptor.html#95489272d6cf5a5b487e949da8e4fac6" title="Human-readable short text about the parameter.">description</a>;
-<a name="l00196"></a>00196         pd.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#3bc3df322e4c02e17e96bc6d44982d7b" title="The unit of the parameter, in human-readable form.">unit</a> = spd-&gt;<a class="code" href="struct__VampParameterDescriptor.html#8ca235f816b56dc99125e010eee08fc7" title="Human-readable unit of the parameter.">unit</a>;
-<a name="l00197"></a>00197         pd.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8" title="The minimum value of the parameter.">minValue</a> = spd-&gt;<a class="code" href="struct__VampParameterDescriptor.html#b59c84f0bbe0d4d0c578d893c087b0db" title="Minimum value.">minValue</a>;
-<a name="l00198"></a>00198         pd.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4" title="The maximum value of the parameter.">maxValue</a> = spd-&gt;<a class="code" href="struct__VampParameterDescriptor.html#6e7646babdb265c4abfc107ba4350d80" title="Maximum value.">maxValue</a>;
-<a name="l00199"></a>00199         pd.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc" title="The default value of the parameter.">defaultValue</a> = spd-&gt;<a class="code" href="struct__VampParameterDescriptor.html#3d37f986ee152ab55feb9902b35f7aca" title="Default value.">defaultValue</a>;
-<a name="l00200"></a>00200         pd.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#7c556d58d552f737ee5a34efdf7f9425" title="True if the parameter values are quantized to a particular resolution.">isQuantized</a> = spd-&gt;<a class="code" href="struct__VampParameterDescriptor.html#3f41e3b6b69c7a95ff0ce8625794f83a" title="1 if parameter values are quantized to a particular resolution.">isQuantized</a>;
-<a name="l00201"></a>00201         pd.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#01f8387e7c853d5e4e35d4e9a37353d7" title="Quantization resolution of the parameter values (e.g.">quantizeStep</a> = spd-&gt;<a class="code" href="struct__VampParameterDescriptor.html#68c91fd3fc0b0b3617c2d343fe32d0e5" title="Quantization resolution, if isQuantized.">quantizeStep</a>;
-<a name="l00202"></a>00202         <span class="keywordflow">if</span> (pd.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#7c556d58d552f737ee5a34efdf7f9425" title="True if the parameter values are quantized to a particular resolution.">isQuantized</a> &amp;&amp; spd-&gt;<a class="code" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d" title="Human-readable names of the values, if isQuantized.">valueNames</a>) {
-<a name="l00203"></a>00203             <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; spd-&gt;<a class="code" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d" title="Human-readable names of the values, if isQuantized.">valueNames</a>[j]; ++j) {
-<a name="l00204"></a>00204                 pd.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#94df96f53835980b4739965007ff222b" title="Names for the quantized values.">valueNames</a>.push_back(spd-&gt;<a class="code" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d" title="Human-readable names of the values, if isQuantized.">valueNames</a>[j]);
-<a name="l00205"></a>00205             }
-<a name="l00206"></a>00206         }
-<a name="l00207"></a>00207         list.push_back(pd);
-<a name="l00208"></a>00208     }
-<a name="l00209"></a>00209     <span class="keywordflow">return</span> list;
-<a name="l00210"></a>00210 }
-<a name="l00211"></a>00211 
-<a name="l00212"></a>00212 <span class="keywordtype">float</span>
-<a name="l00213"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">00213</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb" title="Get the value of a named parameter.">PluginHostAdapter::getParameter</a>(std::string param)<span class="keyword"> const</span>
-<a name="l00214"></a>00214 <span class="keyword"></span>{
-<a name="l00215"></a>00215     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>) <span class="keywordflow">return</span> 0.0;
-<a name="l00216"></a>00216 
-<a name="l00217"></a>00217     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#e6271dc3ea0cea959c84a64185492cab" title="Number of parameter inputs.">parameterCount</a>; ++i) {
-<a name="l00218"></a>00218         <span class="keywordflow">if</span> (param == <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#64d614862604c31d6b84c49005f51913" title="Fixed descriptors for parameter inputs.">parameters</a>[i]-&gt;<a class="code" href="struct__VampParameterDescriptor.html#26d74afd6a3341a673f15955031845ab" title="Computer-usable name of the parameter.">identifier</a>) {
-<a name="l00219"></a>00219             <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#07174981875b55ee2ec7521a7f4fc395" title="Get a parameter value.">getParameter</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>, i);
-<a name="l00220"></a>00220         }
-<a name="l00221"></a>00221     }
-<a name="l00222"></a>00222 
-<a name="l00223"></a>00223     <span class="keywordflow">return</span> 0.0;
-<a name="l00224"></a>00224 }
-<a name="l00225"></a>00225 
-<a name="l00226"></a>00226 <span class="keywordtype">void</span>
-<a name="l00227"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">00227</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6" title="Set a named parameter.">PluginHostAdapter::setParameter</a>(std::string param, 
-<a name="l00228"></a>00228                                 <span class="keywordtype">float</span> value)
-<a name="l00229"></a>00229 {
-<a name="l00230"></a>00230     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>) <span class="keywordflow">return</span>;
-<a name="l00231"></a>00231 
-<a name="l00232"></a>00232     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#e6271dc3ea0cea959c84a64185492cab" title="Number of parameter inputs.">parameterCount</a>; ++i) {
-<a name="l00233"></a>00233         <span class="keywordflow">if</span> (param == <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#64d614862604c31d6b84c49005f51913" title="Fixed descriptors for parameter inputs.">parameters</a>[i]-&gt;<a class="code" href="struct__VampParameterDescriptor.html#26d74afd6a3341a673f15955031845ab" title="Computer-usable name of the parameter.">identifier</a>) {
-<a name="l00234"></a>00234             <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#ad3cfc7a3b432df40bd9db13eee6a481" title="Set a parameter value.">setParameter</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>, i, value);
-<a name="l00235"></a>00235             <span class="keywordflow">return</span>;
-<a name="l00236"></a>00236         }
-<a name="l00237"></a>00237     }
-<a name="l00238"></a>00238 }
-<a name="l00239"></a>00239 
-<a name="l00240"></a>00240 <a class="code" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">PluginHostAdapter::ProgramList</a>
-<a name="l00241"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#7ac5681dcfe08b7b8a796bffc0aff3e3">00241</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#7ac5681dcfe08b7b8a796bffc0aff3e3" title="Get the program settings available in this plugin.">PluginHostAdapter::getPrograms</a>()<span class="keyword"> const</span>
-<a name="l00242"></a>00242 <span class="keyword"></span>{
-<a name="l00243"></a>00243     <a class="code" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> list;
-<a name="l00244"></a>00244     
-<a name="l00245"></a>00245     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#1962666aa173e7a9a2c30dc82e4b2e00" title="Number of programs.">programCount</a>; ++i) {
-<a name="l00246"></a>00246         list.push_back(<a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#d488470c582d8472d86455889d71c5ec" title="Fixed names for programs.">programs</a>[i]);
-<a name="l00247"></a>00247     }
-<a name="l00248"></a>00248     
-<a name="l00249"></a>00249     <span class="keywordflow">return</span> list;
-<a name="l00250"></a>00250 }
-<a name="l00251"></a>00251 
-<a name="l00252"></a>00252 std::string
-<a name="l00253"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">00253</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867" title="Get the current program.">PluginHostAdapter::getCurrentProgram</a>()<span class="keyword"> const</span>
-<a name="l00254"></a>00254 <span class="keyword"></span>{
-<a name="l00255"></a>00255     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>) <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-<a name="l00256"></a>00256 
-<a name="l00257"></a>00257     <span class="keywordtype">int</span> pn = <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#861a77525a95d424cb846820b018af53" title="Get the current program (if programCount &amp;gt; 0).">getCurrentProgram</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>);
-<a name="l00258"></a>00258     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#d488470c582d8472d86455889d71c5ec" title="Fixed names for programs.">programs</a>[pn];
-<a name="l00259"></a>00259 }
-<a name="l00260"></a>00260 
-<a name="l00261"></a>00261 <span class="keywordtype">void</span>
-<a name="l00262"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">00262</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683" title="Select a program.">PluginHostAdapter::selectProgram</a>(std::string program)
-<a name="l00263"></a>00263 {
-<a name="l00264"></a>00264     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>) <span class="keywordflow">return</span>;
-<a name="l00265"></a>00265 
-<a name="l00266"></a>00266     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#1962666aa173e7a9a2c30dc82e4b2e00" title="Number of programs.">programCount</a>; ++i) {
-<a name="l00267"></a>00267         <span class="keywordflow">if</span> (program == <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#d488470c582d8472d86455889d71c5ec" title="Fixed names for programs.">programs</a>[i]) {
-<a name="l00268"></a>00268             <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#d9af40cb165ca187e49250964af5f5cf" title="Set the current program.">selectProgram</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>, i);
-<a name="l00269"></a>00269             <span class="keywordflow">return</span>;
-<a name="l00270"></a>00270         }
-<a name="l00271"></a>00271     }
-<a name="l00272"></a>00272 }
-<a name="l00273"></a>00273 
-<a name="l00274"></a>00274 <span class="keywordtype">size_t</span>
-<a name="l00275"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">00275</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe" title="Get the preferred step size (window increment -- the distance in sample frames between...">PluginHostAdapter::getPreferredStepSize</a>()<span class="keyword"> const</span>
-<a name="l00276"></a>00276 <span class="keyword"></span>{
-<a name="l00277"></a>00277     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>) <span class="keywordflow">return</span> 0;
-<a name="l00278"></a>00278     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#2beddf2ce156c05dd24477ac663adcbb" title="Get the plugin&amp;#39;s preferred processing window increment in samples.">getPreferredStepSize</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>);
-<a name="l00279"></a>00279 }
-<a name="l00280"></a>00280 
-<a name="l00281"></a>00281 <span class="keywordtype">size_t</span>
-<a name="l00282"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">00282</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a" title="Get the preferred block size (window size -- the number of sample frames passed in...">PluginHostAdapter::getPreferredBlockSize</a>()<span class="keyword"> const</span>
-<a name="l00283"></a>00283 <span class="keyword"></span>{
-<a name="l00284"></a>00284     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>) <span class="keywordflow">return</span> 0;
-<a name="l00285"></a>00285     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#c626e42554ab1532c8d8b5132a0faee8" title="Get the plugin&amp;#39;s preferred processing window size in samples.">getPreferredBlockSize</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>);
-<a name="l00286"></a>00286 }
-<a name="l00287"></a>00287 
-<a name="l00288"></a>00288 <span class="keywordtype">size_t</span>
-<a name="l00289"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d">00289</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d" title="Get the minimum supported number of input channels.">PluginHostAdapter::getMinChannelCount</a>()<span class="keyword"> const</span>
-<a name="l00290"></a>00290 <span class="keyword"></span>{
-<a name="l00291"></a>00291     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>) <span class="keywordflow">return</span> 0;
-<a name="l00292"></a>00292     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#f175ca17716db5a7545b61b01caabd92" title="Get the minimum number of input channels this plugin can handle.">getMinChannelCount</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>);
-<a name="l00293"></a>00293 }
-<a name="l00294"></a>00294 
-<a name="l00295"></a>00295 <span class="keywordtype">size_t</span>
-<a name="l00296"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0">00296</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0" title="Get the maximum supported number of input channels.">PluginHostAdapter::getMaxChannelCount</a>()<span class="keyword"> const</span>
-<a name="l00297"></a>00297 <span class="keyword"></span>{
-<a name="l00298"></a>00298     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>) <span class="keywordflow">return</span> 0;
-<a name="l00299"></a>00299     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#d1600203418d9646332f5b917284261b" title="Get the maximum number of input channels this plugin can handle.">getMaxChannelCount</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>);
-<a name="l00300"></a>00300 }
-<a name="l00301"></a>00301 
-<a name="l00302"></a>00302 <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">PluginHostAdapter::OutputList</a>
-<a name="l00303"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#e02670cca9d25cdc4100cbe7a12e3e68">00303</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#e02670cca9d25cdc4100cbe7a12e3e68" title="Get the outputs of this plugin.">PluginHostAdapter::getOutputDescriptors</a>()<span class="keyword"> const</span>
-<a name="l00304"></a>00304 <span class="keyword"></span>{
-<a name="l00305"></a>00305     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> list;
-<a name="l00306"></a>00306     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>) {
-<a name="l00307"></a>00307 <span class="comment">//        std::cerr &lt;&lt; "PluginHostAdapter::getOutputDescriptors: no handle " &lt;&lt; std::endl;</span>
-<a name="l00308"></a>00308         <span class="keywordflow">return</span> list;
-<a name="l00309"></a>00309     }
-<a name="l00310"></a>00310 
-<a name="l00311"></a>00311     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count = <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#a8fc88da704e24b2b5f674821dd380c1" title="Get the number of feature outputs (distinct sets of results).">getOutputCount</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>);
-<a name="l00312"></a>00312 
-<a name="l00313"></a>00313     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; count; ++i) {
-<a name="l00314"></a>00314         <a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *sd = <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#92c58b8ff99ad0c23a42333aa55c144d" title="Get a descriptor for a given feature output.">getOutputDescriptor</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>, i);
-<a name="l00315"></a>00315         <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> d;
-<a name="l00316"></a>00316         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a> = sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#461161b2010370176115967e4f58a5f5" title="Computer-usable name of the output.">identifier</a>;
-<a name="l00317"></a>00317         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#f4fca576bd47167fd2bf9b43d588815f" title="Human-readable name of the output.">name</a>;
-<a name="l00318"></a>00318         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a> = sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#bfa911b138cfb80cf63e8f2e0fa0fb89" title="Human-readable short text about the output.">description</a>;
-<a name="l00319"></a>00319         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4" title="The unit of the output, in human-readable form.">unit</a> = sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#d038caa8e596dfd037035637202f1d63" title="Human-readable name of the unit of the output.">unit</a>;
-<a name="l00320"></a>00320         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d" title="True if the output has the same number of values per sample for every output sample...">hasFixedBinCount</a> = sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#e8571f5a2bc740738af0cb7dda0c4749" title="1 if output has equal number of values for each returned result.">hasFixedBinCount</a>;
-<a name="l00321"></a>00321         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a> = sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#652ee422092720e44d23d98bdb68f978" title="Number of values per result, if hasFixedBinCount.">binCount</a>;
-<a name="l00322"></a>00322         <span class="keywordflow">if</span> (d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d" title="True if the output has the same number of values per sample for every output sample...">hasFixedBinCount</a>) {
-<a name="l00323"></a>00323             <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j &lt; sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#652ee422092720e44d23d98bdb68f978" title="Number of values per result, if hasFixedBinCount.">binCount</a>; ++j) {
-<a name="l00324"></a>00324                 d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#31d9b79e2d8241344f551a22fcb5c8c7" title="The (human-readable) names of each of the bins, if appropriate.">binNames</a>.push_back(sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447" title="Names of returned value bins, if hasFixedBinCount.">binNames</a>[j] ? sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447" title="Names of returned value bins, if hasFixedBinCount.">binNames</a>[j] : <span class="stringliteral">""</span>);
-<a name="l00325"></a>00325             }
-<a name="l00326"></a>00326         }
-<a name="l00327"></a>00327         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31" title="True if the results in each output bin fall within a fixed numeric range (minimum...">hasKnownExtents</a> = sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#f6b512d772023b4e852216689c1c4465" title="1 if each returned value falls within the same fixed min/max range.">hasKnownExtents</a>;
-<a name="l00328"></a>00328         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#c9f5924c0be7571bba8e7ae7e7a921f4" title="Minimum value of the results in the output.">minValue</a> = sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#9a28180989e3d028c12a98517479dc46" title="Minimum value for a returned result in any bin, if hasKnownExtents.">minValue</a>;
-<a name="l00329"></a>00329         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#907b4e8fbb48a46ac5a05f880d72719f" title="Maximum value of the results in the output.">maxValue</a> = sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#4cbe540a247df60f85b00b2aa16461ee" title="Maximum value for a returned result in any bin, if hasKnownExtents.">maxValue</a>;
-<a name="l00330"></a>00330         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1b4858928d23bfd7d5bc557c82a83fb4" title="True if the output values are quantized to a particular resolution.">isQuantized</a> = sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#b56cf0bbb17136819024574d5cc65e30" title="1 if returned results are quantized to a particular resolution.">isQuantized</a>;
-<a name="l00331"></a>00331         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#3bed37153067b625b95acb40b60dbf0b" title="Quantization resolution of the output values (e.g.">quantizeStep</a> = sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#71aa40222dda4321030cccd0bb655fe3" title="Quantization resolution for returned results, if isQuantized.">quantizeStep</a>;
-<a name="l00332"></a>00332 
-<a name="l00333"></a>00333         <span class="keywordflow">switch</span> (sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#5da1d27cc99badc214640e859b882072" title="Time positioning method for returned results (see VampSampleType).">sampleType</a>) {
-<a name="l00334"></a>00334         <span class="keywordflow">case</span> <a class="code" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821b546deafd57f175fb1e7f9cbea1c5113" title="Each process call returns results aligned with call&amp;#39;s block start.">vampOneSamplePerStep</a>:
-<a name="l00335"></a>00335             d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d" title="Positioning in time of the output results.">sampleType</a> = <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca" title="Results from each process() align with that call&amp;#39;s block start.">OutputDescriptor::OneSamplePerStep</a>; <span class="keywordflow">break</span>;
-<a name="l00336"></a>00336         <span class="keywordflow">case</span> <a class="code" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821afc8a05f722bc83ecce227e12e838cf8" title="Returned results are evenly spaced at samplerate specified below.">vampFixedSampleRate</a>:
-<a name="l00337"></a>00337             d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d" title="Positioning in time of the output results.">sampleType</a> = <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c4c74bd2fc96dfe2815623f94b40e5629" title="Results are evenly spaced in time (sampleRate specified below).">OutputDescriptor::FixedSampleRate</a>; <span class="keywordflow">break</span>;
-<a name="l00338"></a>00338         <span class="keywordflow">case</span> <a class="code" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821bae8a21a9e30eb73e16d6abc6c7415e8" title="Returned results have their own individual timestamps.">vampVariableSampleRate</a>:
-<a name="l00339"></a>00339             d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d" title="Positioning in time of the output results.">sampleType</a> = <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e" title="Results are unevenly spaced and have individual timestamps.">OutputDescriptor::VariableSampleRate</a>; <span class="keywordflow">break</span>;
-<a name="l00340"></a>00340         }
-<a name="l00341"></a>00341 
-<a name="l00342"></a>00342         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#dd0cbbdfa9c91764037c39365b1d42af" title="Sample rate of the output results, as samples per second.">sampleRate</a> = sd-&gt;<a class="code" href="struct__VampOutputDescriptor.html#1ccf193317b2b9c2eb0dbd8dcf61d26e" title="Sample rate of returned results, if sampleType is vampFixedSampleRate.">sampleRate</a>;
-<a name="l00343"></a>00343 
-<a name="l00344"></a>00344         list.push_back(d);
-<a name="l00345"></a>00345 
-<a name="l00346"></a>00346         <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#8cc38edc921616e67e551aa03397ec79" title="Destroy a descriptor for a feature output.">releaseOutputDescriptor</a>(sd);
-<a name="l00347"></a>00347     }
-<a name="l00348"></a>00348 
-<a name="l00349"></a>00349     <span class="keywordflow">return</span> list;
-<a name="l00350"></a>00350 }
-<a name="l00351"></a>00351 
-<a name="l00352"></a>00352 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginHostAdapter::FeatureSet</a>
-<a name="l00353"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684">00353</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684" title="Process a single block of input data.">PluginHostAdapter::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
-<a name="l00354"></a>00354                            <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp)
-<a name="l00355"></a>00355 {
-<a name="l00356"></a>00356     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> fs;
-<a name="l00357"></a>00357     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>) <span class="keywordflow">return</span> fs;
-<a name="l00358"></a>00358 
-<a name="l00359"></a>00359     <span class="keywordtype">int</span> sec = timestamp.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>;
-<a name="l00360"></a>00360     <span class="keywordtype">int</span> nsec = timestamp.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>;
-<a name="l00361"></a>00361     
-<a name="l00362"></a>00362     <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *features = <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#c5a0a75b6e68b22fed536765d1f2f254" title="Process an input block and return a set of features.">process</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>,
-<a name="l00363"></a>00363                                                       inputBuffers,
-<a name="l00364"></a>00364                                                       sec, nsec);
-<a name="l00365"></a>00365     
-<a name="l00366"></a>00366     <a class="code" href="classVamp_1_1PluginHostAdapter.html#ee417a4c9ba9dbb63777c963d5f9452a">convertFeatures</a>(features, fs);
-<a name="l00367"></a>00367     <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#c4bafe8ad2734d21a433d745b18e7d63" title="Release a feature set returned from process or getRemainingFeatures.">releaseFeatureSet</a>(features);
-<a name="l00368"></a>00368     <span class="keywordflow">return</span> fs;
-<a name="l00369"></a>00369 }
-<a name="l00370"></a>00370 
-<a name="l00371"></a>00371 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginHostAdapter::FeatureSet</a>
-<a name="l00372"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#d3f5f16a89a821da2ec1186fd2062e83">00372</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#d3f5f16a89a821da2ec1186fd2062e83" title="After all blocks have been processed, calculate and return any remaining features...">PluginHostAdapter::getRemainingFeatures</a>()
-<a name="l00373"></a>00373 {
-<a name="l00374"></a>00374     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> fs;
-<a name="l00375"></a>00375     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>) <span class="keywordflow">return</span> fs;
-<a name="l00376"></a>00376     
-<a name="l00377"></a>00377     <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *features = <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#d22c666188aadab83c354a0edb18fcf0" title="Return any remaining features at the end of processing.">getRemainingFeatures</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>); 
-<a name="l00378"></a>00378 
-<a name="l00379"></a>00379     <a class="code" href="classVamp_1_1PluginHostAdapter.html#ee417a4c9ba9dbb63777c963d5f9452a">convertFeatures</a>(features, fs);
-<a name="l00380"></a>00380     <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#c4bafe8ad2734d21a433d745b18e7d63" title="Release a feature set returned from process or getRemainingFeatures.">releaseFeatureSet</a>(features);
-<a name="l00381"></a>00381     <span class="keywordflow">return</span> fs;
-<a name="l00382"></a>00382 }
-<a name="l00383"></a>00383 
-<a name="l00384"></a>00384 <span class="keywordtype">void</span>
-<a name="l00385"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#ee417a4c9ba9dbb63777c963d5f9452a">00385</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#ee417a4c9ba9dbb63777c963d5f9452a">PluginHostAdapter::convertFeatures</a>(<a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *features,
-<a name="l00386"></a>00386                                    <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> &amp;fs)
-<a name="l00387"></a>00387 {
-<a name="l00388"></a>00388     <span class="keywordflow">if</span> (!features) <span class="keywordflow">return</span>;
-<a name="l00389"></a>00389 
-<a name="l00390"></a>00390     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> outputs = <a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>-&gt;<a class="code" href="struct__VampPluginDescriptor.html#a8fc88da704e24b2b5f674821dd380c1" title="Get the number of feature outputs (distinct sets of results).">getOutputCount</a>(<a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>);
-<a name="l00391"></a>00391 
-<a name="l00392"></a>00392     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; outputs; ++i) {
-<a name="l00393"></a>00393         
-<a name="l00394"></a>00394         <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> &amp;list = features[i];
-<a name="l00395"></a>00395 
-<a name="l00396"></a>00396         <span class="keywordflow">if</span> (list.<a class="code" href="struct__VampFeatureList.html#01db33a31ae5e04a4bd097f4b6aa75f1" title="Number of features in this feature list.">featureCount</a> &gt; 0) {
-<a name="l00397"></a>00397 
-<a name="l00398"></a>00398             <a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> feature;
-<a name="l00399"></a>00399             feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.reserve(list.<a class="code" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f" title="Features in this feature list.">features</a>[0].<a class="code" href="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd" title="Number of values.">valueCount</a>);
-<a name="l00400"></a>00400 
-<a name="l00401"></a>00401             <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j &lt; list.<a class="code" href="struct__VampFeatureList.html#01db33a31ae5e04a4bd097f4b6aa75f1" title="Number of features in this feature list.">featureCount</a>; ++j) {
-<a name="l00402"></a>00402 
-<a name="l00403"></a>00403                 feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b" title="True if an output feature has its own timestamp.">hasTimestamp</a> = list.<a class="code" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f" title="Features in this feature list.">features</a>[j].<a class="code" href="struct__VampFeature.html#be6aa7a08185beeb9deca2d08d99859f" title="1 if the feature has a timestamp (i.e.">hasTimestamp</a>;
-<a name="l00404"></a>00404                 feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7" title="Timestamp of the output feature.">timestamp</a> = <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>(list.<a class="code" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f" title="Features in this feature list.">features</a>[j].<a class="code" href="struct__VampFeature.html#31f0b57050e33d082692536097953d9c" title="Seconds component of timestamp.">sec</a>,
-<a name="l00405"></a>00405                                              list.<a class="code" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f" title="Features in this feature list.">features</a>[j].<a class="code" href="struct__VampFeature.html#8874cb23600c6b10ca6e8a40920d999e" title="Nanoseconds component of timestamp.">nsec</a>);
-<a name="l00406"></a>00406 
-<a name="l00407"></a>00407                 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k = 0; k &lt; list.<a class="code" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f" title="Features in this feature list.">features</a>[j].<a class="code" href="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd" title="Number of values.">valueCount</a>; ++k) {
-<a name="l00408"></a>00408                     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.push_back(list.<a class="code" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f" title="Features in this feature list.">features</a>[j].<a class="code" href="struct__VampFeature.html#e4030f941ddb2bab8bc147b88e1f1c15" title="Values for this returned sample.">values</a>[k]);
-<a name="l00409"></a>00409                 }
-<a name="l00410"></a>00410 
-<a name="l00411"></a>00411                 <span class="keywordflow">if</span> (list.<a class="code" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f" title="Features in this feature list.">features</a>[j].<a class="code" href="struct__VampFeature.html#6662b7489a7890cae713bf4e8f6d52cd" title="Label for this returned sample.">label</a>) {
-<a name="l00412"></a>00412                     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036" title="Label for the sample of this feature.">label</a> = list.<a class="code" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f" title="Features in this feature list.">features</a>[j].<a class="code" href="struct__VampFeature.html#6662b7489a7890cae713bf4e8f6d52cd" title="Label for this returned sample.">label</a>;
-<a name="l00413"></a>00413                 }
-<a name="l00414"></a>00414 
-<a name="l00415"></a>00415                 fs[i].push_back(feature);
-<a name="l00416"></a>00416 
-<a name="l00417"></a>00417                 <span class="keywordflow">if</span> (list.<a class="code" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f" title="Features in this feature list.">features</a>[j].<a class="code" href="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd" title="Number of values.">valueCount</a> &gt; 0) {
-<a name="l00418"></a>00418                     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.clear();
-<a name="l00419"></a>00419                 }
-<a name="l00420"></a>00420 
-<a name="l00421"></a>00421                 <span class="keywordflow">if</span> (list.<a class="code" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f" title="Features in this feature list.">features</a>[j].<a class="code" href="struct__VampFeature.html#6662b7489a7890cae713bf4e8f6d52cd" title="Label for this returned sample.">label</a>) {
-<a name="l00422"></a>00422                     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036" title="Label for the sample of this feature.">label</a> = <span class="stringliteral">""</span>;
-<a name="l00423"></a>00423                 }
-<a name="l00424"></a>00424             }
-<a name="l00425"></a>00425         }
-<a name="l00426"></a>00426     }
-<a name="l00427"></a>00427 }
-<a name="l00428"></a>00428 
-<a name="l00429"></a>00429 }
-</pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/PluginHostAdapter_8cpp.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-<!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: PluginHostAdapter.cpp 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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
-  </div>
-</div>
-<div class="contents">
-<h1>PluginHostAdapter.cpp File Reference</h1>
-<p>
-
-<p>
-<a href="PluginHostAdapter_8cpp-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>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html">Vamp</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginHostAdapter_8cpp.html#256a5721249aa3309437212cc21a9fe4">PATH_SEPARATOR</a>&nbsp;&nbsp;&nbsp;':'</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginHostAdapter_8cpp.html#a7a9ce1e832e4f26cd5197ed38d4a58d">DEFAULT_VAMP_PATH</a>&nbsp;&nbsp;&nbsp;&quot;$HOME/vamp:$HOME/.vamp:/usr/local/lib/vamp:/usr/lib/vamp&quot;</td></tr>
-
-</table>
-<hr><h2>Define Documentation</h2>
-<a class="anchor" name="256a5721249aa3309437212cc21a9fe4"></a><!-- doxytag: member="PluginHostAdapter.cpp::PATH_SEPARATOR" ref="256a5721249aa3309437212cc21a9fe4" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define PATH_SEPARATOR&nbsp;&nbsp;&nbsp;':'          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00062">Vamp::PluginHostAdapter::getPluginPath()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="a7a9ce1e832e4f26cd5197ed38d4a58d"></a><!-- doxytag: member="PluginHostAdapter.cpp::DEFAULT_VAMP_PATH" ref="a7a9ce1e832e4f26cd5197ed38d4a58d" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define DEFAULT_VAMP_PATH&nbsp;&nbsp;&nbsp;&quot;$HOME/vamp:$HOME/.vamp:/usr/local/lib/vamp:/usr/lib/vamp&quot;          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00062">Vamp::PluginHostAdapter::getPluginPath()</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&nbsp;
-<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>
--- a/code-doc/PluginHostAdapter_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PluginHostAdapter_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -15,10 +15,10 @@
       <li><a href="dirs.html"><span>Directories</span></a></li>
     </ul>
   </div>
-  <div class="navpath"><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
+  <div class="navpath"><a class="el" href="dir_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>PluginHostAdapter.h</h1><a href="PluginHostAdapter_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -58,70 +58,76 @@
 <a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_PLUGIN_HOST_ADAPTER_H_</span>
 <a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_PLUGIN_HOST_ADAPTER_H_</span>
 <a name="l00039"></a>00039 <span class="preprocessor"></span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;<a class="code" href="vamp_8h.html">vamp/vamp.h</a>&gt;</span>
-<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;<a class="code" href="Plugin_8h.html">vamp-sdk/Plugin.h</a>&gt;</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="hostguard_8h.html">hostguard.h</a>"</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include "Plugin.h"</span>
 <a name="l00042"></a>00042 
-<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;<a class="code" href="vamp_8h.html">vamp/vamp.h</a>&gt;</span>
 <a name="l00044"></a>00044 
-<a name="l00045"></a>00045 <span class="keyword">namespace </span>Vamp {
+<a name="l00045"></a>00045 <span class="preprocessor">#include &lt;vector&gt;</span>
 <a name="l00046"></a>00046 
-<a name="l00064"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html">00064</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">PluginHostAdapter</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a>
-<a name="l00065"></a>00065 {
-<a name="l00066"></a>00066 <span class="keyword">public</span>:
-<a name="l00067"></a>00067     <a class="code" href="classVamp_1_1PluginHostAdapter.html#6535abd551acfbbaab381bbe1268cd49">PluginHostAdapter</a>(<span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *descriptor,
-<a name="l00068"></a>00068                       <span class="keywordtype">float</span> inputSampleRate);
-<a name="l00069"></a>00069     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#b0f354cb332852ab1892488f6b8e8c0e">~PluginHostAdapter</a>();
-<a name="l00070"></a>00070     
-<a name="l00071"></a>00071     <span class="keyword">static</span> std::vector&lt;std::string&gt; <a class="code" href="classVamp_1_1PluginHostAdapter.html#08d7ed3a11bf4a3c30fa0f9b41a0fed6">getPluginPath</a>();
-<a name="l00072"></a>00072 
-<a name="l00073"></a>00073     <span class="keywordtype">bool</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
-<a name="l00074"></a>00074     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#5d54c5bbd76bc27b7a243827148afeaa" title="Reset the plugin after use, to prepare it for another clean run.">reset</a>();
-<a name="l00075"></a>00075 
-<a name="l00076"></a>00076     <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#9c5239a4da67f1a426cd059e1a2856eb" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() <span class="keyword">const</span>;
-<a name="l00077"></a>00077 
-<a name="l00078"></a>00078     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e" title="Get the Vamp API compatibility level of the plugin.">getVampApiVersion</a>() <span class="keyword">const</span>;
-<a name="l00079"></a>00079     std::string <a class="code" href="classVamp_1_1PluginHostAdapter.html#b27423a656f878d97d2ad2eba4e76c7a" title="Get the computer-usable name of the plugin.">getIdentifier</a>() <span class="keyword">const</span>;
-<a name="l00080"></a>00080     std::string <a class="code" href="classVamp_1_1PluginHostAdapter.html#45f1d0377e233eeddd1b7cefb48be62a" title="Get a human-readable name or title of the plugin.">getName</a>() <span class="keyword">const</span>;
-<a name="l00081"></a>00081     std::string <a class="code" href="classVamp_1_1PluginHostAdapter.html#5eaafcef030e81b90a3e77cf16cf8ae1" title="Get a human-readable description for the plugin, typically a line of text that may...">getDescription</a>() <span class="keyword">const</span>;
-<a name="l00082"></a>00082     std::string <a class="code" href="classVamp_1_1PluginHostAdapter.html#f572be0b175f5661559006a380a0f3db" title="Get the name of the author or vendor of the plugin in human-readable form.">getMaker</a>() <span class="keyword">const</span>;
-<a name="l00083"></a>00083     <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#6fbd94781867ca46a20368c2a3593c77" title="Get the version number of the plugin.">getPluginVersion</a>() <span class="keyword">const</span>;
-<a name="l00084"></a>00084     std::string <a class="code" href="classVamp_1_1PluginHostAdapter.html#c73c9d6baad04369beee695e99584815" title="Get the copyright statement or licensing summary for the plugin.">getCopyright</a>() <span class="keyword">const</span>;
-<a name="l00085"></a>00085 
-<a name="l00086"></a>00086     <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#bfa93b20d9b5651a32042a9bb7c8df13" title="Get the controllable parameters of this plugin.">getParameterDescriptors</a>() <span class="keyword">const</span>;
-<a name="l00087"></a>00087     <span class="keywordtype">float</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb" title="Get the value of a named parameter.">getParameter</a>(std::string) <span class="keyword">const</span>;
-<a name="l00088"></a>00088     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6" title="Set a named parameter.">setParameter</a>(std::string, <span class="keywordtype">float</span>);
+<a name="l00047"></a>00047 <a class="code" href="hostguard_8h.html#ef42eae5f1b0b897d8dac58cd54afbcd">_VAMP_SDK_HOSTSPACE_BEGIN</a>(PluginHostAdapter.h)
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049 namespace Vamp {
+<a name="l00050"></a>00050 
+<a name="l00068"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html">00068</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">PluginHostAdapter</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a>
+<a name="l00069"></a>00069 {
+<a name="l00070"></a>00070 <span class="keyword">public</span>:
+<a name="l00071"></a>00071     <a class="code" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">PluginHostAdapter</a>(<span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *descriptor,
+<a name="l00072"></a>00072                       <span class="keywordtype">float</span> inputSampleRate);
+<a name="l00073"></a>00073     <span class="keyword">virtual</span> ~<a class="code" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">PluginHostAdapter</a>();
+<a name="l00074"></a>00074     
+<a name="l00075"></a>00075     <span class="keyword">static</span> std::vector&lt;std::string&gt; getPluginPath();
+<a name="l00076"></a>00076 
+<a name="l00077"></a>00077     <span class="keywordtype">bool</span> initialise(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
+<a name="l00078"></a>00078     <span class="keywordtype">void</span> reset();
+<a name="l00079"></a>00079 
+<a name="l00080"></a>00080     <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> getInputDomain() <span class="keyword">const</span>;
+<a name="l00081"></a>00081 
+<a name="l00082"></a>00082     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getVampApiVersion() <span class="keyword">const</span>;
+<a name="l00083"></a>00083     std::string getIdentifier() <span class="keyword">const</span>;
+<a name="l00084"></a>00084     std::string getName() <span class="keyword">const</span>;
+<a name="l00085"></a>00085     std::string getDescription() <span class="keyword">const</span>;
+<a name="l00086"></a>00086     std::string getMaker() <span class="keyword">const</span>;
+<a name="l00087"></a>00087     <span class="keywordtype">int</span> getPluginVersion() <span class="keyword">const</span>;
+<a name="l00088"></a>00088     std::string getCopyright() <span class="keyword">const</span>;
 <a name="l00089"></a>00089 
-<a name="l00090"></a>00090     <a class="code" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#7ac5681dcfe08b7b8a796bffc0aff3e3" title="Get the program settings available in this plugin.">getPrograms</a>() <span class="keyword">const</span>;
-<a name="l00091"></a>00091     std::string <a class="code" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867" title="Get the current program.">getCurrentProgram</a>() <span class="keyword">const</span>;
-<a name="l00092"></a>00092     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683" title="Select a program.">selectProgram</a>(std::string);
+<a name="l00090"></a>00090     ParameterList getParameterDescriptors() <span class="keyword">const</span>;
+<a name="l00091"></a>00091     <span class="keywordtype">float</span> getParameter(std::string) <span class="keyword">const</span>;
+<a name="l00092"></a>00092     <span class="keywordtype">void</span> setParameter(std::string, <span class="keywordtype">float</span>);
 <a name="l00093"></a>00093 
-<a name="l00094"></a>00094     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe" title="Get the preferred step size (window increment -- the distance in sample frames between...">getPreferredStepSize</a>() <span class="keyword">const</span>;
-<a name="l00095"></a>00095     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a" title="Get the preferred block size (window size -- the number of sample frames passed in...">getPreferredBlockSize</a>() <span class="keyword">const</span>;
-<a name="l00096"></a>00096 
-<a name="l00097"></a>00097     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d" title="Get the minimum supported number of input channels.">getMinChannelCount</a>() <span class="keyword">const</span>;
-<a name="l00098"></a>00098     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0" title="Get the maximum supported number of input channels.">getMaxChannelCount</a>() <span class="keyword">const</span>;
-<a name="l00099"></a>00099 
-<a name="l00100"></a>00100     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#e02670cca9d25cdc4100cbe7a12e3e68" title="Get the outputs of this plugin.">getOutputDescriptors</a>() <span class="keyword">const</span>;
-<a name="l00101"></a>00101 
-<a name="l00102"></a>00102     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684" title="Process a single block of input data.">process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp);
+<a name="l00094"></a>00094     ProgramList getPrograms() <span class="keyword">const</span>;
+<a name="l00095"></a>00095     std::string getCurrentProgram() <span class="keyword">const</span>;
+<a name="l00096"></a>00096     <span class="keywordtype">void</span> selectProgram(std::string);
+<a name="l00097"></a>00097 
+<a name="l00098"></a>00098     <span class="keywordtype">size_t</span> getPreferredStepSize() <span class="keyword">const</span>;
+<a name="l00099"></a>00099     <span class="keywordtype">size_t</span> getPreferredBlockSize() <span class="keyword">const</span>;
+<a name="l00100"></a>00100 
+<a name="l00101"></a>00101     <span class="keywordtype">size_t</span> getMinChannelCount() <span class="keyword">const</span>;
+<a name="l00102"></a>00102     <span class="keywordtype">size_t</span> getMaxChannelCount() <span class="keyword">const</span>;
 <a name="l00103"></a>00103 
-<a name="l00104"></a>00104     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#d3f5f16a89a821da2ec1186fd2062e83" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures</a>();
+<a name="l00104"></a>00104     OutputList getOutputDescriptors() <span class="keyword">const</span>;
 <a name="l00105"></a>00105 
-<a name="l00106"></a>00106 <span class="keyword">protected</span>:
-<a name="l00107"></a>00107     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html#ee417a4c9ba9dbb63777c963d5f9452a">convertFeatures</a>(<a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *, <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> &amp;);
-<a name="l00108"></a>00108 
-<a name="l00109"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">00109</a>     <span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *<a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a>;
-<a name="l00110"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">00110</a>     <a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> <a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a>;
-<a name="l00111"></a>00111 };
+<a name="l00106"></a>00106     FeatureSet process(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp);
+<a name="l00107"></a>00107 
+<a name="l00108"></a>00108     FeatureSet getRemainingFeatures();
+<a name="l00109"></a>00109 
+<a name="l00110"></a>00110 <span class="keyword">protected</span>:
+<a name="l00111"></a>00111     <span class="keywordtype">void</span> convertFeatures(<a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *, FeatureSet &amp;);
 <a name="l00112"></a>00112 
-<a name="l00113"></a>00113 }
-<a name="l00114"></a>00114 
-<a name="l00115"></a>00115 <span class="preprocessor">#endif</span>
-<a name="l00116"></a>00116 <span class="preprocessor"></span>
-<a name="l00117"></a>00117 
+<a name="l00113"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">00113</a>     <span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *m_descriptor;
+<a name="l00114"></a><a class="code" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">00114</a>     <a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> m_handle;
+<a name="l00115"></a>00115 };
+<a name="l00116"></a>00116 
+<a name="l00117"></a>00117 }
+<a name="l00118"></a>00118 
+<a name="l00119"></a>00119 <a class="code" href="hostguard_8h.html#0e6efdc2909bdb0cfab70e087d91b171">_VAMP_SDK_HOSTSPACE_END</a>(PluginHostAdapter.h)
+<a name="l00120"></a>00120 
+<a name="l00121"></a>00121 <span class="preprocessor">#endif</span>
+<a name="l00122"></a>00122 <span class="preprocessor"></span>
+<a name="l00123"></a>00123 
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PluginHostAdapter_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PluginHostAdapter_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -15,7 +15,7 @@
       <li><a href="dirs.html"><span>Directories</span></a></li>
     </ul>
   </div>
-  <div class="navpath"><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
+  <div class="navpath"><a class="el" href="dir_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
   </div>
 </div>
 <div class="contents">
@@ -31,11 +31,11 @@
 <tr><td colspan="2"><br><h2>Classes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">PluginHostAdapter</a> is a wrapper class 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> host can use to make the C-language VampPluginDescriptor object appear as a C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> object.  <a href="classVamp_1_1PluginHostAdapter.html#_details">More...</a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">PluginHostAdapter</a> is a wrapper class that a <a class="el" href="namespaceVamp.html">Vamp</a> host can use to make the C-language VampPluginDescriptor object appear as a C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> object.  <a href="classVamp_1_1PluginHostAdapter.html#_details">More...</a><br></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PluginInputDomainAdapter_8cpp-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,563 +0,0 @@
-<!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: PluginInputDomainAdapter.cpp Source File</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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
-  </div>
-</div>
-</div>
-<h1>PluginInputDomainAdapter.cpp</h1><a href="PluginInputDomainAdapter_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
-<a name="l00002"></a>00002 
-<a name="l00003"></a>00003 <span class="comment">/*</span>
-<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
-<a name="l00005"></a>00005 <span class="comment"></span>
-<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
-<a name="l00007"></a>00007 <span class="comment"></span>
-<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
-<a name="l00009"></a>00009 <span class="comment">    Copyright 2006-2007 Chris Cannam and QMUL.</span>
-<a name="l00010"></a>00010 <span class="comment">  </span>
-<a name="l00011"></a>00011 <span class="comment">    This file is based in part on Don Cross's public domain FFT</span>
-<a name="l00012"></a>00012 <span class="comment">    implementation.</span>
-<a name="l00013"></a>00013 <span class="comment"></span>
-<a name="l00014"></a>00014 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
-<a name="l00015"></a>00015 <span class="comment">    obtaining a copy of this software and associated documentation</span>
-<a name="l00016"></a>00016 <span class="comment">    files (the "Software"), to deal in the Software without</span>
-<a name="l00017"></a>00017 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
-<a name="l00018"></a>00018 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
-<a name="l00019"></a>00019 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
-<a name="l00020"></a>00020 <span class="comment">    furnished to do so, subject to the following conditions:</span>
-<a name="l00021"></a>00021 <span class="comment"></span>
-<a name="l00022"></a>00022 <span class="comment">    The above copyright notice and this permission notice shall be</span>
-<a name="l00023"></a>00023 <span class="comment">    included in all copies or substantial portions of the Software.</span>
-<a name="l00024"></a>00024 <span class="comment"></span>
-<a name="l00025"></a>00025 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
-<a name="l00026"></a>00026 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
-<a name="l00027"></a>00027 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
-<a name="l00028"></a>00028 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
-<a name="l00029"></a>00029 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
-<a name="l00030"></a>00030 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
-<a name="l00031"></a>00031 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
-<a name="l00032"></a>00032 <span class="comment"></span>
-<a name="l00033"></a>00033 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
-<a name="l00034"></a>00034 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
-<a name="l00035"></a>00035 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
-<a name="l00036"></a>00036 <span class="comment">    use or other dealings in this Software without prior written</span>
-<a name="l00037"></a>00037 <span class="comment">    authorization.</span>
-<a name="l00038"></a>00038 <span class="comment">*/</span>
-<a name="l00039"></a>00039 
-<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="PluginInputDomainAdapter_8h.html">PluginInputDomainAdapter.h</a>"</span>
-<a name="l00041"></a>00041 
-<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;cmath&gt;</span>
-<a name="l00043"></a>00043 
-<a name="l00044"></a>00044 
-<a name="l00068"></a>00068 <span class="preprocessor">#ifdef HAVE_FFTW3</span>
-<a name="l00069"></a>00069 <span class="preprocessor"></span><span class="preprocessor">#include &lt;fftw3.h&gt;</span>
-<a name="l00070"></a>00070 <span class="preprocessor">#endif</span>
-<a name="l00071"></a>00071 <span class="preprocessor"></span>
-<a name="l00072"></a>00072 
-<a name="l00073"></a>00073 <span class="keyword">namespace </span>Vamp {
-<a name="l00074"></a>00074 
-<a name="l00075"></a>00075 <span class="keyword">namespace </span>HostExt {
-<a name="l00076"></a>00076 
-<a name="l00077"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">00077</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">PluginInputDomainAdapter::Impl</a>
-<a name="l00078"></a>00078 {
-<a name="l00079"></a>00079 <span class="keyword">public</span>:
-<a name="l00080"></a>00080     <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dffa09cc6be98d87cb33c1e92310c9fc">Impl</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin, <span class="keywordtype">float</span> inputSampleRate);
-<a name="l00081"></a>00081     <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#2c75fc9191782ee69185c60f9b68cb90">~Impl</a>();
-<a name="l00082"></a>00082     
-<a name="l00083"></a>00083     <span class="keywordtype">bool</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#58c9bcbddcb7c3a1a3791b2a04e7372e">initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
-<a name="l00084"></a>00084 
-<a name="l00085"></a>00085     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4380af577605306d2edab51042c71681">getPreferredStepSize</a>() <span class="keyword">const</span>;
-<a name="l00086"></a>00086     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#b530681a774b29db3fd059149f4c1bf9">getPreferredBlockSize</a>() <span class="keyword">const</span>;
-<a name="l00087"></a>00087 
-<a name="l00088"></a>00088     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#1bd8c3ca5ce5d8254d2d4af910cc31f0">process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp);
-<a name="l00089"></a>00089 
-<a name="l00090"></a>00090 <span class="keyword">protected</span>:
-<a name="l00091"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">00091</a>     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">m_plugin</a>;
-<a name="l00092"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#bafd656a3bf6d74d6dd38def0c73cc57">00092</a>     <span class="keywordtype">float</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#bafd656a3bf6d74d6dd38def0c73cc57">m_inputSampleRate</a>;
-<a name="l00093"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">00093</a>     <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">m_channels</a>;
-<a name="l00094"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#efcb8c5e8d65003eaf96d2bfefc83fe5">00094</a>     <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#efcb8c5e8d65003eaf96d2bfefc83fe5">m_blockSize</a>;
-<a name="l00095"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">00095</a>     <span class="keywordtype">float</span> **<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">m_freqbuf</a>;
-<a name="l00096"></a>00096 
-<a name="l00097"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">00097</a>     <span class="keywordtype">double</span> *<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a>;
-<a name="l00098"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a43f6ea4727b9bb29d6d66869886d15e">00098</a>     <span class="keywordtype">double</span> *<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a43f6ea4727b9bb29d6d66869886d15e">m_window</a>;
-<a name="l00099"></a>00099 
-<a name="l00100"></a>00100 <span class="preprocessor">#ifdef HAVE_FFTW3</span>
-<a name="l00101"></a>00101 <span class="preprocessor"></span>    fftw_plan m_plan;
-<a name="l00102"></a>00102     fftw_complex *m_cbuf;
-<a name="l00103"></a>00103 <span class="preprocessor">#else</span>
-<a name="l00104"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#6407b3c17dc96ba7036f2161b1aa30cb">00104</a> <span class="preprocessor"></span>    <span class="keywordtype">double</span> *<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#6407b3c17dc96ba7036f2161b1aa30cb">m_ro</a>;
-<a name="l00105"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4d73b85b9ba00c10b55be4febc56dfc4">00105</a>     <span class="keywordtype">double</span> *<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4d73b85b9ba00c10b55be4febc56dfc4">m_io</a>;
-<a name="l00106"></a>00106     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#7ea985ca8cdc45dd156e8d50293c3085">fft</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n, <span class="keywordtype">bool</span> inverse,
-<a name="l00107"></a>00107              <span class="keywordtype">double</span> *ri, <span class="keywordtype">double</span> *ii, <span class="keywordtype">double</span> *ro, <span class="keywordtype">double</span> *io);
-<a name="l00108"></a>00108 <span class="preprocessor">#endif</span>
-<a name="l00109"></a>00109 <span class="preprocessor"></span>
-<a name="l00110"></a>00110     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#76073669d78c0681a3b3a9e71da86ae6">makeBlockSizeAcceptable</a>(<span class="keywordtype">size_t</span>) <span class="keyword">const</span>;
-<a name="l00111"></a>00111 };
-<a name="l00112"></a>00112 
-<a name="l00113"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#878e7275acdb77efc7a802944305039d">00113</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#878e7275acdb77efc7a802944305039d">PluginInputDomainAdapter::PluginInputDomainAdapter</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin) :
-<a name="l00114"></a>00114     <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a>(plugin)
-<a name="l00115"></a>00115 {
-<a name="l00116"></a>00116     <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">m_impl</a> = <span class="keyword">new</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Impl</a>(plugin, <a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>);
-<a name="l00117"></a>00117 }
-<a name="l00118"></a>00118 
-<a name="l00119"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ec457c952155adf516dd8e3dc7739321">00119</a> PluginInputDomainAdapter::~PluginInputDomainAdapter()
-<a name="l00120"></a>00120 {
-<a name="l00121"></a>00121     <span class="keyword">delete</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">m_impl</a>;
-<a name="l00122"></a>00122 }
-<a name="l00123"></a>00123   
-<a name="l00124"></a>00124 <span class="keywordtype">bool</span>
-<a name="l00125"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c">00125</a> PluginInputDomainAdapter::initialise(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize)
-<a name="l00126"></a>00126 {
-<a name="l00127"></a>00127     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#58c9bcbddcb7c3a1a3791b2a04e7372e">initialise</a>(channels, stepSize, blockSize);
-<a name="l00128"></a>00128 }
-<a name="l00129"></a>00129 
-<a name="l00130"></a>00130 <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Plugin::InputDomain</a>
-<a name="l00131"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#376fa97a1c721255541fe35d71368976">00131</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#376fa97a1c721255541fe35d71368976" title="Get the plugin&amp;#39;s required input domain.">PluginInputDomainAdapter::getInputDomain</a>()<span class="keyword"> const</span>
-<a name="l00132"></a>00132 <span class="keyword"></span>{
-<a name="l00133"></a>00133     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a>;
-<a name="l00134"></a>00134 }
-<a name="l00135"></a>00135 
-<a name="l00136"></a>00136 <span class="keywordtype">size_t</span>
-<a name="l00137"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">00137</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565" title="Get the preferred step size (window increment -- the distance in sample frames between...">PluginInputDomainAdapter::getPreferredStepSize</a>()<span class="keyword"> const</span>
-<a name="l00138"></a>00138 <span class="keyword"></span>{
-<a name="l00139"></a>00139     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4380af577605306d2edab51042c71681">getPreferredStepSize</a>();
-<a name="l00140"></a>00140 }
-<a name="l00141"></a>00141 
-<a name="l00142"></a>00142 <span class="keywordtype">size_t</span>
-<a name="l00143"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">00143</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5" title="Get the preferred block size (window size -- the number of sample frames passed in...">PluginInputDomainAdapter::getPreferredBlockSize</a>()<span class="keyword"> const</span>
-<a name="l00144"></a>00144 <span class="keyword"></span>{
-<a name="l00145"></a>00145     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#b530681a774b29db3fd059149f4c1bf9">getPreferredBlockSize</a>();
-<a name="l00146"></a>00146 }
-<a name="l00147"></a>00147 
-<a name="l00148"></a>00148 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a>
-<a name="l00149"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07">00149</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07" title="Process a single block of input data.">PluginInputDomainAdapter::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp)
-<a name="l00150"></a>00150 {
-<a name="l00151"></a>00151     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#1bd8c3ca5ce5d8254d2d4af910cc31f0">process</a>(inputBuffers, timestamp);
-<a name="l00152"></a>00152 }
-<a name="l00153"></a>00153 
-<a name="l00154"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dffa09cc6be98d87cb33c1e92310c9fc">00154</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dffa09cc6be98d87cb33c1e92310c9fc">PluginInputDomainAdapter::Impl::Impl</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin, <span class="keywordtype">float</span> inputSampleRate) :
-<a name="l00155"></a>00155     <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>(plugin),
-<a name="l00156"></a>00156     <a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>(inputSampleRate),
-<a name="l00157"></a>00157     m_channels(0),
-<a name="l00158"></a>00158     m_blockSize(0),
-<a name="l00159"></a>00159     m_freqbuf(0),
-<a name="l00160"></a>00160     m_ri(0),
-<a name="l00161"></a>00161     m_window(0),
-<a name="l00162"></a>00162 #ifdef HAVE_FFTW3
-<a name="l00163"></a>00163     m_plan(0),
-<a name="l00164"></a>00164     m_cbuf(0)
-<a name="l00165"></a>00165 #else
-<a name="l00166"></a>00166     m_ro(0),
-<a name="l00167"></a>00167     m_io(0)
-<a name="l00168"></a>00168 #endif
-<a name="l00169"></a>00169 {
-<a name="l00170"></a>00170 }
-<a name="l00171"></a>00171 
-<a name="l00172"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#2c75fc9191782ee69185c60f9b68cb90">00172</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#2c75fc9191782ee69185c60f9b68cb90">PluginInputDomainAdapter::Impl::~Impl</a>()
-<a name="l00173"></a>00173 {
-<a name="l00174"></a>00174     <span class="comment">// the adapter will delete the plugin</span>
-<a name="l00175"></a>00175 
-<a name="l00176"></a>00176     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">m_channels</a> &gt; 0) {
-<a name="l00177"></a>00177         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> c = 0; c &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">m_channels</a>; ++c) {
-<a name="l00178"></a>00178             <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">m_freqbuf</a>[c];
-<a name="l00179"></a>00179         }
-<a name="l00180"></a>00180         <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">m_freqbuf</a>;
-<a name="l00181"></a>00181 <span class="preprocessor">#ifdef HAVE_FFTW3</span>
-<a name="l00182"></a>00182 <span class="preprocessor"></span>        <span class="keywordflow">if</span> (m_plan) {
-<a name="l00183"></a>00183             fftw_destroy_plan(m_plan);
-<a name="l00184"></a>00184             fftw_free(<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a>);
-<a name="l00185"></a>00185             fftw_free(m_cbuf);
-<a name="l00186"></a>00186             m_plan = 0;
-<a name="l00187"></a>00187         }
-<a name="l00188"></a>00188 <span class="preprocessor">#else</span>
-<a name="l00189"></a>00189 <span class="preprocessor"></span>        <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a>;
-<a name="l00190"></a>00190         <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#6407b3c17dc96ba7036f2161b1aa30cb">m_ro</a>;
-<a name="l00191"></a>00191         <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4d73b85b9ba00c10b55be4febc56dfc4">m_io</a>;
-<a name="l00192"></a>00192 <span class="preprocessor">#endif</span>
-<a name="l00193"></a>00193 <span class="preprocessor"></span>        <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a43f6ea4727b9bb29d6d66869886d15e">m_window</a>;
-<a name="l00194"></a>00194     }
-<a name="l00195"></a>00195 }
-<a name="l00196"></a>00196 
-<a name="l00197"></a>00197 <span class="comment">// for some visual studii apparently</span>
-<a name="l00198"></a>00198 <span class="preprocessor">#ifndef M_PI</span>
-<a name="l00199"></a><a class="code" href="PluginInputDomainAdapter_8cpp.html#e71449b1cc6e6250b91f539153a7a0d3">00199</a> <span class="preprocessor"></span><span class="preprocessor">#define M_PI 3.14159265358979232846</span>
-<a name="l00200"></a>00200 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00201"></a>00201 <span class="preprocessor"></span>    
-<a name="l00202"></a>00202 <span class="keywordtype">bool</span>
-<a name="l00203"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#58c9bcbddcb7c3a1a3791b2a04e7372e">00203</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#58c9bcbddcb7c3a1a3791b2a04e7372e">PluginInputDomainAdapter::Impl::initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize)
-<a name="l00204"></a>00204 {
-<a name="l00205"></a>00205     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() == <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a>) {
-<a name="l00206"></a>00206 
-<a name="l00207"></a>00207         <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#efcb8c5e8d65003eaf96d2bfefc83fe5">m_blockSize</a> = int(blockSize);
-<a name="l00208"></a>00208         <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">m_channels</a> = int(channels);
-<a name="l00209"></a>00209 
-<a name="l00210"></a>00210         <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise</a>(channels, stepSize, blockSize);
-<a name="l00211"></a>00211     }
-<a name="l00212"></a>00212 
-<a name="l00213"></a>00213     <span class="keywordflow">if</span> (blockSize &lt; 2) {
-<a name="l00214"></a>00214         std::cerr &lt;&lt; <span class="stringliteral">"ERROR: Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise: blocksize &lt; 2 not supported"</span> &lt;&lt; std::endl;
-<a name="l00215"></a>00215         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00216"></a>00216     }                
-<a name="l00217"></a>00217         
-<a name="l00218"></a>00218     <span class="keywordflow">if</span> (blockSize &amp; (blockSize-1)) {
-<a name="l00219"></a>00219         std::cerr &lt;&lt; <span class="stringliteral">"ERROR: Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise: non-power-of-two\nblocksize "</span> &lt;&lt; blockSize &lt;&lt; <span class="stringliteral">" not supported"</span> &lt;&lt; std::endl;
-<a name="l00220"></a>00220         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00221"></a>00221     }
-<a name="l00222"></a>00222 
-<a name="l00223"></a>00223     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">m_channels</a> &gt; 0) {
-<a name="l00224"></a>00224         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> c = 0; c &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">m_channels</a>; ++c) {
-<a name="l00225"></a>00225             <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">m_freqbuf</a>[c];
-<a name="l00226"></a>00226         }
-<a name="l00227"></a>00227         <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">m_freqbuf</a>;
-<a name="l00228"></a>00228 <span class="preprocessor">#ifdef HAVE_FFTW3</span>
-<a name="l00229"></a>00229 <span class="preprocessor"></span>        <span class="keywordflow">if</span> (m_plan) {
-<a name="l00230"></a>00230             fftw_destroy_plan(m_plan);
-<a name="l00231"></a>00231             fftw_free(<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a>);
-<a name="l00232"></a>00232             fftw_free(m_cbuf);
-<a name="l00233"></a>00233             m_plan = 0;
-<a name="l00234"></a>00234         }
-<a name="l00235"></a>00235 <span class="preprocessor">#else</span>
-<a name="l00236"></a>00236 <span class="preprocessor"></span>        <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a>;
-<a name="l00237"></a>00237         <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#6407b3c17dc96ba7036f2161b1aa30cb">m_ro</a>;
-<a name="l00238"></a>00238         <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4d73b85b9ba00c10b55be4febc56dfc4">m_io</a>;
-<a name="l00239"></a>00239 <span class="preprocessor">#endif</span>
-<a name="l00240"></a>00240 <span class="preprocessor"></span>        <span class="keyword">delete</span>[] <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a43f6ea4727b9bb29d6d66869886d15e">m_window</a>;
-<a name="l00241"></a>00241     }
-<a name="l00242"></a>00242 
-<a name="l00243"></a>00243     <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#efcb8c5e8d65003eaf96d2bfefc83fe5">m_blockSize</a> = int(blockSize);
-<a name="l00244"></a>00244     <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">m_channels</a> = int(channels);
-<a name="l00245"></a>00245 
-<a name="l00246"></a>00246     <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">m_freqbuf</a> = <span class="keyword">new</span> <span class="keywordtype">float</span> *[<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">m_channels</a>];
-<a name="l00247"></a>00247     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> c = 0; c &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">m_channels</a>; ++c) {
-<a name="l00248"></a>00248         <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">m_freqbuf</a>[c] = <span class="keyword">new</span> <span class="keywordtype">float</span>[<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#efcb8c5e8d65003eaf96d2bfefc83fe5">m_blockSize</a> + 2];
-<a name="l00249"></a>00249     }
-<a name="l00250"></a>00250     <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a43f6ea4727b9bb29d6d66869886d15e">m_window</a> = <span class="keyword">new</span> <span class="keywordtype">double</span>[<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#efcb8c5e8d65003eaf96d2bfefc83fe5">m_blockSize</a>];
-<a name="l00251"></a>00251 
-<a name="l00252"></a>00252     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#efcb8c5e8d65003eaf96d2bfefc83fe5">m_blockSize</a>; ++i) {
-<a name="l00253"></a>00253         <span class="comment">// Hanning window</span>
-<a name="l00254"></a>00254         <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a43f6ea4727b9bb29d6d66869886d15e">m_window</a>[i] = (0.50 - 0.50 * cos((2.0 * <a class="code" href="PluginInputDomainAdapter_8cpp.html#e71449b1cc6e6250b91f539153a7a0d3">M_PI</a> * i) / m_blockSize));
-<a name="l00255"></a>00255     }
-<a name="l00256"></a>00256 
-<a name="l00257"></a>00257 <span class="preprocessor">#ifdef HAVE_FFTW3</span>
-<a name="l00258"></a>00258 <span class="preprocessor"></span>    <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a> = (<span class="keywordtype">double</span> *)fftw_malloc(blockSize * <span class="keyword">sizeof</span>(<span class="keywordtype">double</span>));
-<a name="l00259"></a>00259     m_cbuf = (fftw_complex *)fftw_malloc((blockSize/2 + 1) * <span class="keyword">sizeof</span>(fftw_complex));
-<a name="l00260"></a>00260     m_plan = fftw_plan_dft_r2c_1d(blockSize, <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a>, m_cbuf, FFTW_MEASURE);
-<a name="l00261"></a>00261 <span class="preprocessor">#else</span>
-<a name="l00262"></a>00262 <span class="preprocessor"></span>    <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a> = <span class="keyword">new</span> <span class="keywordtype">double</span>[m_blockSize];
-<a name="l00263"></a>00263     <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#6407b3c17dc96ba7036f2161b1aa30cb">m_ro</a> = <span class="keyword">new</span> <span class="keywordtype">double</span>[m_blockSize];
-<a name="l00264"></a>00264     <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4d73b85b9ba00c10b55be4febc56dfc4">m_io</a> = <span class="keyword">new</span> <span class="keywordtype">double</span>[m_blockSize];
-<a name="l00265"></a>00265 <span class="preprocessor">#endif</span>
-<a name="l00266"></a>00266 <span class="preprocessor"></span>
-<a name="l00267"></a>00267     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise</a>(channels, stepSize, blockSize);
-<a name="l00268"></a>00268 }
-<a name="l00269"></a>00269 
-<a name="l00270"></a>00270 <span class="keywordtype">size_t</span>
-<a name="l00271"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4380af577605306d2edab51042c71681">00271</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4380af577605306d2edab51042c71681">PluginInputDomainAdapter::Impl::getPreferredStepSize</a>()<span class="keyword"> const</span>
-<a name="l00272"></a>00272 <span class="keyword"></span>{
-<a name="l00273"></a>00273     <span class="keywordtype">size_t</span> step = <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567" title="Get the preferred step size (window increment -- the distance in sample frames between...">getPreferredStepSize</a>();
-<a name="l00274"></a>00274 
-<a name="l00275"></a>00275     <span class="keywordflow">if</span> (step == 0 &amp;&amp; (<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() == <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a>)) {
-<a name="l00276"></a>00276         step = <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#b530681a774b29db3fd059149f4c1bf9">getPreferredBlockSize</a>() / 2;
-<a name="l00277"></a>00277     }
-<a name="l00278"></a>00278 
-<a name="l00279"></a>00279     <span class="keywordflow">return</span> step;
-<a name="l00280"></a>00280 }
-<a name="l00281"></a>00281 
-<a name="l00282"></a>00282 <span class="keywordtype">size_t</span>
-<a name="l00283"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#b530681a774b29db3fd059149f4c1bf9">00283</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#b530681a774b29db3fd059149f4c1bf9">PluginInputDomainAdapter::Impl::getPreferredBlockSize</a>()<span class="keyword"> const</span>
-<a name="l00284"></a>00284 <span class="keyword"></span>{
-<a name="l00285"></a>00285     <span class="keywordtype">size_t</span> block = <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac" title="Get the preferred block size (window size -- the number of sample frames passed in...">getPreferredBlockSize</a>();
-<a name="l00286"></a>00286 
-<a name="l00287"></a>00287     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() == <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a>) {
-<a name="l00288"></a>00288         <span class="keywordflow">if</span> (block == 0) {
-<a name="l00289"></a>00289             block = 1024;
-<a name="l00290"></a>00290         } <span class="keywordflow">else</span> {
-<a name="l00291"></a>00291             block = <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#76073669d78c0681a3b3a9e71da86ae6">makeBlockSizeAcceptable</a>(block);
-<a name="l00292"></a>00292         }
-<a name="l00293"></a>00293     }
-<a name="l00294"></a>00294 
-<a name="l00295"></a>00295     <span class="keywordflow">return</span> block;
-<a name="l00296"></a>00296 }
-<a name="l00297"></a>00297 
-<a name="l00298"></a>00298 <span class="keywordtype">size_t</span>
-<a name="l00299"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#76073669d78c0681a3b3a9e71da86ae6">00299</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#76073669d78c0681a3b3a9e71da86ae6">PluginInputDomainAdapter::Impl::makeBlockSizeAcceptable</a>(<span class="keywordtype">size_t</span> blockSize)<span class="keyword"> const</span>
-<a name="l00300"></a>00300 <span class="keyword"></span>{
-<a name="l00301"></a>00301     <span class="keywordflow">if</span> (blockSize &lt; 2) {
-<a name="l00302"></a>00302 
-<a name="l00303"></a>00303         std::cerr &lt;&lt; <span class="stringliteral">"WARNING: Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise: blocksize &lt; 2 not"</span> &lt;&lt; std::endl
-<a name="l00304"></a>00304                   &lt;&lt; <span class="stringliteral">"supported, increasing from "</span> &lt;&lt; blockSize &lt;&lt; <span class="stringliteral">" to 2"</span> &lt;&lt; std::endl;
-<a name="l00305"></a>00305         blockSize = 2;
-<a name="l00306"></a>00306         
-<a name="l00307"></a>00307     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (blockSize &amp; (blockSize-1)) {
-<a name="l00308"></a>00308             
-<a name="l00309"></a>00309 <span class="preprocessor">#ifdef HAVE_FFTW3</span>
-<a name="l00310"></a>00310 <span class="preprocessor"></span>        <span class="comment">// not an issue with FFTW</span>
-<a name="l00311"></a>00311 <span class="preprocessor">#else</span>
-<a name="l00312"></a>00312 <span class="preprocessor"></span>
-<a name="l00313"></a>00313         <span class="comment">// not a power of two, can't handle that with our built-in FFT</span>
-<a name="l00314"></a>00314         <span class="comment">// implementation</span>
-<a name="l00315"></a>00315 
-<a name="l00316"></a>00316         <span class="keywordtype">size_t</span> nearest = blockSize;
-<a name="l00317"></a>00317         <span class="keywordtype">size_t</span> power = 0;
-<a name="l00318"></a>00318         <span class="keywordflow">while</span> (nearest &gt; 1) {
-<a name="l00319"></a>00319             nearest &gt;&gt;= 1;
-<a name="l00320"></a>00320             ++power;
-<a name="l00321"></a>00321         }
-<a name="l00322"></a>00322         nearest = 1;
-<a name="l00323"></a>00323         <span class="keywordflow">while</span> (power) {
-<a name="l00324"></a>00324             nearest &lt;&lt;= 1;
-<a name="l00325"></a>00325             --power;
-<a name="l00326"></a>00326         }
-<a name="l00327"></a>00327         
-<a name="l00328"></a>00328         <span class="keywordflow">if</span> (blockSize - nearest &gt; (nearest*2) - blockSize) {
-<a name="l00329"></a>00329             nearest = nearest*2;
-<a name="l00330"></a>00330         }
-<a name="l00331"></a>00331         
-<a name="l00332"></a>00332         std::cerr &lt;&lt; <span class="stringliteral">"WARNING: Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise: non-power-of-two\nblocksize "</span> &lt;&lt; blockSize &lt;&lt; <span class="stringliteral">" not supported, using blocksize "</span> &lt;&lt; nearest &lt;&lt; <span class="stringliteral">" instead"</span> &lt;&lt; std::endl;
-<a name="l00333"></a>00333         blockSize = nearest;
-<a name="l00334"></a>00334 
-<a name="l00335"></a>00335 <span class="preprocessor">#endif</span>
-<a name="l00336"></a>00336 <span class="preprocessor"></span>    }
-<a name="l00337"></a>00337 
-<a name="l00338"></a>00338     <span class="keywordflow">return</span> blockSize;
-<a name="l00339"></a>00339 }
-<a name="l00340"></a>00340 
-<a name="l00341"></a>00341 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a>
-<a name="l00342"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#1bd8c3ca5ce5d8254d2d4af910cc31f0">00342</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#1bd8c3ca5ce5d8254d2d4af910cc31f0">PluginInputDomainAdapter::Impl::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
-<a name="l00343"></a>00343                                         <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp)
-<a name="l00344"></a>00344 {
-<a name="l00345"></a>00345     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() == <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a>) {
-<a name="l00346"></a>00346         <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process</a>(inputBuffers, timestamp);
-<a name="l00347"></a>00347     }
-<a name="l00348"></a>00348 
-<a name="l00349"></a>00349     <span class="comment">// The timestamp supplied should be (according to the Vamp::Plugin</span>
-<a name="l00350"></a>00350     <span class="comment">// spec) the time of the start of the time-domain input block.</span>
-<a name="l00351"></a>00351     <span class="comment">// However, we want to pass to the plugin an FFT output calculated</span>
-<a name="l00352"></a>00352     <span class="comment">// from the block of samples _centred_ on that timestamp.</span>
-<a name="l00353"></a>00353     <span class="comment">// </span>
-<a name="l00354"></a>00354     <span class="comment">// We have two options:</span>
-<a name="l00355"></a>00355     <span class="comment">// </span>
-<a name="l00356"></a>00356     <span class="comment">// 1. Buffer the input, calculating the fft of the values at the</span>
-<a name="l00357"></a>00357     <span class="comment">// passed-in block minus blockSize/2 rather than starting at the</span>
-<a name="l00358"></a>00358     <span class="comment">// passed-in block.  So each time we call process on the plugin,</span>
-<a name="l00359"></a>00359     <span class="comment">// we are passing in the same timestamp as was passed to our own</span>
-<a name="l00360"></a>00360     <span class="comment">// process plugin, but not (the frequency domain representation</span>
-<a name="l00361"></a>00361     <span class="comment">// of) the same set of samples.  Advantages: avoids confusion in</span>
-<a name="l00362"></a>00362     <span class="comment">// the host by ensuring the returned values have timestamps</span>
-<a name="l00363"></a>00363     <span class="comment">// comparable with that passed in to this function (in fact this</span>
-<a name="l00364"></a>00364     <span class="comment">// is pretty much essential for one-value-per-block outputs);</span>
-<a name="l00365"></a>00365     <span class="comment">// consistent with hosts such as SV that deal with the</span>
-<a name="l00366"></a>00366     <span class="comment">// frequency-domain transform themselves.  Disadvantages: means</span>
-<a name="l00367"></a>00367     <span class="comment">// making the not necessarily correct assumption that the samples</span>
-<a name="l00368"></a>00368     <span class="comment">// preceding the first official block are all zero (or some other</span>
-<a name="l00369"></a>00369     <span class="comment">// known value).</span>
-<a name="l00370"></a>00370     <span class="comment">//</span>
-<a name="l00371"></a>00371     <span class="comment">// 2. Increase the passed-in timestamps by half the blocksize.  So</span>
-<a name="l00372"></a>00372     <span class="comment">// when we call process, we are passing in the frequency domain</span>
-<a name="l00373"></a>00373     <span class="comment">// representation of the same set of samples as passed to us, but</span>
-<a name="l00374"></a>00374     <span class="comment">// with a different timestamp.  Advantages: simplicity; avoids</span>
-<a name="l00375"></a>00375     <span class="comment">// iffy assumption mentioned above.  Disadvantages: inconsistency</span>
-<a name="l00376"></a>00376     <span class="comment">// with SV in cases where stepSize != blockSize/2; potential</span>
-<a name="l00377"></a>00377     <span class="comment">// confusion arising from returned timestamps being calculated</span>
-<a name="l00378"></a>00378     <span class="comment">// from the adjusted input timestamps rather than the original</span>
-<a name="l00379"></a>00379     <span class="comment">// ones (and inaccuracy where the returned timestamp is implied,</span>
-<a name="l00380"></a>00380     <span class="comment">// as in one-value-per-block).</span>
-<a name="l00381"></a>00381     <span class="comment">//</span>
-<a name="l00382"></a>00382     <span class="comment">// Neither way is ideal, but I don't think either is strictly</span>
-<a name="l00383"></a>00383     <span class="comment">// incorrect either.  I think this is just a case where the same</span>
-<a name="l00384"></a>00384     <span class="comment">// plugin can legitimately produce differing results from the same</span>
-<a name="l00385"></a>00385     <span class="comment">// input data, depending on how that data is packaged.</span>
-<a name="l00386"></a>00386     <span class="comment">// </span>
-<a name="l00387"></a>00387     <span class="comment">// We'll go for option 2, adjusting the timestamps.  Note in</span>
-<a name="l00388"></a>00388     <span class="comment">// particular that this means some results can differ from those</span>
-<a name="l00389"></a>00389     <span class="comment">// produced by SV.</span>
-<a name="l00390"></a>00390 
-<a name="l00391"></a>00391 <span class="comment">//    std::cerr &lt;&lt; "PluginInputDomainAdapter: sampleRate " &lt;&lt; m_inputSampleRate &lt;&lt; ", blocksize " &lt;&lt; m_blockSize &lt;&lt; ", adjusting time from " &lt;&lt; timestamp;</span>
-<a name="l00392"></a>00392 
-<a name="l00393"></a>00393     timestamp = timestamp + <a class="code" href="structVamp_1_1RealTime.html#3a5ecc8888b559aad3b7d96911786b3a" title="Convert a sample frame at the given sample rate into a RealTime.">RealTime::frame2RealTime</a>
-<a name="l00394"></a>00394         (<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#efcb8c5e8d65003eaf96d2bfefc83fe5">m_blockSize</a>/2, <span class="keywordtype">int</span>(<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#bafd656a3bf6d74d6dd38def0c73cc57">m_inputSampleRate</a> + 0.5));
-<a name="l00395"></a>00395 
-<a name="l00396"></a>00396 <span class="comment">//    std::cerr &lt;&lt; " to " &lt;&lt; timestamp &lt;&lt; std::endl;</span>
-<a name="l00397"></a>00397 
-<a name="l00398"></a>00398     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> c = 0; c &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">m_channels</a>; ++c) {
-<a name="l00399"></a>00399 
-<a name="l00400"></a>00400         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#efcb8c5e8d65003eaf96d2bfefc83fe5">m_blockSize</a>; ++i) {
-<a name="l00401"></a>00401             <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a>[i] = double(inputBuffers[c][i]) * <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a43f6ea4727b9bb29d6d66869886d15e">m_window</a>[i];
-<a name="l00402"></a>00402         }
-<a name="l00403"></a>00403 
-<a name="l00404"></a>00404         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; m_blockSize/2; ++i) {
-<a name="l00405"></a>00405             <span class="comment">// FFT shift</span>
-<a name="l00406"></a>00406             <span class="keywordtype">double</span> value = <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a>[i];
-<a name="l00407"></a>00407             <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a>[i] = <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a>[i + m_blockSize/2];
-<a name="l00408"></a>00408             <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a>[i + m_blockSize/2] = value;
-<a name="l00409"></a>00409         }
-<a name="l00410"></a>00410 
-<a name="l00411"></a>00411 <span class="preprocessor">#ifdef HAVE_FFTW3</span>
-<a name="l00412"></a>00412 <span class="preprocessor"></span>
-<a name="l00413"></a>00413         fftw_execute(m_plan);
-<a name="l00414"></a>00414 
-<a name="l00415"></a>00415         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= m_blockSize/2; ++i) {
-<a name="l00416"></a>00416             <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">m_freqbuf</a>[c][i * 2] = float(m_cbuf[i][0]);
-<a name="l00417"></a>00417             <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">m_freqbuf</a>[c][i * 2 + 1] = float(m_cbuf[i][1]);
-<a name="l00418"></a>00418         }
-<a name="l00419"></a>00419 
-<a name="l00420"></a>00420 <span class="preprocessor">#else</span>
-<a name="l00421"></a>00421 <span class="preprocessor"></span>
-<a name="l00422"></a>00422         <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#7ea985ca8cdc45dd156e8d50293c3085">fft</a>(m_blockSize, <span class="keyword">false</span>, <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a>, 0, <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#6407b3c17dc96ba7036f2161b1aa30cb">m_ro</a>, <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4d73b85b9ba00c10b55be4febc56dfc4">m_io</a>);
-<a name="l00423"></a>00423 
-<a name="l00424"></a>00424         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= m_blockSize/2; ++i) {
-<a name="l00425"></a>00425             <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">m_freqbuf</a>[c][i * 2] = float(<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#6407b3c17dc96ba7036f2161b1aa30cb">m_ro</a>[i]);
-<a name="l00426"></a>00426             <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">m_freqbuf</a>[c][i * 2 + 1] = float(<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4d73b85b9ba00c10b55be4febc56dfc4">m_io</a>[i]);
-<a name="l00427"></a>00427         }
-<a name="l00428"></a>00428 
-<a name="l00429"></a>00429 <span class="preprocessor">#endif</span>
-<a name="l00430"></a>00430 <span class="preprocessor"></span>    }
-<a name="l00431"></a>00431 
-<a name="l00432"></a>00432     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">m_freqbuf</a>, timestamp);
-<a name="l00433"></a>00433 }
-<a name="l00434"></a>00434 
-<a name="l00435"></a>00435 <span class="preprocessor">#ifndef HAVE_FFTW3</span>
-<a name="l00436"></a>00436 <span class="preprocessor"></span>
-<a name="l00437"></a>00437 <span class="keywordtype">void</span>
-<a name="l00438"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#7ea985ca8cdc45dd156e8d50293c3085">00438</a> <a class="code" href="vamp-simple-host_8cpp.html#b40a86a032d0cf473d15fed3616ccc57">PluginInputDomainAdapter::Impl::fft</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n, <span class="keywordtype">bool</span> inverse,
-<a name="l00439"></a>00439                                     <span class="keywordtype">double</span> *ri, <span class="keywordtype">double</span> *ii, <span class="keywordtype">double</span> *ro, <span class="keywordtype">double</span> *io)
-<a name="l00440"></a>00440 {
-<a name="l00441"></a>00441     <span class="keywordflow">if</span> (!ri || !ro || !io) <span class="keywordflow">return</span>;
-<a name="l00442"></a>00442 
-<a name="l00443"></a>00443     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bits;
-<a name="l00444"></a>00444     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, j, k, m;
-<a name="l00445"></a>00445     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> blockSize, blockEnd;
-<a name="l00446"></a>00446 
-<a name="l00447"></a>00447     <span class="keywordtype">double</span> tr, ti;
-<a name="l00448"></a>00448 
-<a name="l00449"></a>00449     <span class="keywordflow">if</span> (n &lt; 2) <span class="keywordflow">return</span>;
-<a name="l00450"></a>00450     <span class="keywordflow">if</span> (n &amp; (n-1)) <span class="keywordflow">return</span>;
-<a name="l00451"></a>00451 
-<a name="l00452"></a>00452     <span class="keywordtype">double</span> angle = 2.0 * <a class="code" href="PluginInputDomainAdapter_8cpp.html#e71449b1cc6e6250b91f539153a7a0d3">M_PI</a>;
-<a name="l00453"></a>00453     <span class="keywordflow">if</span> (inverse) angle = -angle;
-<a name="l00454"></a>00454 
-<a name="l00455"></a>00455     <span class="keywordflow">for</span> (i = 0; ; ++i) {
-<a name="l00456"></a>00456         <span class="keywordflow">if</span> (n &amp; (1 &lt;&lt; i)) {
-<a name="l00457"></a>00457             bits = i;
-<a name="l00458"></a>00458             <span class="keywordflow">break</span>;
-<a name="l00459"></a>00459         }
-<a name="l00460"></a>00460     }
-<a name="l00461"></a>00461 
-<a name="l00462"></a>00462     <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> tableSize = 0;
-<a name="l00463"></a>00463     <span class="keyword">static</span> <span class="keywordtype">int</span> *table = 0;
-<a name="l00464"></a>00464 
-<a name="l00465"></a>00465     <span class="keywordflow">if</span> (tableSize != n) {
-<a name="l00466"></a>00466 
-<a name="l00467"></a>00467         <span class="keyword">delete</span>[] table;
-<a name="l00468"></a>00468 
-<a name="l00469"></a>00469         table = <span class="keyword">new</span> <span class="keywordtype">int</span>[n];
-<a name="l00470"></a>00470 
-<a name="l00471"></a>00471         <span class="keywordflow">for</span> (i = 0; i &lt; n; ++i) {
-<a name="l00472"></a>00472         
-<a name="l00473"></a>00473             m = i;
-<a name="l00474"></a>00474 
-<a name="l00475"></a>00475             <span class="keywordflow">for</span> (j = k = 0; j &lt; bits; ++j) {
-<a name="l00476"></a>00476                 k = (k &lt;&lt; 1) | (m &amp; 1);
-<a name="l00477"></a>00477                 m &gt;&gt;= 1;
-<a name="l00478"></a>00478             }
-<a name="l00479"></a>00479 
-<a name="l00480"></a>00480             table[i] = k;
-<a name="l00481"></a>00481         }
-<a name="l00482"></a>00482 
-<a name="l00483"></a>00483         tableSize = n;
-<a name="l00484"></a>00484     }
-<a name="l00485"></a>00485 
-<a name="l00486"></a>00486     <span class="keywordflow">if</span> (ii) {
-<a name="l00487"></a>00487         <span class="keywordflow">for</span> (i = 0; i &lt; n; ++i) {
-<a name="l00488"></a>00488             ro[table[i]] = ri[i];
-<a name="l00489"></a>00489             io[table[i]] = ii[i];
-<a name="l00490"></a>00490         }
-<a name="l00491"></a>00491     } <span class="keywordflow">else</span> {
-<a name="l00492"></a>00492         <span class="keywordflow">for</span> (i = 0; i &lt; n; ++i) {
-<a name="l00493"></a>00493             ro[table[i]] = ri[i];
-<a name="l00494"></a>00494             io[table[i]] = 0.0;
-<a name="l00495"></a>00495         }
-<a name="l00496"></a>00496     }
-<a name="l00497"></a>00497 
-<a name="l00498"></a>00498     blockEnd = 1;
-<a name="l00499"></a>00499 
-<a name="l00500"></a>00500     <span class="keywordflow">for</span> (blockSize = 2; blockSize &lt;= n; blockSize &lt;&lt;= 1) {
-<a name="l00501"></a>00501 
-<a name="l00502"></a>00502         <span class="keywordtype">double</span> delta = angle / (double)blockSize;
-<a name="l00503"></a>00503         <span class="keywordtype">double</span> sm2 = -sin(-2 * delta);
-<a name="l00504"></a>00504         <span class="keywordtype">double</span> sm1 = -sin(-delta);
-<a name="l00505"></a>00505         <span class="keywordtype">double</span> cm2 = cos(-2 * delta);
-<a name="l00506"></a>00506         <span class="keywordtype">double</span> cm1 = cos(-delta);
-<a name="l00507"></a>00507         <span class="keywordtype">double</span> w = 2 * cm1;
-<a name="l00508"></a>00508         <span class="keywordtype">double</span> ar[3], ai[3];
-<a name="l00509"></a>00509 
-<a name="l00510"></a>00510         <span class="keywordflow">for</span> (i = 0; i &lt; n; i += blockSize) {
-<a name="l00511"></a>00511 
-<a name="l00512"></a>00512             ar[2] = cm2;
-<a name="l00513"></a>00513             ar[1] = cm1;
-<a name="l00514"></a>00514 
-<a name="l00515"></a>00515             ai[2] = sm2;
-<a name="l00516"></a>00516             ai[1] = sm1;
-<a name="l00517"></a>00517 
-<a name="l00518"></a>00518             <span class="keywordflow">for</span> (j = i, m = 0; m &lt; blockEnd; j++, m++) {
-<a name="l00519"></a>00519 
-<a name="l00520"></a>00520                 ar[0] = w * ar[1] - ar[2];
-<a name="l00521"></a>00521                 ar[2] = ar[1];
-<a name="l00522"></a>00522                 ar[1] = ar[0];
-<a name="l00523"></a>00523 
-<a name="l00524"></a>00524                 ai[0] = w * ai[1] - ai[2];
-<a name="l00525"></a>00525                 ai[2] = ai[1];
-<a name="l00526"></a>00526                 ai[1] = ai[0];
-<a name="l00527"></a>00527 
-<a name="l00528"></a>00528                 k = j + blockEnd;
-<a name="l00529"></a>00529                 tr = ar[0] * ro[k] - ai[0] * io[k];
-<a name="l00530"></a>00530                 ti = ar[0] * io[k] + ai[0] * ro[k];
-<a name="l00531"></a>00531 
-<a name="l00532"></a>00532                 ro[k] = ro[j] - tr;
-<a name="l00533"></a>00533                 io[k] = io[j] - ti;
-<a name="l00534"></a>00534 
-<a name="l00535"></a>00535                 ro[j] += tr;
-<a name="l00536"></a>00536                 io[j] += ti;
-<a name="l00537"></a>00537             }
-<a name="l00538"></a>00538         }
-<a name="l00539"></a>00539 
-<a name="l00540"></a>00540         blockEnd = blockSize;
-<a name="l00541"></a>00541     }
-<a name="l00542"></a>00542 
-<a name="l00543"></a>00543     <span class="keywordflow">if</span> (inverse) {
-<a name="l00544"></a>00544 
-<a name="l00545"></a>00545         <span class="keywordtype">double</span> denom = (double)n;
-<a name="l00546"></a>00546 
-<a name="l00547"></a>00547         <span class="keywordflow">for</span> (i = 0; i &lt; n; i++) {
-<a name="l00548"></a>00548             ro[i] /= denom;
-<a name="l00549"></a>00549             io[i] /= denom;
-<a name="l00550"></a>00550         }
-<a name="l00551"></a>00551     }
-<a name="l00552"></a>00552 }
-<a name="l00553"></a>00553 
-<a name="l00554"></a>00554 <span class="preprocessor">#endif</span>
-<a name="l00555"></a>00555 <span class="preprocessor"></span>
-<a name="l00556"></a>00556 }
-<a name="l00557"></a>00557         
-<a name="l00558"></a>00558 }
-<a name="l00559"></a>00559 
-</pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/PluginInputDomainAdapter_8cpp.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-<!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: PluginInputDomainAdapter.cpp 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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
-  </div>
-</div>
-<div class="contents">
-<h1>PluginInputDomainAdapter.cpp File Reference</h1>
-<p>
-
-<p>
-<a href="PluginInputDomainAdapter_8cpp-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>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html">Vamp</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp_1_1HostExt.html">Vamp::HostExt</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginInputDomainAdapter_8cpp.html#e71449b1cc6e6250b91f539153a7a0d3">M_PI</a>&nbsp;&nbsp;&nbsp;3.14159265358979232846</td></tr>
-
-</table>
-<hr><h2>Define Documentation</h2>
-<a class="anchor" name="e71449b1cc6e6250b91f539153a7a0d3"></a><!-- doxytag: member="PluginInputDomainAdapter.cpp::M_PI" ref="e71449b1cc6e6250b91f539153a7a0d3" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define M_PI&nbsp;&nbsp;&nbsp;3.14159265358979232846          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00199">199</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00438">Vamp::HostExt::PluginInputDomainAdapter::Impl::fft()</a>, and <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00203">Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise()</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&nbsp;
-<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>
--- a/code-doc/PluginInputDomainAdapter_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PluginInputDomainAdapter_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -15,10 +15,10 @@
       <li><a href="dirs.html"><span>Directories</span></a></li>
     </ul>
   </div>
-  <div class="navpath"><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  <div class="navpath"><a class="el" href="dir_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>PluginInputDomainAdapter.h</h1><a href="PluginInputDomainAdapter_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -58,40 +58,47 @@
 <a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_PLUGIN_INPUT_DOMAIN_ADAPTER_H_</span>
 <a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_PLUGIN_INPUT_DOMAIN_ADAPTER_H_</span>
 <a name="l00039"></a>00039 <span class="preprocessor"></span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="PluginWrapper_8h.html">PluginWrapper.h</a>"</span>
-<a name="l00041"></a>00041 
-<a name="l00042"></a>00042 <span class="keyword">namespace </span>Vamp {
-<a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="keyword">namespace </span>HostExt {
-<a name="l00045"></a>00045 
-<a name="l00079"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">00079</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a>
-<a name="l00080"></a>00080 {
-<a name="l00081"></a>00081 <span class="keyword">public</span>:
-<a name="l00082"></a>00082     <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#878e7275acdb77efc7a802944305039d">PluginInputDomainAdapter</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin); <span class="comment">// I take ownership of plugin</span>
-<a name="l00083"></a>00083     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ec457c952155adf516dd8e3dc7739321">~PluginInputDomainAdapter</a>();
-<a name="l00084"></a>00084     
-<a name="l00085"></a>00085     <span class="keywordtype">bool</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
-<a name="l00086"></a>00086 
-<a name="l00087"></a>00087     <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#376fa97a1c721255541fe35d71368976" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() <span class="keyword">const</span>;
-<a name="l00088"></a>00088 
-<a name="l00089"></a>00089     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565" title="Get the preferred step size (window increment -- the distance in sample frames between...">getPreferredStepSize</a>() <span class="keyword">const</span>;
-<a name="l00090"></a>00090     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5" title="Get the preferred block size (window size -- the number of sample frames passed in...">getPreferredBlockSize</a>() <span class="keyword">const</span>;
-<a name="l00091"></a>00091 
-<a name="l00092"></a>00092     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07" title="Process a single block of input data.">process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp);
-<a name="l00093"></a>00093 
-<a name="l00094"></a>00094 <span class="keyword">protected</span>:
-<a name="l00095"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">00095</a>     <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Impl</a>;
-<a name="l00096"></a>00096     <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Impl</a> *<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">m_impl</a>;
-<a name="l00097"></a>00097 };
-<a name="l00098"></a>00098 
-<a name="l00099"></a>00099 }
-<a name="l00100"></a>00100 
-<a name="l00101"></a>00101 }
-<a name="l00102"></a>00102 
-<a name="l00103"></a>00103 <span class="preprocessor">#endif</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="hostguard_8h.html">hostguard.h</a>"</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="PluginWrapper_8h.html">PluginWrapper.h</a>"</span>
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 <a class="code" href="hostguard_8h.html#ef42eae5f1b0b897d8dac58cd54afbcd">_VAMP_SDK_HOSTSPACE_BEGIN</a>(PluginInputDomainAdapter.h)
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 namespace Vamp {
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 <span class="keyword">namespace </span>HostExt {
+<a name="l00048"></a>00048 
+<a name="l00082"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">00082</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a>
+<a name="l00083"></a>00083 {
+<a name="l00084"></a>00084 <span class="keyword">public</span>:
+<a name="l00090"></a>00090     <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin);
+<a name="l00091"></a>00091     <span class="keyword">virtual</span> ~<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a>();
+<a name="l00092"></a>00092     
+<a name="l00093"></a>00093     <span class="keywordtype">bool</span> initialise(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095     <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> getInputDomain() <span class="keyword">const</span>;
+<a name="l00096"></a>00096 
+<a name="l00097"></a>00097     <span class="keywordtype">size_t</span> getPreferredStepSize() <span class="keyword">const</span>;
+<a name="l00098"></a>00098     <span class="keywordtype">size_t</span> getPreferredBlockSize() <span class="keyword">const</span>;
+<a name="l00099"></a>00099 
+<a name="l00100"></a>00100     FeatureSet process(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp);
+<a name="l00101"></a>00101 
+<a name="l00123"></a>00123     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> getTimestampAdjustment() <span class="keyword">const</span>;
+<a name="l00124"></a>00124 
+<a name="l00125"></a>00125 <span class="keyword">protected</span>:
+<a name="l00126"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">00126</a>     <span class="keyword">class </span>Impl;
+<a name="l00127"></a>00127     Impl *m_impl;
+<a name="l00128"></a>00128 };
+<a name="l00129"></a>00129 
+<a name="l00130"></a>00130 }
+<a name="l00131"></a>00131 
+<a name="l00132"></a>00132 }
+<a name="l00133"></a>00133 
+<a name="l00134"></a>00134 <a class="code" href="hostguard_8h.html#0e6efdc2909bdb0cfab70e087d91b171">_VAMP_SDK_HOSTSPACE_END</a>(PluginInputDomainAdapter.h)
+<a name="l00135"></a>00135 
+<a name="l00136"></a>00136 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PluginInputDomainAdapter_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PluginInputDomainAdapter_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -15,7 +15,7 @@
       <li><a href="dirs.html"><span>Directories</span></a></li>
     </ul>
   </div>
-  <div class="navpath"><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  <div class="navpath"><a class="el" href="dir_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
   </div>
 </div>
 <div class="contents">
@@ -33,11 +33,11 @@
 <tr><td colspan="2"><br><h2>Classes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a> is 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 adapter that converts time-domain input into frequency-domain input for plugins that need it.  <a href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#_details">More...</a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that converts time-domain input into frequency-domain input for plugins that need it.  <a href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#_details">More...</a><br></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PluginLoader_8cpp-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,663 +0,0 @@
-<!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: PluginLoader.cpp Source File</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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
-  </div>
-</div>
-</div>
-<h1>PluginLoader.cpp</h1><a href="PluginLoader_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
-<a name="l00002"></a>00002 
-<a name="l00003"></a>00003 <span class="comment">/*</span>
-<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
-<a name="l00005"></a>00005 <span class="comment"></span>
-<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
-<a name="l00007"></a>00007 <span class="comment"></span>
-<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
-<a name="l00009"></a>00009 <span class="comment">    Copyright 2006-2007 Chris Cannam and QMUL.</span>
-<a name="l00010"></a>00010 <span class="comment">  </span>
-<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
-<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
-<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
-<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
-<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
-<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
-<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
-<a name="l00018"></a>00018 <span class="comment"></span>
-<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
-<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
-<a name="l00021"></a>00021 <span class="comment"></span>
-<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
-<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
-<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
-<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
-<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
-<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
-<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
-<a name="l00029"></a>00029 <span class="comment"></span>
-<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
-<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
-<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
-<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
-<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
-<a name="l00035"></a>00035 <span class="comment">*/</span>
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="PluginHostAdapter_8h.html">vamp-sdk/PluginHostAdapter.h</a>"</span>
-<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="PluginLoader_8h.html">PluginLoader.h</a>"</span>
-<a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="PluginInputDomainAdapter_8h.html">PluginInputDomainAdapter.h</a>"</span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="PluginChannelAdapter_8h.html">PluginChannelAdapter.h</a>"</span>
-<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="PluginBufferingAdapter_8h.html">PluginBufferingAdapter.h</a>"</span>
-<a name="l00042"></a>00042 
-<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;fstream&gt;</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;cctype&gt;</span> <span class="comment">// tolower</span>
-<a name="l00045"></a>00045 
-<a name="l00046"></a>00046 <span class="preprocessor">#include &lt;cstring&gt;</span>
-<a name="l00047"></a>00047 
-<a name="l00048"></a>00048 <span class="preprocessor">#ifdef _WIN32</span>
-<a name="l00049"></a>00049 <span class="preprocessor"></span>
-<a name="l00050"></a>00050 <span class="preprocessor">#include &lt;windows.h&gt;</span>
-<a name="l00051"></a>00051 <span class="preprocessor">#include &lt;tchar.h&gt;</span>
-<a name="l00052"></a>00052 <span class="preprocessor">#define PLUGIN_SUFFIX "dll"</span>
-<a name="l00053"></a>00053 <span class="preprocessor"></span>
-<a name="l00054"></a>00054 <span class="preprocessor">#else </span><span class="comment">/* ! _WIN32 */</span>
-<a name="l00055"></a>00055 
-<a name="l00056"></a>00056 <span class="preprocessor">#include &lt;dirent.h&gt;</span>
-<a name="l00057"></a>00057 <span class="preprocessor">#include &lt;dlfcn.h&gt;</span>
-<a name="l00058"></a>00058 
-<a name="l00059"></a>00059 <span class="preprocessor">#ifdef __APPLE__</span>
-<a name="l00060"></a>00060 <span class="preprocessor"></span><span class="preprocessor">#define PLUGIN_SUFFIX "dylib"</span>
-<a name="l00061"></a>00061 <span class="preprocessor"></span><span class="preprocessor">#else </span><span class="comment">/* ! __APPLE__ */</span>
-<a name="l00062"></a><a class="code" href="PluginLoader_8cpp.html#1efbc9bb9a9f2837d3f7386af8607abf">00062</a> <span class="preprocessor">#define PLUGIN_SUFFIX "so"</span>
-<a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* ! __APPLE__ */</span>
-<a name="l00064"></a>00064 
-<a name="l00065"></a>00065 <span class="preprocessor">#endif </span><span class="comment">/* ! _WIN32 */</span>
-<a name="l00066"></a>00066 
-<a name="l00067"></a>00067 <span class="keyword">using namespace </span>std;
-<a name="l00068"></a>00068 
-<a name="l00069"></a>00069 <span class="keyword">namespace </span>Vamp {
-<a name="l00070"></a>00070         
-<a name="l00071"></a>00071 <span class="keyword">namespace </span>HostExt {
-<a name="l00072"></a>00072 
-<a name="l00073"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">00073</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">PluginLoader::Impl</a>
-<a name="l00074"></a>00074 {
-<a name="l00075"></a>00075 <span class="keyword">public</span>:
-<a name="l00076"></a>00076     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ddac537272c2eb69973cbb942dc11deb">Impl</a>();
-<a name="l00077"></a>00077     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1e28874a14fafaf015404694da5fcfc8">~Impl</a>();
-<a name="l00078"></a>00078 
-<a name="l00079"></a>00079     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#0d48b76e4f995110f53e0feeb23f733a" title="PluginKeyList is a sequence of plugin keys, such as returned by listPlugins().">PluginKeyList</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#398ccb508176f5550b2b2ca05f1fa3eb">listPlugins</a>();
-<a name="l00080"></a>00080 
-<a name="l00081"></a>00081     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#3f6c4872459007b13722818cbdac409c">loadPlugin</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> key,
-<a name="l00082"></a>00082                        <span class="keywordtype">float</span> inputSampleRate,
-<a name="l00083"></a>00083                        <span class="keywordtype">int</span> adapterFlags);
-<a name="l00084"></a>00084 
-<a name="l00085"></a>00085     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c84fafd9b12d44f8756628571b57d7ea">composePluginKey</a>(<span class="keywordtype">string</span> libraryName, <span class="keywordtype">string</span> identifier);
-<a name="l00086"></a>00086 
-<a name="l00087"></a>00087     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364" title="PluginCategoryHierarchy is a sequence of general-&amp;gt;specific category names, as...">PluginCategoryHierarchy</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#de4a5a8acbd85537c99440c4ac974be4">getPluginCategory</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> key);
-<a name="l00088"></a>00088 
-<a name="l00089"></a>00089     <span class="keywordtype">string</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#aac3ed8bf770f0675e624d411dab3efb">getLibraryPathForPlugin</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> key);
-<a name="l00090"></a>00090 
-<a name="l00091"></a>00091     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b7147ecb2186a715b0f7e83ba70f0946">setInstanceToClean</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *instance);
-<a name="l00092"></a>00092 
-<a name="l00093"></a>00093 <span class="keyword">protected</span>:
-<a name="l00094"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">00094</a>     <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">PluginDeletionNotifyAdapter</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a> {
-<a name="l00095"></a>00095     <span class="keyword">public</span>:
-<a name="l00096"></a>00096         <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#80196e30ed72a4f45b4152a3991d7777">PluginDeletionNotifyAdapter</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin, <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a> *loader);
-<a name="l00097"></a>00097         <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#bb85c0134c354c0854f3868a60d0193f">~PluginDeletionNotifyAdapter</a>();
-<a name="l00098"></a>00098     <span class="keyword">protected</span>:
-<a name="l00099"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#1fb8473ea9ad73b1b6a00b92345d8397">00099</a>         <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a> *<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#1fb8473ea9ad73b1b6a00b92345d8397">m_loader</a>;
-<a name="l00100"></a>00100     };
-<a name="l00101"></a>00101 
-<a name="l00102"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">00102</a>     <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">InstanceCleaner</a> {
-<a name="l00103"></a>00103     <span class="keyword">public</span>:
-<a name="l00104"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#94ae2e994b87be62dd401852fb8d49fd">00104</a>         <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#94ae2e994b87be62dd401852fb8d49fd">InstanceCleaner</a>() : <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#2b6d3d267fe1754ea3dca7bb6d48fc70">m_instance</a>(0) { }
-<a name="l00105"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#246ddea5df77287755b1aaef734538bf">00105</a>         <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#246ddea5df77287755b1aaef734538bf">~InstanceCleaner</a>() { <span class="keyword">delete</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#2b6d3d267fe1754ea3dca7bb6d48fc70">m_instance</a>; }
-<a name="l00106"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#11edf3783377088dd757b46d9b2c9101">00106</a>         <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#11edf3783377088dd757b46d9b2c9101">setInstance</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *instance) { <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#2b6d3d267fe1754ea3dca7bb6d48fc70">m_instance</a> = instance; }
-<a name="l00107"></a>00107     <span class="keyword">protected</span>:
-<a name="l00108"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#2b6d3d267fe1754ea3dca7bb6d48fc70">00108</a>         <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#2b6d3d267fe1754ea3dca7bb6d48fc70">m_instance</a>;
-<a name="l00109"></a>00109     };
-<a name="l00110"></a>00110 
-<a name="l00111"></a>00111     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#e0a6e1bf07a62eb6a34a1393bc3da26c">pluginDeleted</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">PluginDeletionNotifyAdapter</a> *adapter);
-<a name="l00112"></a>00112 
-<a name="l00113"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">00113</a>     map&lt;PluginKey, string&gt; <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">m_pluginLibraryNameMap</a>;
-<a name="l00114"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#d7b867e5cf9c29ad7254f567849f9913">00114</a>     <span class="keywordtype">bool</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#d7b867e5cf9c29ad7254f567849f9913">m_allPluginsEnumerated</a>;
-<a name="l00115"></a>00115     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6fb71e4d0b4ff367ffef141c5e62763d">enumeratePlugins</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> forPlugin = <span class="stringliteral">""</span>);
-<a name="l00116"></a>00116 
-<a name="l00117"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2ba901c7e59ece349b715d4a3fec7b04">00117</a>     map&lt;PluginKey, PluginCategoryHierarchy&gt; <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2ba901c7e59ece349b715d4a3fec7b04">m_taxonomy</a>;
-<a name="l00118"></a>00118     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#923d9ace30548d8f3cce58b4037ec9e4">generateTaxonomy</a>();
-<a name="l00119"></a>00119 
-<a name="l00120"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1c3cee03d20e669c8b9379247a222600">00120</a>     map&lt;Plugin *, void *&gt; <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1c3cee03d20e669c8b9379247a222600">m_pluginLibraryHandleMap</a>;
-<a name="l00121"></a>00121 
-<a name="l00122"></a>00122     <span class="keywordtype">bool</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b06d720c0d53f908426ce244294d38ed">decomposePluginKey</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> key,
-<a name="l00123"></a>00123                             <span class="keywordtype">string</span> &amp;libraryName, <span class="keywordtype">string</span> &amp;identifier);
-<a name="l00124"></a>00124 
-<a name="l00125"></a>00125     <span class="keywordtype">void</span> *<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c0618149e415b7fd8ad782f434070752">loadLibrary</a>(<span class="keywordtype">string</span> path);
-<a name="l00126"></a>00126     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6a93367036f896d505f553b616e1e7aa">unloadLibrary</a>(<span class="keywordtype">void</span> *handle);
-<a name="l00127"></a>00127     <span class="keywordtype">void</span> *<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ec71088ca89ba77f357bde8b37b807f8">lookupInLibrary</a>(<span class="keywordtype">void</span> *handle, <span class="keyword">const</span> <span class="keywordtype">char</span> *symbol);
-<a name="l00128"></a>00128 
-<a name="l00129"></a>00129     <span class="keywordtype">string</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#eb7a794c0a2410a81a382a08e8a0143c">splicePath</a>(<span class="keywordtype">string</span> a, <span class="keywordtype">string</span> b);
-<a name="l00130"></a>00130     vector&lt;string&gt; <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2dd3964e84bca56390cd31b079fbc01f">listFiles</a>(<span class="keywordtype">string</span> dir, <span class="keywordtype">string</span> ext);
-<a name="l00131"></a>00131     
-<a name="l00132"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#5d03696d9093949f627bd684c8db44c2">00132</a>     <span class="keyword">static</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">InstanceCleaner</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#5d03696d9093949f627bd684c8db44c2">m_cleaner</a>;
-<a name="l00133"></a>00133 };
-<a name="l00134"></a>00134 
-<a name="l00135"></a>00135 <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *
-<a name="l00136"></a>00136 <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#aa4eae58ddbadf6537a95dbb6e957187">PluginLoader::m_instance</a> = 0;
-<a name="l00137"></a>00137 
-<a name="l00138"></a>00138 <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">PluginLoader::Impl::InstanceCleaner</a>
-<a name="l00139"></a>00139 <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#5d03696d9093949f627bd684c8db44c2">PluginLoader::Impl::m_cleaner</a>;
-<a name="l00140"></a>00140 
-<a name="l00141"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#5ab9e0281244bef7976c6c0ce1a55c24">00141</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#5ab9e0281244bef7976c6c0ce1a55c24">PluginLoader::PluginLoader</a>()
-<a name="l00142"></a>00142 {
-<a name="l00143"></a>00143     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">m_impl</a> = <span class="keyword">new</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a>();
-<a name="l00144"></a>00144 }
-<a name="l00145"></a>00145 
-<a name="l00146"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#9e092d864efdc0f16c032bfb25e76dea">00146</a> PluginLoader::~PluginLoader()
-<a name="l00147"></a>00147 {
-<a name="l00148"></a>00148     <span class="keyword">delete</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">m_impl</a>;
-<a name="l00149"></a>00149 }
-<a name="l00150"></a>00150 
-<a name="l00151"></a>00151 <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *
-<a name="l00152"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#dbb5c8855697a24be890e4f107e26b0e">00152</a> PluginLoader::getInstance()
-<a name="l00153"></a>00153 {
-<a name="l00154"></a>00154     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#aa4eae58ddbadf6537a95dbb6e957187">m_instance</a>) {
-<a name="l00155"></a>00155         <span class="comment">// The cleaner doesn't own the instance, because we leave the</span>
-<a name="l00156"></a>00156         <span class="comment">// instance pointer in the base class for binary backwards</span>
-<a name="l00157"></a>00157         <span class="comment">// compatibility reasons and to avoid waste</span>
-<a name="l00158"></a>00158         <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#aa4eae58ddbadf6537a95dbb6e957187">m_instance</a> = <span class="keyword">new</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#5ab9e0281244bef7976c6c0ce1a55c24">PluginLoader</a>();
-<a name="l00159"></a>00159         <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b7147ecb2186a715b0f7e83ba70f0946">Impl::setInstanceToClean</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#aa4eae58ddbadf6537a95dbb6e957187">m_instance</a>);
-<a name="l00160"></a>00160     }
-<a name="l00161"></a>00161     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#aa4eae58ddbadf6537a95dbb6e957187">m_instance</a>;
-<a name="l00162"></a>00162 }
-<a name="l00163"></a>00163 
-<a name="l00164"></a>00164 vector&lt;PluginLoader::PluginKey&gt;
-<a name="l00165"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ec450c2928b1ae5318d45972722dd16b">00165</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ec450c2928b1ae5318d45972722dd16b" title="Search for all available Vamp plugins, and return a list of them in the order in...">PluginLoader::listPlugins</a>() 
-<a name="l00166"></a>00166 {
-<a name="l00167"></a>00167     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#398ccb508176f5550b2b2ca05f1fa3eb">listPlugins</a>();
-<a name="l00168"></a>00168 }
-<a name="l00169"></a>00169 
-<a name="l00170"></a>00170 <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *
-<a name="l00171"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#2154970381343edef629482bdafea7e2">00171</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#2154970381343edef629482bdafea7e2" title="Load a Vamp plugin, given its identifying key.">PluginLoader::loadPlugin</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> key,
-<a name="l00172"></a>00172                          <span class="keywordtype">float</span> inputSampleRate,
-<a name="l00173"></a>00173                          <span class="keywordtype">int</span> adapterFlags)
-<a name="l00174"></a>00174 {
-<a name="l00175"></a>00175     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#3f6c4872459007b13722818cbdac409c">loadPlugin</a>(key, inputSampleRate, adapterFlags);
-<a name="l00176"></a>00176 }
-<a name="l00177"></a>00177 
-<a name="l00178"></a>00178 <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginLoader::PluginKey</a>
-<a name="l00179"></a>00179 <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#cc6865d27825c100d7b6f9ed6ecf5207" title="Given a Vamp plugin library name and plugin identifier, return the corresponding...">PluginLoader::composePluginKey</a>(<span class="keywordtype">string</span> libraryName, <span class="keywordtype">string</span> identifier) 
-<a name="l00180"></a>00180 {
-<a name="l00181"></a>00181     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c84fafd9b12d44f8756628571b57d7ea">composePluginKey</a>(libraryName, identifier);
-<a name="l00182"></a>00182 }
-<a name="l00183"></a>00183 
-<a name="l00184"></a>00184 <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364" title="PluginCategoryHierarchy is a sequence of general-&amp;gt;specific category names, as...">PluginLoader::PluginCategoryHierarchy</a>
-<a name="l00185"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#d5c594142ff058bd70e66247d45cd86e">00185</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#d5c594142ff058bd70e66247d45cd86e" title="Return the category hierarchy for a Vamp plugin, given its identifying key.">PluginLoader::getPluginCategory</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> key)
-<a name="l00186"></a>00186 {
-<a name="l00187"></a>00187     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#de4a5a8acbd85537c99440c4ac974be4">getPluginCategory</a>(key);
-<a name="l00188"></a>00188 }
-<a name="l00189"></a>00189 
-<a name="l00190"></a>00190 <span class="keywordtype">string</span>
-<a name="l00191"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#592d6b4c6edaa369407e833f56e4a4de">00191</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#592d6b4c6edaa369407e833f56e4a4de" title="Return the file path of the dynamic library from which the given plugin will be loaded...">PluginLoader::getLibraryPathForPlugin</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> key)
-<a name="l00192"></a>00192 {
-<a name="l00193"></a>00193     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">m_impl</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#aac3ed8bf770f0675e624d411dab3efb">getLibraryPathForPlugin</a>(key);
-<a name="l00194"></a>00194 }
-<a name="l00195"></a>00195  
-<a name="l00196"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ddac537272c2eb69973cbb942dc11deb">00196</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ddac537272c2eb69973cbb942dc11deb">PluginLoader::Impl::Impl</a>() :
-<a name="l00197"></a>00197     m_allPluginsEnumerated(false)
-<a name="l00198"></a>00198 {
-<a name="l00199"></a>00199 }
-<a name="l00200"></a>00200 
-<a name="l00201"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1e28874a14fafaf015404694da5fcfc8">00201</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1e28874a14fafaf015404694da5fcfc8">PluginLoader::Impl::~Impl</a>()
-<a name="l00202"></a>00202 {
-<a name="l00203"></a>00203 }
-<a name="l00204"></a>00204 
-<a name="l00205"></a>00205 <span class="keywordtype">void</span>
-<a name="l00206"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b7147ecb2186a715b0f7e83ba70f0946">00206</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b7147ecb2186a715b0f7e83ba70f0946">PluginLoader::Impl::setInstanceToClean</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *instance)
-<a name="l00207"></a>00207 {
-<a name="l00208"></a>00208     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#5d03696d9093949f627bd684c8db44c2">m_cleaner</a>.<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#11edf3783377088dd757b46d9b2c9101">setInstance</a>(instance);
-<a name="l00209"></a>00209 }
-<a name="l00210"></a>00210 
-<a name="l00211"></a>00211 vector&lt;PluginLoader::PluginKey&gt;
-<a name="l00212"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#398ccb508176f5550b2b2ca05f1fa3eb">00212</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#398ccb508176f5550b2b2ca05f1fa3eb">PluginLoader::Impl::listPlugins</a>() 
-<a name="l00213"></a>00213 {
-<a name="l00214"></a>00214     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#d7b867e5cf9c29ad7254f567849f9913">m_allPluginsEnumerated</a>) <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6fb71e4d0b4ff367ffef141c5e62763d">enumeratePlugins</a>();
-<a name="l00215"></a>00215 
-<a name="l00216"></a>00216     vector&lt;PluginKey&gt; plugins;
-<a name="l00217"></a>00217     <span class="keywordflow">for</span> (map&lt;PluginKey, string&gt;::iterator mi = <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">m_pluginLibraryNameMap</a>.begin();
-<a name="l00218"></a>00218          mi != <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">m_pluginLibraryNameMap</a>.end(); ++mi) {
-<a name="l00219"></a>00219         plugins.push_back(mi-&gt;first);
-<a name="l00220"></a>00220     }
-<a name="l00221"></a>00221 
-<a name="l00222"></a>00222     <span class="keywordflow">return</span> plugins;
-<a name="l00223"></a>00223 }
-<a name="l00224"></a>00224 
-<a name="l00225"></a>00225 <span class="keywordtype">void</span>
-<a name="l00226"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6fb71e4d0b4ff367ffef141c5e62763d">00226</a> <a class="code" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">PluginLoader::Impl::enumeratePlugins</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> forPlugin)
-<a name="l00227"></a>00227 {
-<a name="l00228"></a>00228     vector&lt;string&gt; path = <a class="code" href="classVamp_1_1PluginHostAdapter.html#08d7ed3a11bf4a3c30fa0f9b41a0fed6">PluginHostAdapter::getPluginPath</a>();
-<a name="l00229"></a>00229 
-<a name="l00230"></a>00230     <span class="keywordtype">string</span> libraryName, identifier;
-<a name="l00231"></a>00231     <span class="keywordflow">if</span> (forPlugin != <span class="stringliteral">""</span>) {
-<a name="l00232"></a>00232         <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b06d720c0d53f908426ce244294d38ed">decomposePluginKey</a>(forPlugin, libraryName, identifier)) {
-<a name="l00233"></a>00233             std::cerr &lt;&lt; <span class="stringliteral">"WARNING: Vamp::HostExt::PluginLoader: Invalid plugin key \""</span>
-<a name="l00234"></a>00234                       &lt;&lt; forPlugin &lt;&lt; <span class="stringliteral">"\" in enumerate"</span> &lt;&lt; std::endl;
-<a name="l00235"></a>00235             <span class="keywordflow">return</span>;
-<a name="l00236"></a>00236         }
-<a name="l00237"></a>00237     }
-<a name="l00238"></a>00238 
-<a name="l00239"></a>00239     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; path.size(); ++i) {
-<a name="l00240"></a>00240         
-<a name="l00241"></a>00241         vector&lt;string&gt; files = <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2dd3964e84bca56390cd31b079fbc01f">listFiles</a>(path[i], <a class="code" href="PluginLoader_8cpp.html#1efbc9bb9a9f2837d3f7386af8607abf">PLUGIN_SUFFIX</a>);
-<a name="l00242"></a>00242 
-<a name="l00243"></a>00243         <span class="keywordflow">for</span> (vector&lt;string&gt;::iterator fi = files.begin();
-<a name="l00244"></a>00244              fi != files.end(); ++fi) {
-<a name="l00245"></a>00245             
-<a name="l00246"></a>00246             <span class="keywordflow">if</span> (libraryName != <span class="stringliteral">""</span>) {
-<a name="l00247"></a>00247                 <span class="comment">// libraryName is lowercased and lacking an extension,</span>
-<a name="l00248"></a>00248                 <span class="comment">// as it came from the plugin key</span>
-<a name="l00249"></a>00249                 <span class="keywordtype">string</span> temp = *fi;
-<a name="l00250"></a>00250                 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; temp.length(); ++i) {
-<a name="l00251"></a>00251                     temp[i] = tolower(temp[i]);
-<a name="l00252"></a>00252                 }
-<a name="l00253"></a>00253                 string::size_type pi = temp.find(<span class="charliteral">'.'</span>);
-<a name="l00254"></a>00254                 <span class="keywordflow">if</span> (pi == string::npos) {
-<a name="l00255"></a>00255                     <span class="keywordflow">if</span> (libraryName != temp) <span class="keywordflow">continue</span>;
-<a name="l00256"></a>00256                 } <span class="keywordflow">else</span> {
-<a name="l00257"></a>00257                     <span class="keywordflow">if</span> (libraryName != temp.substr(0, pi)) <span class="keywordflow">continue</span>;
-<a name="l00258"></a>00258                 }
-<a name="l00259"></a>00259             }
-<a name="l00260"></a>00260 
-<a name="l00261"></a>00261             <span class="keywordtype">string</span> fullPath = path[i];
-<a name="l00262"></a>00262             fullPath = <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#eb7a794c0a2410a81a382a08e8a0143c">splicePath</a>(fullPath, *fi);
-<a name="l00263"></a>00263             <span class="keywordtype">void</span> *handle = <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c0618149e415b7fd8ad782f434070752">loadLibrary</a>(fullPath);
-<a name="l00264"></a>00264             <span class="keywordflow">if</span> (!handle) <span class="keywordflow">continue</span>;
-<a name="l00265"></a>00265             
-<a name="l00266"></a>00266             <a class="code" href="vamp_8h.html#551bb7e0d8c970c2202be5f881817478" title="Function pointer type for vampGetPluginDescriptor.">VampGetPluginDescriptorFunction</a> fn =
-<a name="l00267"></a>00267                 (<a class="code" href="vamp_8h.html#551bb7e0d8c970c2202be5f881817478" title="Function pointer type for vampGetPluginDescriptor.">VampGetPluginDescriptorFunction</a>)<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ec71088ca89ba77f357bde8b37b807f8">lookupInLibrary</a>
-<a name="l00268"></a>00268                 (handle, <span class="stringliteral">"vampGetPluginDescriptor"</span>);
-<a name="l00269"></a>00269             
-<a name="l00270"></a>00270             <span class="keywordflow">if</span> (!fn) {
-<a name="l00271"></a>00271                 <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6a93367036f896d505f553b616e1e7aa">unloadLibrary</a>(handle);
-<a name="l00272"></a>00272                 <span class="keywordflow">continue</span>;
-<a name="l00273"></a>00273             }
-<a name="l00274"></a>00274             
-<a name="l00275"></a>00275             <span class="keywordtype">int</span> index = 0;
-<a name="l00276"></a>00276             <span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *descriptor = 0;
-<a name="l00277"></a>00277             
-<a name="l00278"></a>00278             <span class="keywordflow">while</span> ((descriptor = fn(<a class="code" href="vamp_8h.html#6d6c8c755dbabf161f72712e0e2143c7" title="Plugin API version.">VAMP_API_VERSION</a>, index))) {
-<a name="l00279"></a>00279                 ++index;
-<a name="l00280"></a>00280                 <span class="keywordflow">if</span> (identifier != <span class="stringliteral">""</span>) {
-<a name="l00281"></a>00281                     <span class="keywordflow">if</span> (descriptor-&gt;<a class="code" href="struct__VampPluginDescriptor.html#4915ec8276749cb505c01d25a6d02219" title="Computer-usable name of the plugin.">identifier</a> != identifier) <span class="keywordflow">continue</span>;
-<a name="l00282"></a>00282                 }
-<a name="l00283"></a>00283                 <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> key = <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c84fafd9b12d44f8756628571b57d7ea">composePluginKey</a>(*fi, descriptor-&gt;<a class="code" href="struct__VampPluginDescriptor.html#4915ec8276749cb505c01d25a6d02219" title="Computer-usable name of the plugin.">identifier</a>);
-<a name="l00284"></a>00284 <span class="comment">//                std::cerr &lt;&lt; "enumerate: " &lt;&lt; key &lt;&lt; " (path: " &lt;&lt; fullPath &lt;&lt; ")" &lt;&lt; std::endl;</span>
-<a name="l00285"></a>00285                 <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">m_pluginLibraryNameMap</a>.find(key) ==
-<a name="l00286"></a>00286                     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">m_pluginLibraryNameMap</a>.end()) {
-<a name="l00287"></a>00287                     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">m_pluginLibraryNameMap</a>[key] = fullPath;
-<a name="l00288"></a>00288                 }
-<a name="l00289"></a>00289             }
-<a name="l00290"></a>00290             
-<a name="l00291"></a>00291             <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6a93367036f896d505f553b616e1e7aa">unloadLibrary</a>(handle);
-<a name="l00292"></a>00292         }
-<a name="l00293"></a>00293     }
-<a name="l00294"></a>00294 
-<a name="l00295"></a>00295     <span class="keywordflow">if</span> (forPlugin == <span class="stringliteral">""</span>) <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#d7b867e5cf9c29ad7254f567849f9913">m_allPluginsEnumerated</a> = <span class="keyword">true</span>;
-<a name="l00296"></a>00296 }
-<a name="l00297"></a>00297 
-<a name="l00298"></a>00298 <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginLoader::PluginKey</a>
-<a name="l00299"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c84fafd9b12d44f8756628571b57d7ea">00299</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c84fafd9b12d44f8756628571b57d7ea">PluginLoader::Impl::composePluginKey</a>(<span class="keywordtype">string</span> libraryName, <span class="keywordtype">string</span> identifier)
-<a name="l00300"></a>00300 {
-<a name="l00301"></a>00301     <span class="keywordtype">string</span> basename = libraryName;
-<a name="l00302"></a>00302 
-<a name="l00303"></a>00303     string::size_type li = basename.rfind(<span class="charliteral">'/'</span>);
-<a name="l00304"></a>00304     <span class="keywordflow">if</span> (li != string::npos) basename = basename.substr(li + 1);
-<a name="l00305"></a>00305 
-<a name="l00306"></a>00306     li = basename.find(<span class="charliteral">'.'</span>);
-<a name="l00307"></a>00307     <span class="keywordflow">if</span> (li != string::npos) basename = basename.substr(0, li);
-<a name="l00308"></a>00308 
-<a name="l00309"></a>00309     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; basename.length(); ++i) {
-<a name="l00310"></a>00310         basename[i] = tolower(basename[i]);
-<a name="l00311"></a>00311     }
-<a name="l00312"></a>00312 
-<a name="l00313"></a>00313     <span class="keywordflow">return</span> basename + <span class="stringliteral">":"</span> + identifier;
-<a name="l00314"></a>00314 }
-<a name="l00315"></a>00315 
-<a name="l00316"></a>00316 <span class="keywordtype">bool</span>
-<a name="l00317"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b06d720c0d53f908426ce244294d38ed">00317</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b06d720c0d53f908426ce244294d38ed">PluginLoader::Impl::decomposePluginKey</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> key,
-<a name="l00318"></a>00318                                        <span class="keywordtype">string</span> &amp;libraryName,
-<a name="l00319"></a>00319                                        <span class="keywordtype">string</span> &amp;identifier)
-<a name="l00320"></a>00320 {
-<a name="l00321"></a>00321     string::size_type ki = key.find(<span class="charliteral">':'</span>);
-<a name="l00322"></a>00322     <span class="keywordflow">if</span> (ki == string::npos) {
-<a name="l00323"></a>00323         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00324"></a>00324     }
-<a name="l00325"></a>00325 
-<a name="l00326"></a>00326     libraryName = key.substr(0, ki);
-<a name="l00327"></a>00327     identifier = key.substr(ki + 1);
-<a name="l00328"></a>00328     <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00329"></a>00329 }
-<a name="l00330"></a>00330 
-<a name="l00331"></a>00331 <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364" title="PluginCategoryHierarchy is a sequence of general-&amp;gt;specific category names, as...">PluginLoader::PluginCategoryHierarchy</a>
-<a name="l00332"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#de4a5a8acbd85537c99440c4ac974be4">00332</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#de4a5a8acbd85537c99440c4ac974be4">PluginLoader::Impl::getPluginCategory</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> plugin)
-<a name="l00333"></a>00333 {
-<a name="l00334"></a>00334     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2ba901c7e59ece349b715d4a3fec7b04">m_taxonomy</a>.empty()) <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#923d9ace30548d8f3cce58b4037ec9e4">generateTaxonomy</a>();
-<a name="l00335"></a>00335     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2ba901c7e59ece349b715d4a3fec7b04">m_taxonomy</a>.find(plugin) == <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2ba901c7e59ece349b715d4a3fec7b04">m_taxonomy</a>.end()) {
-<a name="l00336"></a>00336         <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364" title="PluginCategoryHierarchy is a sequence of general-&amp;gt;specific category names, as...">PluginCategoryHierarchy</a>();
-<a name="l00337"></a>00337     }
-<a name="l00338"></a>00338     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2ba901c7e59ece349b715d4a3fec7b04">m_taxonomy</a>[plugin];
-<a name="l00339"></a>00339 }
-<a name="l00340"></a>00340 
-<a name="l00341"></a>00341 <span class="keywordtype">string</span>
-<a name="l00342"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#aac3ed8bf770f0675e624d411dab3efb">00342</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#aac3ed8bf770f0675e624d411dab3efb">PluginLoader::Impl::getLibraryPathForPlugin</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> plugin)
-<a name="l00343"></a>00343 {
-<a name="l00344"></a>00344     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">m_pluginLibraryNameMap</a>.find(plugin) == <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">m_pluginLibraryNameMap</a>.end()) {
-<a name="l00345"></a>00345         <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#d7b867e5cf9c29ad7254f567849f9913">m_allPluginsEnumerated</a>) <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-<a name="l00346"></a>00346         <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6fb71e4d0b4ff367ffef141c5e62763d">enumeratePlugins</a>(plugin);
-<a name="l00347"></a>00347     }
-<a name="l00348"></a>00348     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">m_pluginLibraryNameMap</a>.find(plugin) == <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">m_pluginLibraryNameMap</a>.end()) {
-<a name="l00349"></a>00349         <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-<a name="l00350"></a>00350     }
-<a name="l00351"></a>00351     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">m_pluginLibraryNameMap</a>[plugin];
-<a name="l00352"></a>00352 }    
-<a name="l00353"></a>00353 
-<a name="l00354"></a>00354 <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *
-<a name="l00355"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#3f6c4872459007b13722818cbdac409c">00355</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#3f6c4872459007b13722818cbdac409c">PluginLoader::Impl::loadPlugin</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> key,
-<a name="l00356"></a>00356                                <span class="keywordtype">float</span> inputSampleRate, <span class="keywordtype">int</span> adapterFlags)
-<a name="l00357"></a>00357 {
-<a name="l00358"></a>00358     <span class="keywordtype">string</span> libname, identifier;
-<a name="l00359"></a>00359     <span class="keywordflow">if</span> (!<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b06d720c0d53f908426ce244294d38ed">decomposePluginKey</a>(key, libname, identifier)) {
-<a name="l00360"></a>00360         std::cerr &lt;&lt; <span class="stringliteral">"Vamp::HostExt::PluginLoader: Invalid plugin key \""</span>
-<a name="l00361"></a>00361                   &lt;&lt; key &lt;&lt; <span class="stringliteral">"\" in loadPlugin"</span> &lt;&lt; std::endl;
-<a name="l00362"></a>00362         <span class="keywordflow">return</span> 0;
-<a name="l00363"></a>00363     }
-<a name="l00364"></a>00364         
-<a name="l00365"></a>00365     <span class="keywordtype">string</span> fullPath = <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#aac3ed8bf770f0675e624d411dab3efb">getLibraryPathForPlugin</a>(key);
-<a name="l00366"></a>00366     <span class="keywordflow">if</span> (fullPath == <span class="stringliteral">""</span>) <span class="keywordflow">return</span> 0;
-<a name="l00367"></a>00367     
-<a name="l00368"></a>00368     <span class="keywordtype">void</span> *handle = <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c0618149e415b7fd8ad782f434070752">loadLibrary</a>(fullPath);
-<a name="l00369"></a>00369     <span class="keywordflow">if</span> (!handle) <span class="keywordflow">return</span> 0;
-<a name="l00370"></a>00370     
-<a name="l00371"></a>00371     <a class="code" href="vamp_8h.html#551bb7e0d8c970c2202be5f881817478" title="Function pointer type for vampGetPluginDescriptor.">VampGetPluginDescriptorFunction</a> fn =
-<a name="l00372"></a>00372         (<a class="code" href="vamp_8h.html#551bb7e0d8c970c2202be5f881817478" title="Function pointer type for vampGetPluginDescriptor.">VampGetPluginDescriptorFunction</a>)<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ec71088ca89ba77f357bde8b37b807f8">lookupInLibrary</a>
-<a name="l00373"></a>00373         (handle, <span class="stringliteral">"vampGetPluginDescriptor"</span>);
-<a name="l00374"></a>00374 
-<a name="l00375"></a>00375     <span class="keywordflow">if</span> (!fn) {
-<a name="l00376"></a>00376         <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6a93367036f896d505f553b616e1e7aa">unloadLibrary</a>(handle);
-<a name="l00377"></a>00377         <span class="keywordflow">return</span> 0;
-<a name="l00378"></a>00378     }
-<a name="l00379"></a>00379 
-<a name="l00380"></a>00380     <span class="keywordtype">int</span> index = 0;
-<a name="l00381"></a>00381     <span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *descriptor = 0;
-<a name="l00382"></a>00382 
-<a name="l00383"></a>00383     <span class="keywordflow">while</span> ((descriptor = fn(<a class="code" href="vamp_8h.html#6d6c8c755dbabf161f72712e0e2143c7" title="Plugin API version.">VAMP_API_VERSION</a>, index))) {
-<a name="l00384"></a>00384 
-<a name="l00385"></a>00385         <span class="keywordflow">if</span> (<span class="keywordtype">string</span>(descriptor-&gt;<a class="code" href="struct__VampPluginDescriptor.html#4915ec8276749cb505c01d25a6d02219" title="Computer-usable name of the plugin.">identifier</a>) == identifier) {
-<a name="l00386"></a>00386 
-<a name="l00387"></a>00387             <a class="code" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">Vamp::PluginHostAdapter</a> *plugin =
-<a name="l00388"></a>00388                 <span class="keyword">new</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">Vamp::PluginHostAdapter</a>(descriptor, inputSampleRate);
-<a name="l00389"></a>00389 
-<a name="l00390"></a>00390             <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *adapter = <span class="keyword">new</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">PluginDeletionNotifyAdapter</a>(plugin, <span class="keyword">this</span>);
-<a name="l00391"></a>00391 
-<a name="l00392"></a>00392             <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1c3cee03d20e669c8b9379247a222600">m_pluginLibraryHandleMap</a>[adapter] = handle;
-<a name="l00393"></a>00393 
-<a name="l00394"></a>00394             <span class="keywordflow">if</span> (adapterFlags &amp; <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494763a9a0caf512d9671b90c05c2808a09">ADAPT_INPUT_DOMAIN</a>) {
-<a name="l00395"></a>00395                 <span class="keywordflow">if</span> (adapter-&gt;<a class="code" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() == <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">Plugin::FrequencyDomain</a>) {
-<a name="l00396"></a>00396                     adapter = <span class="keyword">new</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a>(adapter);
-<a name="l00397"></a>00397                 }
-<a name="l00398"></a>00398             }
-<a name="l00399"></a>00399 
-<a name="l00400"></a>00400             <span class="keywordflow">if</span> (adapterFlags &amp; <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34945c0c389797922630a6b54ffd1eed21f1">ADAPT_BUFFER_SIZE</a>) {
-<a name="l00401"></a>00401                 adapter = <span class="keyword">new</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a>(adapter);
-<a name="l00402"></a>00402             }
-<a name="l00403"></a>00403 
-<a name="l00404"></a>00404             <span class="keywordflow">if</span> (adapterFlags &amp; <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe349454c43b85382d78e8ea8da192bce3a139">ADAPT_CHANNEL_COUNT</a>) {
-<a name="l00405"></a>00405                 adapter = <span class="keyword">new</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a>(adapter);
-<a name="l00406"></a>00406             }
-<a name="l00407"></a>00407 
-<a name="l00408"></a>00408             <span class="keywordflow">return</span> adapter;
-<a name="l00409"></a>00409         }
-<a name="l00410"></a>00410 
-<a name="l00411"></a>00411         ++index;
-<a name="l00412"></a>00412     }
-<a name="l00413"></a>00413 
-<a name="l00414"></a>00414     cerr &lt;&lt; <span class="stringliteral">"Vamp::HostExt::PluginLoader: Plugin \""</span>
-<a name="l00415"></a>00415          &lt;&lt; identifier &lt;&lt; <span class="stringliteral">"\" not found in library \""</span>
-<a name="l00416"></a>00416          &lt;&lt; fullPath &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
-<a name="l00417"></a>00417 
-<a name="l00418"></a>00418     <span class="keywordflow">return</span> 0;
-<a name="l00419"></a>00419 }
-<a name="l00420"></a>00420 
-<a name="l00421"></a>00421 <span class="keywordtype">void</span>
-<a name="l00422"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#923d9ace30548d8f3cce58b4037ec9e4">00422</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#923d9ace30548d8f3cce58b4037ec9e4">PluginLoader::Impl::generateTaxonomy</a>()
-<a name="l00423"></a>00423 {
-<a name="l00424"></a>00424 <span class="comment">//    cerr &lt;&lt; "PluginLoader::Impl::generateTaxonomy" &lt;&lt; endl;</span>
-<a name="l00425"></a>00425 
-<a name="l00426"></a>00426     vector&lt;string&gt; path = <a class="code" href="classVamp_1_1PluginHostAdapter.html#08d7ed3a11bf4a3c30fa0f9b41a0fed6">PluginHostAdapter::getPluginPath</a>();
-<a name="l00427"></a>00427     <span class="keywordtype">string</span> libfragment = <span class="stringliteral">"/lib/"</span>;
-<a name="l00428"></a>00428     vector&lt;string&gt; catpath;
-<a name="l00429"></a>00429 
-<a name="l00430"></a>00430     <span class="keywordtype">string</span> suffix = <span class="stringliteral">"cat"</span>;
-<a name="l00431"></a>00431 
-<a name="l00432"></a>00432     <span class="keywordflow">for</span> (vector&lt;string&gt;::iterator i = path.begin();
-<a name="l00433"></a>00433          i != path.end(); ++i) {
-<a name="l00434"></a>00434 
-<a name="l00435"></a>00435         <span class="comment">// It doesn't matter that we're using literal forward-slash in</span>
-<a name="l00436"></a>00436         <span class="comment">// this bit, as it's only relevant if the path contains</span>
-<a name="l00437"></a>00437         <span class="comment">// "/lib/", which is only meaningful and only plausible on</span>
-<a name="l00438"></a>00438         <span class="comment">// systems with forward-slash delimiters</span>
-<a name="l00439"></a>00439         
-<a name="l00440"></a>00440         <span class="keywordtype">string</span> dir = *i;
-<a name="l00441"></a>00441         string::size_type li = dir.find(libfragment);
-<a name="l00442"></a>00442 
-<a name="l00443"></a>00443         <span class="keywordflow">if</span> (li != string::npos) {
-<a name="l00444"></a>00444             catpath.push_back
-<a name="l00445"></a>00445                 (dir.substr(0, li)
-<a name="l00446"></a>00446                  + <span class="stringliteral">"/share/"</span>
-<a name="l00447"></a>00447                  + dir.substr(li + libfragment.length()));
-<a name="l00448"></a>00448         }
-<a name="l00449"></a>00449 
-<a name="l00450"></a>00450         catpath.push_back(dir);
-<a name="l00451"></a>00451     }
-<a name="l00452"></a>00452 
-<a name="l00453"></a>00453     <span class="keywordtype">char</span> buffer[1024];
-<a name="l00454"></a>00454 
-<a name="l00455"></a>00455     <span class="keywordflow">for</span> (vector&lt;string&gt;::iterator i = catpath.begin();
-<a name="l00456"></a>00456          i != catpath.end(); ++i) {
-<a name="l00457"></a>00457         
-<a name="l00458"></a>00458         vector&lt;string&gt; files = <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2dd3964e84bca56390cd31b079fbc01f">listFiles</a>(*i, suffix);
-<a name="l00459"></a>00459 
-<a name="l00460"></a>00460         <span class="keywordflow">for</span> (vector&lt;string&gt;::iterator fi = files.begin();
-<a name="l00461"></a>00461              fi != files.end(); ++fi) {
-<a name="l00462"></a>00462 
-<a name="l00463"></a>00463             <span class="keywordtype">string</span> filepath = <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#eb7a794c0a2410a81a382a08e8a0143c">splicePath</a>(*i, *fi);
-<a name="l00464"></a>00464             ifstream is(filepath.c_str(), ifstream::in | ifstream::binary);
-<a name="l00465"></a>00465 
-<a name="l00466"></a>00466             <span class="keywordflow">if</span> (is.fail()) {
-<a name="l00467"></a>00467 <span class="comment">//                cerr &lt;&lt; "failed to open: " &lt;&lt; filepath &lt;&lt; endl;</span>
-<a name="l00468"></a>00468                 <span class="keywordflow">continue</span>;
-<a name="l00469"></a>00469             }
-<a name="l00470"></a>00470 
-<a name="l00471"></a>00471 <span class="comment">//            cerr &lt;&lt; "opened: " &lt;&lt; filepath &lt;&lt; endl;</span>
-<a name="l00472"></a>00472 
-<a name="l00473"></a>00473             <span class="keywordflow">while</span> (!!is.getline(buffer, 1024)) {
-<a name="l00474"></a>00474 
-<a name="l00475"></a>00475                 <span class="keywordtype">string</span> line(buffer);
-<a name="l00476"></a>00476 
-<a name="l00477"></a>00477 <span class="comment">//                cerr &lt;&lt; "line = " &lt;&lt; line &lt;&lt; endl;</span>
-<a name="l00478"></a>00478 
-<a name="l00479"></a>00479                 string::size_type di = line.find(<span class="stringliteral">"::"</span>);
-<a name="l00480"></a>00480                 <span class="keywordflow">if</span> (di == string::npos) <span class="keywordflow">continue</span>;
-<a name="l00481"></a>00481 
-<a name="l00482"></a>00482                 <span class="keywordtype">string</span> <span class="keywordtype">id</span> = line.substr(0, di);
-<a name="l00483"></a>00483                 <span class="keywordtype">string</span> encodedCat = line.substr(di + 2);
-<a name="l00484"></a>00484 
-<a name="l00485"></a>00485                 <span class="keywordflow">if</span> (<span class="keywordtype">id</span>.substr(0, 5) != <span class="stringliteral">"vamp:"</span>) <span class="keywordflow">continue</span>;
-<a name="l00486"></a>00486                 <span class="keywordtype">id</span> = <span class="keywordtype">id</span>.substr(5);
-<a name="l00487"></a>00487 
-<a name="l00488"></a>00488                 <span class="keywordflow">while</span> (encodedCat.length() &gt;= 1 &amp;&amp;
-<a name="l00489"></a>00489                        encodedCat[encodedCat.length()-1] == <span class="charliteral">'\r'</span>) {
-<a name="l00490"></a>00490                     encodedCat = encodedCat.substr(0, encodedCat.length()-1);
-<a name="l00491"></a>00491                 }
-<a name="l00492"></a>00492 
-<a name="l00493"></a>00493 <span class="comment">//                cerr &lt;&lt; "id = " &lt;&lt; id &lt;&lt; ", cat = " &lt;&lt; encodedCat &lt;&lt; endl;</span>
-<a name="l00494"></a>00494 
-<a name="l00495"></a>00495                 <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364" title="PluginCategoryHierarchy is a sequence of general-&amp;gt;specific category names, as...">PluginCategoryHierarchy</a> category;
-<a name="l00496"></a>00496                 string::size_type ai;
-<a name="l00497"></a>00497                 <span class="keywordflow">while</span> ((ai = encodedCat.find(<span class="stringliteral">" &gt; "</span>)) != string::npos) {
-<a name="l00498"></a>00498                     category.push_back(encodedCat.substr(0, ai));
-<a name="l00499"></a>00499                     encodedCat = encodedCat.substr(ai + 3);
-<a name="l00500"></a>00500                 }
-<a name="l00501"></a>00501                 <span class="keywordflow">if</span> (encodedCat != <span class="stringliteral">""</span>) category.push_back(encodedCat);
-<a name="l00502"></a>00502 
-<a name="l00503"></a>00503                 <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2ba901c7e59ece349b715d4a3fec7b04">m_taxonomy</a>[id] = category;
-<a name="l00504"></a>00504             }
-<a name="l00505"></a>00505         }
-<a name="l00506"></a>00506     }
-<a name="l00507"></a>00507 }    
-<a name="l00508"></a>00508 
-<a name="l00509"></a>00509 <span class="keywordtype">void</span> *
-<a name="l00510"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c0618149e415b7fd8ad782f434070752">00510</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c0618149e415b7fd8ad782f434070752">PluginLoader::Impl::loadLibrary</a>(<span class="keywordtype">string</span> path)
-<a name="l00511"></a>00511 {
-<a name="l00512"></a>00512     <span class="keywordtype">void</span> *handle = 0;
-<a name="l00513"></a>00513 <span class="preprocessor">#ifdef _WIN32</span>
-<a name="l00514"></a>00514 <span class="preprocessor"></span>    handle = LoadLibrary(path.c_str());
-<a name="l00515"></a>00515     <span class="keywordflow">if</span> (!handle) {
-<a name="l00516"></a>00516         cerr &lt;&lt; <span class="stringliteral">"Vamp::HostExt::PluginLoader: Unable to load library \""</span>
-<a name="l00517"></a>00517              &lt;&lt; path &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
-<a name="l00518"></a>00518     }
-<a name="l00519"></a>00519 <span class="preprocessor">#else</span>
-<a name="l00520"></a>00520 <span class="preprocessor"></span>    handle = dlopen(path.c_str(), RTLD_LAZY | RTLD_LOCAL);
-<a name="l00521"></a>00521     <span class="keywordflow">if</span> (!handle) {
-<a name="l00522"></a>00522         cerr &lt;&lt; <span class="stringliteral">"Vamp::HostExt::PluginLoader: Unable to load library \""</span>
-<a name="l00523"></a>00523              &lt;&lt; path &lt;&lt; <span class="stringliteral">"\": "</span> &lt;&lt; dlerror() &lt;&lt; endl;
-<a name="l00524"></a>00524     }
-<a name="l00525"></a>00525 <span class="preprocessor">#endif</span>
-<a name="l00526"></a>00526 <span class="preprocessor"></span>    <span class="keywordflow">return</span> handle;
-<a name="l00527"></a>00527 }
-<a name="l00528"></a>00528 
-<a name="l00529"></a>00529 <span class="keywordtype">void</span>
-<a name="l00530"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6a93367036f896d505f553b616e1e7aa">00530</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6a93367036f896d505f553b616e1e7aa">PluginLoader::Impl::unloadLibrary</a>(<span class="keywordtype">void</span> *handle)
-<a name="l00531"></a>00531 {
-<a name="l00532"></a>00532 <span class="preprocessor">#ifdef _WIN32</span>
-<a name="l00533"></a>00533 <span class="preprocessor"></span>    FreeLibrary((HINSTANCE)handle);
-<a name="l00534"></a>00534 <span class="preprocessor">#else</span>
-<a name="l00535"></a>00535 <span class="preprocessor"></span>    dlclose(handle);
-<a name="l00536"></a>00536 <span class="preprocessor">#endif</span>
-<a name="l00537"></a>00537 <span class="preprocessor"></span>}
-<a name="l00538"></a>00538 
-<a name="l00539"></a>00539 <span class="keywordtype">void</span> *
-<a name="l00540"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ec71088ca89ba77f357bde8b37b807f8">00540</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ec71088ca89ba77f357bde8b37b807f8">PluginLoader::Impl::lookupInLibrary</a>(<span class="keywordtype">void</span> *handle, <span class="keyword">const</span> <span class="keywordtype">char</span> *symbol)
-<a name="l00541"></a>00541 {
-<a name="l00542"></a>00542 <span class="preprocessor">#ifdef _WIN32</span>
-<a name="l00543"></a>00543 <span class="preprocessor"></span>    <span class="keywordflow">return</span> (<span class="keywordtype">void</span> *)GetProcAddress((HINSTANCE)handle, symbol);
-<a name="l00544"></a>00544 <span class="preprocessor">#else</span>
-<a name="l00545"></a>00545 <span class="preprocessor"></span>    <span class="keywordflow">return</span> (<span class="keywordtype">void</span> *)dlsym(handle, symbol);
-<a name="l00546"></a>00546 <span class="preprocessor">#endif</span>
-<a name="l00547"></a>00547 <span class="preprocessor"></span>}
-<a name="l00548"></a>00548 
-<a name="l00549"></a>00549 <span class="keywordtype">string</span>
-<a name="l00550"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#eb7a794c0a2410a81a382a08e8a0143c">00550</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#eb7a794c0a2410a81a382a08e8a0143c">PluginLoader::Impl::splicePath</a>(<span class="keywordtype">string</span> a, <span class="keywordtype">string</span> b)
-<a name="l00551"></a>00551 {
-<a name="l00552"></a>00552 <span class="preprocessor">#ifdef _WIN32</span>
-<a name="l00553"></a>00553 <span class="preprocessor"></span>    <span class="keywordflow">return</span> a + <span class="stringliteral">"\\"</span> + b;
-<a name="l00554"></a>00554 <span class="preprocessor">#else</span>
-<a name="l00555"></a>00555 <span class="preprocessor"></span>    <span class="keywordflow">return</span> a + <span class="stringliteral">"/"</span> + b;
-<a name="l00556"></a>00556 <span class="preprocessor">#endif</span>
-<a name="l00557"></a>00557 <span class="preprocessor"></span>}
-<a name="l00558"></a>00558 
-<a name="l00559"></a>00559 vector&lt;string&gt;
-<a name="l00560"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2dd3964e84bca56390cd31b079fbc01f">00560</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2dd3964e84bca56390cd31b079fbc01f">PluginLoader::Impl::listFiles</a>(<span class="keywordtype">string</span> dir, <span class="keywordtype">string</span> extension)
-<a name="l00561"></a>00561 {
-<a name="l00562"></a>00562     vector&lt;string&gt; files;
-<a name="l00563"></a>00563 
-<a name="l00564"></a>00564 <span class="preprocessor">#ifdef _WIN32</span>
-<a name="l00565"></a>00565 <span class="preprocessor"></span>
-<a name="l00566"></a>00566     <span class="keywordtype">string</span> expression = dir + <span class="stringliteral">"\\*."</span> + extension;
-<a name="l00567"></a>00567     WIN32_FIND_DATA data;
-<a name="l00568"></a>00568     HANDLE fh = FindFirstFile(expression.c_str(), &amp;data);
-<a name="l00569"></a>00569     <span class="keywordflow">if</span> (fh == INVALID_HANDLE_VALUE) <span class="keywordflow">return</span> files;
-<a name="l00570"></a>00570 
-<a name="l00571"></a>00571     <span class="keywordtype">bool</span> ok = <span class="keyword">true</span>;
-<a name="l00572"></a>00572     <span class="keywordflow">while</span> (ok) {
-<a name="l00573"></a>00573         files.push_back(data.cFileName);
-<a name="l00574"></a>00574         ok = FindNextFile(fh, &amp;data);
-<a name="l00575"></a>00575     }
-<a name="l00576"></a>00576 
-<a name="l00577"></a>00577     FindClose(fh);
-<a name="l00578"></a>00578 
-<a name="l00579"></a>00579 <span class="preprocessor">#else</span>
-<a name="l00580"></a>00580 <span class="preprocessor"></span>
-<a name="l00581"></a>00581     <span class="keywordtype">size_t</span> extlen = extension.length();
-<a name="l00582"></a>00582     DIR *d = opendir(dir.c_str());
-<a name="l00583"></a>00583     <span class="keywordflow">if</span> (!d) <span class="keywordflow">return</span> files;
-<a name="l00584"></a>00584             
-<a name="l00585"></a>00585     <span class="keyword">struct </span>dirent *e = 0;
-<a name="l00586"></a>00586     <span class="keywordflow">while</span> ((e = readdir(d))) {
-<a name="l00587"></a>00587  
-<a name="l00588"></a>00588         <span class="keywordflow">if</span> (!e-&gt;d_name) <span class="keywordflow">continue</span>;
-<a name="l00589"></a>00589        
-<a name="l00590"></a>00590         <span class="keywordtype">size_t</span> len = strlen(e-&gt;d_name);
-<a name="l00591"></a>00591         <span class="keywordflow">if</span> (len &lt; extlen + 2 ||
-<a name="l00592"></a>00592             e-&gt;d_name + len - extlen - 1 != <span class="stringliteral">"."</span> + extension) {
-<a name="l00593"></a>00593             <span class="keywordflow">continue</span>;
-<a name="l00594"></a>00594         }
-<a name="l00595"></a>00595 
-<a name="l00596"></a>00596         files.push_back(e-&gt;d_name);
-<a name="l00597"></a>00597     }
-<a name="l00598"></a>00598 
-<a name="l00599"></a>00599     closedir(d);
-<a name="l00600"></a>00600 <span class="preprocessor">#endif</span>
-<a name="l00601"></a>00601 <span class="preprocessor"></span>
-<a name="l00602"></a>00602     <span class="keywordflow">return</span> files;
-<a name="l00603"></a>00603 }
-<a name="l00604"></a>00604 
-<a name="l00605"></a>00605 <span class="keywordtype">void</span>
-<a name="l00606"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#e0a6e1bf07a62eb6a34a1393bc3da26c">00606</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#e0a6e1bf07a62eb6a34a1393bc3da26c">PluginLoader::Impl::pluginDeleted</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">PluginDeletionNotifyAdapter</a> *adapter)
-<a name="l00607"></a>00607 {
-<a name="l00608"></a>00608     <span class="keywordtype">void</span> *handle = <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1c3cee03d20e669c8b9379247a222600">m_pluginLibraryHandleMap</a>[adapter];
-<a name="l00609"></a>00609     <span class="keywordflow">if</span> (handle) <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6a93367036f896d505f553b616e1e7aa">unloadLibrary</a>(handle);
-<a name="l00610"></a>00610     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1c3cee03d20e669c8b9379247a222600">m_pluginLibraryHandleMap</a>.erase(adapter);
-<a name="l00611"></a>00611 }
-<a name="l00612"></a>00612 
-<a name="l00613"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#80196e30ed72a4f45b4152a3991d7777">00613</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#80196e30ed72a4f45b4152a3991d7777">PluginLoader::Impl::PluginDeletionNotifyAdapter::PluginDeletionNotifyAdapter</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin,
-<a name="l00614"></a>00614                                                                              <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a> *loader) :
-<a name="l00615"></a>00615     <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a>(plugin),
-<a name="l00616"></a>00616     m_loader(loader)
-<a name="l00617"></a>00617 {
-<a name="l00618"></a>00618 }
-<a name="l00619"></a>00619 
-<a name="l00620"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#bb85c0134c354c0854f3868a60d0193f">00620</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#bb85c0134c354c0854f3868a60d0193f">PluginLoader::Impl::PluginDeletionNotifyAdapter::~PluginDeletionNotifyAdapter</a>()
-<a name="l00621"></a>00621 {
-<a name="l00622"></a>00622     <span class="comment">// We need to delete the plugin before calling pluginDeleted, as</span>
-<a name="l00623"></a>00623     <span class="comment">// the delete call may require calling through to the descriptor</span>
-<a name="l00624"></a>00624     <span class="comment">// (for e.g. cleanup) but pluginDeleted may unload the required</span>
-<a name="l00625"></a>00625     <span class="comment">// library for the call.  To prevent a double deletion when our</span>
-<a name="l00626"></a>00626     <span class="comment">// parent's destructor runs (after this one), be sure to set</span>
-<a name="l00627"></a>00627     <span class="comment">// m_plugin to 0 after deletion.</span>
-<a name="l00628"></a>00628     <span class="keyword">delete</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>;
-<a name="l00629"></a>00629     <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a> = 0;
-<a name="l00630"></a>00630 
-<a name="l00631"></a>00631     <span class="keywordflow">if</span> (<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#1fb8473ea9ad73b1b6a00b92345d8397">m_loader</a>) <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#1fb8473ea9ad73b1b6a00b92345d8397">m_loader</a>-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#e0a6e1bf07a62eb6a34a1393bc3da26c">pluginDeleted</a>(<span class="keyword">this</span>);
-<a name="l00632"></a>00632 }
-<a name="l00633"></a>00633 
-<a name="l00634"></a>00634 }
-<a name="l00635"></a>00635 
-<a name="l00636"></a>00636 }
-</pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/PluginLoader_8cpp.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-<!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: PluginLoader.cpp 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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
-  </div>
-</div>
-<div class="contents">
-<h1>PluginLoader.cpp File Reference</h1>
-<p>
-
-<p>
-<a href="PluginLoader_8cpp-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>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html">Vamp</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp_1_1HostExt.html">Vamp::HostExt</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginLoader_8cpp.html#1efbc9bb9a9f2837d3f7386af8607abf">PLUGIN_SUFFIX</a>&nbsp;&nbsp;&nbsp;&quot;so&quot;</td></tr>
-
-</table>
-<hr><h2>Define Documentation</h2>
-<a class="anchor" name="1efbc9bb9a9f2837d3f7386af8607abf"></a><!-- doxytag: member="PluginLoader.cpp::PLUGIN_SUFFIX" ref="1efbc9bb9a9f2837d3f7386af8607abf" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define PLUGIN_SUFFIX&nbsp;&nbsp;&nbsp;&quot;so&quot;          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00062">62</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00226">Vamp::HostExt::PluginLoader::Impl::enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00081">usage()</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&nbsp;
-<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>
--- a/code-doc/PluginLoader_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PluginLoader_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -15,10 +15,10 @@
       <li><a href="dirs.html"><span>Directories</span></a></li>
     </ul>
   </div>
-  <div class="navpath"><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  <div class="navpath"><a class="el" href="dir_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>PluginLoader.h</h1><a href="PluginLoader_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -62,68 +62,73 @@
 <a name="l00041"></a>00041 <span class="preprocessor">#include &lt;string&gt;</span>
 <a name="l00042"></a>00042 <span class="preprocessor">#include &lt;map&gt;</span>
 <a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="preprocessor">#include "<a class="code" href="PluginWrapper_8h.html">PluginWrapper.h</a>"</span>
-<a name="l00045"></a>00045 
-<a name="l00046"></a>00046 <span class="keyword">namespace </span>Vamp {
-<a name="l00047"></a>00047 
-<a name="l00048"></a>00048 <span class="keyword">class </span>Plugin;
-<a name="l00049"></a>00049 
-<a name="l00050"></a>00050 <span class="keyword">namespace </span>HostExt {
-<a name="l00051"></a>00051 
-<a name="l00069"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html">00069</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a>
-<a name="l00070"></a>00070 {
-<a name="l00071"></a>00071 <span class="keyword">public</span>:
-<a name="l00076"></a>00076     <span class="keyword">static</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#dbb5c8855697a24be890e4f107e26b0e" title="Obtain a pointer to the singleton instance of PluginLoader.">getInstance</a>();
-<a name="l00077"></a>00077 
-<a name="l00098"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">00098</a>     <span class="keyword">typedef</span> std::string <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a>;
-<a name="l00099"></a>00099 
-<a name="l00104"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#0d48b76e4f995110f53e0feeb23f733a">00104</a>     <span class="keyword">typedef</span> std::vector&lt;PluginKey&gt; <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#0d48b76e4f995110f53e0feeb23f733a" title="PluginKeyList is a sequence of plugin keys, such as returned by listPlugins().">PluginKeyList</a>;
-<a name="l00105"></a>00105 
-<a name="l00116"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364">00116</a>     <span class="keyword">typedef</span> std::vector&lt;std::string&gt; <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364" title="PluginCategoryHierarchy is a sequence of general-&amp;gt;specific category names, as...">PluginCategoryHierarchy</a>;
-<a name="l00117"></a>00117 
-<a name="l00122"></a>00122     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#0d48b76e4f995110f53e0feeb23f733a" title="PluginKeyList is a sequence of plugin keys, such as returned by listPlugins().">PluginKeyList</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ec450c2928b1ae5318d45972722dd16b" title="Search for all available Vamp plugins, and return a list of them in the order in...">listPlugins</a>();
-<a name="l00123"></a>00123 
-<a name="l00166"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494">00166</a>     <span class="keyword">enum</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494" title="AdapterFlags contains a set of values that may be OR&amp;#39;d together to indicate in...">AdapterFlags</a> {
-<a name="l00167"></a>00167 
-<a name="l00168"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494763a9a0caf512d9671b90c05c2808a09">00168</a>         <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494763a9a0caf512d9671b90c05c2808a09">ADAPT_INPUT_DOMAIN</a>  = 0x01,
-<a name="l00169"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe349454c43b85382d78e8ea8da192bce3a139">00169</a>         <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe349454c43b85382d78e8ea8da192bce3a139">ADAPT_CHANNEL_COUNT</a> = 0x02,
-<a name="l00170"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34945c0c389797922630a6b54ffd1eed21f1">00170</a>         <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34945c0c389797922630a6b54ffd1eed21f1">ADAPT_BUFFER_SIZE</a>   = 0x04,
-<a name="l00171"></a>00171 
-<a name="l00172"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34948220529e851ae30d37f413c40a389e08">00172</a>         <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34948220529e851ae30d37f413c40a389e08">ADAPT_ALL_SAFE</a>      = 0x03,
-<a name="l00173"></a>00173 
-<a name="l00174"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34943b1e08415c0cbc96f7900eac955ad6d0">00174</a>         <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34943b1e08415c0cbc96f7900eac955ad6d0">ADAPT_ALL</a>           = 0xff
-<a name="l00175"></a>00175     };
+<a name="l00044"></a>00044 <span class="preprocessor">#include "<a class="code" href="hostguard_8h.html">hostguard.h</a>"</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#include "<a class="code" href="PluginWrapper_8h.html">PluginWrapper.h</a>"</span>
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 <a class="code" href="hostguard_8h.html#ef42eae5f1b0b897d8dac58cd54afbcd">_VAMP_SDK_HOSTSPACE_BEGIN</a>(PluginLoader.h)
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049 namespace Vamp {
+<a name="l00050"></a>00050 
+<a name="l00051"></a>00051 <span class="keyword">class </span>Plugin;
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053 <span class="keyword">namespace </span>HostExt {
+<a name="l00054"></a>00054 
+<a name="l00072"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html">00072</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a>
+<a name="l00073"></a>00073 {
+<a name="l00074"></a>00074 <span class="keyword">public</span>:
+<a name="l00079"></a>00079     <span class="keyword">static</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *getInstance();
+<a name="l00080"></a>00080 
+<a name="l00101"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">00101</a>     <span class="keyword">typedef</span> std::string PluginKey;
+<a name="l00102"></a>00102 
+<a name="l00107"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#0d48b76e4f995110f53e0feeb23f733a">00107</a>     <span class="keyword">typedef</span> std::vector&lt;PluginKey&gt; PluginKeyList;
+<a name="l00108"></a>00108 
+<a name="l00119"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364">00119</a>     <span class="keyword">typedef</span> std::vector&lt;std::string&gt; PluginCategoryHierarchy;
+<a name="l00120"></a>00120 
+<a name="l00125"></a>00125     PluginKeyList listPlugins();
+<a name="l00126"></a>00126 
+<a name="l00169"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494">00169</a>     <span class="keyword">enum</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494" title="AdapterFlags contains a set of values that may be OR&amp;#39;d together to indicate in...">AdapterFlags</a> {
+<a name="l00170"></a>00170 
+<a name="l00171"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494763a9a0caf512d9671b90c05c2808a09">00171</a>         ADAPT_INPUT_DOMAIN  = 0x01,
+<a name="l00172"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe349454c43b85382d78e8ea8da192bce3a139">00172</a>         ADAPT_CHANNEL_COUNT = 0x02,
+<a name="l00173"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34945c0c389797922630a6b54ffd1eed21f1">00173</a>         ADAPT_BUFFER_SIZE   = 0x04,
+<a name="l00174"></a>00174 
+<a name="l00175"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34948220529e851ae30d37f413c40a389e08">00175</a>         ADAPT_ALL_SAFE      = 0x03,
 <a name="l00176"></a>00176 
-<a name="l00194"></a>00194     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#2154970381343edef629482bdafea7e2" title="Load a Vamp plugin, given its identifying key.">loadPlugin</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> key,
-<a name="l00195"></a>00195                        <span class="keywordtype">float</span> inputSampleRate,
-<a name="l00196"></a>00196                        <span class="keywordtype">int</span> adapterFlags = 0);
-<a name="l00197"></a>00197 
-<a name="l00203"></a>00203     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#cc6865d27825c100d7b6f9ed6ecf5207" title="Given a Vamp plugin library name and plugin identifier, return the corresponding...">composePluginKey</a>(std::string libraryName,
-<a name="l00204"></a>00204                                std::string identifier);
-<a name="l00205"></a>00205 
-<a name="l00215"></a>00215     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364" title="PluginCategoryHierarchy is a sequence of general-&amp;gt;specific category names, as...">PluginCategoryHierarchy</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#d5c594142ff058bd70e66247d45cd86e" title="Return the category hierarchy for a Vamp plugin, given its identifying key.">getPluginCategory</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> plugin);
-<a name="l00216"></a>00216 
-<a name="l00221"></a>00221     std::string <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#592d6b4c6edaa369407e833f56e4a4de" title="Return the file path of the dynamic library from which the given plugin will be loaded...">getLibraryPathForPlugin</a>(<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d" title="PluginKey is a string type that is used to identify a plugin uniquely within the...">PluginKey</a> plugin);
-<a name="l00222"></a>00222 
-<a name="l00223"></a>00223 <span class="keyword">protected</span>:
-<a name="l00224"></a>00224     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#5ab9e0281244bef7976c6c0ce1a55c24">PluginLoader</a>();
-<a name="l00225"></a>00225     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#9e092d864efdc0f16c032bfb25e76dea">~PluginLoader</a>();
-<a name="l00226"></a>00226 
-<a name="l00227"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">00227</a>     <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a>;
-<a name="l00228"></a>00228     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a> *<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">m_impl</a>;
+<a name="l00177"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34943b1e08415c0cbc96f7900eac955ad6d0">00177</a>         ADAPT_ALL           = 0xff
+<a name="l00178"></a>00178     };
+<a name="l00179"></a>00179 
+<a name="l00197"></a>00197     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *loadPlugin(PluginKey key,
+<a name="l00198"></a>00198                        <span class="keywordtype">float</span> inputSampleRate,
+<a name="l00199"></a>00199                        <span class="keywordtype">int</span> adapterFlags = 0);
+<a name="l00200"></a>00200 
+<a name="l00206"></a>00206     PluginKey composePluginKey(std::string libraryName,
+<a name="l00207"></a>00207                                std::string identifier);
+<a name="l00208"></a>00208 
+<a name="l00218"></a>00218     PluginCategoryHierarchy getPluginCategory(PluginKey plugin);
+<a name="l00219"></a>00219 
+<a name="l00224"></a>00224     std::string getLibraryPathForPlugin(PluginKey plugin);
+<a name="l00225"></a>00225 
+<a name="l00226"></a>00226 <span class="keyword">protected</span>:
+<a name="l00227"></a>00227     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a>();
+<a name="l00228"></a>00228     <span class="keyword">virtual</span> ~<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a>();
 <a name="l00229"></a>00229 
-<a name="l00230"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#aa4eae58ddbadf6537a95dbb6e957187">00230</a>     <span class="keyword">static</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#aa4eae58ddbadf6537a95dbb6e957187">m_instance</a>;
-<a name="l00231"></a>00231 };
+<a name="l00230"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">00230</a>     <span class="keyword">class </span>Impl;
+<a name="l00231"></a>00231     Impl *m_impl;
 <a name="l00232"></a>00232 
-<a name="l00233"></a>00233 }
-<a name="l00234"></a>00234 
-<a name="l00235"></a>00235 }
-<a name="l00236"></a>00236 
-<a name="l00237"></a>00237 <span class="preprocessor">#endif</span>
-<a name="l00238"></a>00238 <span class="preprocessor"></span>
+<a name="l00233"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#f89caf5f838a586b117c417260b7a116">00233</a>     <span class="keyword">static</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *m_instance;
+<a name="l00234"></a>00234 };
+<a name="l00235"></a>00235 
+<a name="l00236"></a>00236 }
+<a name="l00237"></a>00237 
+<a name="l00238"></a>00238 }
+<a name="l00239"></a>00239 
+<a name="l00240"></a>00240 <a class="code" href="hostguard_8h.html#0e6efdc2909bdb0cfab70e087d91b171">_VAMP_SDK_HOSTSPACE_END</a>(PluginLoader.h)
+<a name="l00241"></a>00241 
+<a name="l00242"></a>00242 <span class="preprocessor">#endif</span>
+<a name="l00243"></a>00243 <span class="preprocessor"></span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PluginLoader_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PluginLoader_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -15,7 +15,7 @@
       <li><a href="dirs.html"><span>Directories</span></a></li>
     </ul>
   </div>
-  <div class="navpath"><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  <div class="navpath"><a class="el" href="dir_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
   </div>
 </div>
 <div class="contents">
@@ -33,11 +33,11 @@
 <tr><td colspan="2"><br><h2>Classes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">Vamp::HostExt::PluginLoader</a> is a convenience class for discovering and loading <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 using the typical plugin-path, library naming, and categorisation conventions described in the <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> SDK documentation.  <a href="classVamp_1_1HostExt_1_1PluginLoader.html#_details">More...</a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">Vamp::HostExt::PluginLoader</a> is a convenience class for discovering and loading <a class="el" href="namespaceVamp.html">Vamp</a> plugins using the typical plugin-path, library naming, and categorisation conventions described in the <a class="el" href="namespaceVamp.html">Vamp</a> SDK documentation.  <a href="classVamp_1_1HostExt_1_1PluginLoader.html#_details">More...</a><br></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginSummarisingAdapter_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,130 @@
+<!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: PluginSummarisingAdapter.h Source File</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>PluginSummarisingAdapter.h</h1><a href="PluginSummarisingAdapter_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/*</span>
+<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
+<a name="l00005"></a>00005 <span class="comment"></span>
+<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2006-2008 Chris Cannam and QMUL.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_PLUGIN_SUMMARISING_ADAPTER_H_</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_PLUGIN_SUMMARISING_ADAPTER_H_</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="hostguard_8h.html">hostguard.h</a>"</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="PluginWrapper_8h.html">PluginWrapper.h</a>"</span>
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;set&gt;</span>
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <a class="code" href="hostguard_8h.html#ef42eae5f1b0b897d8dac58cd54afbcd">_VAMP_SDK_HOSTSPACE_BEGIN</a>(PluginSummarisingAdapter.h)
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 namespace Vamp {
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049 <span class="keyword">namespace </span>HostExt {
+<a name="l00050"></a>00050 
+<a name="l00086"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">00086</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a>
+<a name="l00087"></a>00087 {
+<a name="l00088"></a>00088 <span class="keyword">public</span>:
+<a name="l00094"></a>00094     <a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin); 
+<a name="l00095"></a>00095     <span class="keyword">virtual</span> ~<a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a>();
+<a name="l00096"></a>00096 
+<a name="l00097"></a>00097     <span class="keywordtype">bool</span> initialise(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099     FeatureSet process(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp);
+<a name="l00100"></a>00100     FeatureSet getRemainingFeatures();
+<a name="l00101"></a>00101 
+<a name="l00102"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#74e7f93c745802a2409185b63922466b">00102</a>     <span class="keyword">typedef</span> std::set&lt;RealTime&gt; SegmentBoundaries;
+<a name="l00103"></a>00103 
+<a name="l00117"></a>00117     <span class="keywordtype">void</span> setSummarySegmentBoundaries(<span class="keyword">const</span> SegmentBoundaries &amp;);
+<a name="l00118"></a>00118 
+<a name="l00119"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">00119</a>     <span class="keyword">enum</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">SummaryType</a> {
+<a name="l00120"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705320b8a4cd0c3d492aeb17f7fc4ed930c">00120</a>         Minimum            = 0,
+<a name="l00121"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705defff4e5073aa298a96d99b92025b7f9">00121</a>         Maximum            = 1,
+<a name="l00122"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705e8a03f013397d08c85734e47524f5a75">00122</a>         Mean               = 2,
+<a name="l00123"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705adde1f9a5a6557f25223279433699195">00123</a>         Median             = 3,
+<a name="l00124"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717051688d03811a2268daa062220f5be0614">00124</a>         Mode               = 4,
+<a name="l00125"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717059496664a605b3aa706f909070d73060b">00125</a>         Sum                = 5,
+<a name="l00126"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705e965a9e5381745e6e3a75342d7c8e075">00126</a>         Variance           = 6,
+<a name="l00127"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717059342cd2209e20b93843cd389d9511ec7">00127</a>         StandardDeviation  = 7,
+<a name="l00128"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717052395772fa2e74b3f617e20c76d579ad6">00128</a>         Count              = 8,
+<a name="l00129"></a>00129 
+<a name="l00130"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705eed3a16d665eb789053b82fdd386ee7c">00130</a>         UnknownSummaryType = 999
+<a name="l00131"></a>00131     };
+<a name="l00132"></a>00132 
+<a name="l00155"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">00155</a>     <span class="keyword">enum</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76" title="AveragingMethod indicates how the adapter should handle average-based summaries of...">AveragingMethod</a> {
+<a name="l00156"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76e8833d866dec593d29f1f4e3cd1e6e36">00156</a>         SampleAverage         = 0,
+<a name="l00157"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac766af6316c12e29bdbdff90c5fec764baa">00157</a>         ContinuousTimeAverage = 1,
+<a name="l00158"></a>00158     };
+<a name="l00159"></a>00159 
+<a name="l00168"></a>00168     FeatureList getSummaryForOutput(<span class="keywordtype">int</span> output,
+<a name="l00169"></a>00169                                     SummaryType type,
+<a name="l00170"></a>00170                                     AveragingMethod method = SampleAverage);
+<a name="l00171"></a>00171 
+<a name="l00181"></a>00181     FeatureSet getSummaryForAllOutputs(SummaryType type,
+<a name="l00182"></a>00182                                        AveragingMethod method = SampleAverage);
+<a name="l00183"></a>00183 
+<a name="l00184"></a>00184 <span class="keyword">protected</span>:
+<a name="l00185"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f131140817d9f131650af98b6b8d7a94">00185</a>     <span class="keyword">class </span>Impl;
+<a name="l00186"></a>00186     Impl *m_impl;
+<a name="l00187"></a>00187 };
+<a name="l00188"></a>00188 
+<a name="l00189"></a>00189 }
+<a name="l00190"></a>00190 
+<a name="l00191"></a>00191 }
+<a name="l00192"></a>00192 
+<a name="l00193"></a>00193 <a class="code" href="hostguard_8h.html#0e6efdc2909bdb0cfab70e087d91b171">_VAMP_SDK_HOSTSPACE_END</a>(PluginSummarisingAdapter.h)
+<a name="l00194"></a>00194 
+<a name="l00195"></a>00195 <span class="preprocessor">#endif</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginSummarisingAdapter_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,43 @@
+<!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: PluginSummarisingAdapter.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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>PluginSummarisingAdapter.h File Reference</h1>
+<p>
+
+<p>
+<a href="PluginSummarisingAdapter_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>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html">Vamp</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp_1_1HostExt.html">Vamp::HostExt</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that provides summarisation methods such as mean and median averages of output features, for use in any context where an available plugin produces individual values but the result that is actually needed is some sort of aggregate.  <a href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#_details">More...</a><br></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- a/code-doc/PluginWrapper_8cpp-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,228 +0,0 @@
-<!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: PluginWrapper.cpp Source File</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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
-  </div>
-</div>
-</div>
-<h1>PluginWrapper.cpp</h1><a href="PluginWrapper_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
-<a name="l00002"></a>00002 
-<a name="l00003"></a>00003 <span class="comment">/*</span>
-<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
-<a name="l00005"></a>00005 <span class="comment"></span>
-<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
-<a name="l00007"></a>00007 <span class="comment"></span>
-<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
-<a name="l00009"></a>00009 <span class="comment">    Copyright 2006-2007 Chris Cannam and QMUL.</span>
-<a name="l00010"></a>00010 <span class="comment">  </span>
-<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
-<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
-<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
-<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
-<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
-<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
-<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
-<a name="l00018"></a>00018 <span class="comment"></span>
-<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
-<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
-<a name="l00021"></a>00021 <span class="comment"></span>
-<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
-<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
-<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
-<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
-<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
-<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
-<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
-<a name="l00029"></a>00029 <span class="comment"></span>
-<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
-<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
-<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
-<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
-<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
-<a name="l00035"></a>00035 <span class="comment">*/</span>
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="PluginWrapper_8h.html">PluginWrapper.h</a>"</span>
-<a name="l00038"></a>00038 
-<a name="l00039"></a>00039 <span class="keyword">namespace </span>Vamp {
-<a name="l00040"></a>00040 
-<a name="l00041"></a>00041 <span class="keyword">namespace </span>HostExt {
-<a name="l00042"></a>00042 
-<a name="l00043"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html">00043</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html">PluginRateExtractor</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a>
-<a name="l00044"></a>00044 {
-<a name="l00045"></a>00045 <span class="keyword">public</span>:
-<a name="l00046"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html#2ca2ad6683e73737a7c9b0f9b1a35f00">00046</a>     <a class="code" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html#2ca2ad6683e73737a7c9b0f9b1a35f00">PluginRateExtractor</a>() : <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a>(0) { }
-<a name="l00047"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html#d6f14e142d960be479b291291cf8d735">00047</a>     <span class="keywordtype">float</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html#d6f14e142d960be479b291291cf8d735">getRate</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>; }
-<a name="l00048"></a>00048 };
-<a name="l00049"></a>00049 
-<a name="l00050"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#35cc2d42f8322f5022e89859a79c97be">00050</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#35cc2d42f8322f5022e89859a79c97be">PluginWrapper::PluginWrapper</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin) :
-<a name="l00051"></a>00051     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a>(((<a class="code" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html">PluginRateExtractor</a> *)plugin)-&gt;getRate()),
-<a name="l00052"></a>00052     m_plugin(plugin)
-<a name="l00053"></a>00053 {
-<a name="l00054"></a>00054 }
-<a name="l00055"></a>00055 
-<a name="l00056"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7449a364d524de75352a4719fec2e1f5">00056</a> PluginWrapper::~PluginWrapper()
-<a name="l00057"></a>00057 {
-<a name="l00058"></a>00058     <span class="keyword">delete</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>;
-<a name="l00059"></a>00059 }
-<a name="l00060"></a>00060 
-<a name="l00061"></a>00061 <span class="keywordtype">bool</span>
-<a name="l00062"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">00062</a> PluginWrapper::initialise(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize)
-<a name="l00063"></a>00063 {
-<a name="l00064"></a>00064     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise</a>(channels, stepSize, blockSize);
-<a name="l00065"></a>00065 }
-<a name="l00066"></a>00066 
-<a name="l00067"></a>00067 <span class="keywordtype">void</span>
-<a name="l00068"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">00068</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6" title="Reset the plugin after use, to prepare it for another clean run.">PluginWrapper::reset</a>()
-<a name="l00069"></a>00069 {
-<a name="l00070"></a>00070     <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f" title="Reset the plugin after use, to prepare it for another clean run.">reset</a>();
-<a name="l00071"></a>00071 }
-<a name="l00072"></a>00072 
-<a name="l00073"></a>00073 <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Plugin::InputDomain</a>
-<a name="l00074"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870">00074</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870" title="Get the plugin&amp;#39;s required input domain.">PluginWrapper::getInputDomain</a>()<span class="keyword"> const</span>
-<a name="l00075"></a>00075 <span class="keyword"></span>{
-<a name="l00076"></a>00076     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>();
-<a name="l00077"></a>00077 }
-<a name="l00078"></a>00078 
-<a name="l00079"></a>00079 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
-<a name="l00080"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">00080</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff" title="Get the Vamp API compatibility level of the plugin.">PluginWrapper::getVampApiVersion</a>()<span class="keyword"> const</span>
-<a name="l00081"></a>00081 <span class="keyword"></span>{
-<a name="l00082"></a>00082     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf" title="Get the Vamp API compatibility level of the plugin.">getVampApiVersion</a>();
-<a name="l00083"></a>00083 }
-<a name="l00084"></a>00084 
-<a name="l00085"></a>00085 std::string
-<a name="l00086"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">00086</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904" title="Get the computer-usable name of the plugin.">PluginWrapper::getIdentifier</a>()<span class="keyword"> const</span>
-<a name="l00087"></a>00087 <span class="keyword"></span>{
-<a name="l00088"></a>00088     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a" title="Get the computer-usable name of the plugin.">getIdentifier</a>();
-<a name="l00089"></a>00089 }
-<a name="l00090"></a>00090 
-<a name="l00091"></a>00091 std::string
-<a name="l00092"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">00092</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088" title="Get a human-readable name or title of the plugin.">PluginWrapper::getName</a>()<span class="keyword"> const</span>
-<a name="l00093"></a>00093 <span class="keyword"></span>{
-<a name="l00094"></a>00094     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232" title="Get a human-readable name or title of the plugin.">getName</a>();
-<a name="l00095"></a>00095 }
-<a name="l00096"></a>00096 
-<a name="l00097"></a>00097 std::string
-<a name="l00098"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">00098</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c" title="Get a human-readable description for the plugin, typically a line of text that may...">PluginWrapper::getDescription</a>()<span class="keyword"> const</span>
-<a name="l00099"></a>00099 <span class="keyword"></span>{
-<a name="l00100"></a>00100     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a" title="Get a human-readable description for the plugin, typically a line of text that may...">getDescription</a>();
-<a name="l00101"></a>00101 }
-<a name="l00102"></a>00102 
-<a name="l00103"></a>00103 std::string
-<a name="l00104"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">00104</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb" title="Get the name of the author or vendor of the plugin in human-readable form.">PluginWrapper::getMaker</a>()<span class="keyword"> const</span>
-<a name="l00105"></a>00105 <span class="keyword"></span>{
-<a name="l00106"></a>00106     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637" title="Get the name of the author or vendor of the plugin in human-readable form.">getMaker</a>();
-<a name="l00107"></a>00107 }
-<a name="l00108"></a>00108 
-<a name="l00109"></a>00109 <span class="keywordtype">int</span>
-<a name="l00110"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">00110</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5" title="Get the version number of the plugin.">PluginWrapper::getPluginVersion</a>()<span class="keyword"> const</span>
-<a name="l00111"></a>00111 <span class="keyword"></span>{
-<a name="l00112"></a>00112     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151" title="Get the version number of the plugin.">getPluginVersion</a>();
-<a name="l00113"></a>00113 }
-<a name="l00114"></a>00114 
-<a name="l00115"></a>00115 std::string
-<a name="l00116"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">00116</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566" title="Get the copyright statement or licensing summary for the plugin.">PluginWrapper::getCopyright</a>()<span class="keyword"> const</span>
-<a name="l00117"></a>00117 <span class="keyword"></span>{
-<a name="l00118"></a>00118     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661" title="Get the copyright statement or licensing summary for the plugin.">getCopyright</a>();
-<a name="l00119"></a>00119 }
-<a name="l00120"></a>00120 
-<a name="l00121"></a>00121 <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">PluginBase::ParameterList</a>
-<a name="l00122"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">00122</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e" title="Get the controllable parameters of this plugin.">PluginWrapper::getParameterDescriptors</a>()<span class="keyword"> const</span>
-<a name="l00123"></a>00123 <span class="keyword"></span>{
-<a name="l00124"></a>00124     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21" title="Get the controllable parameters of this plugin.">getParameterDescriptors</a>();
-<a name="l00125"></a>00125 }
-<a name="l00126"></a>00126 
-<a name="l00127"></a>00127 <span class="keywordtype">float</span>
-<a name="l00128"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">00128</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c" title="Get the value of a named parameter.">PluginWrapper::getParameter</a>(std::string parameter)<span class="keyword"> const</span>
-<a name="l00129"></a>00129 <span class="keyword"></span>{
-<a name="l00130"></a>00130     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7" title="Get the value of a named parameter.">getParameter</a>(parameter);
-<a name="l00131"></a>00131 }
-<a name="l00132"></a>00132 
-<a name="l00133"></a>00133 <span class="keywordtype">void</span>
-<a name="l00134"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">00134</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5" title="Set a named parameter.">PluginWrapper::setParameter</a>(std::string parameter, <span class="keywordtype">float</span> value)
-<a name="l00135"></a>00135 {
-<a name="l00136"></a>00136     <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366" title="Set a named parameter.">setParameter</a>(parameter, value);
-<a name="l00137"></a>00137 }
-<a name="l00138"></a>00138 
-<a name="l00139"></a>00139 <a class="code" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">PluginBase::ProgramList</a>
-<a name="l00140"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">00140</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1" title="Get the program settings available in this plugin.">PluginWrapper::getPrograms</a>()<span class="keyword"> const</span>
-<a name="l00141"></a>00141 <span class="keyword"></span>{
-<a name="l00142"></a>00142     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af" title="Get the program settings available in this plugin.">getPrograms</a>();
-<a name="l00143"></a>00143 }
-<a name="l00144"></a>00144 
-<a name="l00145"></a>00145 std::string
-<a name="l00146"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">00146</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651" title="Get the current program.">PluginWrapper::getCurrentProgram</a>()<span class="keyword"> const</span>
-<a name="l00147"></a>00147 <span class="keyword"></span>{
-<a name="l00148"></a>00148     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3" title="Get the current program.">getCurrentProgram</a>();
-<a name="l00149"></a>00149 }
-<a name="l00150"></a>00150 
-<a name="l00151"></a>00151 <span class="keywordtype">void</span>
-<a name="l00152"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">00152</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf" title="Select a program.">PluginWrapper::selectProgram</a>(std::string program)
-<a name="l00153"></a>00153 {
-<a name="l00154"></a>00154     <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353" title="Select a program.">selectProgram</a>(program);
-<a name="l00155"></a>00155 }
-<a name="l00156"></a>00156 
-<a name="l00157"></a>00157 <span class="keywordtype">size_t</span>
-<a name="l00158"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">00158</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e" title="Get the preferred step size (window increment -- the distance in sample frames between...">PluginWrapper::getPreferredStepSize</a>()<span class="keyword"> const</span>
-<a name="l00159"></a>00159 <span class="keyword"></span>{
-<a name="l00160"></a>00160     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567" title="Get the preferred step size (window increment -- the distance in sample frames between...">getPreferredStepSize</a>();
-<a name="l00161"></a>00161 }
-<a name="l00162"></a>00162 
-<a name="l00163"></a>00163 <span class="keywordtype">size_t</span>
-<a name="l00164"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">00164</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01" title="Get the preferred block size (window size -- the number of sample frames passed in...">PluginWrapper::getPreferredBlockSize</a>()<span class="keyword"> const</span>
-<a name="l00165"></a>00165 <span class="keyword"></span>{
-<a name="l00166"></a>00166     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac" title="Get the preferred block size (window size -- the number of sample frames passed in...">getPreferredBlockSize</a>();
-<a name="l00167"></a>00167 }
-<a name="l00168"></a>00168 
-<a name="l00169"></a>00169 <span class="keywordtype">size_t</span>
-<a name="l00170"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">00170</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8" title="Get the minimum supported number of input channels.">PluginWrapper::getMinChannelCount</a>()<span class="keyword"> const</span>
-<a name="l00171"></a>00171 <span class="keyword"></span>{
-<a name="l00172"></a>00172     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525" title="Get the minimum supported number of input channels.">getMinChannelCount</a>();
-<a name="l00173"></a>00173 }
-<a name="l00174"></a>00174 
-<a name="l00175"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">00175</a> <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58" title="Get the maximum supported number of input channels.">PluginWrapper::getMaxChannelCount</a>()<span class="keyword"> const</span>
-<a name="l00176"></a>00176 <span class="keyword"></span>{
-<a name="l00177"></a>00177     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e" title="Get the maximum supported number of input channels.">getMaxChannelCount</a>();
-<a name="l00178"></a>00178 }
-<a name="l00179"></a>00179 
-<a name="l00180"></a>00180 <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Plugin::OutputList</a>
-<a name="l00181"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace">00181</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace" title="Get the outputs of this plugin.">PluginWrapper::getOutputDescriptors</a>()<span class="keyword"> const</span>
-<a name="l00182"></a>00182 <span class="keyword"></span>{
-<a name="l00183"></a>00183     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35" title="Get the outputs of this plugin.">getOutputDescriptors</a>();
-<a name="l00184"></a>00184 }
-<a name="l00185"></a>00185 
-<a name="l00186"></a>00186 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a>
-<a name="l00187"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7">00187</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">PluginWrapper::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp)
-<a name="l00188"></a>00188 {
-<a name="l00189"></a>00189     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process</a>(inputBuffers, timestamp);
-<a name="l00190"></a>00190 }
-<a name="l00191"></a>00191 
-<a name="l00192"></a>00192 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a>
-<a name="l00193"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe">00193</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe" title="After all blocks have been processed, calculate and return any remaining features...">PluginWrapper::getRemainingFeatures</a>()
-<a name="l00194"></a>00194 {
-<a name="l00195"></a>00195     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>-&gt;<a class="code" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures</a>();
-<a name="l00196"></a>00196 }
-<a name="l00197"></a>00197 
-<a name="l00198"></a>00198 }
-<a name="l00199"></a>00199 
-<a name="l00200"></a>00200 }
-<a name="l00201"></a>00201 
-</pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/PluginWrapper_8cpp.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-<!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: PluginWrapper.cpp 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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
-  </div>
-</div>
-<div class="contents">
-<h1>PluginWrapper.cpp File Reference</h1>
-<p>
-
-<p>
-<a href="PluginWrapper_8cpp-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>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html">Vamp</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp_1_1HostExt.html">Vamp::HostExt</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html">Vamp::HostExt::PluginRateExtractor</a></td></tr>
-
-</table>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/PluginWrapper_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PluginWrapper_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -15,10 +15,10 @@
       <li><a href="dirs.html"><span>Directories</span></a></li>
     </ul>
   </div>
-  <div class="navpath"><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  <div class="navpath"><a class="el" href="dir_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>PluginWrapper.h</h1><a href="PluginWrapper_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -58,63 +58,77 @@
 <a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_PLUGIN_WRAPPER_H_</span>
 <a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_PLUGIN_WRAPPER_H_</span>
 <a name="l00039"></a>00039 <span class="preprocessor"></span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="Plugin_8h.html">vamp-sdk/Plugin.h</a>"</span>
-<a name="l00041"></a>00041 
-<a name="l00042"></a>00042 <span class="keyword">namespace </span>Vamp {
-<a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="keyword">namespace </span>HostExt {
-<a name="l00045"></a>00045 
-<a name="l00059"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html">00059</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a>
-<a name="l00060"></a>00060 {
-<a name="l00061"></a>00061 <span class="keyword">public</span>:
-<a name="l00062"></a>00062     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7449a364d524de75352a4719fec2e1f5">~PluginWrapper</a>();
-<a name="l00063"></a>00063     
-<a name="l00064"></a>00064     <span class="keywordtype">bool</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
-<a name="l00065"></a>00065     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6" title="Reset the plugin after use, to prepare it for another clean run.">reset</a>();
-<a name="l00066"></a>00066 
-<a name="l00067"></a>00067     <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() <span class="keyword">const</span>;
-<a name="l00068"></a>00068 
-<a name="l00069"></a>00069     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff" title="Get the Vamp API compatibility level of the plugin.">getVampApiVersion</a>() <span class="keyword">const</span>;
-<a name="l00070"></a>00070     std::string <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904" title="Get the computer-usable name of the plugin.">getIdentifier</a>() <span class="keyword">const</span>;
-<a name="l00071"></a>00071     std::string <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088" title="Get a human-readable name or title of the plugin.">getName</a>() <span class="keyword">const</span>;
-<a name="l00072"></a>00072     std::string <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c" title="Get a human-readable description for the plugin, typically a line of text that may...">getDescription</a>() <span class="keyword">const</span>;
-<a name="l00073"></a>00073     std::string <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb" title="Get the name of the author or vendor of the plugin in human-readable form.">getMaker</a>() <span class="keyword">const</span>;
-<a name="l00074"></a>00074     <span class="keywordtype">int</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5" title="Get the version number of the plugin.">getPluginVersion</a>() <span class="keyword">const</span>;
-<a name="l00075"></a>00075     std::string <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566" title="Get the copyright statement or licensing summary for the plugin.">getCopyright</a>() <span class="keyword">const</span>;
-<a name="l00076"></a>00076 
-<a name="l00077"></a>00077     <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e" title="Get the controllable parameters of this plugin.">getParameterDescriptors</a>() <span class="keyword">const</span>;
-<a name="l00078"></a>00078     <span class="keywordtype">float</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c" title="Get the value of a named parameter.">getParameter</a>(std::string) <span class="keyword">const</span>;
-<a name="l00079"></a>00079     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5" title="Set a named parameter.">setParameter</a>(std::string, <span class="keywordtype">float</span>);
-<a name="l00080"></a>00080 
-<a name="l00081"></a>00081     <a class="code" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1" title="Get the program settings available in this plugin.">getPrograms</a>() <span class="keyword">const</span>;
-<a name="l00082"></a>00082     std::string <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651" title="Get the current program.">getCurrentProgram</a>() <span class="keyword">const</span>;
-<a name="l00083"></a>00083     <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf" title="Select a program.">selectProgram</a>(std::string);
-<a name="l00084"></a>00084 
-<a name="l00085"></a>00085     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e" title="Get the preferred step size (window increment -- the distance in sample frames between...">getPreferredStepSize</a>() <span class="keyword">const</span>;
-<a name="l00086"></a>00086     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01" title="Get the preferred block size (window size -- the number of sample frames passed in...">getPreferredBlockSize</a>() <span class="keyword">const</span>;
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="hostguard_8h.html">hostguard.h</a>"</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;<a class="code" href="vamp-hostsdk_2Plugin_8h.html">vamp-hostsdk/Plugin.h</a>&gt;</span>
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 <a class="code" href="hostguard_8h.html#ef42eae5f1b0b897d8dac58cd54afbcd">_VAMP_SDK_HOSTSPACE_BEGIN</a>(PluginWrapper.h)
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 namespace Vamp {
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 <span class="keyword">namespace </span>HostExt {
+<a name="l00048"></a>00048 
+<a name="l00062"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html">00062</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a>
+<a name="l00063"></a>00063 {
+<a name="l00064"></a>00064 <span class="keyword">public</span>:
+<a name="l00065"></a>00065     <span class="keyword">virtual</span> ~<a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a>();
+<a name="l00066"></a>00066     
+<a name="l00067"></a>00067     <span class="keywordtype">bool</span> initialise(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
+<a name="l00068"></a>00068     <span class="keywordtype">void</span> reset();
+<a name="l00069"></a>00069 
+<a name="l00070"></a>00070     <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> getInputDomain() <span class="keyword">const</span>;
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getVampApiVersion() <span class="keyword">const</span>;
+<a name="l00073"></a>00073     std::string getIdentifier() <span class="keyword">const</span>;
+<a name="l00074"></a>00074     std::string getName() <span class="keyword">const</span>;
+<a name="l00075"></a>00075     std::string getDescription() <span class="keyword">const</span>;
+<a name="l00076"></a>00076     std::string getMaker() <span class="keyword">const</span>;
+<a name="l00077"></a>00077     <span class="keywordtype">int</span> getPluginVersion() <span class="keyword">const</span>;
+<a name="l00078"></a>00078     std::string getCopyright() <span class="keyword">const</span>;
+<a name="l00079"></a>00079 
+<a name="l00080"></a>00080     ParameterList getParameterDescriptors() <span class="keyword">const</span>;
+<a name="l00081"></a>00081     <span class="keywordtype">float</span> getParameter(std::string) <span class="keyword">const</span>;
+<a name="l00082"></a>00082     <span class="keywordtype">void</span> setParameter(std::string, <span class="keywordtype">float</span>);
+<a name="l00083"></a>00083 
+<a name="l00084"></a>00084     ProgramList getPrograms() <span class="keyword">const</span>;
+<a name="l00085"></a>00085     std::string getCurrentProgram() <span class="keyword">const</span>;
+<a name="l00086"></a>00086     <span class="keywordtype">void</span> selectProgram(std::string);
 <a name="l00087"></a>00087 
-<a name="l00088"></a>00088     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8" title="Get the minimum supported number of input channels.">getMinChannelCount</a>() <span class="keyword">const</span>;
-<a name="l00089"></a>00089     <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58" title="Get the maximum supported number of input channels.">getMaxChannelCount</a>() <span class="keyword">const</span>;
+<a name="l00088"></a>00088     <span class="keywordtype">size_t</span> getPreferredStepSize() <span class="keyword">const</span>;
+<a name="l00089"></a>00089     <span class="keywordtype">size_t</span> getPreferredBlockSize() <span class="keyword">const</span>;
 <a name="l00090"></a>00090 
-<a name="l00091"></a>00091     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace" title="Get the outputs of this plugin.">getOutputDescriptors</a>() <span class="keyword">const</span>;
-<a name="l00092"></a>00092 
-<a name="l00093"></a>00093     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp);
-<a name="l00094"></a>00094 
-<a name="l00095"></a>00095     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures</a>();
-<a name="l00096"></a>00096 
-<a name="l00097"></a>00097 <span class="keyword">protected</span>:
-<a name="l00098"></a>00098     <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#35cc2d42f8322f5022e89859a79c97be">PluginWrapper</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin); <span class="comment">// I take ownership of plugin</span>
-<a name="l00099"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">00099</a>     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *<a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a>;
-<a name="l00100"></a>00100 };
-<a name="l00101"></a>00101 
-<a name="l00102"></a>00102 }
-<a name="l00103"></a>00103 
-<a name="l00104"></a>00104 }
-<a name="l00105"></a>00105 
-<a name="l00106"></a>00106 <span class="preprocessor">#endif</span>
+<a name="l00091"></a>00091     <span class="keywordtype">size_t</span> getMinChannelCount() <span class="keyword">const</span>;
+<a name="l00092"></a>00092     <span class="keywordtype">size_t</span> getMaxChannelCount() <span class="keyword">const</span>;
+<a name="l00093"></a>00093 
+<a name="l00094"></a>00094     OutputList getOutputDescriptors() <span class="keyword">const</span>;
+<a name="l00095"></a>00095 
+<a name="l00096"></a>00096     FeatureSet process(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp);
+<a name="l00097"></a>00097 
+<a name="l00098"></a>00098     FeatureSet getRemainingFeatures();
+<a name="l00099"></a>00099 
+<a name="l00115"></a>00115     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> WrapperType&gt;
+<a name="l00116"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3">00116</a>     WrapperType *getWrapper() {
+<a name="l00117"></a>00117         WrapperType *w = <span class="keyword">dynamic_cast&lt;</span>WrapperType *<span class="keyword">&gt;</span>(<span class="keyword">this</span>);
+<a name="l00118"></a>00118         <span class="keywordflow">if</span> (w) <span class="keywordflow">return</span> w;
+<a name="l00119"></a>00119         <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a> *pw = <span class="keyword">dynamic_cast&lt;</span><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a> *<span class="keyword">&gt;</span>(m_plugin);
+<a name="l00120"></a>00120         <span class="keywordflow">if</span> (pw) <span class="keywordflow">return</span> pw-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3" title="Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper&amp;#39;s...">getWrapper</a>&lt;WrapperType&gt;();
+<a name="l00121"></a>00121         <span class="keywordflow">return</span> 0;
+<a name="l00122"></a>00122     }
+<a name="l00123"></a>00123 
+<a name="l00124"></a>00124 <span class="keyword">protected</span>:
+<a name="l00125"></a>00125     <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a>(<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin); <span class="comment">// I take ownership of plugin</span>
+<a name="l00126"></a><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">00126</a>     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *m_plugin;
+<a name="l00127"></a>00127 };
+<a name="l00128"></a>00128 
+<a name="l00129"></a>00129 }
+<a name="l00130"></a>00130 
+<a name="l00131"></a>00131 }
+<a name="l00132"></a>00132 
+<a name="l00133"></a>00133 <a class="code" href="hostguard_8h.html#0e6efdc2909bdb0cfab70e087d91b171">_VAMP_SDK_HOSTSPACE_END</a>(PluginWrapper.h)
+<a name="l00134"></a>00134 
+<a name="l00135"></a>00135 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/PluginWrapper_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/PluginWrapper_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -15,7 +15,7 @@
       <li><a href="dirs.html"><span>Directories</span></a></li>
     </ul>
   </div>
-  <div class="navpath"><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  <div class="navpath"><a class="el" href="dir_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
   </div>
 </div>
 <div class="contents">
@@ -36,8 +36,8 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a> is a simple base class for adapter plugins.  <a href="classVamp_1_1HostExt_1_1PluginWrapper.html#_details">More...</a><br></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/Plugin_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-<!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: Plugin.h Source File</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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
-  </div>
-</div>
-</div>
-<h1>Plugin.h</h1><a href="Plugin_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
-<a name="l00002"></a>00002 
-<a name="l00003"></a>00003 <span class="comment">/*</span>
-<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
-<a name="l00005"></a>00005 <span class="comment"></span>
-<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
-<a name="l00007"></a>00007 <span class="comment"></span>
-<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
-<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
-<a name="l00010"></a>00010 <span class="comment">  </span>
-<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
-<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
-<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
-<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
-<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
-<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
-<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
-<a name="l00018"></a>00018 <span class="comment"></span>
-<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
-<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
-<a name="l00021"></a>00021 <span class="comment"></span>
-<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
-<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
-<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
-<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
-<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
-<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
-<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
-<a name="l00029"></a>00029 <span class="comment"></span>
-<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
-<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
-<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
-<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
-<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
-<a name="l00035"></a>00035 <span class="comment">*/</span>
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_PLUGIN_H_</span>
-<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_PLUGIN_H_</span>
-<a name="l00039"></a>00039 <span class="preprocessor"></span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="PluginBase_8h.html">PluginBase.h</a>"</span>
-<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="RealTime_8h.html">RealTime.h</a>"</span>
-<a name="l00042"></a>00042 
-<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;string&gt;</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;vector&gt;</span>
-<a name="l00045"></a>00045 <span class="preprocessor">#include &lt;map&gt;</span>
-<a name="l00046"></a>00046 
-<a name="l00047"></a><a class="code" href="namespaceVamp.html">00047</a> <span class="keyword">namespace </span>Vamp {
-<a name="l00048"></a>00048 
-<a name="l00121"></a><a class="code" href="classVamp_1_1Plugin.html">00121</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>
-<a name="l00122"></a>00122 {
-<a name="l00123"></a>00123 <span class="keyword">public</span>:
-<a name="l00124"></a><a class="code" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">00124</a>     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">~Plugin</a>() { }
-<a name="l00125"></a>00125 
-<a name="l00138"></a>00138     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise</a>(<span class="keywordtype">size_t</span> inputChannels,
-<a name="l00139"></a>00139                             <span class="keywordtype">size_t</span> stepSize,
-<a name="l00140"></a>00140                             <span class="keywordtype">size_t</span> blockSize) = 0;
-<a name="l00141"></a>00141 
-<a name="l00147"></a>00147     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f" title="Reset the plugin after use, to prepare it for another clean run.">reset</a>() = 0;
-<a name="l00148"></a>00148 
-<a name="l00149"></a><a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">00149</a>     <span class="keyword">enum</span> <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> { <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a>, <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a> };
-<a name="l00150"></a>00150     
-<a name="l00161"></a>00161     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> <a class="code" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() <span class="keyword">const</span> = 0;
-<a name="l00162"></a>00162 
-<a name="l00171"></a><a class="code" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">00171</a>     <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac" title="Get the preferred block size (window size -- the number of sample frames passed in...">getPreferredBlockSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 0; }
-<a name="l00172"></a>00172 
-<a name="l00186"></a><a class="code" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">00186</a>     <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567" title="Get the preferred step size (window increment -- the distance in sample frames between...">getPreferredStepSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 0; }
-<a name="l00187"></a>00187 
-<a name="l00191"></a><a class="code" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">00191</a>     <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525" title="Get the minimum supported number of input channels.">getMinChannelCount</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 1; }
-<a name="l00192"></a>00192 
-<a name="l00196"></a><a class="code" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">00196</a>     <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e" title="Get the maximum supported number of input channels.">getMaxChannelCount</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 1; }
-<a name="l00197"></a>00197 
-<a name="l00198"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">00198</a>     <span class="keyword">struct </span><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a>
-<a name="l00199"></a>00199     {
-<a name="l00206"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b">00206</a>         std::string <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a>;
-<a name="l00207"></a>00207 
-<a name="l00212"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87">00212</a>         std::string <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a>;
-<a name="l00213"></a>00213 
-<a name="l00219"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1">00219</a>         std::string <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a>;
-<a name="l00220"></a>00220 
-<a name="l00224"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4">00224</a>         std::string <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4" title="The unit of the output, in human-readable form.">unit</a>;
-<a name="l00225"></a>00225 
-<a name="l00231"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d">00231</a>         <span class="keywordtype">bool</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d" title="True if the output has the same number of values per sample for every output sample...">hasFixedBinCount</a>;
-<a name="l00232"></a>00232 
-<a name="l00239"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc">00239</a>         <span class="keywordtype">size_t</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a>;
-<a name="l00240"></a>00240 
-<a name="l00245"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#31d9b79e2d8241344f551a22fcb5c8c7">00245</a>         std::vector&lt;std::string&gt; <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#31d9b79e2d8241344f551a22fcb5c8c7" title="The (human-readable) names of each of the bins, if appropriate.">binNames</a>;
-<a name="l00246"></a>00246 
-<a name="l00252"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31">00252</a>         <span class="keywordtype">bool</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31" title="True if the results in each output bin fall within a fixed numeric range (minimum...">hasKnownExtents</a>;
-<a name="l00253"></a>00253 
-<a name="l00258"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#c9f5924c0be7571bba8e7ae7e7a921f4">00258</a>         <span class="keywordtype">float</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#c9f5924c0be7571bba8e7ae7e7a921f4" title="Minimum value of the results in the output.">minValue</a>;
-<a name="l00259"></a>00259 
-<a name="l00264"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#907b4e8fbb48a46ac5a05f880d72719f">00264</a>         <span class="keywordtype">float</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#907b4e8fbb48a46ac5a05f880d72719f" title="Maximum value of the results in the output.">maxValue</a>;
-<a name="l00265"></a>00265 
-<a name="l00270"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1b4858928d23bfd7d5bc557c82a83fb4">00270</a>         <span class="keywordtype">bool</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1b4858928d23bfd7d5bc557c82a83fb4" title="True if the output values are quantized to a particular resolution.">isQuantized</a>;
-<a name="l00271"></a>00271 
-<a name="l00277"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#3bed37153067b625b95acb40b60dbf0b">00277</a>         <span class="keywordtype">float</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#3bed37153067b625b95acb40b60dbf0b" title="Quantization resolution of the output values (e.g.">quantizeStep</a>;
-<a name="l00278"></a>00278 
-<a name="l00279"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c">00279</a>         <span class="keyword">enum</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c">SampleType</a> {
-<a name="l00280"></a>00280 
-<a name="l00282"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca">00282</a>             <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca" title="Results from each process() align with that call&amp;#39;s block start.">OneSamplePerStep</a>,
-<a name="l00283"></a>00283 
-<a name="l00285"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c4c74bd2fc96dfe2815623f94b40e5629">00285</a>             <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c4c74bd2fc96dfe2815623f94b40e5629" title="Results are evenly spaced in time (sampleRate specified below).">FixedSampleRate</a>,
-<a name="l00286"></a>00286 
-<a name="l00288"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e">00288</a>             <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e" title="Results are unevenly spaced and have individual timestamps.">VariableSampleRate</a>
-<a name="l00289"></a>00289         };
-<a name="l00290"></a>00290 
-<a name="l00294"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d">00294</a>         <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c">SampleType</a> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d" title="Positioning in time of the output results.">sampleType</a>;
-<a name="l00295"></a>00295 
-<a name="l00306"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#dd0cbbdfa9c91764037c39365b1d42af">00306</a>         <span class="keywordtype">float</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#dd0cbbdfa9c91764037c39365b1d42af" title="Sample rate of the output results, as samples per second.">sampleRate</a>;
-<a name="l00307"></a>00307     };
-<a name="l00308"></a>00308 
-<a name="l00309"></a><a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">00309</a>     <span class="keyword">typedef</span> std::vector&lt;OutputDescriptor&gt; <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>;
-<a name="l00310"></a>00310 
-<a name="l00316"></a>00316     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> <a class="code" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35" title="Get the outputs of this plugin.">getOutputDescriptors</a>() <span class="keyword">const</span> = 0;
-<a name="l00317"></a>00317 
-<a name="l00318"></a><a class="code" href="structVamp_1_1Plugin_1_1Feature.html">00318</a>     <span class="keyword">struct </span><a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a>
-<a name="l00319"></a>00319     {
-<a name="l00325"></a><a class="code" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b">00325</a>         <span class="keywordtype">bool</span> <a class="code" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b" title="True if an output feature has its own timestamp.">hasTimestamp</a>;
-<a name="l00326"></a>00326 
-<a name="l00332"></a><a class="code" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7">00332</a>         <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> <a class="code" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7" title="Timestamp of the output feature.">timestamp</a>;
-<a name="l00333"></a>00333         
-<a name="l00339"></a><a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71">00339</a>         std::vector&lt;float&gt; <a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>;
-<a name="l00340"></a>00340 
-<a name="l00344"></a><a class="code" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036">00344</a>         std::string <a class="code" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036" title="Label for the sample of this feature.">label</a>;
-<a name="l00345"></a>00345     };
-<a name="l00346"></a>00346 
-<a name="l00347"></a><a class="code" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">00347</a>     <span class="keyword">typedef</span> std::vector&lt;Feature&gt; <a class="code" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a>;
-<a name="l00348"></a><a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">00348</a>     <span class="keyword">typedef</span> std::map&lt;int, FeatureList&gt; <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>; <span class="comment">// key is output no</span>
-<a name="l00349"></a>00349 
-<a name="l00377"></a>00377     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
-<a name="l00378"></a>00378                                <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp) = 0;
-<a name="l00379"></a>00379 
-<a name="l00384"></a>00384     <span class="keyword">virtual</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures</a>() = 0;
-<a name="l00385"></a>00385 
-<a name="l00391"></a><a class="code" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">00391</a>     <span class="keyword">virtual</span> std::string <a class="code" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91" title="Used to distinguish between Vamp::Plugin and other potential sibling subclasses of...">getType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="stringliteral">"Feature Extraction Plugin"</span>; }
-<a name="l00392"></a>00392 
-<a name="l00393"></a>00393 <span class="keyword">protected</span>:
-<a name="l00394"></a><a class="code" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">00394</a>     <a class="code" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>(<span class="keywordtype">float</span> inputSampleRate) :
-<a name="l00395"></a>00395         <a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>(inputSampleRate) { }
-<a name="l00396"></a>00396 
-<a name="l00397"></a><a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">00397</a>     <span class="keywordtype">float</span> <a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>;
-<a name="l00398"></a>00398 };
-<a name="l00399"></a>00399 
-<a name="l00400"></a>00400 }
-<a name="l00401"></a>00401 
-<a name="l00402"></a>00402 <span class="preprocessor">#endif</span>
-<a name="l00403"></a>00403 <span class="preprocessor"></span>
-<a name="l00404"></a>00404 
-<a name="l00405"></a>00405 
-</pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/Plugin_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-<!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: Plugin.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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
-  </div>
-</div>
-<div class="contents">
-<h1>Plugin.h File Reference</h1>
-<p>
-
-<p>
-<a href="Plugin_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>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html">Vamp</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> is a base class for plugin instance classes that provide feature extraction from audio or related data.  <a href="classVamp_1_1Plugin.html#_details">More...</a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Vamp::Plugin::Feature</a></td></tr>
-
-</table>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PowerSpectrum_8cpp-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,197 @@
+<!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: PowerSpectrum.cpp Source File</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>PowerSpectrum.cpp</h1><a href="PowerSpectrum_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/*</span>
+<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
+<a name="l00005"></a>00005 <span class="comment"></span>
+<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2008 QMUL.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="PowerSpectrum_8h.html">PowerSpectrum.h</a>"</span>
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="keyword">using</span> std::string;
+<a name="l00040"></a>00040 <span class="keyword">using</span> std::cerr;
+<a name="l00041"></a>00041 <span class="keyword">using</span> std::endl;
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;math.h&gt;</span>
+<a name="l00044"></a>00044 
+<a name="l00045"></a><a class="code" href="classPowerSpectrum.html#a2550486513a4abcf7b52869002947e7">00045</a> <a class="code" href="classPowerSpectrum.html#a2550486513a4abcf7b52869002947e7">PowerSpectrum::PowerSpectrum</a>(<span class="keywordtype">float</span> inputSampleRate) :
+<a name="l00046"></a>00046     Plugin(inputSampleRate),
+<a name="l00047"></a>00047     m_blockSize(0)
+<a name="l00048"></a>00048 {
+<a name="l00049"></a>00049 }
+<a name="l00050"></a>00050 
+<a name="l00051"></a><a class="code" href="classPowerSpectrum.html#e7081e159ad1da5da1721b3048075306">00051</a> <a class="code" href="classPowerSpectrum.html#e7081e159ad1da5da1721b3048075306">PowerSpectrum::~PowerSpectrum</a>()
+<a name="l00052"></a>00052 {
+<a name="l00053"></a>00053 }
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055 <span class="keywordtype">string</span>
+<a name="l00056"></a><a class="code" href="classPowerSpectrum.html#9e9d8349461cbb88d7565a5e8c51b64e">00056</a> <a class="code" href="classPowerSpectrum.html#9e9d8349461cbb88d7565a5e8c51b64e" title="Get the computer-usable name of the plugin.">PowerSpectrum::getIdentifier</a>()<span class="keyword"> const</span>
+<a name="l00057"></a>00057 <span class="keyword"></span>{
+<a name="l00058"></a>00058     <span class="keywordflow">return</span> <span class="stringliteral">"powerspectrum"</span>;
+<a name="l00059"></a>00059 }
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061 <span class="keywordtype">string</span>
+<a name="l00062"></a><a class="code" href="classPowerSpectrum.html#c9214f9cafeeed3fca549c90aef57623">00062</a> <a class="code" href="classPowerSpectrum.html#c9214f9cafeeed3fca549c90aef57623" title="Get a human-readable name or title of the plugin.">PowerSpectrum::getName</a>()<span class="keyword"> const</span>
+<a name="l00063"></a>00063 <span class="keyword"></span>{
+<a name="l00064"></a>00064     <span class="keywordflow">return</span> <span class="stringliteral">"Simple Power Spectrum"</span>;
+<a name="l00065"></a>00065 }
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067 <span class="keywordtype">string</span>
+<a name="l00068"></a><a class="code" href="classPowerSpectrum.html#7b48d56dc954f3af344f7e4dcd8993e5">00068</a> <a class="code" href="classPowerSpectrum.html#7b48d56dc954f3af344f7e4dcd8993e5" title="Get a human-readable description for the plugin, typically a line of text that may...">PowerSpectrum::getDescription</a>()<span class="keyword"> const</span>
+<a name="l00069"></a>00069 <span class="keyword"></span>{
+<a name="l00070"></a>00070     <span class="keywordflow">return</span> <span class="stringliteral">"Return the power spectrum of a signal"</span>;
+<a name="l00071"></a>00071 }
+<a name="l00072"></a>00072 
+<a name="l00073"></a>00073 <span class="keywordtype">string</span>
+<a name="l00074"></a><a class="code" href="classPowerSpectrum.html#9f3e3f759e2b67c771a41f1c276984b2">00074</a> <a class="code" href="classPowerSpectrum.html#9f3e3f759e2b67c771a41f1c276984b2" title="Get the name of the author or vendor of the plugin in human-readable form.">PowerSpectrum::getMaker</a>()<span class="keyword"> const</span>
+<a name="l00075"></a>00075 <span class="keyword"></span>{
+<a name="l00076"></a>00076     <span class="keywordflow">return</span> <span class="stringliteral">"Vamp SDK Example Plugins"</span>;
+<a name="l00077"></a>00077 }
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079 <span class="keywordtype">int</span>
+<a name="l00080"></a><a class="code" href="classPowerSpectrum.html#d23d27e4e82f10404a37b933f6a72c33">00080</a> <a class="code" href="classPowerSpectrum.html#d23d27e4e82f10404a37b933f6a72c33" title="Get the version number of the plugin.">PowerSpectrum::getPluginVersion</a>()<span class="keyword"> const</span>
+<a name="l00081"></a>00081 <span class="keyword"></span>{
+<a name="l00082"></a>00082     <span class="keywordflow">return</span> 1;
+<a name="l00083"></a>00083 }
+<a name="l00084"></a>00084 
+<a name="l00085"></a>00085 <span class="keywordtype">string</span>
+<a name="l00086"></a><a class="code" href="classPowerSpectrum.html#708b4d335c57643d5ef2b2e1caf43bd9">00086</a> <a class="code" href="classPowerSpectrum.html#708b4d335c57643d5ef2b2e1caf43bd9" title="Get the copyright statement or licensing summary for the plugin.">PowerSpectrum::getCopyright</a>()<span class="keyword"> const</span>
+<a name="l00087"></a>00087 <span class="keyword"></span>{
+<a name="l00088"></a>00088     <span class="keywordflow">return</span> <span class="stringliteral">"Freely redistributable (BSD license)"</span>;
+<a name="l00089"></a>00089 }
+<a name="l00090"></a>00090 
+<a name="l00091"></a>00091 <span class="keywordtype">bool</span>
+<a name="l00092"></a><a class="code" href="classPowerSpectrum.html#e2d046334c4bede5be72a0d97e4dfb29">00092</a> <a class="code" href="classPowerSpectrum.html#e2d046334c4bede5be72a0d97e4dfb29" title="Initialise a plugin to prepare it for use with the given number of input channels...">PowerSpectrum::initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize)
+<a name="l00093"></a>00093 {
+<a name="l00094"></a>00094     <span class="keywordflow">if</span> (channels &lt; <a class="code" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525" title="Get the minimum supported number of input channels.">getMinChannelCount</a>() ||
+<a name="l00095"></a>00095         channels &gt; <a class="code" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e" title="Get the maximum supported number of input channels.">getMaxChannelCount</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00096"></a>00096 
+<a name="l00097"></a>00097     <a class="code" href="classPowerSpectrum.html#399e997c033f26b07edb7cc83cd5a6d8">m_blockSize</a> = blockSize;
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00100"></a>00100 }
+<a name="l00101"></a>00101 
+<a name="l00102"></a>00102 <span class="keywordtype">void</span>
+<a name="l00103"></a><a class="code" href="classPowerSpectrum.html#091ba21e1697ea4208f42e8295c389d9">00103</a> <a class="code" href="classPowerSpectrum.html#091ba21e1697ea4208f42e8295c389d9" title="Reset the plugin after use, to prepare it for another clean run.">PowerSpectrum::reset</a>()
+<a name="l00104"></a>00104 {
+<a name="l00105"></a>00105 }
+<a name="l00106"></a>00106 
+<a name="l00107"></a>00107 <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">PowerSpectrum::OutputList</a>
+<a name="l00108"></a><a class="code" href="classPowerSpectrum.html#6aac5f93e3a8c033026d739fed427242">00108</a> <a class="code" href="classPowerSpectrum.html#6aac5f93e3a8c033026d739fed427242" title="Get the outputs of this plugin.">PowerSpectrum::getOutputDescriptors</a>()<span class="keyword"> const</span>
+<a name="l00109"></a>00109 <span class="keyword"></span>{
+<a name="l00110"></a>00110     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> list;
+<a name="l00111"></a>00111 
+<a name="l00112"></a>00112     <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> d;
+<a name="l00113"></a>00113     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a> = <span class="stringliteral">"powerspectrum"</span>;
+<a name="l00114"></a>00114     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = <span class="stringliteral">"Power Spectrum"</span>;
+<a name="l00115"></a>00115     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a> = <span class="stringliteral">"Power values of the frequency spectrum bins calculated from the input signal"</span>;
+<a name="l00116"></a>00116     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4" title="The unit of the output, in human-readable form.">unit</a> = <span class="stringliteral">""</span>;
+<a name="l00117"></a>00117     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d" title="True if the output has the same number of values per sample for every output sample...">hasFixedBinCount</a> = <span class="keyword">true</span>;
+<a name="l00118"></a>00118     <span class="keywordflow">if</span> (<a class="code" href="classPowerSpectrum.html#399e997c033f26b07edb7cc83cd5a6d8">m_blockSize</a> == 0) {
+<a name="l00119"></a>00119         <span class="comment">// Just so as not to return "1".  This is the bin count that</span>
+<a name="l00120"></a>00120         <span class="comment">// would result from a block size of 1024, which is a likely</span>
+<a name="l00121"></a>00121         <span class="comment">// default -- but the host should always set the block size</span>
+<a name="l00122"></a>00122         <span class="comment">// before querying the bin count for certain.</span>
+<a name="l00123"></a>00123         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a> = 513;
+<a name="l00124"></a>00124     } <span class="keywordflow">else</span> {
+<a name="l00125"></a>00125         d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a> = <a class="code" href="classPowerSpectrum.html#399e997c033f26b07edb7cc83cd5a6d8">m_blockSize</a> / 2 + 1;
+<a name="l00126"></a>00126     }
+<a name="l00127"></a>00127     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31" title="True if the results in each output bin fall within a fixed numeric range (minimum...">hasKnownExtents</a> = <span class="keyword">false</span>;
+<a name="l00128"></a>00128     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1b4858928d23bfd7d5bc557c82a83fb4" title="True if the output values are quantized to a particular resolution.">isQuantized</a> = <span class="keyword">false</span>;
+<a name="l00129"></a>00129     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d" title="Positioning in time of the output results.">sampleType</a> = <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca" title="Results from each process() align with that call&amp;#39;s block start.">OutputDescriptor::OneSamplePerStep</a>;
+<a name="l00130"></a>00130     list.push_back(d);
+<a name="l00131"></a>00131 
+<a name="l00132"></a>00132     <span class="keywordflow">return</span> list;
+<a name="l00133"></a>00133 }
+<a name="l00134"></a>00134 
+<a name="l00135"></a>00135 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PowerSpectrum::FeatureSet</a>
+<a name="l00136"></a><a class="code" href="classPowerSpectrum.html#a5664ffc2b37a16db471fae791c1f55f">00136</a> <a class="code" href="classPowerSpectrum.html#a5664ffc2b37a16db471fae791c1f55f" title="Process a single block of input data.">PowerSpectrum::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">Vamp::RealTime</a> timestamp)
+<a name="l00137"></a>00137 {
+<a name="l00138"></a>00138     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> fs;
+<a name="l00139"></a>00139 
+<a name="l00140"></a>00140     <span class="keywordflow">if</span> (<a class="code" href="classPowerSpectrum.html#399e997c033f26b07edb7cc83cd5a6d8">m_blockSize</a> == 0) {
+<a name="l00141"></a>00141         cerr &lt;&lt; <span class="stringliteral">"ERROR: PowerSpectrum::process: Not initialised"</span> &lt;&lt; endl;
+<a name="l00142"></a>00142         <span class="keywordflow">return</span> fs;
+<a name="l00143"></a>00143     }
+<a name="l00144"></a>00144 
+<a name="l00145"></a>00145     <span class="keywordtype">size_t</span> n = <a class="code" href="classPowerSpectrum.html#399e997c033f26b07edb7cc83cd5a6d8">m_blockSize</a> / 2 + 1;
+<a name="l00146"></a>00146     <span class="keyword">const</span> <span class="keywordtype">float</span> *fbuf = inputBuffers[0];
+<a name="l00147"></a>00147 
+<a name="l00148"></a>00148     <a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> feature;
+<a name="l00149"></a>00149     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b" title="True if an output feature has its own timestamp.">hasTimestamp</a> = <span class="keyword">false</span>;
+<a name="l00150"></a>00150     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.reserve(n); <span class="comment">// optional</span>
+<a name="l00151"></a>00151 
+<a name="l00152"></a>00152     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; n; ++i) {
+<a name="l00153"></a>00153 
+<a name="l00154"></a>00154         <span class="keywordtype">double</span> real = fbuf[i * 2];
+<a name="l00155"></a>00155         <span class="keywordtype">double</span> imag = fbuf[i * 2 + 1];
+<a name="l00156"></a>00156 
+<a name="l00157"></a>00157         feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.push_back(real * real + imag * imag);
+<a name="l00158"></a>00158     }
+<a name="l00159"></a>00159 
+<a name="l00160"></a>00160     fs[0].push_back(feature);
+<a name="l00161"></a>00161 
+<a name="l00162"></a>00162     <span class="keywordflow">return</span> fs;
+<a name="l00163"></a>00163 }
+<a name="l00164"></a>00164 
+<a name="l00165"></a>00165 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PowerSpectrum::FeatureSet</a>
+<a name="l00166"></a><a class="code" href="classPowerSpectrum.html#c8a9661a785d38f4c5ce8ca2d53e69f9">00166</a> <a class="code" href="classPowerSpectrum.html#c8a9661a785d38f4c5ce8ca2d53e69f9" title="After all blocks have been processed, calculate and return any remaining features...">PowerSpectrum::getRemainingFeatures</a>()
+<a name="l00167"></a>00167 {
+<a name="l00168"></a>00168     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>();
+<a name="l00169"></a>00169 }
+<a name="l00170"></a>00170 
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PowerSpectrum_8cpp.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,34 @@
+<!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: PowerSpectrum.cpp 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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>PowerSpectrum.cpp File Reference</h1>
+<p>
+
+<p>
+<a href="PowerSpectrum_8cpp-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PowerSpectrum_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,99 @@
+<!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: PowerSpectrum.h Source File</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>PowerSpectrum.h</h1><a href="PowerSpectrum_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/*</span>
+<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
+<a name="l00005"></a>00005 <span class="comment"></span>
+<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef _POWER_SPECTRUM_PLUGIN_H_</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _POWER_SPECTRUM_PLUGIN_H_</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="vamp-sdk_2Plugin_8h.html">vamp-sdk/Plugin.h</a>"</span>
+<a name="l00041"></a>00041 
+<a name="l00050"></a><a class="code" href="classPowerSpectrum.html">00050</a> <span class="keyword">class </span><a class="code" href="classPowerSpectrum.html" title="Example plugin that returns a power spectrum calculated (trivially) from the frequency...">PowerSpectrum</a> : <span class="keyword">public</span> Vamp::<a class="code" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>
+<a name="l00051"></a>00051 {
+<a name="l00052"></a>00052 <span class="keyword">public</span>:
+<a name="l00053"></a>00053     <a class="code" href="classPowerSpectrum.html#a2550486513a4abcf7b52869002947e7">PowerSpectrum</a>(<span class="keywordtype">float</span> inputSampleRate);
+<a name="l00054"></a>00054     <span class="keyword">virtual</span> <a class="code" href="classPowerSpectrum.html#e7081e159ad1da5da1721b3048075306">~PowerSpectrum</a>();
+<a name="l00055"></a>00055 
+<a name="l00056"></a>00056     <span class="keywordtype">bool</span> <a class="code" href="classPowerSpectrum.html#e2d046334c4bede5be72a0d97e4dfb29" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize);
+<a name="l00057"></a>00057     <span class="keywordtype">void</span> <a class="code" href="classPowerSpectrum.html#091ba21e1697ea4208f42e8295c389d9" title="Reset the plugin after use, to prepare it for another clean run.">reset</a>();
+<a name="l00058"></a>00058 
+<a name="l00059"></a><a class="code" href="classPowerSpectrum.html#e04e0e34847a93f3444d04c802ee56ef">00059</a>     <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> <a class="code" href="classPowerSpectrum.html#e04e0e34847a93f3444d04c802ee56ef" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a>; }
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061     std::string <a class="code" href="classPowerSpectrum.html#9e9d8349461cbb88d7565a5e8c51b64e" title="Get the computer-usable name of the plugin.">getIdentifier</a>() <span class="keyword">const</span>;
+<a name="l00062"></a>00062     std::string <a class="code" href="classPowerSpectrum.html#c9214f9cafeeed3fca549c90aef57623" title="Get a human-readable name or title of the plugin.">getName</a>() <span class="keyword">const</span>;
+<a name="l00063"></a>00063     std::string <a class="code" href="classPowerSpectrum.html#7b48d56dc954f3af344f7e4dcd8993e5" title="Get a human-readable description for the plugin, typically a line of text that may...">getDescription</a>() <span class="keyword">const</span>;
+<a name="l00064"></a>00064     std::string <a class="code" href="classPowerSpectrum.html#9f3e3f759e2b67c771a41f1c276984b2" title="Get the name of the author or vendor of the plugin in human-readable form.">getMaker</a>() <span class="keyword">const</span>;
+<a name="l00065"></a>00065     <span class="keywordtype">int</span> <a class="code" href="classPowerSpectrum.html#d23d27e4e82f10404a37b933f6a72c33" title="Get the version number of the plugin.">getPluginVersion</a>() <span class="keyword">const</span>;
+<a name="l00066"></a>00066     std::string <a class="code" href="classPowerSpectrum.html#708b4d335c57643d5ef2b2e1caf43bd9" title="Get the copyright statement or licensing summary for the plugin.">getCopyright</a>() <span class="keyword">const</span>;
+<a name="l00067"></a>00067 
+<a name="l00068"></a>00068     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> <a class="code" href="classPowerSpectrum.html#6aac5f93e3a8c033026d739fed427242" title="Get the outputs of this plugin.">getOutputDescriptors</a>() <span class="keyword">const</span>;
+<a name="l00069"></a>00069 
+<a name="l00070"></a>00070     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classPowerSpectrum.html#a5664ffc2b37a16db471fae791c1f55f" title="Process a single block of input data.">process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
+<a name="l00071"></a>00071                        <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">Vamp::RealTime</a> timestamp);
+<a name="l00072"></a>00072 
+<a name="l00073"></a>00073     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classPowerSpectrum.html#c8a9661a785d38f4c5ce8ca2d53e69f9" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures</a>();
+<a name="l00074"></a>00074 
+<a name="l00075"></a>00075 <span class="keyword">protected</span>:
+<a name="l00076"></a><a class="code" href="classPowerSpectrum.html#399e997c033f26b07edb7cc83cd5a6d8">00076</a>     <span class="keywordtype">size_t</span> <a class="code" href="classPowerSpectrum.html#399e997c033f26b07edb7cc83cd5a6d8">m_blockSize</a>;
+<a name="l00077"></a>00077 };
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079 
+<a name="l00080"></a>00080 <span class="preprocessor">#endif</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PowerSpectrum_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,38 @@
+<!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: PowerSpectrum.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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>PowerSpectrum.h File Reference</h1>
+<p>
+
+<p>
+<a href="PowerSpectrum_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">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Example plugin that returns a power spectrum calculated (trivially) from the frequency domain representation of each block of audio.  <a href="classPowerSpectrum.html#_details">More...</a><br></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- a/code-doc/RealTime_8cpp-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,272 +0,0 @@
-<!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: RealTime.cpp Source File</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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
-  </div>
-</div>
-</div>
-<h1>RealTime.cpp</h1><a href="RealTime_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
-<a name="l00002"></a>00002 
-<a name="l00003"></a>00003 <span class="comment">/*</span>
-<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
-<a name="l00005"></a>00005 <span class="comment"></span>
-<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
-<a name="l00007"></a>00007 <span class="comment"></span>
-<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
-<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
-<a name="l00010"></a>00010 <span class="comment">  </span>
-<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
-<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
-<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
-<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
-<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
-<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
-<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
-<a name="l00018"></a>00018 <span class="comment"></span>
-<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
-<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
-<a name="l00021"></a>00021 <span class="comment"></span>
-<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
-<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
-<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
-<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
-<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
-<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
-<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
-<a name="l00029"></a>00029 <span class="comment"></span>
-<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
-<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
-<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
-<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
-<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
-<a name="l00035"></a>00035 <span class="comment">*/</span>
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 <span class="comment">/*</span>
-<a name="l00038"></a>00038 <span class="comment">   This is a modified version of a source file from the </span>
-<a name="l00039"></a>00039 <span class="comment">   Rosegarden MIDI and audio sequencer and notation editor.</span>
-<a name="l00040"></a>00040 <span class="comment">   This file copyright 2000-2006 Chris Cannam.</span>
-<a name="l00041"></a>00041 <span class="comment">   Relicensed by the author as detailed above.</span>
-<a name="l00042"></a>00042 <span class="comment">*/</span>
-<a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;iostream&gt;</span>
-<a name="l00045"></a>00045 
-<a name="l00046"></a>00046 <span class="preprocessor">#if (__GNUC__ &lt; 3)</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#include &lt;strstream&gt;</span>
-<a name="l00048"></a><a class="code" href="RealTime_8cpp.html#f265757a67f4d68101c17dbc0ce1294e">00048</a> <span class="preprocessor">#define stringstream strstream</span>
-<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">#else</span>
-<a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">#include &lt;sstream&gt;</span>
-<a name="l00051"></a>00051 <span class="preprocessor">#endif</span>
-<a name="l00052"></a>00052 <span class="preprocessor"></span>
-<a name="l00053"></a>00053 <span class="keyword">using</span> std::cerr;
-<a name="l00054"></a>00054 <span class="keyword">using</span> std::endl;
-<a name="l00055"></a>00055 
-<a name="l00056"></a>00056 <span class="preprocessor">#include "<a class="code" href="RealTime_8h.html">RealTime.h</a>"</span>
-<a name="l00057"></a>00057 
-<a name="l00058"></a>00058 <span class="preprocessor">#ifndef _WIN32</span>
-<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor">#include &lt;sys/time.h&gt;</span>
-<a name="l00060"></a>00060 <span class="preprocessor">#endif</span>
-<a name="l00061"></a>00061 <span class="preprocessor"></span>
-<a name="l00062"></a>00062 <span class="keyword">namespace </span>Vamp {
-<a name="l00063"></a>00063 
-<a name="l00064"></a>00064 <span class="comment">// A RealTime consists of two ints that must be at least 32 bits each.</span>
-<a name="l00065"></a>00065 <span class="comment">// A signed 32-bit int can store values exceeding +/- 2 billion.  This</span>
-<a name="l00066"></a>00066 <span class="comment">// means we can safely use our lower int for nanoseconds, as there are</span>
-<a name="l00067"></a>00067 <span class="comment">// 1 billion nanoseconds in a second and we need to handle double that</span>
-<a name="l00068"></a>00068 <span class="comment">// because of the implementations of addition etc that we use.</span>
-<a name="l00069"></a>00069 <span class="comment">//</span>
-<a name="l00070"></a>00070 <span class="comment">// The maximum valid RealTime on a 32-bit system is somewhere around</span>
-<a name="l00071"></a>00071 <span class="comment">// 68 years: 999999999 nanoseconds longer than the classic Unix epoch.</span>
-<a name="l00072"></a>00072 
-<a name="l00073"></a><a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">00073</a> <span class="preprocessor">#define ONE_BILLION 1000000000</span>
-<a name="l00074"></a>00074 <span class="preprocessor"></span>
-<a name="l00075"></a><a class="code" href="structVamp_1_1RealTime.html#75b2f0af2f9c49e649f8d30b452b049d">00075</a> <a class="code" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">RealTime::RealTime</a>(<span class="keywordtype">int</span> s, <span class="keywordtype">int</span> n) :
-<a name="l00076"></a>00076     sec(s), nsec(n)
-<a name="l00077"></a>00077 {
-<a name="l00078"></a>00078     <span class="keywordflow">if</span> (<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> == 0) {
-<a name="l00079"></a>00079         <span class="keywordflow">while</span> (<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> &lt;= -<a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a>) { <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> += <a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a>; --<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>; }
-<a name="l00080"></a>00080         <span class="keywordflow">while</span> (<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> &gt;=  <a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a>) { <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> -= <a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a>; ++<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>; }
-<a name="l00081"></a>00081     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> &lt; 0) {
-<a name="l00082"></a>00082         <span class="keywordflow">while</span> (<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> &lt;= -<a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a>) { <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> += <a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a>; --<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>; }
-<a name="l00083"></a>00083         <span class="keywordflow">while</span> (<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> &gt; 0)             { <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> -= <a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a>; ++<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>; }
-<a name="l00084"></a>00084     } <span class="keywordflow">else</span> { 
-<a name="l00085"></a>00085         <span class="keywordflow">while</span> (<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> &gt;=  <a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a>) { <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> -= <a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a>; ++<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>; }
-<a name="l00086"></a>00086         <span class="keywordflow">while</span> (<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> &lt; 0)             { <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> += <a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a>; --<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>; }
-<a name="l00087"></a>00087     }
-<a name="l00088"></a>00088 }
-<a name="l00089"></a>00089 
-<a name="l00090"></a>00090 <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>
-<a name="l00091"></a><a class="code" href="structVamp_1_1RealTime.html#754901a59483036097d8111b8c02f4f3">00091</a> RealTime::fromSeconds(<span class="keywordtype">double</span> sec)
-<a name="l00092"></a>00092 {
-<a name="l00093"></a>00093     <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">RealTime</a>(<span class="keywordtype">int</span>(sec), <span class="keywordtype">int</span>((sec - <span class="keywordtype">int</span>(sec)) * <a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a> + 0.5));
-<a name="l00094"></a>00094 }
-<a name="l00095"></a>00095 
-<a name="l00096"></a>00096 <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>
-<a name="l00097"></a><a class="code" href="structVamp_1_1RealTime.html#512ca91f967c1d7923456f426926a9f6">00097</a> <a class="code" href="structVamp_1_1RealTime.html#512ca91f967c1d7923456f426926a9f6">RealTime::fromMilliseconds</a>(<span class="keywordtype">int</span> <a class="code" href="structVamp_1_1RealTime.html#76e22815db51ae180c38021110da9947">msec</a>)
-<a name="l00098"></a>00098 {
-<a name="l00099"></a>00099     <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">RealTime</a>(msec / 1000, (msec % 1000) * 1000000);
-<a name="l00100"></a>00100 }
-<a name="l00101"></a>00101 
-<a name="l00102"></a>00102 <span class="preprocessor">#ifndef _WIN32</span>
-<a name="l00103"></a>00103 <span class="preprocessor"></span><a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>
-<a name="l00104"></a><a class="code" href="structVamp_1_1RealTime.html#ffdd22eee09b38335d3133c0e9a8f7b3">00104</a> <a class="code" href="structVamp_1_1RealTime.html#ffdd22eee09b38335d3133c0e9a8f7b3">RealTime::fromTimeval</a>(<span class="keyword">const</span> <span class="keyword">struct</span> timeval &amp;tv)
-<a name="l00105"></a>00105 {
-<a name="l00106"></a>00106     <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">RealTime</a>(tv.tv_sec, tv.tv_usec * 1000);
-<a name="l00107"></a>00107 }
-<a name="l00108"></a>00108 <span class="preprocessor">#endif</span>
-<a name="l00109"></a>00109 <span class="preprocessor"></span>
-<a name="l00110"></a><a class="code" href="namespaceVamp.html#84f347b339c111e035f4f0d6ed37f4e0">00110</a> std::ostream &amp;<a class="code" href="namespaceVamp.html#84f347b339c111e035f4f0d6ed37f4e0">operator&lt;&lt;</a>(std::ostream &amp;out, <span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;rt)
-<a name="l00111"></a>00111 {
-<a name="l00112"></a>00112     <span class="keywordflow">if</span> (rt &lt; <a class="code" href="structVamp_1_1RealTime.html#be453371597710148b0fd19bb452f8a9">RealTime::zeroTime</a>) {
-<a name="l00113"></a>00113         out &lt;&lt; <span class="stringliteral">"-"</span>;
-<a name="l00114"></a>00114     } <span class="keywordflow">else</span> {
-<a name="l00115"></a>00115         out &lt;&lt; <span class="stringliteral">" "</span>;
-<a name="l00116"></a>00116     }
-<a name="l00117"></a>00117 
-<a name="l00118"></a>00118     <span class="keywordtype">int</span> s = (rt.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> &lt; 0 ? -rt.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> : rt.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>);
-<a name="l00119"></a>00119     <span class="keywordtype">int</span> n = (rt.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> &lt; 0 ? -rt.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> : rt.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>);
-<a name="l00120"></a>00120 
-<a name="l00121"></a>00121     out &lt;&lt; s &lt;&lt; <span class="stringliteral">"."</span>;
-<a name="l00122"></a>00122 
-<a name="l00123"></a>00123     <span class="keywordtype">int</span> nn(n);
-<a name="l00124"></a>00124     <span class="keywordflow">if</span> (nn == 0) out &lt;&lt; <span class="stringliteral">"00000000"</span>;
-<a name="l00125"></a>00125     <span class="keywordflow">else</span> <span class="keywordflow">while</span> (nn &lt; (<a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a> / 10)) {
-<a name="l00126"></a>00126         out &lt;&lt; <span class="stringliteral">"0"</span>;
-<a name="l00127"></a>00127         nn *= 10;
-<a name="l00128"></a>00128     }
-<a name="l00129"></a>00129     
-<a name="l00130"></a>00130     out &lt;&lt; n &lt;&lt; <span class="stringliteral">"R"</span>;
-<a name="l00131"></a>00131     <span class="keywordflow">return</span> out;
-<a name="l00132"></a>00132 }
-<a name="l00133"></a>00133 
-<a name="l00134"></a>00134 std::string
-<a name="l00135"></a><a class="code" href="structVamp_1_1RealTime.html#d44476618183bd736996a87292d03c07">00135</a> <a class="code" href="structVamp_1_1RealTime.html#d44476618183bd736996a87292d03c07" title="Return a human-readable debug-type string to full precision (probably not a format...">RealTime::toString</a>()<span class="keyword"> const</span>
-<a name="l00136"></a>00136 <span class="keyword"></span>{
-<a name="l00137"></a>00137     <a class="code" href="RealTime_8cpp.html#f265757a67f4d68101c17dbc0ce1294e">std::stringstream</a> out;
-<a name="l00138"></a>00138     out &lt;&lt; *<span class="keyword">this</span>;
-<a name="l00139"></a>00139     
-<a name="l00140"></a>00140 <span class="preprocessor">#if (__GNUC__ &lt; 3)</span>
-<a name="l00141"></a>00141 <span class="preprocessor"></span>    out &lt;&lt; std::ends;
-<a name="l00142"></a>00142 <span class="preprocessor">#endif</span>
-<a name="l00143"></a>00143 <span class="preprocessor"></span>
-<a name="l00144"></a>00144     std::string s = out.str();
-<a name="l00145"></a>00145 
-<a name="l00146"></a>00146     <span class="comment">// remove trailing R</span>
-<a name="l00147"></a>00147     <span class="keywordflow">return</span> s.substr(0, s.length() - 1);
-<a name="l00148"></a>00148 }
-<a name="l00149"></a>00149 
-<a name="l00150"></a>00150 std::string
-<a name="l00151"></a><a class="code" href="structVamp_1_1RealTime.html#d75b927afadfa422ae512d169ccda0aa">00151</a> <a class="code" href="structVamp_1_1RealTime.html#d75b927afadfa422ae512d169ccda0aa" title="Return a user-readable string to the nearest millisecond in a form like HH:MM:SS...">RealTime::toText</a>(<span class="keywordtype">bool</span> fixedDp)<span class="keyword"> const</span>
-<a name="l00152"></a>00152 <span class="keyword"></span>{
-<a name="l00153"></a>00153     <span class="keywordflow">if</span> (*<span class="keyword">this</span> &lt; <a class="code" href="structVamp_1_1RealTime.html#be453371597710148b0fd19bb452f8a9">RealTime::zeroTime</a>) <span class="keywordflow">return</span> <span class="stringliteral">"-"</span> + (-*<span class="keyword">this</span>).<a class="code" href="structVamp_1_1RealTime.html#d75b927afadfa422ae512d169ccda0aa" title="Return a user-readable string to the nearest millisecond in a form like HH:MM:SS...">toText</a>();
-<a name="l00154"></a>00154 
-<a name="l00155"></a>00155     <a class="code" href="RealTime_8cpp.html#f265757a67f4d68101c17dbc0ce1294e">std::stringstream</a> out;
-<a name="l00156"></a>00156 
-<a name="l00157"></a>00157     <span class="keywordflow">if</span> (<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> &gt;= 3600) {
-<a name="l00158"></a>00158         out &lt;&lt; (<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> / 3600) &lt;&lt; <span class="stringliteral">":"</span>;
-<a name="l00159"></a>00159     }
-<a name="l00160"></a>00160 
-<a name="l00161"></a>00161     <span class="keywordflow">if</span> (<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> &gt;= 60) {
-<a name="l00162"></a>00162         out &lt;&lt; (<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> % 3600) / 60 &lt;&lt; <span class="stringliteral">":"</span>;
-<a name="l00163"></a>00163     }
-<a name="l00164"></a>00164 
-<a name="l00165"></a>00165     <span class="keywordflow">if</span> (<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> &gt;= 10) {
-<a name="l00166"></a>00166         out &lt;&lt; ((<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> % 60) / 10);
-<a name="l00167"></a>00167     }
-<a name="l00168"></a>00168 
-<a name="l00169"></a>00169     out &lt;&lt; (<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> % 10);
-<a name="l00170"></a>00170     
-<a name="l00171"></a>00171     <span class="keywordtype">int</span> ms = <a class="code" href="structVamp_1_1RealTime.html#76e22815db51ae180c38021110da9947">msec</a>();
-<a name="l00172"></a>00172 
-<a name="l00173"></a>00173     <span class="keywordflow">if</span> (ms != 0) {
-<a name="l00174"></a>00174         out &lt;&lt; <span class="stringliteral">"."</span>;
-<a name="l00175"></a>00175         out &lt;&lt; (ms / 100);
-<a name="l00176"></a>00176         ms = ms % 100;
-<a name="l00177"></a>00177         <span class="keywordflow">if</span> (ms != 0) {
-<a name="l00178"></a>00178             out &lt;&lt; (ms / 10);
-<a name="l00179"></a>00179             ms = ms % 10;
-<a name="l00180"></a>00180         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fixedDp) {
-<a name="l00181"></a>00181             out &lt;&lt; <span class="stringliteral">"0"</span>;
-<a name="l00182"></a>00182         }
-<a name="l00183"></a>00183         <span class="keywordflow">if</span> (ms != 0) {
-<a name="l00184"></a>00184             out &lt;&lt; ms;
-<a name="l00185"></a>00185         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fixedDp) {
-<a name="l00186"></a>00186             out &lt;&lt; <span class="stringliteral">"0"</span>;
-<a name="l00187"></a>00187         }
-<a name="l00188"></a>00188     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fixedDp) {
-<a name="l00189"></a>00189         out &lt;&lt; <span class="stringliteral">".000"</span>;
-<a name="l00190"></a>00190     }
-<a name="l00191"></a>00191         
-<a name="l00192"></a>00192 <span class="preprocessor">#if (__GNUC__ &lt; 3)</span>
-<a name="l00193"></a>00193 <span class="preprocessor"></span>    out &lt;&lt; std::ends;
-<a name="l00194"></a>00194 <span class="preprocessor">#endif</span>
-<a name="l00195"></a>00195 <span class="preprocessor"></span>
-<a name="l00196"></a>00196     std::string s = out.str();
-<a name="l00197"></a>00197 
-<a name="l00198"></a>00198     <span class="keywordflow">return</span> s;
-<a name="l00199"></a>00199 }
-<a name="l00200"></a>00200 
-<a name="l00201"></a>00201 
-<a name="l00202"></a>00202 <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>
-<a name="l00203"></a><a class="code" href="structVamp_1_1RealTime.html#c88cda961da5cb728d823b29c5456c06">00203</a> <a class="code" href="structVamp_1_1RealTime.html#c88cda961da5cb728d823b29c5456c06">RealTime::operator/</a>(<span class="keywordtype">int</span> d)<span class="keyword"> const</span>
-<a name="l00204"></a>00204 <span class="keyword"></span>{
-<a name="l00205"></a>00205     <span class="keywordtype">int</span> secdiv = <a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> / d;
-<a name="l00206"></a>00206     <span class="keywordtype">int</span> secrem = <a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> % d;
-<a name="l00207"></a>00207 
-<a name="l00208"></a>00208     <span class="keywordtype">double</span> nsecdiv = (double(<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>) + <a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a> * double(secrem)) / d;
-<a name="l00209"></a>00209     
-<a name="l00210"></a>00210     <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">RealTime</a>(secdiv, <span class="keywordtype">int</span>(nsecdiv + 0.5));
-<a name="l00211"></a>00211 }
-<a name="l00212"></a>00212 
-<a name="l00213"></a>00213 <span class="keywordtype">double</span> 
-<a name="l00214"></a><a class="code" href="structVamp_1_1RealTime.html#a6e50a94c81a1448ec1d61421ccf6e3f">00214</a> <a class="code" href="structVamp_1_1RealTime.html#c88cda961da5cb728d823b29c5456c06">RealTime::operator/</a>(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const</span>
-<a name="l00215"></a>00215 <span class="keyword"></span>{
-<a name="l00216"></a>00216     <span class="keywordtype">double</span> lTotal = double(<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>) * <a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a> + double(<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>);
-<a name="l00217"></a>00217     <span class="keywordtype">double</span> rTotal = double(r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>) * <a class="code" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a> + double(r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>);
-<a name="l00218"></a>00218     
-<a name="l00219"></a>00219     <span class="keywordflow">if</span> (rTotal == 0) <span class="keywordflow">return</span> 0.0;
-<a name="l00220"></a>00220     <span class="keywordflow">else</span> <span class="keywordflow">return</span> lTotal/rTotal;
-<a name="l00221"></a>00221 }
-<a name="l00222"></a>00222 
-<a name="l00223"></a>00223 <span class="keywordtype">long</span>
-<a name="l00224"></a><a class="code" href="structVamp_1_1RealTime.html#1c32b50b1511cdca17cd6c1c3c05d9b5">00224</a> <a class="code" href="structVamp_1_1RealTime.html#1c32b50b1511cdca17cd6c1c3c05d9b5" title="Convert a RealTime into a sample frame at the given sample rate.">RealTime::realTime2Frame</a>(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;time, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate)
-<a name="l00225"></a>00225 {
-<a name="l00226"></a>00226     <span class="keywordflow">if</span> (time &lt; <a class="code" href="structVamp_1_1RealTime.html#be453371597710148b0fd19bb452f8a9">zeroTime</a>) <span class="keywordflow">return</span> -<a class="code" href="structVamp_1_1RealTime.html#1c32b50b1511cdca17cd6c1c3c05d9b5" title="Convert a RealTime into a sample frame at the given sample rate.">realTime2Frame</a>(-time, sampleRate);
-<a name="l00227"></a>00227     <span class="keywordtype">double</span> s = time.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> + double(time.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> + 1) / 1000000000.0;
-<a name="l00228"></a>00228     <span class="keywordflow">return</span> long(s * sampleRate);
-<a name="l00229"></a>00229 }
-<a name="l00230"></a>00230 
-<a name="l00231"></a>00231 <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>
-<a name="l00232"></a><a class="code" href="structVamp_1_1RealTime.html#3a5ecc8888b559aad3b7d96911786b3a">00232</a> <a class="code" href="structVamp_1_1RealTime.html#3a5ecc8888b559aad3b7d96911786b3a" title="Convert a sample frame at the given sample rate into a RealTime.">RealTime::frame2RealTime</a>(<span class="keywordtype">long</span> frame, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate)
-<a name="l00233"></a>00233 {
-<a name="l00234"></a>00234     <span class="keywordflow">if</span> (frame &lt; 0) <span class="keywordflow">return</span> -<a class="code" href="structVamp_1_1RealTime.html#3a5ecc8888b559aad3b7d96911786b3a" title="Convert a sample frame at the given sample rate into a RealTime.">frame2RealTime</a>(-frame, sampleRate);
-<a name="l00235"></a>00235 
-<a name="l00236"></a>00236     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> rt;
-<a name="l00237"></a>00237     rt.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> = frame / long(sampleRate);
-<a name="l00238"></a>00238     frame -= rt.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> * long(sampleRate);
-<a name="l00239"></a>00239     rt.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> = (int)(((<span class="keywordtype">double</span>(frame) * 1000000.0) / sampleRate) * 1000.0);
-<a name="l00240"></a>00240     <span class="keywordflow">return</span> rt;
-<a name="l00241"></a>00241 }
-<a name="l00242"></a>00242 
-<a name="l00243"></a>00243 <span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> <a class="code" href="structVamp_1_1RealTime.html#be453371597710148b0fd19bb452f8a9">RealTime::zeroTime</a>(0,0);
-<a name="l00244"></a>00244 
-<a name="l00245"></a>00245 }
-</pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/RealTime_8cpp.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-<!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: RealTime.cpp 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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
-  </div>
-</div>
-<div class="contents">
-<h1>RealTime.cpp File Reference</h1>
-<p>
-
-<p>
-<a href="RealTime_8cpp-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>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html">Vamp</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="RealTime_8cpp.html#f265757a67f4d68101c17dbc0ce1294e">stringstream</a>&nbsp;&nbsp;&nbsp;strstream</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">ONE_BILLION</a>&nbsp;&nbsp;&nbsp;1000000000</td></tr>
-
-<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::ostream &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html#84f347b339c111e035f4f0d6ed37f4e0">Vamp::operator&lt;&lt;</a> (std::ostream &amp;out, const RealTime &amp;rt)</td></tr>
-
-</table>
-<hr><h2>Define Documentation</h2>
-<a class="anchor" name="f265757a67f4d68101c17dbc0ce1294e"></a><!-- doxytag: member="RealTime.cpp::stringstream" ref="f265757a67f4d68101c17dbc0ce1294e" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define stringstream&nbsp;&nbsp;&nbsp;strstream          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="RealTime_8cpp-source.html#l00048">48</a> of file <a class="el" href="RealTime_8cpp-source.html">RealTime.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="RealTime_8cpp-source.html#l00135">Vamp::RealTime::toString()</a>, and <a class="el" href="RealTime_8cpp-source.html#l00151">Vamp::RealTime::toText()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="f05eba65a3d4d0547dba7e69e440db2c"></a><!-- doxytag: member="RealTime.cpp::ONE_BILLION" ref="f05eba65a3d4d0547dba7e69e440db2c" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define ONE_BILLION&nbsp;&nbsp;&nbsp;1000000000          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="RealTime_8cpp-source.html#l00073">73</a> of file <a class="el" href="RealTime_8cpp-source.html">RealTime.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="RealTime_8cpp-source.html#l00091">Vamp::RealTime::fromSeconds()</a>, <a class="el" href="RealTime_8cpp-source.html#l00203">Vamp::RealTime::operator/()</a>, <a class="el" href="RealTime_8cpp-source.html#l00110">Vamp::operator&lt;&lt;()</a>, and <a class="el" href="RealTime_8cpp-source.html#l00075">Vamp::RealTime::RealTime()</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&nbsp;
-<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>
--- a/code-doc/RealTime_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-<!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: RealTime.h Source File</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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
-  </div>
-</div>
-</div>
-<h1>RealTime.h</h1><a href="RealTime_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
-<a name="l00002"></a>00002 
-<a name="l00003"></a>00003 <span class="comment">/*</span>
-<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
-<a name="l00005"></a>00005 <span class="comment"></span>
-<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
-<a name="l00007"></a>00007 <span class="comment"></span>
-<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
-<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
-<a name="l00010"></a>00010 <span class="comment">  </span>
-<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
-<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
-<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
-<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
-<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
-<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
-<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
-<a name="l00018"></a>00018 <span class="comment"></span>
-<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
-<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
-<a name="l00021"></a>00021 <span class="comment"></span>
-<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
-<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
-<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
-<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
-<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
-<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
-<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
-<a name="l00029"></a>00029 <span class="comment"></span>
-<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
-<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
-<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
-<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
-<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
-<a name="l00035"></a>00035 <span class="comment">*/</span>
-<a name="l00036"></a>00036 
-<a name="l00037"></a>00037 <span class="comment">/*</span>
-<a name="l00038"></a>00038 <span class="comment">   This is a modified version of a source file from the </span>
-<a name="l00039"></a>00039 <span class="comment">   Rosegarden MIDI and audio sequencer and notation editor.</span>
-<a name="l00040"></a>00040 <span class="comment">   This file copyright 2000-2006 Chris Cannam.</span>
-<a name="l00041"></a>00041 <span class="comment">   Relicensed by the author as detailed above.</span>
-<a name="l00042"></a>00042 <span class="comment">*/</span>
-<a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="preprocessor">#ifndef _VAMP_REAL_TIME_H_</span>
-<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_REAL_TIME_H_</span>
-<a name="l00046"></a>00046 <span class="preprocessor"></span>
-<a name="l00047"></a>00047 <span class="preprocessor">#include &lt;iostream&gt;</span>
-<a name="l00048"></a>00048 <span class="preprocessor">#include &lt;string&gt;</span>
-<a name="l00049"></a>00049 
-<a name="l00050"></a>00050 <span class="preprocessor">#ifndef _WIN32</span>
-<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="keyword">struct </span>timeval;
-<a name="l00052"></a>00052 <span class="preprocessor">#endif</span>
-<a name="l00053"></a>00053 <span class="preprocessor"></span>
-<a name="l00054"></a>00054 <span class="keyword">namespace </span>Vamp {
-<a name="l00055"></a>00055 
-<a name="l00063"></a><a class="code" href="structVamp_1_1RealTime.html">00063</a> <span class="keyword">struct </span><a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>
-<a name="l00064"></a>00064 {
-<a name="l00065"></a><a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">00065</a>     <span class="keywordtype">int</span> <a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>;
-<a name="l00066"></a><a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">00066</a>     <span class="keywordtype">int</span> <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>;
-<a name="l00067"></a>00067 
-<a name="l00068"></a><a class="code" href="structVamp_1_1RealTime.html#ace9e2c60af62273e45ccd98d623914c">00068</a>     <span class="keywordtype">int</span> <a class="code" href="structVamp_1_1RealTime.html#ace9e2c60af62273e45ccd98d623914c">usec</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> / 1000; }
-<a name="l00069"></a><a class="code" href="structVamp_1_1RealTime.html#76e22815db51ae180c38021110da9947">00069</a>     <span class="keywordtype">int</span> <a class="code" href="structVamp_1_1RealTime.html#76e22815db51ae180c38021110da9947">msec</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> / 1000000; }
-<a name="l00070"></a>00070 
-<a name="l00071"></a><a class="code" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">00071</a>     <a class="code" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">RealTime</a>(): <a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>(0), <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>(0) {}
-<a name="l00072"></a>00072     <a class="code" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">RealTime</a>(<span class="keywordtype">int</span> s, <span class="keywordtype">int</span> n);
-<a name="l00073"></a>00073 
-<a name="l00074"></a><a class="code" href="structVamp_1_1RealTime.html#8f4dbd8ef24a0ec6a77dce67fff5434e">00074</a>     <a class="code" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">RealTime</a>(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r) :
-<a name="l00075"></a>00075         <a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>(r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>), <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>(r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>) { }
-<a name="l00076"></a>00076 
-<a name="l00077"></a>00077     <span class="keyword">static</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> <a class="code" href="structVamp_1_1RealTime.html#754901a59483036097d8111b8c02f4f3">fromSeconds</a>(<span class="keywordtype">double</span> <a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>);
-<a name="l00078"></a>00078     <span class="keyword">static</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> <a class="code" href="structVamp_1_1RealTime.html#512ca91f967c1d7923456f426926a9f6">fromMilliseconds</a>(<span class="keywordtype">int</span> <a class="code" href="structVamp_1_1RealTime.html#76e22815db51ae180c38021110da9947">msec</a>);
-<a name="l00079"></a>00079 
-<a name="l00080"></a>00080 <span class="preprocessor">#ifndef _WIN32</span>
-<a name="l00081"></a>00081 <span class="preprocessor"></span>    <span class="keyword">static</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> <a class="code" href="structVamp_1_1RealTime.html#ffdd22eee09b38335d3133c0e9a8f7b3">fromTimeval</a>(<span class="keyword">const</span> <span class="keyword">struct</span> timeval &amp;);
-<a name="l00082"></a>00082 <span class="preprocessor">#endif</span>
-<a name="l00083"></a>00083 <span class="preprocessor"></span>
-<a name="l00084"></a><a class="code" href="structVamp_1_1RealTime.html#db82f838804a9a3ad49988de5944d090">00084</a>     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;<a class="code" href="structVamp_1_1RealTime.html#db82f838804a9a3ad49988de5944d090">operator=</a>(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r) {
-<a name="l00085"></a>00085         <a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> = r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>; <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> = r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>; <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00086"></a>00086     }
-<a name="l00087"></a>00087 
-<a name="l00088"></a><a class="code" href="structVamp_1_1RealTime.html#6b74748d1eb4c3c751e7a12aefae0bde">00088</a>     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> <a class="code" href="structVamp_1_1RealTime.html#6b74748d1eb4c3c751e7a12aefae0bde">operator+</a>(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
-<a name="l00089"></a>00089         <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">RealTime</a>(<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> + r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>, <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> + r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>);
-<a name="l00090"></a>00090     }
-<a name="l00091"></a><a class="code" href="structVamp_1_1RealTime.html#f0360b5b0d23a464025a6823912c6291">00091</a>     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> <a class="code" href="structVamp_1_1RealTime.html#f62915355c482f2e1611a52a7f17f5ed">operator-</a>(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
-<a name="l00092"></a>00092         <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">RealTime</a>(<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> - r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>, <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> - r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>);
-<a name="l00093"></a>00093     }
-<a name="l00094"></a><a class="code" href="structVamp_1_1RealTime.html#f62915355c482f2e1611a52a7f17f5ed">00094</a>     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> <a class="code" href="structVamp_1_1RealTime.html#f62915355c482f2e1611a52a7f17f5ed">operator-</a>()<span class="keyword"> const </span>{
-<a name="l00095"></a>00095         <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">RealTime</a>(-<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>, -<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>);
-<a name="l00096"></a>00096     }
-<a name="l00097"></a>00097 
-<a name="l00098"></a><a class="code" href="structVamp_1_1RealTime.html#78e378a5dd0137a6514dca18edda6f9a">00098</a>     <span class="keywordtype">bool</span> <a class="code" href="structVamp_1_1RealTime.html#78e378a5dd0137a6514dca18edda6f9a">operator &lt;</a>(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
-<a name="l00099"></a>00099         <span class="keywordflow">if</span> (<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> == r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>) <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> &lt; r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>;
-<a name="l00100"></a>00100         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> &lt; r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>;
-<a name="l00101"></a>00101     }
-<a name="l00102"></a>00102 
-<a name="l00103"></a><a class="code" href="structVamp_1_1RealTime.html#6f0aced679e2f97133ed63c688b335e4">00103</a>     <span class="keywordtype">bool</span> <a class="code" href="structVamp_1_1RealTime.html#6f0aced679e2f97133ed63c688b335e4">operator &gt;</a>(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
-<a name="l00104"></a>00104         <span class="keywordflow">if</span> (<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> == r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>) <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> &gt; r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>;
-<a name="l00105"></a>00105         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> &gt; r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>;
-<a name="l00106"></a>00106     }
-<a name="l00107"></a>00107 
-<a name="l00108"></a><a class="code" href="structVamp_1_1RealTime.html#bc5f06b5b9973012cb7453192df3ea5e">00108</a>     <span class="keywordtype">bool</span> <a class="code" href="structVamp_1_1RealTime.html#bc5f06b5b9973012cb7453192df3ea5e">operator==</a>(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
-<a name="l00109"></a>00109         <span class="keywordflow">return</span> (<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> == r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> &amp;&amp; <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> == r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>);
-<a name="l00110"></a>00110     }
-<a name="l00111"></a>00111  
-<a name="l00112"></a><a class="code" href="structVamp_1_1RealTime.html#e9b0ea7c217163d5327b1a2a0662a90b">00112</a>     <span class="keywordtype">bool</span> <a class="code" href="structVamp_1_1RealTime.html#e9b0ea7c217163d5327b1a2a0662a90b">operator!=</a>(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
-<a name="l00113"></a>00113         <span class="keywordflow">return</span> !(r == *<span class="keyword">this</span>);
-<a name="l00114"></a>00114     }
-<a name="l00115"></a>00115  
-<a name="l00116"></a><a class="code" href="structVamp_1_1RealTime.html#5cb785a410e3a91ed3092b7bba22afc3">00116</a>     <span class="keywordtype">bool</span> <a class="code" href="structVamp_1_1RealTime.html#5cb785a410e3a91ed3092b7bba22afc3">operator&gt;=</a>(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
-<a name="l00117"></a>00117         <span class="keywordflow">if</span> (<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> == r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>) <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> &gt;= r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>;
-<a name="l00118"></a>00118         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> &gt;= r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>;
-<a name="l00119"></a>00119     }
-<a name="l00120"></a>00120 
-<a name="l00121"></a><a class="code" href="structVamp_1_1RealTime.html#cf4278eec678c558d62bbda6bc1da44e">00121</a>     <span class="keywordtype">bool</span> <a class="code" href="structVamp_1_1RealTime.html#cf4278eec678c558d62bbda6bc1da44e">operator&lt;=</a>(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
-<a name="l00122"></a>00122         <span class="keywordflow">if</span> (<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> == r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>) <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a> &lt;= r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>;
-<a name="l00123"></a>00123         <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> &lt;= r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>;
-<a name="l00124"></a>00124     }
-<a name="l00125"></a>00125 
-<a name="l00126"></a>00126     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> <a class="code" href="structVamp_1_1RealTime.html#c88cda961da5cb728d823b29c5456c06">operator/</a>(<span class="keywordtype">int</span> d) <span class="keyword">const</span>;
-<a name="l00127"></a>00127 
-<a name="l00131"></a>00131     <span class="keywordtype">double</span> <a class="code" href="structVamp_1_1RealTime.html#c88cda961da5cb728d823b29c5456c06">operator/</a>(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r) <span class="keyword">const</span>;
-<a name="l00132"></a>00132 
-<a name="l00137"></a>00137     std::string <a class="code" href="structVamp_1_1RealTime.html#d44476618183bd736996a87292d03c07" title="Return a human-readable debug-type string to full precision (probably not a format...">toString</a>() <span class="keyword">const</span>;
-<a name="l00138"></a>00138 
-<a name="l00143"></a>00143     std::string <a class="code" href="structVamp_1_1RealTime.html#d75b927afadfa422ae512d169ccda0aa" title="Return a user-readable string to the nearest millisecond in a form like HH:MM:SS...">toText</a>(<span class="keywordtype">bool</span> fixedDp = <span class="keyword">false</span>) <span class="keyword">const</span>;
-<a name="l00144"></a>00144 
-<a name="l00148"></a>00148     <span class="keyword">static</span> <span class="keywordtype">long</span> <a class="code" href="structVamp_1_1RealTime.html#1c32b50b1511cdca17cd6c1c3c05d9b5" title="Convert a RealTime into a sample frame at the given sample rate.">realTime2Frame</a>(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate);
-<a name="l00149"></a>00149 
-<a name="l00153"></a>00153     <span class="keyword">static</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> <a class="code" href="structVamp_1_1RealTime.html#3a5ecc8888b559aad3b7d96911786b3a" title="Convert a sample frame at the given sample rate into a RealTime.">frame2RealTime</a>(<span class="keywordtype">long</span> frame, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate);
-<a name="l00154"></a>00154 
-<a name="l00155"></a><a class="code" href="structVamp_1_1RealTime.html#be453371597710148b0fd19bb452f8a9">00155</a>     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> <a class="code" href="structVamp_1_1RealTime.html#be453371597710148b0fd19bb452f8a9">zeroTime</a>;
-<a name="l00156"></a>00156 };
-<a name="l00157"></a>00157 
-<a name="l00158"></a>00158 std::ostream &amp;<a class="code" href="namespaceVamp.html#84f347b339c111e035f4f0d6ed37f4e0">operator&lt;&lt;</a>(std::ostream &amp;out, <span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;rt);
-<a name="l00159"></a>00159 
-<a name="l00160"></a>00160 }
-<a name="l00161"></a>00161     
-<a name="l00162"></a>00162 <span class="preprocessor">#endif</span>
-</pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/RealTime_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<!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: RealTime.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&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
-  </div>
-</div>
-<div class="contents">
-<h1>RealTime.h File Reference</h1>
-<p>
-
-<p>
-<a href="RealTime_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>Namespaces</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html">Vamp</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> represents time values to nanosecond precision with accurate arithmetic and frame-rate conversion functions.  <a href="structVamp_1_1RealTime.html#_details">More...</a><br></td></tr>
-<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::ostream &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html#84f347b339c111e035f4f0d6ed37f4e0">Vamp::operator&lt;&lt;</a> (std::ostream &amp;out, const RealTime &amp;rt)</td></tr>
-
-</table>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/SpectralCentroid_8cpp-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/SpectralCentroid_8cpp-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -18,7 +18,7 @@
   <div class="navpath"><a class="el" href="dir_35887283b966ca996e4ff77f459c38ce.html">examples</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>SpectralCentroid.cpp</h1><a href="SpectralCentroid_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -62,154 +62,157 @@
 <a name="l00041"></a>00041 <span class="keyword">using</span> std::cerr;
 <a name="l00042"></a>00042 <span class="keyword">using</span> std::endl;
 <a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;cmath&gt;</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;math.h&gt;</span>
 <a name="l00045"></a>00045 
-<a name="l00046"></a>00046 
-<a name="l00047"></a><a class="code" href="classSpectralCentroid.html#2cd801ad72f262eceb95ab0d22e7dbcd">00047</a> <a class="code" href="classSpectralCentroid.html#2cd801ad72f262eceb95ab0d22e7dbcd">SpectralCentroid::SpectralCentroid</a>(<span class="keywordtype">float</span> inputSampleRate) :
-<a name="l00048"></a>00048     Plugin(inputSampleRate),
-<a name="l00049"></a>00049     m_stepSize(0),
-<a name="l00050"></a>00050     m_blockSize(0)
-<a name="l00051"></a>00051 {
-<a name="l00052"></a>00052 }
-<a name="l00053"></a>00053 
-<a name="l00054"></a><a class="code" href="classSpectralCentroid.html#483e0d6757bc3dcf61e8066f764f45c6">00054</a> <a class="code" href="classSpectralCentroid.html#483e0d6757bc3dcf61e8066f764f45c6">SpectralCentroid::~SpectralCentroid</a>()
+<a name="l00046"></a>00046 <span class="preprocessor">#ifdef WIN32</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#define isnan(x) false</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#define isinf(x) false</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00050"></a>00050 <span class="preprocessor"></span>
+<a name="l00051"></a><a class="code" href="classSpectralCentroid.html#2cd801ad72f262eceb95ab0d22e7dbcd">00051</a> <a class="code" href="classSpectralCentroid.html#2cd801ad72f262eceb95ab0d22e7dbcd">SpectralCentroid::SpectralCentroid</a>(<span class="keywordtype">float</span> inputSampleRate) :
+<a name="l00052"></a>00052     Plugin(inputSampleRate),
+<a name="l00053"></a>00053     m_stepSize(0),
+<a name="l00054"></a>00054     m_blockSize(0)
 <a name="l00055"></a>00055 {
 <a name="l00056"></a>00056 }
 <a name="l00057"></a>00057 
-<a name="l00058"></a>00058 <span class="keywordtype">string</span>
-<a name="l00059"></a><a class="code" href="classSpectralCentroid.html#1b2c4c8440c024c4c635fcef5697949f">00059</a> <a class="code" href="classSpectralCentroid.html#1b2c4c8440c024c4c635fcef5697949f" title="Get the computer-usable name of the plugin.">SpectralCentroid::getIdentifier</a>()<span class="keyword"> const</span>
-<a name="l00060"></a>00060 <span class="keyword"></span>{
-<a name="l00061"></a>00061     <span class="keywordflow">return</span> <span class="stringliteral">"spectralcentroid"</span>;
-<a name="l00062"></a>00062 }
-<a name="l00063"></a>00063 
-<a name="l00064"></a>00064 <span class="keywordtype">string</span>
-<a name="l00065"></a><a class="code" href="classSpectralCentroid.html#b7e6a620fea568af431be3cfd9dd5a41">00065</a> <a class="code" href="classSpectralCentroid.html#b7e6a620fea568af431be3cfd9dd5a41" title="Get a human-readable name or title of the plugin.">SpectralCentroid::getName</a>()<span class="keyword"> const</span>
-<a name="l00066"></a>00066 <span class="keyword"></span>{
-<a name="l00067"></a>00067     <span class="keywordflow">return</span> <span class="stringliteral">"Spectral Centroid"</span>;
-<a name="l00068"></a>00068 }
-<a name="l00069"></a>00069 
-<a name="l00070"></a>00070 <span class="keywordtype">string</span>
-<a name="l00071"></a><a class="code" href="classSpectralCentroid.html#8fbb74a46283057d9a0b0e4718ee943c">00071</a> <a class="code" href="classSpectralCentroid.html#8fbb74a46283057d9a0b0e4718ee943c" title="Get a human-readable description for the plugin, typically a line of text that may...">SpectralCentroid::getDescription</a>()<span class="keyword"> const</span>
-<a name="l00072"></a>00072 <span class="keyword"></span>{
-<a name="l00073"></a>00073     <span class="keywordflow">return</span> <span class="stringliteral">"Calculate the centroid frequency of the spectrum of the input signal"</span>;
-<a name="l00074"></a>00074 }
-<a name="l00075"></a>00075 
-<a name="l00076"></a>00076 <span class="keywordtype">string</span>
-<a name="l00077"></a><a class="code" href="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8">00077</a> <a class="code" href="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8" title="Get the name of the author or vendor of the plugin in human-readable form.">SpectralCentroid::getMaker</a>()<span class="keyword"> const</span>
-<a name="l00078"></a>00078 <span class="keyword"></span>{
-<a name="l00079"></a>00079     <span class="keywordflow">return</span> <span class="stringliteral">"Vamp SDK Example Plugins"</span>;
-<a name="l00080"></a>00080 }
-<a name="l00081"></a>00081 
-<a name="l00082"></a>00082 <span class="keywordtype">int</span>
-<a name="l00083"></a><a class="code" href="classSpectralCentroid.html#f64622e66bf678ac2b0b58aa832ca2b3">00083</a> <a class="code" href="classSpectralCentroid.html#f64622e66bf678ac2b0b58aa832ca2b3" title="Get the version number of the plugin.">SpectralCentroid::getPluginVersion</a>()<span class="keyword"> const</span>
-<a name="l00084"></a>00084 <span class="keyword"></span>{
-<a name="l00085"></a>00085     <span class="keywordflow">return</span> 2;
-<a name="l00086"></a>00086 }
-<a name="l00087"></a>00087 
-<a name="l00088"></a>00088 <span class="keywordtype">string</span>
-<a name="l00089"></a><a class="code" href="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980">00089</a> <a class="code" href="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980" title="Get the copyright statement or licensing summary for the plugin.">SpectralCentroid::getCopyright</a>()<span class="keyword"> const</span>
-<a name="l00090"></a>00090 <span class="keyword"></span>{
-<a name="l00091"></a>00091     <span class="keywordflow">return</span> <span class="stringliteral">"Freely redistributable (BSD license)"</span>;
-<a name="l00092"></a>00092 }
-<a name="l00093"></a>00093 
-<a name="l00094"></a>00094 <span class="keywordtype">bool</span>
-<a name="l00095"></a><a class="code" href="classSpectralCentroid.html#ab1ae16f5c68e2b319668f447908cedb">00095</a> <a class="code" href="classSpectralCentroid.html#ab1ae16f5c68e2b319668f447908cedb" title="Initialise a plugin to prepare it for use with the given number of input channels...">SpectralCentroid::initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize)
-<a name="l00096"></a>00096 {
-<a name="l00097"></a>00097     <span class="keywordflow">if</span> (channels &lt; <a class="code" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525" title="Get the minimum supported number of input channels.">getMinChannelCount</a>() ||
-<a name="l00098"></a>00098         channels &gt; <a class="code" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e" title="Get the maximum supported number of input channels.">getMaxChannelCount</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00099"></a>00099 
-<a name="l00100"></a>00100     <a class="code" href="classSpectralCentroid.html#49805a090ba58477da4adbefea4392a7">m_stepSize</a> = stepSize;
-<a name="l00101"></a>00101     <a class="code" href="classSpectralCentroid.html#262f583d71b442bb2d80023e7c85aa4e">m_blockSize</a> = blockSize;
-<a name="l00102"></a>00102 
-<a name="l00103"></a>00103     <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00104"></a>00104 }
-<a name="l00105"></a>00105 
-<a name="l00106"></a>00106 <span class="keywordtype">void</span>
-<a name="l00107"></a><a class="code" href="classSpectralCentroid.html#9b5f5581691ff8f46bb7674d8d74395c">00107</a> <a class="code" href="classSpectralCentroid.html#9b5f5581691ff8f46bb7674d8d74395c" title="Reset the plugin after use, to prepare it for another clean run.">SpectralCentroid::reset</a>()
-<a name="l00108"></a>00108 {
-<a name="l00109"></a>00109 }
-<a name="l00110"></a>00110 
-<a name="l00111"></a>00111 <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">SpectralCentroid::OutputList</a>
-<a name="l00112"></a><a class="code" href="classSpectralCentroid.html#894ca9740927102bb80b56b5e9e95877">00112</a> <a class="code" href="classSpectralCentroid.html#894ca9740927102bb80b56b5e9e95877" title="Get the outputs of this plugin.">SpectralCentroid::getOutputDescriptors</a>()<span class="keyword"> const</span>
-<a name="l00113"></a>00113 <span class="keyword"></span>{
-<a name="l00114"></a>00114     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> list;
-<a name="l00115"></a>00115 
-<a name="l00116"></a>00116     <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> d;
-<a name="l00117"></a>00117     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a> = <span class="stringliteral">"logcentroid"</span>;
-<a name="l00118"></a>00118     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = <span class="stringliteral">"Log Frequency Centroid"</span>;
-<a name="l00119"></a>00119     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a> = <span class="stringliteral">"Centroid of the log weighted frequency spectrum"</span>;
-<a name="l00120"></a>00120     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4" title="The unit of the output, in human-readable form.">unit</a> = <span class="stringliteral">"Hz"</span>;
-<a name="l00121"></a>00121     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d" title="True if the output has the same number of values per sample for every output sample...">hasFixedBinCount</a> = <span class="keyword">true</span>;
-<a name="l00122"></a>00122     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a> = 1;
-<a name="l00123"></a>00123     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31" title="True if the results in each output bin fall within a fixed numeric range (minimum...">hasKnownExtents</a> = <span class="keyword">false</span>;
-<a name="l00124"></a>00124     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1b4858928d23bfd7d5bc557c82a83fb4" title="True if the output values are quantized to a particular resolution.">isQuantized</a> = <span class="keyword">false</span>;
-<a name="l00125"></a>00125     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d" title="Positioning in time of the output results.">sampleType</a> = <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca" title="Results from each process() align with that call&amp;#39;s block start.">OutputDescriptor::OneSamplePerStep</a>;
-<a name="l00126"></a>00126     list.push_back(d);
-<a name="l00127"></a>00127 
-<a name="l00128"></a>00128     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a> = <span class="stringliteral">"linearcentroid"</span>;
-<a name="l00129"></a>00129     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = <span class="stringliteral">"Linear Frequency Centroid"</span>;
-<a name="l00130"></a>00130     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a> = <span class="stringliteral">"Centroid of the linear frequency spectrum"</span>;
-<a name="l00131"></a>00131     list.push_back(d);
-<a name="l00132"></a>00132 
-<a name="l00133"></a>00133     <span class="keywordflow">return</span> list;
-<a name="l00134"></a>00134 }
-<a name="l00135"></a>00135 
-<a name="l00136"></a>00136 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">SpectralCentroid::FeatureSet</a>
-<a name="l00137"></a><a class="code" href="classSpectralCentroid.html#ca96c70e7e75c9e4a7db38485018914c">00137</a> <a class="code" href="classSpectralCentroid.html#ca96c70e7e75c9e4a7db38485018914c" title="Process a single block of input data.">SpectralCentroid::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">Vamp::RealTime</a>)
-<a name="l00138"></a>00138 {
-<a name="l00139"></a>00139     <span class="keywordflow">if</span> (<a class="code" href="classSpectralCentroid.html#49805a090ba58477da4adbefea4392a7">m_stepSize</a> == 0) {
-<a name="l00140"></a>00140         cerr &lt;&lt; <span class="stringliteral">"ERROR: SpectralCentroid::process: "</span>
-<a name="l00141"></a>00141              &lt;&lt; <span class="stringliteral">"SpectralCentroid has not been initialised"</span>
-<a name="l00142"></a>00142              &lt;&lt; endl;
-<a name="l00143"></a>00143         <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>();
-<a name="l00144"></a>00144     }
-<a name="l00145"></a>00145 
-<a name="l00146"></a>00146     <span class="keywordtype">double</span> numLin = 0.0, numLog = 0.0, denom = 0.0;
-<a name="l00147"></a>00147 
-<a name="l00148"></a>00148     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 1; i &lt;= <a class="code" href="classSpectralCentroid.html#262f583d71b442bb2d80023e7c85aa4e">m_blockSize</a>/2; ++i) {
-<a name="l00149"></a>00149         <span class="keywordtype">double</span> freq = (double(i) * <a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>) / <a class="code" href="classSpectralCentroid.html#262f583d71b442bb2d80023e7c85aa4e">m_blockSize</a>;
-<a name="l00150"></a>00150         <span class="keywordtype">double</span> real = inputBuffers[0][i*2];
-<a name="l00151"></a>00151         <span class="keywordtype">double</span> imag = inputBuffers[0][i*2 + 1];
-<a name="l00152"></a>00152         <span class="keywordtype">double</span> power = sqrt(real * real + imag * imag) / (<a class="code" href="classSpectralCentroid.html#262f583d71b442bb2d80023e7c85aa4e">m_blockSize</a>/2);
-<a name="l00153"></a>00153         numLin += freq * power;
-<a name="l00154"></a>00154         numLog += log10f(freq) * power;
-<a name="l00155"></a>00155         denom += power;
-<a name="l00156"></a>00156     }
-<a name="l00157"></a>00157 
-<a name="l00158"></a>00158     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> returnFeatures;
-<a name="l00159"></a>00159 
-<a name="l00160"></a>00160 <span class="comment">//    std::cerr &lt;&lt; "power " &lt;&lt; denom &lt;&lt; ", block size " &lt;&lt; m_blockSize &lt;&lt; std::endl;</span>
+<a name="l00058"></a><a class="code" href="classSpectralCentroid.html#483e0d6757bc3dcf61e8066f764f45c6">00058</a> <a class="code" href="classSpectralCentroid.html#483e0d6757bc3dcf61e8066f764f45c6">SpectralCentroid::~SpectralCentroid</a>()
+<a name="l00059"></a>00059 {
+<a name="l00060"></a>00060 }
+<a name="l00061"></a>00061 
+<a name="l00062"></a>00062 <span class="keywordtype">string</span>
+<a name="l00063"></a><a class="code" href="classSpectralCentroid.html#1b2c4c8440c024c4c635fcef5697949f">00063</a> <a class="code" href="classSpectralCentroid.html#1b2c4c8440c024c4c635fcef5697949f" title="Get the computer-usable name of the plugin.">SpectralCentroid::getIdentifier</a>()<span class="keyword"> const</span>
+<a name="l00064"></a>00064 <span class="keyword"></span>{
+<a name="l00065"></a>00065     <span class="keywordflow">return</span> <span class="stringliteral">"spectralcentroid"</span>;
+<a name="l00066"></a>00066 }
+<a name="l00067"></a>00067 
+<a name="l00068"></a>00068 <span class="keywordtype">string</span>
+<a name="l00069"></a><a class="code" href="classSpectralCentroid.html#b7e6a620fea568af431be3cfd9dd5a41">00069</a> <a class="code" href="classSpectralCentroid.html#b7e6a620fea568af431be3cfd9dd5a41" title="Get a human-readable name or title of the plugin.">SpectralCentroid::getName</a>()<span class="keyword"> const</span>
+<a name="l00070"></a>00070 <span class="keyword"></span>{
+<a name="l00071"></a>00071     <span class="keywordflow">return</span> <span class="stringliteral">"Spectral Centroid"</span>;
+<a name="l00072"></a>00072 }
+<a name="l00073"></a>00073 
+<a name="l00074"></a>00074 <span class="keywordtype">string</span>
+<a name="l00075"></a><a class="code" href="classSpectralCentroid.html#8fbb74a46283057d9a0b0e4718ee943c">00075</a> <a class="code" href="classSpectralCentroid.html#8fbb74a46283057d9a0b0e4718ee943c" title="Get a human-readable description for the plugin, typically a line of text that may...">SpectralCentroid::getDescription</a>()<span class="keyword"> const</span>
+<a name="l00076"></a>00076 <span class="keyword"></span>{
+<a name="l00077"></a>00077     <span class="keywordflow">return</span> <span class="stringliteral">"Calculate the centroid frequency of the spectrum of the input signal"</span>;
+<a name="l00078"></a>00078 }
+<a name="l00079"></a>00079 
+<a name="l00080"></a>00080 <span class="keywordtype">string</span>
+<a name="l00081"></a><a class="code" href="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8">00081</a> <a class="code" href="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8" title="Get the name of the author or vendor of the plugin in human-readable form.">SpectralCentroid::getMaker</a>()<span class="keyword"> const</span>
+<a name="l00082"></a>00082 <span class="keyword"></span>{
+<a name="l00083"></a>00083     <span class="keywordflow">return</span> <span class="stringliteral">"Vamp SDK Example Plugins"</span>;
+<a name="l00084"></a>00084 }
+<a name="l00085"></a>00085 
+<a name="l00086"></a>00086 <span class="keywordtype">int</span>
+<a name="l00087"></a><a class="code" href="classSpectralCentroid.html#f64622e66bf678ac2b0b58aa832ca2b3">00087</a> <a class="code" href="classSpectralCentroid.html#f64622e66bf678ac2b0b58aa832ca2b3" title="Get the version number of the plugin.">SpectralCentroid::getPluginVersion</a>()<span class="keyword"> const</span>
+<a name="l00088"></a>00088 <span class="keyword"></span>{
+<a name="l00089"></a>00089     <span class="keywordflow">return</span> 2;
+<a name="l00090"></a>00090 }
+<a name="l00091"></a>00091 
+<a name="l00092"></a>00092 <span class="keywordtype">string</span>
+<a name="l00093"></a><a class="code" href="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980">00093</a> <a class="code" href="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980" title="Get the copyright statement or licensing summary for the plugin.">SpectralCentroid::getCopyright</a>()<span class="keyword"> const</span>
+<a name="l00094"></a>00094 <span class="keyword"></span>{
+<a name="l00095"></a>00095     <span class="keywordflow">return</span> <span class="stringliteral">"Freely redistributable (BSD license)"</span>;
+<a name="l00096"></a>00096 }
+<a name="l00097"></a>00097 
+<a name="l00098"></a>00098 <span class="keywordtype">bool</span>
+<a name="l00099"></a><a class="code" href="classSpectralCentroid.html#ab1ae16f5c68e2b319668f447908cedb">00099</a> <a class="code" href="classSpectralCentroid.html#ab1ae16f5c68e2b319668f447908cedb" title="Initialise a plugin to prepare it for use with the given number of input channels...">SpectralCentroid::initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize)
+<a name="l00100"></a>00100 {
+<a name="l00101"></a>00101     <span class="keywordflow">if</span> (channels &lt; <a class="code" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525" title="Get the minimum supported number of input channels.">getMinChannelCount</a>() ||
+<a name="l00102"></a>00102         channels &gt; <a class="code" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e" title="Get the maximum supported number of input channels.">getMaxChannelCount</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00103"></a>00103 
+<a name="l00104"></a>00104     <a class="code" href="classSpectralCentroid.html#49805a090ba58477da4adbefea4392a7">m_stepSize</a> = stepSize;
+<a name="l00105"></a>00105     <a class="code" href="classSpectralCentroid.html#262f583d71b442bb2d80023e7c85aa4e">m_blockSize</a> = blockSize;
+<a name="l00106"></a>00106 
+<a name="l00107"></a>00107     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00108"></a>00108 }
+<a name="l00109"></a>00109 
+<a name="l00110"></a>00110 <span class="keywordtype">void</span>
+<a name="l00111"></a><a class="code" href="classSpectralCentroid.html#9b5f5581691ff8f46bb7674d8d74395c">00111</a> <a class="code" href="classSpectralCentroid.html#9b5f5581691ff8f46bb7674d8d74395c" title="Reset the plugin after use, to prepare it for another clean run.">SpectralCentroid::reset</a>()
+<a name="l00112"></a>00112 {
+<a name="l00113"></a>00113 }
+<a name="l00114"></a>00114 
+<a name="l00115"></a>00115 <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">SpectralCentroid::OutputList</a>
+<a name="l00116"></a><a class="code" href="classSpectralCentroid.html#894ca9740927102bb80b56b5e9e95877">00116</a> <a class="code" href="classSpectralCentroid.html#894ca9740927102bb80b56b5e9e95877" title="Get the outputs of this plugin.">SpectralCentroid::getOutputDescriptors</a>()<span class="keyword"> const</span>
+<a name="l00117"></a>00117 <span class="keyword"></span>{
+<a name="l00118"></a>00118     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> list;
+<a name="l00119"></a>00119 
+<a name="l00120"></a>00120     <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> d;
+<a name="l00121"></a>00121     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a> = <span class="stringliteral">"logcentroid"</span>;
+<a name="l00122"></a>00122     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = <span class="stringliteral">"Log Frequency Centroid"</span>;
+<a name="l00123"></a>00123     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a> = <span class="stringliteral">"Centroid of the log weighted frequency spectrum"</span>;
+<a name="l00124"></a>00124     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4" title="The unit of the output, in human-readable form.">unit</a> = <span class="stringliteral">"Hz"</span>;
+<a name="l00125"></a>00125     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d" title="True if the output has the same number of values per sample for every output sample...">hasFixedBinCount</a> = <span class="keyword">true</span>;
+<a name="l00126"></a>00126     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a> = 1;
+<a name="l00127"></a>00127     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31" title="True if the results in each output bin fall within a fixed numeric range (minimum...">hasKnownExtents</a> = <span class="keyword">false</span>;
+<a name="l00128"></a>00128     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1b4858928d23bfd7d5bc557c82a83fb4" title="True if the output values are quantized to a particular resolution.">isQuantized</a> = <span class="keyword">false</span>;
+<a name="l00129"></a>00129     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d" title="Positioning in time of the output results.">sampleType</a> = <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca" title="Results from each process() align with that call&amp;#39;s block start.">OutputDescriptor::OneSamplePerStep</a>;
+<a name="l00130"></a>00130     list.push_back(d);
+<a name="l00131"></a>00131 
+<a name="l00132"></a>00132     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a> = <span class="stringliteral">"linearcentroid"</span>;
+<a name="l00133"></a>00133     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = <span class="stringliteral">"Linear Frequency Centroid"</span>;
+<a name="l00134"></a>00134     d.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a> = <span class="stringliteral">"Centroid of the linear frequency spectrum"</span>;
+<a name="l00135"></a>00135     list.push_back(d);
+<a name="l00136"></a>00136 
+<a name="l00137"></a>00137     <span class="keywordflow">return</span> list;
+<a name="l00138"></a>00138 }
+<a name="l00139"></a>00139 
+<a name="l00140"></a>00140 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">SpectralCentroid::FeatureSet</a>
+<a name="l00141"></a><a class="code" href="classSpectralCentroid.html#ca96c70e7e75c9e4a7db38485018914c">00141</a> <a class="code" href="classSpectralCentroid.html#ca96c70e7e75c9e4a7db38485018914c" title="Process a single block of input data.">SpectralCentroid::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers, <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">Vamp::RealTime</a> timestamp)
+<a name="l00142"></a>00142 {
+<a name="l00143"></a>00143     <span class="keywordflow">if</span> (<a class="code" href="classSpectralCentroid.html#49805a090ba58477da4adbefea4392a7">m_stepSize</a> == 0) {
+<a name="l00144"></a>00144         cerr &lt;&lt; <span class="stringliteral">"ERROR: SpectralCentroid::process: "</span>
+<a name="l00145"></a>00145              &lt;&lt; <span class="stringliteral">"SpectralCentroid has not been initialised"</span>
+<a name="l00146"></a>00146              &lt;&lt; endl;
+<a name="l00147"></a>00147         <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>();
+<a name="l00148"></a>00148     }
+<a name="l00149"></a>00149 
+<a name="l00150"></a>00150     <span class="keywordtype">double</span> numLin = 0.0, numLog = 0.0, denom = 0.0;
+<a name="l00151"></a>00151 
+<a name="l00152"></a>00152     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 1; i &lt;= <a class="code" href="classSpectralCentroid.html#262f583d71b442bb2d80023e7c85aa4e">m_blockSize</a>/2; ++i) {
+<a name="l00153"></a>00153         <span class="keywordtype">double</span> freq = (double(i) * <a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>) / <a class="code" href="classSpectralCentroid.html#262f583d71b442bb2d80023e7c85aa4e">m_blockSize</a>;
+<a name="l00154"></a>00154         <span class="keywordtype">double</span> real = inputBuffers[0][i*2];
+<a name="l00155"></a>00155         <span class="keywordtype">double</span> imag = inputBuffers[0][i*2 + 1];
+<a name="l00156"></a>00156         <span class="keywordtype">double</span> scalemag = sqrt(real * real + imag * imag) / (<a class="code" href="classSpectralCentroid.html#262f583d71b442bb2d80023e7c85aa4e">m_blockSize</a>/2);
+<a name="l00157"></a>00157         numLin += freq * scalemag;
+<a name="l00158"></a>00158         numLog += log10f(freq) * scalemag;
+<a name="l00159"></a>00159         denom += scalemag;
+<a name="l00160"></a>00160     }
 <a name="l00161"></a>00161 
-<a name="l00162"></a>00162     <span class="keywordflow">if</span> (denom != 0.0) {
-<a name="l00163"></a>00163         <span class="keywordtype">float</span> centroidLin = float(numLin / denom);
-<a name="l00164"></a>00164         <span class="keywordtype">float</span> centroidLog = powf(10, <span class="keywordtype">float</span>(numLog / denom));
-<a name="l00165"></a>00165 
-<a name="l00166"></a>00166         <a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> feature;
-<a name="l00167"></a>00167         feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b" title="True if an output feature has its own timestamp.">hasTimestamp</a> = <span class="keyword">false</span>;
-<a name="l00168"></a>00168         <span class="keywordflow">if</span> (!std::isnan(centroidLog) &amp;&amp; !std::isinf(centroidLog)) {
-<a name="l00169"></a>00169             feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.push_back(centroidLog);
-<a name="l00170"></a>00170         }
-<a name="l00171"></a>00171         returnFeatures[0].push_back(feature);
-<a name="l00172"></a>00172 
-<a name="l00173"></a>00173         feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.clear();
-<a name="l00174"></a>00174         <span class="keywordflow">if</span> (!std::isnan(centroidLin) &amp;&amp; !std::isinf(centroidLin)) {
-<a name="l00175"></a>00175             feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.push_back(centroidLin);
-<a name="l00176"></a>00176         }
-<a name="l00177"></a>00177         returnFeatures[1].push_back(feature);
-<a name="l00178"></a>00178     }
-<a name="l00179"></a>00179 
-<a name="l00180"></a>00180     <span class="keywordflow">return</span> returnFeatures;
-<a name="l00181"></a>00181 }
+<a name="l00162"></a>00162     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> returnFeatures;
+<a name="l00163"></a>00163 
+<a name="l00164"></a>00164     <span class="keywordflow">if</span> (denom != 0.0) {
+<a name="l00165"></a>00165         <span class="keywordtype">float</span> centroidLin = float(numLin / denom);
+<a name="l00166"></a>00166         <span class="keywordtype">float</span> centroidLog = powf(10, <span class="keywordtype">float</span>(numLog / denom));
+<a name="l00167"></a>00167 
+<a name="l00168"></a>00168         <a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> feature;
+<a name="l00169"></a>00169         feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b" title="True if an output feature has its own timestamp.">hasTimestamp</a> = <span class="keyword">false</span>;
+<a name="l00170"></a>00170 
+<a name="l00171"></a>00171         <span class="keywordflow">if</span> (!isnan(centroidLog) &amp;&amp; !isinf(centroidLog)) {
+<a name="l00172"></a>00172             feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.push_back(centroidLog);
+<a name="l00173"></a>00173         }
+<a name="l00174"></a>00174         returnFeatures[0].push_back(feature);
+<a name="l00175"></a>00175 
+<a name="l00176"></a>00176         feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.clear();
+<a name="l00177"></a>00177         <span class="keywordflow">if</span> (!isnan(centroidLin) &amp;&amp; !isinf(centroidLin)) {
+<a name="l00178"></a>00178             feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.push_back(centroidLin);
+<a name="l00179"></a>00179         }
+<a name="l00180"></a>00180         returnFeatures[1].push_back(feature);
+<a name="l00181"></a>00181     }
 <a name="l00182"></a>00182 
-<a name="l00183"></a>00183 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">SpectralCentroid::FeatureSet</a>
-<a name="l00184"></a><a class="code" href="classSpectralCentroid.html#83ba39f0870a2f86837605a958dfab1a">00184</a> <a class="code" href="classSpectralCentroid.html#83ba39f0870a2f86837605a958dfab1a" title="After all blocks have been processed, calculate and return any remaining features...">SpectralCentroid::getRemainingFeatures</a>()
-<a name="l00185"></a>00185 {
-<a name="l00186"></a>00186     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>();
-<a name="l00187"></a>00187 }
-<a name="l00188"></a>00188 
+<a name="l00183"></a>00183     <span class="keywordflow">return</span> returnFeatures;
+<a name="l00184"></a>00184 }
+<a name="l00185"></a>00185 
+<a name="l00186"></a>00186 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">SpectralCentroid::FeatureSet</a>
+<a name="l00187"></a><a class="code" href="classSpectralCentroid.html#83ba39f0870a2f86837605a958dfab1a">00187</a> <a class="code" href="classSpectralCentroid.html#83ba39f0870a2f86837605a958dfab1a" title="After all blocks have been processed, calculate and return any remaining features...">SpectralCentroid::getRemainingFeatures</a>()
+<a name="l00188"></a>00188 {
+<a name="l00189"></a>00189     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>();
+<a name="l00190"></a>00190 }
+<a name="l00191"></a>00191 
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/SpectralCentroid_8cpp.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/SpectralCentroid_8cpp.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -27,8 +27,8 @@
 <tr><td></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/SpectralCentroid_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/SpectralCentroid_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -18,7 +18,7 @@
   <div class="navpath"><a class="el" href="dir_35887283b966ca996e4ff77f459c38ce.html">examples</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>SpectralCentroid.h</h1><a href="SpectralCentroid_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -58,7 +58,7 @@
 <a name="l00037"></a>00037 <span class="preprocessor">#ifndef _SPECTRAL_CENTROID_PLUGIN_H_</span>
 <a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _SPECTRAL_CENTROID_PLUGIN_H_</span>
 <a name="l00039"></a>00039 <span class="preprocessor"></span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="Plugin_8h.html">vamp-sdk/Plugin.h</a>"</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="vamp-sdk_2Plugin_8h.html">vamp-sdk/Plugin.h</a>"</span>
 <a name="l00041"></a>00041 
 <a name="l00047"></a><a class="code" href="classSpectralCentroid.html">00047</a> <span class="keyword">class </span><a class="code" href="classSpectralCentroid.html" title="Example plugin that calculates the centre of gravity of the frequency domain representation...">SpectralCentroid</a> : <span class="keyword">public</span> Vamp::<a class="code" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>
 <a name="l00048"></a>00048 {
@@ -93,8 +93,8 @@
 <a name="l00077"></a>00077 
 <a name="l00078"></a>00078 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/SpectralCentroid_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/SpectralCentroid_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -31,8 +31,8 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Example plugin that calculates the centre of gravity of the frequency domain representation of each block of audio.  <a href="classSpectralCentroid.html#_details">More...</a><br></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/ZeroCrossing_8cpp-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/ZeroCrossing_8cpp-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -18,7 +18,7 @@
   <div class="navpath"><a class="el" href="dir_35887283b966ca996e4ff77f459c38ce.html">examples</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>ZeroCrossing.cpp</h1><a href="ZeroCrossing_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -62,160 +62,161 @@
 <a name="l00041"></a>00041 <span class="keyword">using</span> std::cerr;
 <a name="l00042"></a>00042 <span class="keyword">using</span> std::endl;
 <a name="l00043"></a>00043 
-<a name="l00044"></a>00044 
-<a name="l00045"></a><a class="code" href="classZeroCrossing.html#9855153a54bdc9ba75cc1a705a149473">00045</a> <a class="code" href="classZeroCrossing.html#9855153a54bdc9ba75cc1a705a149473">ZeroCrossing::ZeroCrossing</a>(<span class="keywordtype">float</span> inputSampleRate) :
-<a name="l00046"></a>00046     Plugin(inputSampleRate),
-<a name="l00047"></a>00047     m_stepSize(0),
-<a name="l00048"></a>00048     m_previousSample(0.0f)
-<a name="l00049"></a>00049 {
-<a name="l00050"></a>00050 }
-<a name="l00051"></a>00051 
-<a name="l00052"></a><a class="code" href="classZeroCrossing.html#f1de0da862e6e2443581e4e16044675b">00052</a> <a class="code" href="classZeroCrossing.html#f1de0da862e6e2443581e4e16044675b">ZeroCrossing::~ZeroCrossing</a>()
-<a name="l00053"></a>00053 {
-<a name="l00054"></a>00054 }
-<a name="l00055"></a>00055 
-<a name="l00056"></a>00056 <span class="keywordtype">string</span>
-<a name="l00057"></a><a class="code" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a">00057</a> <a class="code" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a" title="Get the computer-usable name of the plugin.">ZeroCrossing::getIdentifier</a>()<span class="keyword"> const</span>
-<a name="l00058"></a>00058 <span class="keyword"></span>{
-<a name="l00059"></a>00059     <span class="keywordflow">return</span> <span class="stringliteral">"zerocrossing"</span>;
-<a name="l00060"></a>00060 }
-<a name="l00061"></a>00061 
-<a name="l00062"></a>00062 <span class="keywordtype">string</span>
-<a name="l00063"></a><a class="code" href="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498">00063</a> <a class="code" href="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498" title="Get a human-readable name or title of the plugin.">ZeroCrossing::getName</a>()<span class="keyword"> const</span>
-<a name="l00064"></a>00064 <span class="keyword"></span>{
-<a name="l00065"></a>00065     <span class="keywordflow">return</span> <span class="stringliteral">"Zero Crossings"</span>;
-<a name="l00066"></a>00066 }
-<a name="l00067"></a>00067 
-<a name="l00068"></a>00068 <span class="keywordtype">string</span>
-<a name="l00069"></a><a class="code" href="classZeroCrossing.html#710bb0b013157adaeef2a9e6867b4478">00069</a> <a class="code" href="classZeroCrossing.html#710bb0b013157adaeef2a9e6867b4478" title="Get a human-readable description for the plugin, typically a line of text that may...">ZeroCrossing::getDescription</a>()<span class="keyword"> const</span>
-<a name="l00070"></a>00070 <span class="keyword"></span>{
-<a name="l00071"></a>00071     <span class="keywordflow">return</span> <span class="stringliteral">"Detect and count zero crossing points"</span>;
-<a name="l00072"></a>00072 }
-<a name="l00073"></a>00073 
-<a name="l00074"></a>00074 <span class="keywordtype">string</span>
-<a name="l00075"></a><a class="code" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a">00075</a> <a class="code" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a" title="Get the name of the author or vendor of the plugin in human-readable form.">ZeroCrossing::getMaker</a>()<span class="keyword"> const</span>
-<a name="l00076"></a>00076 <span class="keyword"></span>{
-<a name="l00077"></a>00077     <span class="keywordflow">return</span> <span class="stringliteral">"Vamp SDK Example Plugins"</span>;
-<a name="l00078"></a>00078 }
-<a name="l00079"></a>00079 
-<a name="l00080"></a>00080 <span class="keywordtype">int</span>
-<a name="l00081"></a><a class="code" href="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb">00081</a> <a class="code" href="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb" title="Get the version number of the plugin.">ZeroCrossing::getPluginVersion</a>()<span class="keyword"> const</span>
-<a name="l00082"></a>00082 <span class="keyword"></span>{
-<a name="l00083"></a>00083     <span class="keywordflow">return</span> 2;
-<a name="l00084"></a>00084 }
-<a name="l00085"></a>00085 
-<a name="l00086"></a>00086 <span class="keywordtype">string</span>
-<a name="l00087"></a><a class="code" href="classZeroCrossing.html#f9c41b92aa8ff8bddaebf75569ff789c">00087</a> <a class="code" href="classZeroCrossing.html#f9c41b92aa8ff8bddaebf75569ff789c" title="Get the copyright statement or licensing summary for the plugin.">ZeroCrossing::getCopyright</a>()<span class="keyword"> const</span>
-<a name="l00088"></a>00088 <span class="keyword"></span>{
-<a name="l00089"></a>00089     <span class="keywordflow">return</span> <span class="stringliteral">"Freely redistributable (BSD license)"</span>;
-<a name="l00090"></a>00090 }
-<a name="l00091"></a>00091 
-<a name="l00092"></a>00092 <span class="keywordtype">bool</span>
-<a name="l00093"></a><a class="code" href="classZeroCrossing.html#f21bbcc87a6eb7875dfab7d86222dccc">00093</a> <a class="code" href="classZeroCrossing.html#f21bbcc87a6eb7875dfab7d86222dccc" title="Initialise a plugin to prepare it for use with the given number of input channels...">ZeroCrossing::initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize)
-<a name="l00094"></a>00094 {
-<a name="l00095"></a>00095     <span class="keywordflow">if</span> (channels &lt; <a class="code" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525" title="Get the minimum supported number of input channels.">getMinChannelCount</a>() ||
-<a name="l00096"></a>00096         channels &gt; <a class="code" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e" title="Get the maximum supported number of input channels.">getMaxChannelCount</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00097"></a>00097 
-<a name="l00098"></a>00098     <a class="code" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">m_stepSize</a> = std::min(stepSize, blockSize);
-<a name="l00099"></a>00099 
-<a name="l00100"></a>00100     <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00101"></a>00101 }
-<a name="l00102"></a>00102 
-<a name="l00103"></a>00103 <span class="keywordtype">void</span>
-<a name="l00104"></a><a class="code" href="classZeroCrossing.html#9ae6c4a31ea027dceb1e97ead807e228">00104</a> <a class="code" href="classZeroCrossing.html#9ae6c4a31ea027dceb1e97ead807e228" title="Reset the plugin after use, to prepare it for another clean run.">ZeroCrossing::reset</a>()
-<a name="l00105"></a>00105 {
-<a name="l00106"></a>00106     <a class="code" href="classZeroCrossing.html#0f2d9f2cab0a8a30344e1f2c0ebb8ee8">m_previousSample</a> = 0.0f;
-<a name="l00107"></a>00107 }
-<a name="l00108"></a>00108 
-<a name="l00109"></a>00109 <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">ZeroCrossing::OutputList</a>
-<a name="l00110"></a><a class="code" href="classZeroCrossing.html#c9d590a6feb1fc9a37d7892aefe2b688">00110</a> <a class="code" href="classZeroCrossing.html#c9d590a6feb1fc9a37d7892aefe2b688" title="Get the outputs of this plugin.">ZeroCrossing::getOutputDescriptors</a>()<span class="keyword"> const</span>
-<a name="l00111"></a>00111 <span class="keyword"></span>{
-<a name="l00112"></a>00112     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> list;
-<a name="l00113"></a>00113 
-<a name="l00114"></a>00114     <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> zc;
-<a name="l00115"></a>00115     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a> = <span class="stringliteral">"counts"</span>;
-<a name="l00116"></a>00116     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = <span class="stringliteral">"Zero Crossing Counts"</span>;
-<a name="l00117"></a>00117     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a> = <span class="stringliteral">"The number of zero crossing points per processing block"</span>;
-<a name="l00118"></a>00118     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4" title="The unit of the output, in human-readable form.">unit</a> = <span class="stringliteral">"crossings"</span>;
-<a name="l00119"></a>00119     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d" title="True if the output has the same number of values per sample for every output sample...">hasFixedBinCount</a> = <span class="keyword">true</span>;
-<a name="l00120"></a>00120     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a> = 1;
-<a name="l00121"></a>00121     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31" title="True if the results in each output bin fall within a fixed numeric range (minimum...">hasKnownExtents</a> = <span class="keyword">false</span>;
-<a name="l00122"></a>00122     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1b4858928d23bfd7d5bc557c82a83fb4" title="True if the output values are quantized to a particular resolution.">isQuantized</a> = <span class="keyword">true</span>;
-<a name="l00123"></a>00123     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#3bed37153067b625b95acb40b60dbf0b" title="Quantization resolution of the output values (e.g.">quantizeStep</a> = 1.0;
-<a name="l00124"></a>00124     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d" title="Positioning in time of the output results.">sampleType</a> = <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca" title="Results from each process() align with that call&amp;#39;s block start.">OutputDescriptor::OneSamplePerStep</a>;
-<a name="l00125"></a>00125     list.push_back(zc);
-<a name="l00126"></a>00126 
-<a name="l00127"></a>00127     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a> = <span class="stringliteral">"zerocrossings"</span>;
-<a name="l00128"></a>00128     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = <span class="stringliteral">"Zero Crossings"</span>;
-<a name="l00129"></a>00129     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a> = <span class="stringliteral">"The locations of zero crossing points"</span>;
-<a name="l00130"></a>00130     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4" title="The unit of the output, in human-readable form.">unit</a> = <span class="stringliteral">""</span>;
-<a name="l00131"></a>00131     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d" title="True if the output has the same number of values per sample for every output sample...">hasFixedBinCount</a> = <span class="keyword">true</span>;
-<a name="l00132"></a>00132     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a> = 0;
-<a name="l00133"></a>00133     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d" title="Positioning in time of the output results.">sampleType</a> = <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e" title="Results are unevenly spaced and have individual timestamps.">OutputDescriptor::VariableSampleRate</a>;
-<a name="l00134"></a>00134     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#dd0cbbdfa9c91764037c39365b1d42af" title="Sample rate of the output results, as samples per second.">sampleRate</a> = <a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>;
-<a name="l00135"></a>00135     list.push_back(zc);
-<a name="l00136"></a>00136 
-<a name="l00137"></a>00137     <span class="keywordflow">return</span> list;
-<a name="l00138"></a>00138 }
-<a name="l00139"></a>00139 
-<a name="l00140"></a>00140 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">ZeroCrossing::FeatureSet</a>
-<a name="l00141"></a><a class="code" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da">00141</a> <a class="code" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da" title="Process a single block of input data.">ZeroCrossing::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
-<a name="l00142"></a>00142                       <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">Vamp::RealTime</a> timestamp)
-<a name="l00143"></a>00143 {
-<a name="l00144"></a>00144     <span class="keywordflow">if</span> (<a class="code" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">m_stepSize</a> == 0) {
-<a name="l00145"></a>00145         cerr &lt;&lt; <span class="stringliteral">"ERROR: ZeroCrossing::process: "</span>
-<a name="l00146"></a>00146              &lt;&lt; <span class="stringliteral">"ZeroCrossing has not been initialised"</span>
-<a name="l00147"></a>00147              &lt;&lt; endl;
-<a name="l00148"></a>00148         <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>();
-<a name="l00149"></a>00149     }
-<a name="l00150"></a>00150 
-<a name="l00151"></a>00151     <span class="keywordtype">float</span> prev = <a class="code" href="classZeroCrossing.html#0f2d9f2cab0a8a30344e1f2c0ebb8ee8">m_previousSample</a>;
-<a name="l00152"></a>00152     <span class="keywordtype">size_t</span> count = 0;
-<a name="l00153"></a>00153 
-<a name="l00154"></a>00154     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> returnFeatures;
-<a name="l00155"></a>00155 
-<a name="l00156"></a>00156     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">m_stepSize</a>; ++i) {
-<a name="l00157"></a>00157 
-<a name="l00158"></a>00158         <span class="keywordtype">float</span> sample = inputBuffers[0][i];
-<a name="l00159"></a>00159         <span class="keywordtype">bool</span> crossing = <span class="keyword">false</span>;
-<a name="l00160"></a>00160 
-<a name="l00161"></a>00161         <span class="keywordflow">if</span> (sample &lt;= 0.0) {
-<a name="l00162"></a>00162             <span class="keywordflow">if</span> (prev &gt; 0.0) crossing = <span class="keyword">true</span>;
-<a name="l00163"></a>00163         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sample &gt; 0.0) {
-<a name="l00164"></a>00164             <span class="keywordflow">if</span> (prev &lt;= 0.0) crossing = <span class="keyword">true</span>;
-<a name="l00165"></a>00165         }
-<a name="l00166"></a>00166 
-<a name="l00167"></a>00167         <span class="keywordflow">if</span> (crossing) {
-<a name="l00168"></a>00168             ++count; 
-<a name="l00169"></a>00169             <a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> feature;
-<a name="l00170"></a>00170             feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b" title="True if an output feature has its own timestamp.">hasTimestamp</a> = <span class="keyword">true</span>;
-<a name="l00171"></a>00171             feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7" title="Timestamp of the output feature.">timestamp</a> = timestamp +
-<a name="l00172"></a>00172                 <a class="code" href="structVamp_1_1RealTime.html#3a5ecc8888b559aad3b7d96911786b3a" title="Convert a sample frame at the given sample rate into a RealTime.">Vamp::RealTime::frame2RealTime</a>(i, (<span class="keywordtype">size_t</span>)<a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>);
-<a name="l00173"></a>00173             returnFeatures[1].push_back(feature);
-<a name="l00174"></a>00174         }
-<a name="l00175"></a>00175 
-<a name="l00176"></a>00176         prev = sample;
-<a name="l00177"></a>00177     }
-<a name="l00178"></a>00178 
-<a name="l00179"></a>00179     <a class="code" href="classZeroCrossing.html#0f2d9f2cab0a8a30344e1f2c0ebb8ee8">m_previousSample</a> = prev;
-<a name="l00180"></a>00180 
-<a name="l00181"></a>00181     <a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> feature;
-<a name="l00182"></a>00182     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b" title="True if an output feature has its own timestamp.">hasTimestamp</a> = <span class="keyword">false</span>;
-<a name="l00183"></a>00183     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.push_back(count);
-<a name="l00184"></a>00184 
-<a name="l00185"></a>00185     returnFeatures[0].push_back(feature);
-<a name="l00186"></a>00186     <span class="keywordflow">return</span> returnFeatures;
-<a name="l00187"></a>00187 }
-<a name="l00188"></a>00188 
-<a name="l00189"></a>00189 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">ZeroCrossing::FeatureSet</a>
-<a name="l00190"></a><a class="code" href="classZeroCrossing.html#70996d1b7166e303903daf92a9a37ad8">00190</a> <a class="code" href="classZeroCrossing.html#70996d1b7166e303903daf92a9a37ad8" title="After all blocks have been processed, calculate and return any remaining features...">ZeroCrossing::getRemainingFeatures</a>()
-<a name="l00191"></a>00191 {
-<a name="l00192"></a>00192     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>();
-<a name="l00193"></a>00193 }
-<a name="l00194"></a>00194 
+<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;cmath&gt;</span>
+<a name="l00045"></a>00045 
+<a name="l00046"></a><a class="code" href="classZeroCrossing.html#9855153a54bdc9ba75cc1a705a149473">00046</a> <a class="code" href="classZeroCrossing.html#9855153a54bdc9ba75cc1a705a149473">ZeroCrossing::ZeroCrossing</a>(<span class="keywordtype">float</span> inputSampleRate) :
+<a name="l00047"></a>00047     Plugin(inputSampleRate),
+<a name="l00048"></a>00048     m_stepSize(0),
+<a name="l00049"></a>00049     m_previousSample(0.0f)
+<a name="l00050"></a>00050 {
+<a name="l00051"></a>00051 }
+<a name="l00052"></a>00052 
+<a name="l00053"></a><a class="code" href="classZeroCrossing.html#f1de0da862e6e2443581e4e16044675b">00053</a> <a class="code" href="classZeroCrossing.html#f1de0da862e6e2443581e4e16044675b">ZeroCrossing::~ZeroCrossing</a>()
+<a name="l00054"></a>00054 {
+<a name="l00055"></a>00055 }
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057 <span class="keywordtype">string</span>
+<a name="l00058"></a><a class="code" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a">00058</a> <a class="code" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a" title="Get the computer-usable name of the plugin.">ZeroCrossing::getIdentifier</a>()<span class="keyword"> const</span>
+<a name="l00059"></a>00059 <span class="keyword"></span>{
+<a name="l00060"></a>00060     <span class="keywordflow">return</span> <span class="stringliteral">"zerocrossing"</span>;
+<a name="l00061"></a>00061 }
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063 <span class="keywordtype">string</span>
+<a name="l00064"></a><a class="code" href="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498">00064</a> <a class="code" href="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498" title="Get a human-readable name or title of the plugin.">ZeroCrossing::getName</a>()<span class="keyword"> const</span>
+<a name="l00065"></a>00065 <span class="keyword"></span>{
+<a name="l00066"></a>00066     <span class="keywordflow">return</span> <span class="stringliteral">"Zero Crossings"</span>;
+<a name="l00067"></a>00067 }
+<a name="l00068"></a>00068 
+<a name="l00069"></a>00069 <span class="keywordtype">string</span>
+<a name="l00070"></a><a class="code" href="classZeroCrossing.html#710bb0b013157adaeef2a9e6867b4478">00070</a> <a class="code" href="classZeroCrossing.html#710bb0b013157adaeef2a9e6867b4478" title="Get a human-readable description for the plugin, typically a line of text that may...">ZeroCrossing::getDescription</a>()<span class="keyword"> const</span>
+<a name="l00071"></a>00071 <span class="keyword"></span>{
+<a name="l00072"></a>00072     <span class="keywordflow">return</span> <span class="stringliteral">"Detect and count zero crossing points"</span>;
+<a name="l00073"></a>00073 }
+<a name="l00074"></a>00074 
+<a name="l00075"></a>00075 <span class="keywordtype">string</span>
+<a name="l00076"></a><a class="code" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a">00076</a> <a class="code" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a" title="Get the name of the author or vendor of the plugin in human-readable form.">ZeroCrossing::getMaker</a>()<span class="keyword"> const</span>
+<a name="l00077"></a>00077 <span class="keyword"></span>{
+<a name="l00078"></a>00078     <span class="keywordflow">return</span> <span class="stringliteral">"Vamp SDK Example Plugins"</span>;
+<a name="l00079"></a>00079 }
+<a name="l00080"></a>00080 
+<a name="l00081"></a>00081 <span class="keywordtype">int</span>
+<a name="l00082"></a><a class="code" href="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb">00082</a> <a class="code" href="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb" title="Get the version number of the plugin.">ZeroCrossing::getPluginVersion</a>()<span class="keyword"> const</span>
+<a name="l00083"></a>00083 <span class="keyword"></span>{
+<a name="l00084"></a>00084     <span class="keywordflow">return</span> 2;
+<a name="l00085"></a>00085 }
+<a name="l00086"></a>00086 
+<a name="l00087"></a>00087 <span class="keywordtype">string</span>
+<a name="l00088"></a><a class="code" href="classZeroCrossing.html#f9c41b92aa8ff8bddaebf75569ff789c">00088</a> <a class="code" href="classZeroCrossing.html#f9c41b92aa8ff8bddaebf75569ff789c" title="Get the copyright statement or licensing summary for the plugin.">ZeroCrossing::getCopyright</a>()<span class="keyword"> const</span>
+<a name="l00089"></a>00089 <span class="keyword"></span>{
+<a name="l00090"></a>00090     <span class="keywordflow">return</span> <span class="stringliteral">"Freely redistributable (BSD license)"</span>;
+<a name="l00091"></a>00091 }
+<a name="l00092"></a>00092 
+<a name="l00093"></a>00093 <span class="keywordtype">bool</span>
+<a name="l00094"></a><a class="code" href="classZeroCrossing.html#f21bbcc87a6eb7875dfab7d86222dccc">00094</a> <a class="code" href="classZeroCrossing.html#f21bbcc87a6eb7875dfab7d86222dccc" title="Initialise a plugin to prepare it for use with the given number of input channels...">ZeroCrossing::initialise</a>(<span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> stepSize, <span class="keywordtype">size_t</span> blockSize)
+<a name="l00095"></a>00095 {
+<a name="l00096"></a>00096     <span class="keywordflow">if</span> (channels &lt; <a class="code" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525" title="Get the minimum supported number of input channels.">getMinChannelCount</a>() ||
+<a name="l00097"></a>00097         channels &gt; <a class="code" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e" title="Get the maximum supported number of input channels.">getMaxChannelCount</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099     <a class="code" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">m_stepSize</a> = std::min(stepSize, blockSize);
+<a name="l00100"></a>00100 
+<a name="l00101"></a>00101     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00102"></a>00102 }
+<a name="l00103"></a>00103 
+<a name="l00104"></a>00104 <span class="keywordtype">void</span>
+<a name="l00105"></a><a class="code" href="classZeroCrossing.html#9ae6c4a31ea027dceb1e97ead807e228">00105</a> <a class="code" href="classZeroCrossing.html#9ae6c4a31ea027dceb1e97ead807e228" title="Reset the plugin after use, to prepare it for another clean run.">ZeroCrossing::reset</a>()
+<a name="l00106"></a>00106 {
+<a name="l00107"></a>00107     <a class="code" href="classZeroCrossing.html#0f2d9f2cab0a8a30344e1f2c0ebb8ee8">m_previousSample</a> = 0.0f;
+<a name="l00108"></a>00108 }
+<a name="l00109"></a>00109 
+<a name="l00110"></a>00110 <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">ZeroCrossing::OutputList</a>
+<a name="l00111"></a><a class="code" href="classZeroCrossing.html#c9d590a6feb1fc9a37d7892aefe2b688">00111</a> <a class="code" href="classZeroCrossing.html#c9d590a6feb1fc9a37d7892aefe2b688" title="Get the outputs of this plugin.">ZeroCrossing::getOutputDescriptors</a>()<span class="keyword"> const</span>
+<a name="l00112"></a>00112 <span class="keyword"></span>{
+<a name="l00113"></a>00113     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> list;
+<a name="l00114"></a>00114 
+<a name="l00115"></a>00115     <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> zc;
+<a name="l00116"></a>00116     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a> = <span class="stringliteral">"counts"</span>;
+<a name="l00117"></a>00117     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = <span class="stringliteral">"Zero Crossing Counts"</span>;
+<a name="l00118"></a>00118     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a> = <span class="stringliteral">"The number of zero crossing points per processing block"</span>;
+<a name="l00119"></a>00119     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4" title="The unit of the output, in human-readable form.">unit</a> = <span class="stringliteral">"crossings"</span>;
+<a name="l00120"></a>00120     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d" title="True if the output has the same number of values per sample for every output sample...">hasFixedBinCount</a> = <span class="keyword">true</span>;
+<a name="l00121"></a>00121     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a> = 1;
+<a name="l00122"></a>00122     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31" title="True if the results in each output bin fall within a fixed numeric range (minimum...">hasKnownExtents</a> = <span class="keyword">false</span>;
+<a name="l00123"></a>00123     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1b4858928d23bfd7d5bc557c82a83fb4" title="True if the output values are quantized to a particular resolution.">isQuantized</a> = <span class="keyword">true</span>;
+<a name="l00124"></a>00124     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#3bed37153067b625b95acb40b60dbf0b" title="Quantization resolution of the output values (e.g.">quantizeStep</a> = 1.0;
+<a name="l00125"></a>00125     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d" title="Positioning in time of the output results.">sampleType</a> = <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca" title="Results from each process() align with that call&amp;#39;s block start.">OutputDescriptor::OneSamplePerStep</a>;
+<a name="l00126"></a>00126     list.push_back(zc);
+<a name="l00127"></a>00127 
+<a name="l00128"></a>00128     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b" title="The name of the output, in computer-usable form.">identifier</a> = <span class="stringliteral">"zerocrossings"</span>;
+<a name="l00129"></a>00129     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = <span class="stringliteral">"Zero Crossings"</span>;
+<a name="l00130"></a>00130     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1" title="A human-readable short text describing the output.">description</a> = <span class="stringliteral">"The locations of zero crossing points"</span>;
+<a name="l00131"></a>00131     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4" title="The unit of the output, in human-readable form.">unit</a> = <span class="stringliteral">""</span>;
+<a name="l00132"></a>00132     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d" title="True if the output has the same number of values per sample for every output sample...">hasFixedBinCount</a> = <span class="keyword">true</span>;
+<a name="l00133"></a>00133     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc" title="The number of values per result of the output.">binCount</a> = 0;
+<a name="l00134"></a>00134     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d" title="Positioning in time of the output results.">sampleType</a> = <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e" title="Results are unevenly spaced and have individual timestamps.">OutputDescriptor::VariableSampleRate</a>;
+<a name="l00135"></a>00135     zc.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#dd0cbbdfa9c91764037c39365b1d42af" title="Sample rate of the output results, as samples per second.">sampleRate</a> = <a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>;
+<a name="l00136"></a>00136     list.push_back(zc);
+<a name="l00137"></a>00137 
+<a name="l00138"></a>00138     <span class="keywordflow">return</span> list;
+<a name="l00139"></a>00139 }
+<a name="l00140"></a>00140 
+<a name="l00141"></a>00141 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">ZeroCrossing::FeatureSet</a>
+<a name="l00142"></a><a class="code" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da">00142</a> <a class="code" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da" title="Process a single block of input data.">ZeroCrossing::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
+<a name="l00143"></a>00143                       <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">Vamp::RealTime</a> timestamp)
+<a name="l00144"></a>00144 {
+<a name="l00145"></a>00145     <span class="keywordflow">if</span> (<a class="code" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">m_stepSize</a> == 0) {
+<a name="l00146"></a>00146         cerr &lt;&lt; <span class="stringliteral">"ERROR: ZeroCrossing::process: "</span>
+<a name="l00147"></a>00147              &lt;&lt; <span class="stringliteral">"ZeroCrossing has not been initialised"</span>
+<a name="l00148"></a>00148              &lt;&lt; endl;
+<a name="l00149"></a>00149         <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>();
+<a name="l00150"></a>00150     }
+<a name="l00151"></a>00151 
+<a name="l00152"></a>00152     <span class="keywordtype">float</span> prev = <a class="code" href="classZeroCrossing.html#0f2d9f2cab0a8a30344e1f2c0ebb8ee8">m_previousSample</a>;
+<a name="l00153"></a>00153     <span class="keywordtype">size_t</span> count = 0;
+<a name="l00154"></a>00154 
+<a name="l00155"></a>00155     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> returnFeatures;
+<a name="l00156"></a>00156 
+<a name="l00157"></a>00157     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">m_stepSize</a>; ++i) {
+<a name="l00158"></a>00158 
+<a name="l00159"></a>00159         <span class="keywordtype">float</span> sample = inputBuffers[0][i];
+<a name="l00160"></a>00160         <span class="keywordtype">bool</span> crossing = <span class="keyword">false</span>;
+<a name="l00161"></a>00161 
+<a name="l00162"></a>00162         <span class="keywordflow">if</span> (sample &lt;= 0.0) {
+<a name="l00163"></a>00163             <span class="keywordflow">if</span> (prev &gt; 0.0) crossing = <span class="keyword">true</span>;
+<a name="l00164"></a>00164         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sample &gt; 0.0) {
+<a name="l00165"></a>00165             <span class="keywordflow">if</span> (prev &lt;= 0.0) crossing = <span class="keyword">true</span>;
+<a name="l00166"></a>00166         }
+<a name="l00167"></a>00167 
+<a name="l00168"></a>00168         <span class="keywordflow">if</span> (crossing) {
+<a name="l00169"></a>00169             ++count; 
+<a name="l00170"></a>00170             <a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> feature;
+<a name="l00171"></a>00171             feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b" title="True if an output feature has its own timestamp.">hasTimestamp</a> = <span class="keyword">true</span>;
+<a name="l00172"></a>00172             feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7" title="Timestamp of the output feature.">timestamp</a> = timestamp +
+<a name="l00173"></a>00173                 <a class="code" href="structVamp_1_1RealTime.html#939b4b1d1ca190db69a418883f16ce8a" title="Convert a sample frame at the given sample rate into a RealTime.">Vamp::RealTime::frame2RealTime</a>(i, (<span class="keywordtype">size_t</span>)<a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>);
+<a name="l00174"></a>00174             returnFeatures[1].push_back(feature);
+<a name="l00175"></a>00175         }
+<a name="l00176"></a>00176 
+<a name="l00177"></a>00177         prev = sample;
+<a name="l00178"></a>00178     }
+<a name="l00179"></a>00179 
+<a name="l00180"></a>00180     <a class="code" href="classZeroCrossing.html#0f2d9f2cab0a8a30344e1f2c0ebb8ee8">m_previousSample</a> = prev;
+<a name="l00181"></a>00181 
+<a name="l00182"></a>00182     <a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> feature;
+<a name="l00183"></a>00183     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b" title="True if an output feature has its own timestamp.">hasTimestamp</a> = <span class="keyword">false</span>;
+<a name="l00184"></a>00184     feature.<a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71" title="Results for a single sample of this feature.">values</a>.push_back(count);
+<a name="l00185"></a>00185 
+<a name="l00186"></a>00186     returnFeatures[0].push_back(feature);
+<a name="l00187"></a>00187     <span class="keywordflow">return</span> returnFeatures;
+<a name="l00188"></a>00188 }
+<a name="l00189"></a>00189 
+<a name="l00190"></a>00190 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">ZeroCrossing::FeatureSet</a>
+<a name="l00191"></a><a class="code" href="classZeroCrossing.html#70996d1b7166e303903daf92a9a37ad8">00191</a> <a class="code" href="classZeroCrossing.html#70996d1b7166e303903daf92a9a37ad8" title="After all blocks have been processed, calculate and return any remaining features...">ZeroCrossing::getRemainingFeatures</a>()
+<a name="l00192"></a>00192 {
+<a name="l00193"></a>00193     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>();
+<a name="l00194"></a>00194 }
+<a name="l00195"></a>00195 
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/ZeroCrossing_8cpp.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/ZeroCrossing_8cpp.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -27,8 +27,8 @@
 <tr><td></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/ZeroCrossing_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/ZeroCrossing_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -18,7 +18,7 @@
   <div class="navpath"><a class="el" href="dir_35887283b966ca996e4ff77f459c38ce.html">examples</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>ZeroCrossing.h</h1><a href="ZeroCrossing_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -58,7 +58,7 @@
 <a name="l00037"></a>00037 <span class="preprocessor">#ifndef _ZERO_CROSSING_PLUGIN_H_</span>
 <a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _ZERO_CROSSING_PLUGIN_H_</span>
 <a name="l00039"></a>00039 <span class="preprocessor"></span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="Plugin_8h.html">vamp-sdk/Plugin.h</a>"</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="vamp-sdk_2Plugin_8h.html">vamp-sdk/Plugin.h</a>"</span>
 <a name="l00041"></a>00041 
 <a name="l00047"></a><a class="code" href="classZeroCrossing.html">00047</a> <span class="keyword">class </span><a class="code" href="classZeroCrossing.html" title="Example plugin that calculates the positions and density of zero-crossing points...">ZeroCrossing</a> : <span class="keyword">public</span> Vamp::<a class="code" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>
 <a name="l00048"></a>00048 {
@@ -93,8 +93,8 @@
 <a name="l00077"></a>00077 
 <a name="l00078"></a>00078 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/ZeroCrossing_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/ZeroCrossing_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -31,8 +31,8 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Example plugin that calculates the positions and density of zero-crossing points in an audio waveform.  <a href="classZeroCrossing.html#_details">More...</a><br></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/annotated.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/annotated.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -27,40 +27,37 @@
 <h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
   <tr><td class="indexkey"><a class="el" href="struct__VampFeature.html">_VampFeature</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="struct__VampFeatureList.html">_VampFeatureList</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="union__VampFeatureUnion.html">_VampFeatureUnion</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="struct__VampFeatureV2.html">_VampFeatureV2</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="struct__VampParameterDescriptor.html">_VampParameterDescriptor</a></td><td class="indexvalue">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 </td></tr>
+  <tr><td class="indexkey"><a class="el" href="struct__VampParameterDescriptor.html">_VampParameterDescriptor</a></td><td class="indexvalue">C language API for <a class="el" href="namespaceVamp.html">Vamp</a> plugins </td></tr>
   <tr><td class="indexkey"><a class="el" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</a></td><td class="indexvalue">Example plugin implementing the SuperCollider amplitude follower function </td></tr>
+  <tr><td class="indexkey"><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td class="indexvalue">Example plugin that estimates the tempo of a short fixed-tempo sample </td></tr>
+  <tr><td class="indexkey"><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td><td class="indexvalue">Example plugin that detects percussive events </td></tr>
   <tr><td class="indexkey"><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> is a base class for plugin instance classes that provide feature extraction from audio or related data </td></tr>
   <tr><td class="indexkey"><a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Vamp::Plugin::Feature</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classVamp_1_1PluginAdapter.html">Vamp::PluginAdapter&lt; P &gt;</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a> turns a <a class="el" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a> into a specific wrapper for a particular plugin implementation </td></tr>
-  <tr><td class="indexkey"><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a> and <a class="el" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a> provide a wrapper class that a plugin library can use to make its C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> objects available through the <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> C API </td></tr>
-  <tr><td class="indexkey"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a> and <a class="el" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a> provide a wrapper class that a plugin library can use to make its C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> objects available through the <a class="el" href="namespaceVamp.html">Vamp</a> C API </td></tr>
   <tr><td class="indexkey"><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td class="indexvalue">A base class for plugins with optional configurable parameters, programs, etc </td></tr>
   <tr><td class="indexkey"><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">Vamp::PluginBase::ParameterDescriptor</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a> is 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 adapter that allows plugins to be used by a host supplying an audio stream in non-overlapping buffers of arbitrary size </td></tr>
-  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">Vamp::HostExt::PluginChannelAdapter</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> is 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 adapter that implements a policy for management of plugins that expect a different number of input channels from the number actually available in the source audio data </td></tr>
-  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Vamp::HostExt::PluginChannelAdapter::Impl</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">PluginHostAdapter</a> is a wrapper class 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> host can use to make the C-language VampPluginDescriptor object appear as a C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> object </td></tr>
-  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a> is 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 adapter that converts time-domain input into frequency-domain input for plugins that need it </td></tr>
-  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">Vamp::HostExt::PluginLoader</a> is a convenience class for discovering and loading <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 using the typical plugin-path, library naming, and categorisation conventions described in the <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> SDK documentation </td></tr>
-  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html">Vamp::HostExt::PluginRateExtractor</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that allows plugins to be used by a host supplying an audio stream in non-overlapping buffers of arbitrary size </td></tr>
+  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">Vamp::HostExt::PluginChannelAdapter</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that implements a policy for management of plugins that expect a different number of input channels from the number actually available in the source audio data </td></tr>
+  <tr><td class="indexkey"><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">PluginHostAdapter</a> is a wrapper class that a <a class="el" href="namespaceVamp.html">Vamp</a> host can use to make the C-language VampPluginDescriptor object appear as a C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> object </td></tr>
+  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that converts time-domain input into frequency-domain input for plugins that need it </td></tr>
+  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">Vamp::HostExt::PluginLoader</a> is a convenience class for discovering and loading <a class="el" href="namespaceVamp.html">Vamp</a> plugins using the typical plugin-path, library naming, and categorisation conventions described in the <a class="el" href="namespaceVamp.html">Vamp</a> SDK documentation </td></tr>
+  <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that provides summarisation methods such as mean and median averages of output features, for use in any context where an available plugin produces individual values but the result that is actually needed is some sort of aggregate </td></tr>
   <tr><td class="indexkey"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td class="indexvalue"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a> is a simple base class for adapter plugins </td></tr>
+  <tr><td class="indexkey"><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td class="indexvalue">Example plugin that returns a power spectrum calculated (trivially) from the frequency domain representation of each block of audio </td></tr>
   <tr><td class="indexkey"><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td class="indexvalue"><a class="el" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> represents time values to nanosecond precision with accurate arithmetic and frame-rate conversion functions </td></tr>
   <tr><td class="indexkey"><a class="el" href="classSpectralCentroid.html">SpectralCentroid</a></td><td class="indexvalue">Example plugin that calculates the centre of gravity of the frequency domain representation of each block of audio </td></tr>
   <tr><td class="indexkey"><a class="el" href="classZeroCrossing.html">ZeroCrossing</a></td><td class="indexvalue">Example plugin that calculates the positions and density of zero-crossing points in an audio waveform </td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classAmplitudeFollower-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classAmplitudeFollower-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -68,8 +68,8 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">~Plugin</a>()</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classAmplitudeFollower.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classAmplitudeFollower.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -31,7 +31,7 @@
 <div class="dynsection">
 <p><center><img src="classAmplitudeFollower__inherit__graph.png" border="0" usemap="#AmplitudeFollower__inherit__map" alt="Inheritance graph"></center>
 <map name="AmplitudeFollower__inherit__map">
-<area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="20,82,119,106"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,7,133,31"></map>
+<area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="20,80,119,107"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,6,133,32"></map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
 
 <p>
@@ -61,7 +61,7 @@
 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAmplitudeFollower.html#29eaeffc353da2614ae508abcd0ab63f">AmplitudeFollower</a> (float inputSampleRate)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An implementation of SuperCollider's amplitude-follower algorithm as a simple <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.  <a href="#29eaeffc353da2614ae508abcd0ab63f"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An implementation of SuperCollider's amplitude-follower algorithm as a simple <a class="el" href="namespaceVamp.html">Vamp</a> plugin.  <a href="#29eaeffc353da2614ae508abcd0ab63f"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAmplitudeFollower.html#a78f98539ad3a1b08691a99b32035b2d">~AmplitudeFollower</a> ()</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAmplitudeFollower.html#eb727e44ee8ad1aceb90964d20f8d90d">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
@@ -126,7 +126,7 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.  <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">getVampApiVersion</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <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 compatibility level of the plugin.  <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.  <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">getPrograms</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#bb307c60bdb981d5f5af50c3c4ae84af"></a><br></td></tr>
@@ -162,7 +162,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00309">309</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00322">322</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -179,7 +179,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00347">347</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00380">380</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -196,7 +196,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00348">348</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00382">382</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -213,7 +213,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00195">195</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -230,7 +230,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00217">217</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -256,7 +256,7 @@
 </table>
 </dl>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00149">149</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">152</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -271,14 +271,14 @@
           <td class="paramtype">float&nbsp;</td>
           <td class="paramname"> <em>inputSampleRate</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-An implementation of SuperCollider's amplitude-follower algorithm as a simple <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. 
+An implementation of SuperCollider's amplitude-follower algorithm as a simple <a class="el" href="namespaceVamp.html">Vamp</a> plugin. 
 <p>
 
 <p>Definition at line <a class="el" href="AmplitudeFollower_8cpp-source.html#l00055">55</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
@@ -294,7 +294,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -332,7 +332,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -347,7 +347,7 @@
 
 <p>Definition at line <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">105</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
 
-<p>References <a class="el" href="Plugin_8h-source.html#l00196">Vamp::Plugin::getMaxChannelCount()</a>, <a class="el" href="Plugin_8h-source.html#l00191">Vamp::Plugin::getMinChannelCount()</a>, <a class="el" href="AmplitudeFollower_8h-source.html#l00079">m_clampcoef</a>, <a class="el" href="Plugin_8h-source.html#l00397">Vamp::Plugin::m_inputSampleRate</a>, <a class="el" href="AmplitudeFollower_8h-source.html#l00080">m_relaxcoef</a>, and <a class="el" href="AmplitudeFollower_8h-source.html#l00077">m_stepSize</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">Vamp::Plugin::getMaxChannelCount()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">Vamp::Plugin::getMinChannelCount()</a>, <a class="el" href="AmplitudeFollower_8h-source.html#l00079">m_clampcoef</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">Vamp::Plugin::m_inputSampleRate</a>, <a class="el" href="AmplitudeFollower_8h-source.html#l00080">m_relaxcoef</a>, and <a class="el" href="AmplitudeFollower_8h-source.html#l00077">m_stepSize</a>.</p>
 
 </div>
 </div><p>
@@ -360,7 +360,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -387,7 +387,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual]</code></td>
+          <td> const<code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -401,7 +401,7 @@
 
 <p>Definition at line <a class="el" href="AmplitudeFollower_8h-source.html#l00056">56</a> of file <a class="el" href="AmplitudeFollower_8h-source.html">AmplitudeFollower.h</a>.</p>
 
-<p>References <a class="el" href="Plugin_8h-source.html#l00149">Vamp::Plugin::TimeDomain</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">Vamp::Plugin::TimeDomain</a>.</p>
 
 </div>
 </div><p>
@@ -414,7 +414,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -441,7 +441,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -467,7 +467,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -493,7 +493,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -518,7 +518,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -543,7 +543,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -568,7 +568,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -582,7 +582,7 @@
 
 <p>Definition at line <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">128</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
 
-<p>References <a class="el" href="Plugin_8h-source.html#l00239">Vamp::Plugin::OutputDescriptor::binCount</a>, <a class="el" href="Plugin_8h-source.html#l00219">Vamp::Plugin::OutputDescriptor::description</a>, <a class="el" href="Plugin_8h-source.html#l00231">Vamp::Plugin::OutputDescriptor::hasFixedBinCount</a>, <a class="el" href="Plugin_8h-source.html#l00252">Vamp::Plugin::OutputDescriptor::hasKnownExtents</a>, <a class="el" href="Plugin_8h-source.html#l00206">Vamp::Plugin::OutputDescriptor::identifier</a>, <a class="el" href="Plugin_8h-source.html#l00270">Vamp::Plugin::OutputDescriptor::isQuantized</a>, <a class="el" href="Plugin_8h-source.html#l00212">Vamp::Plugin::OutputDescriptor::name</a>, <a class="el" href="Plugin_8h-source.html#l00282">Vamp::Plugin::OutputDescriptor::OneSamplePerStep</a>, <a class="el" href="Plugin_8h-source.html#l00294">Vamp::Plugin::OutputDescriptor::sampleType</a>, and <a class="el" href="Plugin_8h-source.html#l00224">Vamp::Plugin::OutputDescriptor::unit</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00242">Vamp::Plugin::OutputDescriptor::binCount</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00222">Vamp::Plugin::OutputDescriptor::description</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00234">Vamp::Plugin::OutputDescriptor::hasFixedBinCount</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00255">Vamp::Plugin::OutputDescriptor::hasKnownExtents</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00209">Vamp::Plugin::OutputDescriptor::identifier</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00273">Vamp::Plugin::OutputDescriptor::isQuantized</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00215">Vamp::Plugin::OutputDescriptor::name</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00285">Vamp::Plugin::OutputDescriptor::OneSamplePerStep</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00297">Vamp::Plugin::OutputDescriptor::sampleType</a>, and <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00227">Vamp::Plugin::OutputDescriptor::unit</a>.</p>
 
 </div>
 </div><p>
@@ -595,7 +595,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -609,7 +609,7 @@
 
 <p>Definition at line <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">148</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
 
-<p>References <a class="el" href="PluginBase_8h-source.html#l00166">Vamp::PluginBase::ParameterDescriptor::defaultValue</a>, <a class="el" href="PluginBase_8h-source.html#l00143">Vamp::PluginBase::ParameterDescriptor::description</a>, <a class="el" href="PluginBase_8h-source.html#l00132">Vamp::PluginBase::ParameterDescriptor::identifier</a>, <a class="el" href="PluginBase_8h-source.html#l00172">Vamp::PluginBase::ParameterDescriptor::isQuantized</a>, <a class="el" href="PluginBase_8h-source.html#l00158">Vamp::PluginBase::ParameterDescriptor::maxValue</a>, <a class="el" href="PluginBase_8h-source.html#l00153">Vamp::PluginBase::ParameterDescriptor::minValue</a>, <a class="el" href="PluginBase_8h-source.html#l00137">Vamp::PluginBase::ParameterDescriptor::name</a>, and <a class="el" href="PluginBase_8h-source.html#l00148">Vamp::PluginBase::ParameterDescriptor::unit</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00171">Vamp::PluginBase::ParameterDescriptor::defaultValue</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00148">Vamp::PluginBase::ParameterDescriptor::description</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00137">Vamp::PluginBase::ParameterDescriptor::identifier</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00177">Vamp::PluginBase::ParameterDescriptor::isQuantized</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00163">Vamp::PluginBase::ParameterDescriptor::maxValue</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00158">Vamp::PluginBase::ParameterDescriptor::minValue</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00142">Vamp::PluginBase::ParameterDescriptor::name</a>, and <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00153">Vamp::PluginBase::ParameterDescriptor::unit</a>.</p>
 
 </div>
 </div><p>
@@ -623,7 +623,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -660,7 +660,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -697,7 +697,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -706,14 +706,14 @@
 <p>
 Process a single block of input data. 
 <p>
-If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp will be the real time in seconds of the start of the supplied block of samples.<p>
+If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.<p>
 If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
 Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</a>.</p>
 
 <p>Definition at line <a class="el" href="AmplitudeFollower_8cpp-source.html#l00200">200</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
 
-<p>References <a class="el" href="Plugin_8h-source.html#l00325">Vamp::Plugin::Feature::hasTimestamp</a>, <a class="el" href="AmplitudeFollower_8h-source.html#l00079">m_clampcoef</a>, <a class="el" href="AmplitudeFollower_8h-source.html#l00078">m_previn</a>, <a class="el" href="AmplitudeFollower_8h-source.html#l00080">m_relaxcoef</a>, <a class="el" href="AmplitudeFollower_8h-source.html#l00077">m_stepSize</a>, and <a class="el" href="Plugin_8h-source.html#l00339">Vamp::Plugin::Feature::values</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00339">Vamp::Plugin::Feature::hasTimestamp</a>, <a class="el" href="AmplitudeFollower_8h-source.html#l00079">m_clampcoef</a>, <a class="el" href="AmplitudeFollower_8h-source.html#l00078">m_previn</a>, <a class="el" href="AmplitudeFollower_8h-source.html#l00080">m_relaxcoef</a>, <a class="el" href="AmplitudeFollower_8h-source.html#l00077">m_stepSize</a>, and <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00369">Vamp::Plugin::Feature::values</a>.</p>
 
 </div>
 </div><p>
@@ -726,7 +726,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -751,7 +751,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -762,11 +762,11 @@
 <p>
 This should be called before <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>, and <a class="el" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#21e45180b19873f9ab69fe7a4e184a03">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classFixedTempoEstimator.html#68b8569b71504a0478caf990dbe30683">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00171">171</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00174">174</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00164">Vamp::HostExt::PluginWrapper::getPreferredBlockSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00283">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredBlockSize()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">Vamp::HostExt::PluginBufferingAdapter::Impl::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -779,7 +779,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -790,11 +790,11 @@
 <p>
 This should be called before <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>, and <a class="el" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classFixedTempoEstimator.html#d450bb7e7df559ae3d68dfbfb085676f">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00186">186</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00189">189</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00158">Vamp::HostExt::PluginWrapper::getPreferredStepSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00271">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredStepSize()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">Vamp::HostExt::PluginBufferingAdapter::Impl::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -807,7 +807,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -819,9 +819,9 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00191">191</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">194</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00170">Vamp::HostExt::PluginWrapper::getMinChannelCount()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00093">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00095">SpectralCentroid::initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">Vamp::HostExt::PluginChannelAdapter::Impl::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">SpectralCentroid::initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">PowerSpectrum::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">FixedTempoEstimator::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -834,7 +834,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -846,9 +846,9 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00196">196</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">199</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00175">Vamp::HostExt::PluginWrapper::getMaxChannelCount()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00093">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00095">SpectralCentroid::initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">Vamp::HostExt::PluginChannelAdapter::Impl::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">SpectralCentroid::initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">PowerSpectrum::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">FixedTempoEstimator::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -861,7 +861,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -873,7 +873,7 @@
 Do not reimplement this function in your subclass. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00391">391</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00425">425</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -886,21 +886,21 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the <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 compatibility level of the plugin. 
+Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. 
 <p>
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00067">67</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00072">72</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00080">Vamp::HostExt::PluginWrapper::getVampApiVersion()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
 
 </div>
 </div><p>
@@ -913,7 +913,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -924,11 +924,9 @@
 <p>
 A program is a named shorthand for a set of parameter values; changing the program may cause the plugin to alter the values of its published parameters (and/or non-public internal processing parameters). The host should re-read the plugin's parameter values after setting a new program.<p>
 The programs must have unique names. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#7ac5681dcfe08b7b8a796bffc0aff3e3">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">Vamp::HostExt::PluginWrapper</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#e0cde5cd625418c1bc470b91f75daafc">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00229">229</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00140">Vamp::HostExt::PluginWrapper::getPrograms()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00237">237</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -941,7 +939,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -953,9 +951,7 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00234">234</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00146">Vamp::HostExt::PluginWrapper::getCurrentProgram()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00242">242</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -969,7 +965,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline, virtual, inherited]</code></td>
+          <td><code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -979,11 +975,9 @@
 Select a program. 
 <p>
 (If the given program name is not one of the available programs, do nothing.) 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00240">240</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00152">Vamp::HostExt::PluginWrapper::selectProgram()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00248">248</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -1077,17 +1071,17 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00397">397</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">431</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00047">Vamp::HostExt::PluginRateExtractor::getRate()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00238">Vamp::HostExt::PluginBufferingAdapter::PluginBufferingAdapter()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00113">Vamp::HostExt::PluginInputDomainAdapter::PluginInputDomainAdapter()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">initialise()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
 
 </div>
 </div><p>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="AmplitudeFollower_8h-source.html">AmplitudeFollower.h</a><li><a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classAmplitudeFollower__inherit__graph.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classAmplitudeFollower__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,2 +1,2 @@
-<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="20,82,119,106">
-<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,7,133,31">
+<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="20,80,119,107">
+<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,6,133,32">
Binary file code-doc/classAmplitudeFollower__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classFixedTempoEstimator-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,72 @@
+<!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: Member List</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>FixedTempoEstimator Member List</h1>This is the complete list of members for <a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#3967c189f054f864639837c2519bd64d">FixedTempoEstimator</a>(float inputSampleRate)</td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#50c6b64530c84c0707ba3936c5022a48">getCopyright</a>() const </td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">getCurrentProgram</a>() const </td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#06b00853f00c2e78d490697fcd7d1920">getDescription</a>() const </td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#b818edcf1555177d10260e197e3a5e7a">getIdentifier</a>() const </td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#055689c9b41b0945e8d3cdbc3b8c3a2e">getInputDomain</a>() const </td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#e910d1b9250b11097fd6b51cd8285b68">getMaker</a>() const </td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">getMaxChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">getMinChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#f9eb6fa8a98aa66b55e64e1795f9405f">getName</a>() const </td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#83121c205a723fe6297e2bf8870622a4">getOutputDescriptors</a>() const </td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#2030b05fb1228b30ace16200780c9152">getParameter</a>(std::string id) const </td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#e157465a4e07d180bab05b5c3a4d8987">getParameterDescriptors</a>() const </td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#d002fddb3735c2dd7e31e6a9def9949f">getPluginVersion</a>() const </td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#68b8569b71504a0478caf990dbe30683">getPreferredBlockSize</a>() const </td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#d450bb7e7df559ae3d68dfbfb085676f">getPreferredStepSize</a>() const </td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">getPrograms</a>() const </td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#4965cf99be77fc4d1de51e11d83936b0">getRemainingFeatures</a>()</td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">getVampApiVersion</a>() const </td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#a7500a4ffbc4653baaf5101defdb37f5">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> enum name</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">m_d</a></td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>(float inputSampleRate)</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#1cf76b0e55cf4ed3da095cffcdeaec3c">process</a>(const float *const *inputBuffers, Vamp::RealTime timestamp)</td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#c41708397255400c6682fee6c1b3d45f">reset</a>()</td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">selectProgram</a>(std::string)</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#8a5a413025384cf451c64d2c2ce13a75">setParameter</a>(std::string id, float value)</td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator.html#0302c4bfdc163a3d34478cde93c96a53">~FixedTempoEstimator</a>()</td><td><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">~Plugin</a>()</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
+</table></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classFixedTempoEstimator.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,1028 @@
+<!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: FixedTempoEstimator Class 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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>FixedTempoEstimator Class Reference</h1><!-- doxytag: class="FixedTempoEstimator" --><!-- doxytag: inherits="Vamp::Plugin" --><code>#include &lt;<a class="el" href="FixedTempoEstimator_8h-source.html">FixedTempoEstimator.h</a>&gt;</code>
+<p>
+<div class="dynheader">
+Inheritance diagram for FixedTempoEstimator:</div>
+<div class="dynsection">
+<p><center><img src="classFixedTempoEstimator__inherit__graph.png" border="0" usemap="#FixedTempoEstimator__inherit__map" alt="Inheritance graph"></center>
+<map name="FixedTempoEstimator__inherit__map">
+<area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="29,80,128,107"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="15,6,143,32"></map>
+<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
+
+<p>
+<a href="classFixedTempoEstimator-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
+Example plugin that estimates the tempo of a short fixed-tempo sample. 
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8h-source.html#l00046">46</a> of file <a class="el" href="FixedTempoEstimator_8h-source.html">FixedTempoEstimator.h</a>.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> { <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a>, 
+<a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a>
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector<br>
+&lt; <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; <a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; int, <br>
+<a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector<br>
+&lt; <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#3967c189f054f864639837c2519bd64d">FixedTempoEstimator</a> (float inputSampleRate)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#0302c4bfdc163a3d34478cde93c96a53">~FixedTempoEstimator</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#a7500a4ffbc4653baaf5101defdb37f5">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames).  <a href="#a7500a4ffbc4653baaf5101defdb37f5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#c41708397255400c6682fee6c1b3d45f">reset</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the plugin after use, to prepare it for another clean run.  <a href="#c41708397255400c6682fee6c1b3d45f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#055689c9b41b0945e8d3cdbc3b8c3a2e">getInputDomain</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#055689c9b41b0945e8d3cdbc3b8c3a2e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#b818edcf1555177d10260e197e3a5e7a">getIdentifier</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#b818edcf1555177d10260e197e3a5e7a"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#f9eb6fa8a98aa66b55e64e1795f9405f">getName</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a human-readable name or title of the plugin.  <a href="#f9eb6fa8a98aa66b55e64e1795f9405f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#06b00853f00c2e78d490697fcd7d1920">getDescription</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a human-readable description for the plugin, typically a line of text that may optionally be displayed in addition to the plugin's "name".  <a href="#06b00853f00c2e78d490697fcd7d1920"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#e910d1b9250b11097fd6b51cd8285b68">getMaker</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the name of the author or vendor of the plugin in human-readable form.  <a href="#e910d1b9250b11097fd6b51cd8285b68"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#d002fddb3735c2dd7e31e6a9def9949f">getPluginVersion</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the version number of the plugin.  <a href="#d002fddb3735c2dd7e31e6a9def9949f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#50c6b64530c84c0707ba3936c5022a48">getCopyright</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the copyright statement or licensing summary for the plugin.  <a href="#50c6b64530c84c0707ba3936c5022a48"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#d450bb7e7df559ae3d68dfbfb085676f">getPreferredStepSize</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classFixedTempoEstimator.html#1cf76b0e55cf4ed3da095cffcdeaec3c" title="Process a single block of input data.">process()</a> function) for the plugin.  <a href="#d450bb7e7df559ae3d68dfbfb085676f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#68b8569b71504a0478caf990dbe30683">getPreferredBlockSize</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classFixedTempoEstimator.html#1cf76b0e55cf4ed3da095cffcdeaec3c" title="Process a single block of input data.">process()</a> function).  <a href="#68b8569b71504a0478caf990dbe30683"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#e157465a4e07d180bab05b5c3a4d8987">getParameterDescriptors</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#e157465a4e07d180bab05b5c3a4d8987"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#2030b05fb1228b30ace16200780c9152">getParameter</a> (std::string id) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of a named parameter.  <a href="#2030b05fb1228b30ace16200780c9152"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#8a5a413025384cf451c64d2c2ce13a75">setParameter</a> (std::string id, float value)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter.  <a href="#8a5a413025384cf451c64d2c2ce13a75"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#83121c205a723fe6297e2bf8870622a4">getOutputDescriptors</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#83121c205a723fe6297e2bf8870622a4"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#1cf76b0e55cf4ed3da095cffcdeaec3c">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a> timestamp)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#1cf76b0e55cf4ed3da095cffcdeaec3c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#4965cf99be77fc4d1de51e11d83936b0">getRemainingFeatures</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input.  <a href="#4965cf99be77fc4d1de51e11d83936b0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">getMinChannelCount</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum supported number of input channels.  <a href="#267b42e866df3cf0d190893e8096f525"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">getMaxChannelCount</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum supported number of input channels.  <a href="#2c5ab12b6fa4847cb244bd1e9cb3ae5e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.  <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">getVampApiVersion</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.  <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">getPrograms</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#bb307c60bdb981d5f5af50c3c4ae84af"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">getCurrentProgram</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current program.  <a href="#24e77eccf1bdfbbca3c79bb25e8799b3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">selectProgram</a> (std::string)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select a program.  <a href="#add3a547ef140bae200473a9518e3353"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classFixedTempoEstimator_1_1D.html">D</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">m_d</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html">D</a></td></tr>
+
+</table>
+<hr><h2>Member Typedef Documentation</h2>
+<a class="anchor" name="30f531b8fb69fac41a24e3d2a6a08ed9"></a><!-- doxytag: member="FixedTempoEstimator::OutputList" ref="30f531b8fb69fac41a24e3d2a6a08ed9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Vamp::Plugin::OutputList</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00322">322</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="0730bc72c87fa02eb8d2854b233f7be1"></a><!-- doxytag: member="FixedTempoEstimator::FeatureList" ref="0730bc72c87fa02eb8d2854b233f7be1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">Vamp::Plugin::FeatureList</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00380">380</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="448fb57dc245d47923ec9eeaf9856c5f"></a><!-- doxytag: member="FixedTempoEstimator::FeatureSet" ref="448fb57dc245d47923ec9eeaf9856c5f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::map&lt;int, <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Vamp::Plugin::FeatureSet</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00382">382</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="3b6bb4bbd86affe1ca9deceea1aad4f8"></a><!-- doxytag: member="FixedTempoEstimator::ParameterList" ref="3b6bb4bbd86affe1ca9deceea1aad4f8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a>&gt; <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">Vamp::PluginBase::ParameterList</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="7f66f00437b21e5f694fe02356b12f20"></a><!-- doxytag: member="FixedTempoEstimator::ProgramList" ref="7f66f00437b21e5f694fe02356b12f20" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::vector&lt;std::string&gt; <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">Vamp::PluginBase::ProgramList</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bc"></a><!-- doxytag: member="FixedTempoEstimator::InputDomain" ref="39cb7649d6dcc20e4cb1640cd55907bc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Vamp::Plugin::InputDomain</a><code> [inherited]</code>          </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="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff"></a><!-- doxytag: member="TimeDomain" ref="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff" args="" -->TimeDomain</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53"></a><!-- doxytag: member="FrequencyDomain" ref="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53" args="" -->FrequencyDomain</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">152</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="3967c189f054f864639837c2519bd64d"></a><!-- doxytag: member="FixedTempoEstimator::FixedTempoEstimator" ref="3967c189f054f864639837c2519bd64d" args="(float inputSampleRate)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">FixedTempoEstimator::FixedTempoEstimator           </td>
+          <td>(</td>
+          <td class="paramtype">float&nbsp;</td>
+          <td class="paramname"> <em>inputSampleRate</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00616">616</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="0302c4bfdc163a3d34478cde93c96a53"></a><!-- doxytag: member="FixedTempoEstimator::~FixedTempoEstimator" ref="0302c4bfdc163a3d34478cde93c96a53" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">FixedTempoEstimator::~FixedTempoEstimator           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00622">622</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8h-source.html#l00079">m_d</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="a7500a4ffbc4653baaf5101defdb37f5"></a><!-- doxytag: member="FixedTempoEstimator::initialise" ref="a7500a4ffbc4653baaf5101defdb37f5" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool FixedTempoEstimator::initialise           </td>
+          <td>(</td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>inputChannels</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>stepSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>blockSize</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames). 
+<p>
+The input sample rate should have been already specified at construction time.<p>
+Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. 
+<p>Implements <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">676</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">Vamp::Plugin::getMaxChannelCount()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">Vamp::Plugin::getMinChannelCount()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00251">FixedTempoEstimator::D::initialise()</a>, and <a class="el" href="FixedTempoEstimator_8h-source.html#l00079">m_d</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c41708397255400c6682fee6c1b3d45f"></a><!-- doxytag: member="FixedTempoEstimator::reset" ref="c41708397255400c6682fee6c1b3d45f" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void FixedTempoEstimator::reset           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Reset the plugin after use, to prepare it for another clean run. 
+<p>
+Not called for the first initialisation (i.e. initialise must also do a reset). 
+<p>Implements <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00685">685</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8h-source.html#l00079">m_d</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00275">FixedTempoEstimator::D::reset()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="055689c9b41b0945e8d3cdbc3b8c3a2e"></a><!-- doxytag: member="FixedTempoEstimator::getInputDomain" ref="055689c9b41b0945e8d3cdbc3b8c3a2e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> FixedTempoEstimator::getInputDomain           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the plugin's required input domain. 
+<p>
+If this is TimeDomain, the samples provided to the <a class="el" href="classFixedTempoEstimator.html#1cf76b0e55cf4ed3da095cffcdeaec3c" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classFixedTempoEstimator.html#1cf76b0e55cf4ed3da095cffcdeaec3c" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
+<p>Implements <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8h-source.html#l00055">55</a> of file <a class="el" href="FixedTempoEstimator_8h-source.html">FixedTempoEstimator.h</a>.</p>
+
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">Vamp::Plugin::FrequencyDomain</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="b818edcf1555177d10260e197e3a5e7a"></a><!-- doxytag: member="FixedTempoEstimator::getIdentifier" ref="b818edcf1555177d10260e197e3a5e7a" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string FixedTempoEstimator::getIdentifier           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the computer-usable name of the plugin. 
+<p>
+This should be reasonably short and contain no whitespace or punctuation characters. It may only contain the characters [a-zA-Z0-9_-]. This is the authoritative way for a program to identify a plugin within a given library.<p>
+This text may be visible to the user, but it should not be the main text used to identify a plugin to the user (that will be the name, below).<p>
+Example: "zero_crossings" 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00628">628</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="f9eb6fa8a98aa66b55e64e1795f9405f"></a><!-- doxytag: member="FixedTempoEstimator::getName" ref="f9eb6fa8a98aa66b55e64e1795f9405f" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string FixedTempoEstimator::getName           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get a human-readable name or title of the plugin. 
+<p>
+This should be brief and self-contained, as it may be used to identify the plugin to the user in isolation (i.e. without also showing the plugin's "identifier").<p>
+Example: "Zero Crossings" 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00634">634</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="06b00853f00c2e78d490697fcd7d1920"></a><!-- doxytag: member="FixedTempoEstimator::getDescription" ref="06b00853f00c2e78d490697fcd7d1920" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string FixedTempoEstimator::getDescription           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get a human-readable description for the plugin, typically a line of text that may optionally be displayed in addition to the plugin's "name". 
+<p>
+May be empty if the name has said it all already.<p>
+Example: "Detect and count zero crossing points" 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00640">640</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="e910d1b9250b11097fd6b51cd8285b68"></a><!-- doxytag: member="FixedTempoEstimator::getMaker" ref="e910d1b9250b11097fd6b51cd8285b68" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string FixedTempoEstimator::getMaker           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the name of the author or vendor of the plugin in human-readable form. 
+<p>
+This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00646">646</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="d002fddb3735c2dd7e31e6a9def9949f"></a><!-- doxytag: member="FixedTempoEstimator::getPluginVersion" ref="d002fddb3735c2dd7e31e6a9def9949f" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int FixedTempoEstimator::getPluginVersion           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the version number of the plugin. 
+<p>
+
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00652">652</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="50c6b64530c84c0707ba3936c5022a48"></a><!-- doxytag: member="FixedTempoEstimator::getCopyright" ref="50c6b64530c84c0707ba3936c5022a48" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string FixedTempoEstimator::getCopyright           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the copyright statement or licensing summary for the plugin. 
+<p>
+This can be an informative text, without the same presentation constraints as mentioned for getMaker above. 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00658">658</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="d450bb7e7df559ae3d68dfbfb085676f"></a><!-- doxytag: member="FixedTempoEstimator::getPreferredStepSize" ref="d450bb7e7df559ae3d68dfbfb085676f" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t FixedTempoEstimator::getPreferredStepSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classFixedTempoEstimator.html#1cf76b0e55cf4ed3da095cffcdeaec3c" title="Process a single block of input data.">process()</a> function) for the plugin. 
+<p>
+This should be called before <a class="el" href="classFixedTempoEstimator.html#a7500a4ffbc4653baaf5101defdb37f5" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
+A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classFixedTempoEstimator.html#a7500a4ffbc4653baaf5101defdb37f5" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
+<p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">Vamp::Plugin</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00664">664</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00056">FixedTempoEstimator::D::getPreferredStepSize()</a>, and <a class="el" href="FixedTempoEstimator_8h-source.html#l00079">m_d</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="68b8569b71504a0478caf990dbe30683"></a><!-- doxytag: member="FixedTempoEstimator::getPreferredBlockSize" ref="68b8569b71504a0478caf990dbe30683" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t FixedTempoEstimator::getPreferredBlockSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classFixedTempoEstimator.html#1cf76b0e55cf4ed3da095cffcdeaec3c" title="Process a single block of input data.">process()</a> function). 
+<p>
+This should be called before <a class="el" href="classFixedTempoEstimator.html#a7500a4ffbc4653baaf5101defdb37f5" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
+A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classFixedTempoEstimator.html#a7500a4ffbc4653baaf5101defdb37f5" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
+<p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">Vamp::Plugin</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00670">670</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00057">FixedTempoEstimator::D::getPreferredBlockSize()</a>, and <a class="el" href="FixedTempoEstimator_8h-source.html#l00079">m_d</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="e157465a4e07d180bab05b5c3a4d8987"></a><!-- doxytag: member="FixedTempoEstimator::getParameterDescriptors" ref="e157465a4e07d180bab05b5c3a4d8987" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">FixedTempoEstimator::ParameterList</a> FixedTempoEstimator::getParameterDescriptors           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the controllable parameters of this plugin. 
+<p>
+
+<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00691">691</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00124">FixedTempoEstimator::D::getParameterDescriptors()</a>, and <a class="el" href="FixedTempoEstimator_8h-source.html#l00079">m_d</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="2030b05fb1228b30ace16200780c9152"></a><!-- doxytag: member="FixedTempoEstimator::getParameter" ref="2030b05fb1228b30ace16200780c9152" args="(std::string id) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float FixedTempoEstimator::getParameter           </td>
+          <td>(</td>
+          <td class="paramtype">std::string&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the value of a named parameter. 
+<p>
+The argument is the identifier field from that parameter's descriptor. 
+<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00697">697</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00158">FixedTempoEstimator::D::getParameter()</a>, and <a class="el" href="FixedTempoEstimator_8h-source.html#l00079">m_d</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="8a5a413025384cf451c64d2c2ce13a75"></a><!-- doxytag: member="FixedTempoEstimator::setParameter" ref="8a5a413025384cf451c64d2c2ce13a75" args="(std::string id, float value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void FixedTempoEstimator::setParameter           </td>
+          <td>(</td>
+          <td class="paramtype">std::string&nbsp;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&nbsp;</td>
+          <td class="paramname"></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set a named parameter. 
+<p>
+The first argument is the identifier field from that parameter's descriptor. 
+<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00703">703</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8h-source.html#l00079">m_d</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00171">FixedTempoEstimator::D::setParameter()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="83121c205a723fe6297e2bf8870622a4"></a><!-- doxytag: member="FixedTempoEstimator::getOutputDescriptors" ref="83121c205a723fe6297e2bf8870622a4" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">FixedTempoEstimator::OutputList</a> FixedTempoEstimator::getOutputDescriptors           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the outputs of this plugin. 
+<p>
+An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classFixedTempoEstimator.html#1cf76b0e55cf4ed3da095cffcdeaec3c" title="Process a single block of input data.">process()</a> call. 
+<p>Implements <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00709">709</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">FixedTempoEstimator::D::getOutputDescriptors()</a>, and <a class="el" href="FixedTempoEstimator_8h-source.html#l00079">m_d</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="1cf76b0e55cf4ed3da095cffcdeaec3c"></a><!-- doxytag: member="FixedTempoEstimator::process" ref="1cf76b0e55cf4ed3da095cffcdeaec3c" args="(const float *const *inputBuffers, Vamp::RealTime timestamp)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FixedTempoEstimator::FeatureSet</a> FixedTempoEstimator::process           </td>
+          <td>(</td>
+          <td class="paramtype">const float *const *&nbsp;</td>
+          <td class="paramname"> <em>inputBuffers</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a>&nbsp;</td>
+          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Process a single block of input data. 
+<p>
+If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.<p>
+If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
+Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) 
+<p>Implements <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00715">715</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8h-source.html#l00079">m_d</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00302">FixedTempoEstimator::D::process()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="4965cf99be77fc4d1de51e11d83936b0"></a><!-- doxytag: member="FixedTempoEstimator::getRemainingFeatures" ref="4965cf99be77fc4d1de51e11d83936b0" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FixedTempoEstimator::FeatureSet</a> FixedTempoEstimator::getRemainingFeatures           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+After all blocks have been processed, calculate and return any remaining features derived from the complete input. 
+<p>
+
+<p>Implements <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>.</p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00721">721</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00351">FixedTempoEstimator::D::getRemainingFeatures()</a>, and <a class="el" href="FixedTempoEstimator_8h-source.html#l00079">m_d</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="267b42e866df3cf0d190893e8096f525"></a><!-- doxytag: member="FixedTempoEstimator::getMinChannelCount" ref="267b42e866df3cf0d190893e8096f525" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual size_t Vamp::Plugin::getMinChannelCount           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the minimum supported number of input channels. 
+<p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">Vamp::HostExt::PluginWrapper</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">194</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">SpectralCentroid::initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">PowerSpectrum::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="2c5ab12b6fa4847cb244bd1e9cb3ae5e"></a><!-- doxytag: member="FixedTempoEstimator::getMaxChannelCount" ref="2c5ab12b6fa4847cb244bd1e9cb3ae5e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual size_t Vamp::Plugin::getMaxChannelCount           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the maximum supported number of input channels. 
+<p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">Vamp::HostExt::PluginWrapper</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">199</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">SpectralCentroid::initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">PowerSpectrum::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="be13b3997a69fbcc09e2213faa352f91"></a><!-- doxytag: member="FixedTempoEstimator::getType" ref="be13b3997a69fbcc09e2213faa352f91" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual std::string Vamp::Plugin::getType           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>. 
+<p>
+Do not reimplement this function in your subclass. 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00425">425</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="8fd2c48291c64b790f0efb8948508dcf"></a><!-- doxytag: member="FixedTempoEstimator::getVampApiVersion" ref="8fd2c48291c64b790f0efb8948508dcf" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual unsigned int Vamp::PluginBase::getVampApiVersion           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. 
+<p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">Vamp::HostExt::PluginWrapper</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00072">72</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="bb307c60bdb981d5f5af50c3c4ae84af"></a><!-- doxytag: member="FixedTempoEstimator::getPrograms" ref="bb307c60bdb981d5f5af50c3c4ae84af" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> Vamp::PluginBase::getPrograms           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the program settings available in this plugin. 
+<p>
+A program is a named shorthand for a set of parameter values; changing the program may cause the plugin to alter the values of its published parameters (and/or non-public internal processing parameters). The host should re-read the plugin's parameter values after setting a new program.<p>
+The programs must have unique names. 
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#e0cde5cd625418c1bc470b91f75daafc">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">Vamp::HostExt::PluginWrapper</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00237">237</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="24e77eccf1bdfbbca3c79bb25e8799b3"></a><!-- doxytag: member="FixedTempoEstimator::getCurrentProgram" ref="24e77eccf1bdfbbca3c79bb25e8799b3" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual std::string Vamp::PluginBase::getCurrentProgram           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the current program. 
+<p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">Vamp::HostExt::PluginWrapper</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00242">242</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="add3a547ef140bae200473a9518e3353"></a><!-- doxytag: member="FixedTempoEstimator::selectProgram" ref="add3a547ef140bae200473a9518e3353" args="(std::string)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void Vamp::PluginBase::selectProgram           </td>
+          <td>(</td>
+          <td class="paramtype">std::string&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Select a program. 
+<p>
+(If the given program name is not one of the available programs, do nothing.) 
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00248">248</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="5e1c9abaf33e9f48eb7d3b48f8af3308"></a><!-- doxytag: member="FixedTempoEstimator::m_d" ref="5e1c9abaf33e9f48eb7d3b48f8af3308" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classFixedTempoEstimator_1_1D.html">D</a>* <a class="el" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">FixedTempoEstimator::m_d</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8h-source.html#l00079">79</a> of file <a class="el" href="FixedTempoEstimator_8h-source.html">FixedTempoEstimator.h</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00709">getOutputDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00697">getParameter()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00691">getParameterDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00670">getPreferredBlockSize()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00664">getPreferredStepSize()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00721">getRemainingFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00715">process()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00685">reset()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00703">setParameter()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00622">~FixedTempoEstimator()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="59b9dd82a4f4eb946cd0474cc81abc23"></a><!-- doxytag: member="FixedTempoEstimator::m_inputSampleRate" ref="59b9dd82a4f4eb946cd0474cc81abc23" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">Vamp::Plugin::m_inputSampleRate</a><code> [protected, inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">431</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
+
+</div>
+</div><p>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="FixedTempoEstimator_8h-source.html">FixedTempoEstimator.h</a><li><a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a></ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classFixedTempoEstimator_1_1D-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,64 @@
+<!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: Member List</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>FixedTempoEstimator::D Member List</h1>This is the complete list of members for <a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#20389ba1515f6ce4181d3f41e5c4f347">assembleFeatures</a>()</td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#4f2cbc11fba5bc8af3fd2a0078156091">calculate</a>()</td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#104a9b64d47eca678844584f69ca0b9d">D</a>(float inputSampleRate)</td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#7ce98af800f36045a0dae4b1dbed943f">getOutputDescriptors</a>() const </td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#968ef2e555c81e4a3bde89d19fafb31a">getParameter</a>(string id) const </td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#06fcf80a9a22c4b90abbc88eb592621a">getParameterDescriptors</a>() const </td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#c02826f981736fc2aa5d835fa14e174d">getPreferredBlockSize</a>() const </td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#dd749be18355ab1ae5c1ccbacfd2e192">getPreferredStepSize</a>() const </td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#7f9c3603bb3374d6936885010dbdd82b">getRemainingFeatures</a>()</td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#f0fcad4493650728babb7e341963c91d">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#0a7cb0705938097ab23a6f9187e6bae5">lag2tempo</a>(int)</td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#0b9bf37e600f0564b9f305f73a9517c8">m_blockSize</a></td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#8e2312120e87ad9a48fedeebbaefa396">m_df</a></td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#e739e006f2d10ef2b13677770b23e663">m_dfsize</a></td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a></td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">m_inputSampleRate</a></td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#bacd5ff19c301020efb99c03136b849a">m_lasttime</a></td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#33e8d045b222addc6173b50df2553ba8">m_maxbpm</a></td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#ca506973452865d436e07462eabdebad">m_maxdflen</a></td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#768fdbb62e4b21a39897963fdbd486ed">m_minbpm</a></td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a></td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#a59cf1cb5640a910c70884579e5d99ad">m_priorMagnitudes</a></td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a></td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#3a3a0b4a4c259087f02d0046241674d0">m_start</a></td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">m_stepSize</a></td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">m_t</a></td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#7fac74fc9fc54f436408705d1e125e20">process</a>(const float *const *, RealTime)</td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#f5ac8147bfe79371d00aba8a19c2f8fd">reset</a>()</td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#6cafa64d4cc8aa3556bc0ce6b0c49bc4">setParameter</a>(string id, float value)</td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#c6a75212293fc855de6ed0c6581a0fb9">tempo2lag</a>(float)</td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classFixedTempoEstimator_1_1D.html#78a63ac8bbf342cb0405747871adf4cc">~D</a>()</td><td><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a></td><td></td></tr>
+</table></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classFixedTempoEstimator_1_1D.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,827 @@
+<!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: FixedTempoEstimator::D Class 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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath"><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a>::<a class="el" href="classFixedTempoEstimator_1_1D.html">D</a>
+  </div>
+</div>
+<div class="contents">
+<h1>FixedTempoEstimator::D Class Reference</h1><!-- doxytag: class="FixedTempoEstimator::D" -->
+<p>
+<a href="classFixedTempoEstimator_1_1D-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00049">49</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#104a9b64d47eca678844584f69ca0b9d">D</a> (float inputSampleRate)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#78a63ac8bbf342cb0405747871adf4cc">~D</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#dd749be18355ab1ae5c1ccbacfd2e192">getPreferredStepSize</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#c02826f981736fc2aa5d835fa14e174d">getPreferredBlockSize</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#06fcf80a9a22c4b90abbc88eb592621a">getParameterDescriptors</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#968ef2e555c81e4a3bde89d19fafb31a">getParameter</a> (string id) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#6cafa64d4cc8aa3556bc0ce6b0c49bc4">setParameter</a> (string id, float value)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#7ce98af800f36045a0dae4b1dbed943f">getOutputDescriptors</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#f0fcad4493650728babb7e341963c91d">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#f5ac8147bfe79371d00aba8a19c2f8fd">reset</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#7fac74fc9fc54f436408705d1e125e20">process</a> (const float *const *, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#7f9c3603bb3374d6936885010dbdd82b">getRemainingFeatures</a> ()</td></tr>
+
+<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#4f2cbc11fba5bc8af3fd2a0078156091">calculate</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#20389ba1515f6ce4181d3f41e5c4f347">assembleFeatures</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#0a7cb0705938097ab23a6f9187e6bae5">lag2tempo</a> (int)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#c6a75212293fc855de6ed0c6581a0fb9">tempo2lag</a> (float)</td></tr>
+
+<tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">m_inputSampleRate</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">m_stepSize</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#0b9bf37e600f0564b9f305f73a9517c8">m_blockSize</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#768fdbb62e4b21a39897963fdbd486ed">m_minbpm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#33e8d045b222addc6173b50df2553ba8">m_maxbpm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#ca506973452865d436e07462eabdebad">m_maxdflen</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#a59cf1cb5640a910c70884579e5d99ad">m_priorMagnitudes</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#e739e006f2d10ef2b13677770b23e663">m_dfsize</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#8e2312120e87ad9a48fedeebbaefa396">m_df</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">m_r</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">m_fr</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">m_t</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">m_n</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#3a3a0b4a4c259087f02d0046241674d0">m_start</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFixedTempoEstimator_1_1D.html#bacd5ff19c301020efb99c03136b849a">m_lasttime</a></td></tr>
+
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="104a9b64d47eca678844584f69ca0b9d"></a><!-- doxytag: member="FixedTempoEstimator::D::D" ref="104a9b64d47eca678844584f69ca0b9d" args="(float inputSampleRate)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">FixedTempoEstimator::D::D           </td>
+          <td>(</td>
+          <td class="paramtype">float&nbsp;</td>
+          <td class="paramname"> <em>inputSampleRate</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00098">98</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="78a63ac8bbf342cb0405747871adf4cc"></a><!-- doxytag: member="FixedTempoEstimator::D::~D" ref="78a63ac8bbf342cb0405747871adf4cc" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">FixedTempoEstimator::D::~D           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00114">114</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00088">m_df</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00090">m_fr</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00085">m_priorMagnitudes</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00089">m_r</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00091">m_t</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="dd749be18355ab1ae5c1ccbacfd2e192"></a><!-- doxytag: member="FixedTempoEstimator::D::getPreferredStepSize" ref="dd749be18355ab1ae5c1ccbacfd2e192" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t FixedTempoEstimator::D::getPreferredStepSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00056">56</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00664">FixedTempoEstimator::getPreferredStepSize()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c02826f981736fc2aa5d835fa14e174d"></a><!-- doxytag: member="FixedTempoEstimator::D::getPreferredBlockSize" ref="c02826f981736fc2aa5d835fa14e174d" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t FixedTempoEstimator::D::getPreferredBlockSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00057">57</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">getOutputDescriptors()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00670">FixedTempoEstimator::getPreferredBlockSize()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="06fcf80a9a22c4b90abbc88eb592621a"></a><!-- doxytag: member="FixedTempoEstimator::D::getParameterDescriptors" ref="06fcf80a9a22c4b90abbc88eb592621a" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">FixedTempoEstimator::ParameterList</a> FixedTempoEstimator::D::getParameterDescriptors           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00124">124</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00171">Vamp::PluginBase::ParameterDescriptor::defaultValue</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00148">Vamp::PluginBase::ParameterDescriptor::description</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00137">Vamp::PluginBase::ParameterDescriptor::identifier</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00177">Vamp::PluginBase::ParameterDescriptor::isQuantized</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00163">Vamp::PluginBase::ParameterDescriptor::maxValue</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00158">Vamp::PluginBase::ParameterDescriptor::minValue</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00142">Vamp::PluginBase::ParameterDescriptor::name</a>, and <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00153">Vamp::PluginBase::ParameterDescriptor::unit</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00691">FixedTempoEstimator::getParameterDescriptors()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="968ef2e555c81e4a3bde89d19fafb31a"></a><!-- doxytag: member="FixedTempoEstimator::D::getParameter" ref="968ef2e555c81e4a3bde89d19fafb31a" args="(string id) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float FixedTempoEstimator::D::getParameter           </td>
+          <td>(</td>
+          <td class="paramtype">string&nbsp;</td>
+          <td class="paramname"> <em>id</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00158">158</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00082">m_maxbpm</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00083">m_maxdflen</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00081">m_minbpm</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00697">FixedTempoEstimator::getParameter()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="6cafa64d4cc8aa3556bc0ce6b0c49bc4"></a><!-- doxytag: member="FixedTempoEstimator::D::setParameter" ref="6cafa64d4cc8aa3556bc0ce6b0c49bc4" args="(string id, float value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void FixedTempoEstimator::D::setParameter           </td>
+          <td>(</td>
+          <td class="paramtype">string&nbsp;</td>
+          <td class="paramname"> <em>id</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&nbsp;</td>
+          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00171">171</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00082">m_maxbpm</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00083">m_maxdflen</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00081">m_minbpm</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00703">FixedTempoEstimator::setParameter()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="7ce98af800f36045a0dae4b1dbed943f"></a><!-- doxytag: member="FixedTempoEstimator::D::getOutputDescriptors" ref="7ce98af800f36045a0dae4b1dbed943f" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">FixedTempoEstimator::OutputList</a> FixedTempoEstimator::D::getOutputDescriptors           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">189</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00242">Vamp::Plugin::OutputDescriptor::binCount</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00222">Vamp::Plugin::OutputDescriptor::description</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00288">Vamp::Plugin::OutputDescriptor::FixedSampleRate</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00057">getPreferredBlockSize()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00315">Vamp::Plugin::OutputDescriptor::hasDuration</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00234">Vamp::Plugin::OutputDescriptor::hasFixedBinCount</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00255">Vamp::Plugin::OutputDescriptor::hasKnownExtents</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00209">Vamp::Plugin::OutputDescriptor::identifier</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00273">Vamp::Plugin::OutputDescriptor::isQuantized</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00077">m_inputSampleRate</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00078">m_stepSize</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00267">Vamp::Plugin::OutputDescriptor::maxValue</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00261">Vamp::Plugin::OutputDescriptor::minValue</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00215">Vamp::Plugin::OutputDescriptor::name</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00280">Vamp::Plugin::OutputDescriptor::quantizeStep</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00309">Vamp::Plugin::OutputDescriptor::sampleRate</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00297">Vamp::Plugin::OutputDescriptor::sampleType</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00227">Vamp::Plugin::OutputDescriptor::unit</a>, and <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00291">Vamp::Plugin::OutputDescriptor::VariableSampleRate</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00709">FixedTempoEstimator::getOutputDescriptors()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="f0fcad4493650728babb7e341963c91d"></a><!-- doxytag: member="FixedTempoEstimator::D::initialise" ref="f0fcad4493650728babb7e341963c91d" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool FixedTempoEstimator::D::initialise           </td>
+          <td>(</td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>channels</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>stepSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>blockSize</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00251">251</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00079">m_blockSize</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00088">m_df</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00087">m_dfsize</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00077">m_inputSampleRate</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00083">m_maxdflen</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00092">m_n</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00085">m_priorMagnitudes</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00078">m_stepSize</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">FixedTempoEstimator::initialise()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="f5ac8147bfe79371d00aba8a19c2f8fd"></a><!-- doxytag: member="FixedTempoEstimator::D::reset" ref="f5ac8147bfe79371d00aba8a19c2f8fd" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void FixedTempoEstimator::D::reset           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00275">275</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00079">m_blockSize</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00088">m_df</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00087">m_dfsize</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00090">m_fr</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00095">m_lasttime</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00092">m_n</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00085">m_priorMagnitudes</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00089">m_r</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00094">m_start</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00091">m_t</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00685">FixedTempoEstimator::reset()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="7fac74fc9fc54f436408705d1e125e20"></a><!-- doxytag: member="FixedTempoEstimator::D::process" ref="7fac74fc9fc54f436408705d1e125e20" args="(const float *const *, RealTime)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FixedTempoEstimator::FeatureSet</a> FixedTempoEstimator::D::process           </td>
+          <td>(</td>
+          <td class="paramtype">const float *const *&nbsp;</td>
+          <td class="paramname"> <em>inputBuffers</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td>
+          <td class="paramname"> <em>ts</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00302">302</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">assembleFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00374">calculate()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00079">m_blockSize</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00088">m_df</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00087">m_dfsize</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00095">m_lasttime</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00092">m_n</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00085">m_priorMagnitudes</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00094">m_start</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00078">m_stepSize</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00715">FixedTempoEstimator::process()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="7f9c3603bb3374d6936885010dbdd82b"></a><!-- doxytag: member="FixedTempoEstimator::D::getRemainingFeatures" ref="7f9c3603bb3374d6936885010dbdd82b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FixedTempoEstimator::FeatureSet</a> FixedTempoEstimator::D::getRemainingFeatures           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00351">351</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">assembleFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00374">calculate()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00087">m_dfsize</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00092">m_n</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00721">FixedTempoEstimator::getRemainingFeatures()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="4f2cbc11fba5bc8af3fd2a0078156091"></a><!-- doxytag: member="FixedTempoEstimator::D::calculate" ref="4f2cbc11fba5bc8af3fd2a0078156091" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void FixedTempoEstimator::D::calculate           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [private]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00374">374</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00362">lag2tempo()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00088">m_df</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00087">m_dfsize</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00090">m_fr</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00077">m_inputSampleRate</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00092">m_n</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00089">m_r</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00078">m_stepSize</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00091">m_t</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00351">getRemainingFeatures()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00302">process()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="20389ba1515f6ce4181d3f41e5c4f347"></a><!-- doxytag: member="FixedTempoEstimator::D::assembleFeatures" ref="20389ba1515f6ce4181d3f41e5c4f347" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FixedTempoEstimator::FeatureSet</a> FixedTempoEstimator::D::assembleFeatures           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [private]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">480</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00185">ACFOutput</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00183">CandidatesOutput</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00184">DFOutput</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00362">Vamp::Plugin::Feature::duration</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00186">FilteredACFOutput</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00355">Vamp::Plugin::Feature::hasDuration</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00339">Vamp::Plugin::Feature::hasTimestamp</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00374">Vamp::Plugin::Feature::label</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00362">lag2tempo()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00088">m_df</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00090">m_fr</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00077">m_inputSampleRate</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00095">m_lasttime</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00082">m_maxbpm</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00081">m_minbpm</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00092">m_n</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00089">m_r</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00094">m_start</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00078">m_stepSize</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00091">m_t</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00368">tempo2lag()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00182">TempoOutput</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00347">Vamp::Plugin::Feature::timestamp</a>, and <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00369">Vamp::Plugin::Feature::values</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00351">getRemainingFeatures()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00302">process()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="0a7cb0705938097ab23a6f9187e6bae5"></a><!-- doxytag: member="FixedTempoEstimator::D::lag2tempo" ref="0a7cb0705938097ab23a6f9187e6bae5" args="(int)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float FixedTempoEstimator::D::lag2tempo           </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>lag</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [private]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00362">362</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00077">m_inputSampleRate</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00078">m_stepSize</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">assembleFeatures()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00374">calculate()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c6a75212293fc855de6ed0c6581a0fb9"></a><!-- doxytag: member="FixedTempoEstimator::D::tempo2lag" ref="c6a75212293fc855de6ed0c6581a0fb9" args="(float)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int FixedTempoEstimator::D::tempo2lag           </td>
+          <td>(</td>
+          <td class="paramtype">float&nbsp;</td>
+          <td class="paramname"> <em>tempo</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [private]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00368">368</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>References <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00077">m_inputSampleRate</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00078">m_stepSize</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">assembleFeatures()</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="072a0fc30b3912a54858eefdd47f4d4f"></a><!-- doxytag: member="FixedTempoEstimator::D::m_inputSampleRate" ref="072a0fc30b3912a54858eefdd47f4d4f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">FixedTempoEstimator::D::m_inputSampleRate</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00077">77</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">assembleFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00374">calculate()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">getOutputDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00251">initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00362">lag2tempo()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00368">tempo2lag()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="837da9722c63fe3c66c738255990c45f"></a><!-- doxytag: member="FixedTempoEstimator::D::m_stepSize" ref="837da9722c63fe3c66c738255990c45f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t <a class="el" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">FixedTempoEstimator::D::m_stepSize</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00078">78</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">assembleFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00374">calculate()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">getOutputDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00251">initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00362">lag2tempo()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00302">process()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00368">tempo2lag()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="0b9bf37e600f0564b9f305f73a9517c8"></a><!-- doxytag: member="FixedTempoEstimator::D::m_blockSize" ref="0b9bf37e600f0564b9f305f73a9517c8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t <a class="el" href="classFixedTempoEstimator_1_1D.html#0b9bf37e600f0564b9f305f73a9517c8">FixedTempoEstimator::D::m_blockSize</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00079">79</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00251">initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00302">process()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00275">reset()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="768fdbb62e4b21a39897963fdbd486ed"></a><!-- doxytag: member="FixedTempoEstimator::D::m_minbpm" ref="768fdbb62e4b21a39897963fdbd486ed" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="classFixedTempoEstimator_1_1D.html#768fdbb62e4b21a39897963fdbd486ed">FixedTempoEstimator::D::m_minbpm</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00081">81</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">assembleFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00158">getParameter()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00171">setParameter()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="33e8d045b222addc6173b50df2553ba8"></a><!-- doxytag: member="FixedTempoEstimator::D::m_maxbpm" ref="33e8d045b222addc6173b50df2553ba8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="classFixedTempoEstimator_1_1D.html#33e8d045b222addc6173b50df2553ba8">FixedTempoEstimator::D::m_maxbpm</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00082">82</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">assembleFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00158">getParameter()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00171">setParameter()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="ca506973452865d436e07462eabdebad"></a><!-- doxytag: member="FixedTempoEstimator::D::m_maxdflen" ref="ca506973452865d436e07462eabdebad" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="classFixedTempoEstimator_1_1D.html#ca506973452865d436e07462eabdebad">FixedTempoEstimator::D::m_maxdflen</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00083">83</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00158">getParameter()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00251">initialise()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00171">setParameter()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="a59cf1cb5640a910c70884579e5d99ad"></a><!-- doxytag: member="FixedTempoEstimator::D::m_priorMagnitudes" ref="a59cf1cb5640a910c70884579e5d99ad" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float* <a class="el" href="classFixedTempoEstimator_1_1D.html#a59cf1cb5640a910c70884579e5d99ad">FixedTempoEstimator::D::m_priorMagnitudes</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00085">85</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00251">initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00302">process()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00275">reset()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00114">~D()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="e739e006f2d10ef2b13677770b23e663"></a><!-- doxytag: member="FixedTempoEstimator::D::m_dfsize" ref="e739e006f2d10ef2b13677770b23e663" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t <a class="el" href="classFixedTempoEstimator_1_1D.html#e739e006f2d10ef2b13677770b23e663">FixedTempoEstimator::D::m_dfsize</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00087">87</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00374">calculate()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00351">getRemainingFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00251">initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00302">process()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00275">reset()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="8e2312120e87ad9a48fedeebbaefa396"></a><!-- doxytag: member="FixedTempoEstimator::D::m_df" ref="8e2312120e87ad9a48fedeebbaefa396" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float* <a class="el" href="classFixedTempoEstimator_1_1D.html#8e2312120e87ad9a48fedeebbaefa396">FixedTempoEstimator::D::m_df</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00088">88</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">assembleFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00374">calculate()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00251">initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00302">process()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00275">reset()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00114">~D()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="7a8c8658ecfeec98962078df89fcd538"></a><!-- doxytag: member="FixedTempoEstimator::D::m_r" ref="7a8c8658ecfeec98962078df89fcd538" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float* <a class="el" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">FixedTempoEstimator::D::m_r</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00089">89</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">assembleFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00374">calculate()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00275">reset()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00114">~D()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="b255006072672653e645fc315eea6167"></a><!-- doxytag: member="FixedTempoEstimator::D::m_fr" ref="b255006072672653e645fc315eea6167" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float* <a class="el" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">FixedTempoEstimator::D::m_fr</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00090">90</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">assembleFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00374">calculate()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00275">reset()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00114">~D()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="698446aad2c0f737732a392fb86a612c"></a><!-- doxytag: member="FixedTempoEstimator::D::m_t" ref="698446aad2c0f737732a392fb86a612c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float* <a class="el" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">FixedTempoEstimator::D::m_t</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00091">91</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">assembleFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00374">calculate()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00275">reset()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00114">~D()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="b73af7f1943b76388de04cbb4696a983"></a><!-- doxytag: member="FixedTempoEstimator::D::m_n" ref="b73af7f1943b76388de04cbb4696a983" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t <a class="el" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">FixedTempoEstimator::D::m_n</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00092">92</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">assembleFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00374">calculate()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00351">getRemainingFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00251">initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00302">process()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00275">reset()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="3a3a0b4a4c259087f02d0046241674d0"></a><!-- doxytag: member="FixedTempoEstimator::D::m_start" ref="3a3a0b4a4c259087f02d0046241674d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a> <a class="el" href="classFixedTempoEstimator_1_1D.html#3a3a0b4a4c259087f02d0046241674d0">FixedTempoEstimator::D::m_start</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00094">94</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">assembleFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00302">process()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00275">reset()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="bacd5ff19c301020efb99c03136b849a"></a><!-- doxytag: member="FixedTempoEstimator::D::m_lasttime" ref="bacd5ff19c301020efb99c03136b849a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a> <a class="el" href="classFixedTempoEstimator_1_1D.html#bacd5ff19c301020efb99c03136b849a">FixedTempoEstimator::D::m_lasttime</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00095">95</a> of file <a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">assembleFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00302">process()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00275">reset()</a>.</p>
+
+</div>
+</div><p>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="FixedTempoEstimator_8cpp-source.html">FixedTempoEstimator.cpp</a></ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classFixedTempoEstimator__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,2 @@
+<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="29,80,128,107">
+<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="15,6,143,32">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classFixedTempoEstimator__inherit__graph.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,1 @@
+521938a88f49ac027eca4d6cf9d9b54b
\ No newline at end of file
Binary file code-doc/classFixedTempoEstimator__inherit__graph.png has changed
--- a/code-doc/classPercussionOnsetDetector-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classPercussionOnsetDetector-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -71,8 +71,8 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">~Plugin</a>()</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classPercussionOnsetDetector.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classPercussionOnsetDetector.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -31,7 +31,7 @@
 <div class="dynsection">
 <p><center><img src="classPercussionOnsetDetector__inherit__graph.png" border="0" usemap="#PercussionOnsetDetector__inherit__map" alt="Inheritance graph"></center>
 <map name="PercussionOnsetDetector__inherit__map">
-<area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="41,82,140,106"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="27,7,155,31"></map>
+<area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="41,80,140,107"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="27,6,155,32"></map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
 
 <p>
@@ -125,7 +125,7 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.  <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">getVampApiVersion</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <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 compatibility level of the plugin.  <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.  <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">getPrograms</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#bb307c60bdb981d5f5af50c3c4ae84af"></a><br></td></tr>
@@ -167,7 +167,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00309">309</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00322">322</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -184,7 +184,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00347">347</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00380">380</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -201,7 +201,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00348">348</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00382">382</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -218,7 +218,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00195">195</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -235,7 +235,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00217">217</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -261,7 +261,7 @@
 </table>
 </dl>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00149">149</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">152</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -276,7 +276,7 @@
           <td class="paramtype">float&nbsp;</td>
           <td class="paramname"> <em>inputSampleRate</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -297,7 +297,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -337,7 +337,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -352,7 +352,7 @@
 
 <p>Definition at line <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">113</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
 
-<p>References <a class="el" href="Plugin_8h-source.html#l00196">Vamp::Plugin::getMaxChannelCount()</a>, <a class="el" href="Plugin_8h-source.html#l00191">Vamp::Plugin::getMinChannelCount()</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00080">m_blockSize</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00085">m_dfMinus1</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00086">m_dfMinus2</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00084">m_priorMagnitudes</a>, and <a class="el" href="PercussionOnsetDetector_8h-source.html#l00079">m_stepSize</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">Vamp::Plugin::getMaxChannelCount()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">Vamp::Plugin::getMinChannelCount()</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00080">m_blockSize</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00085">m_dfMinus1</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00086">m_dfMinus2</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00084">m_priorMagnitudes</a>, and <a class="el" href="PercussionOnsetDetector_8h-source.html#l00079">m_stepSize</a>.</p>
 
 </div>
 </div><p>
@@ -365,7 +365,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -392,7 +392,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual]</code></td>
+          <td> const<code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -406,7 +406,7 @@
 
 <p>Definition at line <a class="el" href="PercussionOnsetDetector_8h-source.html#l00055">55</a> of file <a class="el" href="PercussionOnsetDetector_8h-source.html">PercussionOnsetDetector.h</a>.</p>
 
-<p>References <a class="el" href="Plugin_8h-source.html#l00149">Vamp::Plugin::FrequencyDomain</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">Vamp::Plugin::FrequencyDomain</a>.</p>
 
 </div>
 </div><p>
@@ -419,7 +419,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -446,7 +446,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -472,7 +472,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -498,7 +498,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -523,7 +523,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -548,7 +548,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -573,7 +573,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -599,7 +599,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -625,7 +625,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -639,7 +639,7 @@
 
 <p>Definition at line <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">145</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
 
-<p>References <a class="el" href="PluginBase_8h-source.html#l00166">Vamp::PluginBase::ParameterDescriptor::defaultValue</a>, <a class="el" href="PluginBase_8h-source.html#l00143">Vamp::PluginBase::ParameterDescriptor::description</a>, <a class="el" href="PluginBase_8h-source.html#l00132">Vamp::PluginBase::ParameterDescriptor::identifier</a>, <a class="el" href="PluginBase_8h-source.html#l00172">Vamp::PluginBase::ParameterDescriptor::isQuantized</a>, <a class="el" href="PluginBase_8h-source.html#l00158">Vamp::PluginBase::ParameterDescriptor::maxValue</a>, <a class="el" href="PluginBase_8h-source.html#l00153">Vamp::PluginBase::ParameterDescriptor::minValue</a>, <a class="el" href="PluginBase_8h-source.html#l00137">Vamp::PluginBase::ParameterDescriptor::name</a>, and <a class="el" href="PluginBase_8h-source.html#l00148">Vamp::PluginBase::ParameterDescriptor::unit</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00171">Vamp::PluginBase::ParameterDescriptor::defaultValue</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00148">Vamp::PluginBase::ParameterDescriptor::description</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00137">Vamp::PluginBase::ParameterDescriptor::identifier</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00177">Vamp::PluginBase::ParameterDescriptor::isQuantized</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00163">Vamp::PluginBase::ParameterDescriptor::maxValue</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00158">Vamp::PluginBase::ParameterDescriptor::minValue</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00142">Vamp::PluginBase::ParameterDescriptor::name</a>, and <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00153">Vamp::PluginBase::ParameterDescriptor::unit</a>.</p>
 
 </div>
 </div><p>
@@ -653,7 +653,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -690,7 +690,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -717,7 +717,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -731,7 +731,7 @@
 
 <p>Definition at line <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">196</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
 
-<p>References <a class="el" href="Plugin_8h-source.html#l00239">Vamp::Plugin::OutputDescriptor::binCount</a>, <a class="el" href="Plugin_8h-source.html#l00219">Vamp::Plugin::OutputDescriptor::description</a>, <a class="el" href="Plugin_8h-source.html#l00231">Vamp::Plugin::OutputDescriptor::hasFixedBinCount</a>, <a class="el" href="Plugin_8h-source.html#l00252">Vamp::Plugin::OutputDescriptor::hasKnownExtents</a>, <a class="el" href="Plugin_8h-source.html#l00206">Vamp::Plugin::OutputDescriptor::identifier</a>, <a class="el" href="Plugin_8h-source.html#l00270">Vamp::Plugin::OutputDescriptor::isQuantized</a>, <a class="el" href="Plugin_8h-source.html#l00397">Vamp::Plugin::m_inputSampleRate</a>, <a class="el" href="Plugin_8h-source.html#l00212">Vamp::Plugin::OutputDescriptor::name</a>, <a class="el" href="Plugin_8h-source.html#l00282">Vamp::Plugin::OutputDescriptor::OneSamplePerStep</a>, <a class="el" href="Plugin_8h-source.html#l00277">Vamp::Plugin::OutputDescriptor::quantizeStep</a>, <a class="el" href="Plugin_8h-source.html#l00306">Vamp::Plugin::OutputDescriptor::sampleRate</a>, <a class="el" href="Plugin_8h-source.html#l00294">Vamp::Plugin::OutputDescriptor::sampleType</a>, <a class="el" href="Plugin_8h-source.html#l00224">Vamp::Plugin::OutputDescriptor::unit</a>, and <a class="el" href="Plugin_8h-source.html#l00288">Vamp::Plugin::OutputDescriptor::VariableSampleRate</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00242">Vamp::Plugin::OutputDescriptor::binCount</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00222">Vamp::Plugin::OutputDescriptor::description</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00234">Vamp::Plugin::OutputDescriptor::hasFixedBinCount</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00255">Vamp::Plugin::OutputDescriptor::hasKnownExtents</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00209">Vamp::Plugin::OutputDescriptor::identifier</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00273">Vamp::Plugin::OutputDescriptor::isQuantized</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">Vamp::Plugin::m_inputSampleRate</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00215">Vamp::Plugin::OutputDescriptor::name</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00285">Vamp::Plugin::OutputDescriptor::OneSamplePerStep</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00280">Vamp::Plugin::OutputDescriptor::quantizeStep</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00309">Vamp::Plugin::OutputDescriptor::sampleRate</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00297">Vamp::Plugin::OutputDescriptor::sampleType</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00227">Vamp::Plugin::OutputDescriptor::unit</a>, and <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00291">Vamp::Plugin::OutputDescriptor::VariableSampleRate</a>.</p>
 
 </div>
 </div><p>
@@ -754,7 +754,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -763,14 +763,14 @@
 <p>
 Process a single block of input data. 
 <p>
-If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp will be the real time in seconds of the start of the supplied block of samples.<p>
+If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.<p>
 If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
 Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</a>.</p>
 
 <p>Definition at line <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">226</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
 
-<p>References <a class="el" href="RealTime_8cpp-source.html#l00232">Vamp::RealTime::frame2RealTime()</a>, <a class="el" href="Plugin_8h-source.html#l00325">Vamp::Plugin::Feature::hasTimestamp</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00080">m_blockSize</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00085">m_dfMinus1</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00086">m_dfMinus2</a>, <a class="el" href="Plugin_8h-source.html#l00397">Vamp::Plugin::m_inputSampleRate</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00084">m_priorMagnitudes</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00083">m_sensitivity</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00079">m_stepSize</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00082">m_threshold</a>, <a class="el" href="Plugin_8h-source.html#l00332">Vamp::Plugin::Feature::timestamp</a>, and <a class="el" href="Plugin_8h-source.html#l00339">Vamp::Plugin::Feature::values</a>.</p>
+<p>References <a class="el" href="structVamp_1_1RealTime.html#939b4b1d1ca190db69a418883f16ce8a">Vamp::RealTime::frame2RealTime()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00339">Vamp::Plugin::Feature::hasTimestamp</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00080">m_blockSize</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00085">m_dfMinus1</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00086">m_dfMinus2</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">Vamp::Plugin::m_inputSampleRate</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00084">m_priorMagnitudes</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00083">m_sensitivity</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00079">m_stepSize</a>, <a class="el" href="PercussionOnsetDetector_8h-source.html#l00082">m_threshold</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00347">Vamp::Plugin::Feature::timestamp</a>, and <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00369">Vamp::Plugin::Feature::values</a>.</p>
 
 </div>
 </div><p>
@@ -783,7 +783,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -795,7 +795,7 @@
 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00281">281</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
+<p>Definition at line <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00283">283</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -808,7 +808,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -820,9 +820,9 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00191">191</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">194</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00170">Vamp::HostExt::PluginWrapper::getMinChannelCount()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00093">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00095">SpectralCentroid::initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">Vamp::HostExt::PluginChannelAdapter::Impl::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">SpectralCentroid::initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">PowerSpectrum::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">FixedTempoEstimator::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -835,7 +835,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -847,9 +847,9 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00196">196</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">199</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00175">Vamp::HostExt::PluginWrapper::getMaxChannelCount()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00093">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00095">SpectralCentroid::initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">Vamp::HostExt::PluginChannelAdapter::Impl::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">SpectralCentroid::initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">PowerSpectrum::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">FixedTempoEstimator::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -862,7 +862,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -874,7 +874,7 @@
 Do not reimplement this function in your subclass. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00391">391</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00425">425</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -887,21 +887,21 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the <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 compatibility level of the plugin. 
+Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. 
 <p>
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00067">67</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00072">72</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00080">Vamp::HostExt::PluginWrapper::getVampApiVersion()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
 
 </div>
 </div><p>
@@ -914,7 +914,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -925,11 +925,9 @@
 <p>
 A program is a named shorthand for a set of parameter values; changing the program may cause the plugin to alter the values of its published parameters (and/or non-public internal processing parameters). The host should re-read the plugin's parameter values after setting a new program.<p>
 The programs must have unique names. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#7ac5681dcfe08b7b8a796bffc0aff3e3">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">Vamp::HostExt::PluginWrapper</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#e0cde5cd625418c1bc470b91f75daafc">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00229">229</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00140">Vamp::HostExt::PluginWrapper::getPrograms()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00237">237</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -942,7 +940,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -954,9 +952,7 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00234">234</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00146">Vamp::HostExt::PluginWrapper::getCurrentProgram()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00242">242</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -970,7 +966,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline, virtual, inherited]</code></td>
+          <td><code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -980,11 +976,9 @@
 Select a program. 
 <p>
 (If the given program name is not one of the available programs, do nothing.) 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00240">240</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00152">Vamp::HostExt::PluginWrapper::selectProgram()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00248">248</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -1135,17 +1129,17 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00397">397</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">431</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00047">Vamp::HostExt::PluginRateExtractor::getRate()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00238">Vamp::HostExt::PluginBufferingAdapter::PluginBufferingAdapter()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00113">Vamp::HostExt::PluginInputDomainAdapter::PluginInputDomainAdapter()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">process()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">getOutputDescriptors()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">process()</a>.</p>
 
 </div>
 </div><p>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="PercussionOnsetDetector_8h-source.html">PercussionOnsetDetector.h</a><li><a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classPercussionOnsetDetector__inherit__graph.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classPercussionOnsetDetector__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,2 +1,2 @@
-<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="41,82,140,106">
-<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="27,7,155,31">
+<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="41,80,140,107">
+<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="27,6,155,32">
Binary file code-doc/classPercussionOnsetDetector__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classPowerSpectrum-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,72 @@
+<!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: Member List</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>PowerSpectrum Member List</h1>This is the complete list of members for <a class="el" href="classPowerSpectrum.html">PowerSpectrum</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPowerSpectrum.html#708b4d335c57643d5ef2b2e1caf43bd9">getCopyright</a>() const </td><td><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">getCurrentProgram</a>() const </td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPowerSpectrum.html#7b48d56dc954f3af344f7e4dcd8993e5">getDescription</a>() const </td><td><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPowerSpectrum.html#9e9d8349461cbb88d7565a5e8c51b64e">getIdentifier</a>() const </td><td><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPowerSpectrum.html#e04e0e34847a93f3444d04c802ee56ef">getInputDomain</a>() const </td><td><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPowerSpectrum.html#9f3e3f759e2b67c771a41f1c276984b2">getMaker</a>() const </td><td><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">getMaxChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">getMinChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPowerSpectrum.html#c9214f9cafeeed3fca549c90aef57623">getName</a>() const </td><td><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPowerSpectrum.html#6aac5f93e3a8c033026d739fed427242">getOutputDescriptors</a>() const </td><td><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">getParameter</a>(std::string) const </td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">getParameterDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPowerSpectrum.html#d23d27e4e82f10404a37b933f6a72c33">getPluginVersion</a>() const </td><td><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">getPreferredBlockSize</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">getPreferredStepSize</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">getPrograms</a>() const </td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPowerSpectrum.html#c8a9661a785d38f4c5ce8ca2d53e69f9">getRemainingFeatures</a>()</td><td><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">getVampApiVersion</a>() const </td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPowerSpectrum.html#e2d046334c4bede5be72a0d97e4dfb29">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> enum name</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPowerSpectrum.html#399e997c033f26b07edb7cc83cd5a6d8">m_blockSize</a></td><td><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>(float inputSampleRate)</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPowerSpectrum.html#a2550486513a4abcf7b52869002947e7">PowerSpectrum</a>(float inputSampleRate)</td><td><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPowerSpectrum.html#a5664ffc2b37a16db471fae791c1f55f">process</a>(const float *const *inputBuffers, Vamp::RealTime timestamp)</td><td><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPowerSpectrum.html#091ba21e1697ea4208f42e8295c389d9">reset</a>()</td><td><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">selectProgram</a>(std::string)</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">setParameter</a>(std::string, float)</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">~Plugin</a>()</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPowerSpectrum.html#e7081e159ad1da5da1721b3048075306">~PowerSpectrum</a>()</td><td><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a></td><td><code> [virtual]</code></td></tr>
+</table></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classPowerSpectrum.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,1017 @@
+<!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: PowerSpectrum Class 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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>PowerSpectrum Class Reference</h1><!-- doxytag: class="PowerSpectrum" --><!-- doxytag: inherits="Vamp::Plugin" --><code>#include &lt;<a class="el" href="PowerSpectrum_8h-source.html">PowerSpectrum.h</a>&gt;</code>
+<p>
+<div class="dynheader">
+Inheritance diagram for PowerSpectrum:</div>
+<div class="dynsection">
+<p><center><img src="classPowerSpectrum__inherit__graph.png" border="0" usemap="#PowerSpectrum__inherit__map" alt="Inheritance graph"></center>
+<map name="PowerSpectrum__inherit__map">
+<area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="20,80,119,107"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,6,133,32"></map>
+<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
+
+<p>
+<a href="classPowerSpectrum-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
+Example plugin that returns a power spectrum calculated (trivially) from the frequency domain representation of each block of audio. 
+<p>
+This is one of the simplest possible <a class="el" href="namespaceVamp.html">Vamp</a> plugins, included as an example of how to return the appropriate value structure for this sort of visualisation. 
+<p>Definition at line <a class="el" href="PowerSpectrum_8h-source.html#l00050">50</a> of file <a class="el" href="PowerSpectrum_8h-source.html">PowerSpectrum.h</a>.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> { <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a>, 
+<a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a>
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector<br>
+&lt; <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; <a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; int, <br>
+<a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector<br>
+&lt; <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html#a2550486513a4abcf7b52869002947e7">PowerSpectrum</a> (float inputSampleRate)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html#e7081e159ad1da5da1721b3048075306">~PowerSpectrum</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html#e2d046334c4bede5be72a0d97e4dfb29">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames).  <a href="#e2d046334c4bede5be72a0d97e4dfb29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html#091ba21e1697ea4208f42e8295c389d9">reset</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the plugin after use, to prepare it for another clean run.  <a href="#091ba21e1697ea4208f42e8295c389d9"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html#e04e0e34847a93f3444d04c802ee56ef">getInputDomain</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#e04e0e34847a93f3444d04c802ee56ef"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html#9e9d8349461cbb88d7565a5e8c51b64e">getIdentifier</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#9e9d8349461cbb88d7565a5e8c51b64e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html#c9214f9cafeeed3fca549c90aef57623">getName</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a human-readable name or title of the plugin.  <a href="#c9214f9cafeeed3fca549c90aef57623"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html#7b48d56dc954f3af344f7e4dcd8993e5">getDescription</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a human-readable description for the plugin, typically a line of text that may optionally be displayed in addition to the plugin's "name".  <a href="#7b48d56dc954f3af344f7e4dcd8993e5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html#9f3e3f759e2b67c771a41f1c276984b2">getMaker</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the name of the author or vendor of the plugin in human-readable form.  <a href="#9f3e3f759e2b67c771a41f1c276984b2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html#d23d27e4e82f10404a37b933f6a72c33">getPluginVersion</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the version number of the plugin.  <a href="#d23d27e4e82f10404a37b933f6a72c33"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html#708b4d335c57643d5ef2b2e1caf43bd9">getCopyright</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the copyright statement or licensing summary for the plugin.  <a href="#708b4d335c57643d5ef2b2e1caf43bd9"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html#6aac5f93e3a8c033026d739fed427242">getOutputDescriptors</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#6aac5f93e3a8c033026d739fed427242"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html#a5664ffc2b37a16db471fae791c1f55f">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a> timestamp)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#a5664ffc2b37a16db471fae791c1f55f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html#c8a9661a785d38f4c5ce8ca2d53e69f9">getRemainingFeatures</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input.  <a href="#c8a9661a785d38f4c5ce8ca2d53e69f9"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">getPreferredBlockSize</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> function).  <a href="#a529adf83f87a603954eb31407602aac"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">getPreferredStepSize</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> function) for the plugin.  <a href="#514c716c22f81c055f19b56c3f882567"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">getMinChannelCount</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum supported number of input channels.  <a href="#267b42e866df3cf0d190893e8096f525"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">getMaxChannelCount</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum supported number of input channels.  <a href="#2c5ab12b6fa4847cb244bd1e9cb3ae5e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.  <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">getVampApiVersion</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.  <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">getParameterDescriptors</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#ac3e49b3b66cacfbb768dfdf07444f21"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">getParameter</a> (std::string) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of a named parameter.  <a href="#97ababcd45348ceec998d0f8e0f38bf7"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">setParameter</a> (std::string, float)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter.  <a href="#6c718ce822f7b73b98940d59dcaa9366"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">getPrograms</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#bb307c60bdb981d5f5af50c3c4ae84af"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">getCurrentProgram</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current program.  <a href="#24e77eccf1bdfbbca3c79bb25e8799b3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">selectProgram</a> (std::string)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select a program.  <a href="#add3a547ef140bae200473a9518e3353"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPowerSpectrum.html#399e997c033f26b07edb7cc83cd5a6d8">m_blockSize</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td></tr>
+
+</table>
+<hr><h2>Member Typedef Documentation</h2>
+<a class="anchor" name="30f531b8fb69fac41a24e3d2a6a08ed9"></a><!-- doxytag: member="PowerSpectrum::OutputList" ref="30f531b8fb69fac41a24e3d2a6a08ed9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Vamp::Plugin::OutputList</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00322">322</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="0730bc72c87fa02eb8d2854b233f7be1"></a><!-- doxytag: member="PowerSpectrum::FeatureList" ref="0730bc72c87fa02eb8d2854b233f7be1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">Vamp::Plugin::FeatureList</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00380">380</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="448fb57dc245d47923ec9eeaf9856c5f"></a><!-- doxytag: member="PowerSpectrum::FeatureSet" ref="448fb57dc245d47923ec9eeaf9856c5f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::map&lt;int, <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Vamp::Plugin::FeatureSet</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00382">382</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="3b6bb4bbd86affe1ca9deceea1aad4f8"></a><!-- doxytag: member="PowerSpectrum::ParameterList" ref="3b6bb4bbd86affe1ca9deceea1aad4f8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a>&gt; <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">Vamp::PluginBase::ParameterList</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="7f66f00437b21e5f694fe02356b12f20"></a><!-- doxytag: member="PowerSpectrum::ProgramList" ref="7f66f00437b21e5f694fe02356b12f20" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::vector&lt;std::string&gt; <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">Vamp::PluginBase::ProgramList</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bc"></a><!-- doxytag: member="PowerSpectrum::InputDomain" ref="39cb7649d6dcc20e4cb1640cd55907bc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Vamp::Plugin::InputDomain</a><code> [inherited]</code>          </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="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff"></a><!-- doxytag: member="TimeDomain" ref="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff" args="" -->TimeDomain</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53"></a><!-- doxytag: member="FrequencyDomain" ref="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53" args="" -->FrequencyDomain</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">152</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="a2550486513a4abcf7b52869002947e7"></a><!-- doxytag: member="PowerSpectrum::PowerSpectrum" ref="a2550486513a4abcf7b52869002947e7" args="(float inputSampleRate)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">PowerSpectrum::PowerSpectrum           </td>
+          <td>(</td>
+          <td class="paramtype">float&nbsp;</td>
+          <td class="paramname"> <em>inputSampleRate</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="PowerSpectrum_8cpp-source.html#l00045">45</a> of file <a class="el" href="PowerSpectrum_8cpp-source.html">PowerSpectrum.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="e7081e159ad1da5da1721b3048075306"></a><!-- doxytag: member="PowerSpectrum::~PowerSpectrum" ref="e7081e159ad1da5da1721b3048075306" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">PowerSpectrum::~PowerSpectrum           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="PowerSpectrum_8cpp-source.html#l00051">51</a> of file <a class="el" href="PowerSpectrum_8cpp-source.html">PowerSpectrum.cpp</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="e2d046334c4bede5be72a0d97e4dfb29"></a><!-- doxytag: member="PowerSpectrum::initialise" ref="e2d046334c4bede5be72a0d97e4dfb29" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool PowerSpectrum::initialise           </td>
+          <td>(</td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>inputChannels</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>stepSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>blockSize</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames). 
+<p>
+The input sample rate should have been already specified at construction time.<p>
+Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. 
+<p>Implements <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin</a>.</p>
+
+<p>Definition at line <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">92</a> of file <a class="el" href="PowerSpectrum_8cpp-source.html">PowerSpectrum.cpp</a>.</p>
+
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">Vamp::Plugin::getMaxChannelCount()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">Vamp::Plugin::getMinChannelCount()</a>, and <a class="el" href="PowerSpectrum_8h-source.html#l00076">m_blockSize</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="091ba21e1697ea4208f42e8295c389d9"></a><!-- doxytag: member="PowerSpectrum::reset" ref="091ba21e1697ea4208f42e8295c389d9" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void PowerSpectrum::reset           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Reset the plugin after use, to prepare it for another clean run. 
+<p>
+Not called for the first initialisation (i.e. initialise must also do a reset). 
+<p>Implements <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin</a>.</p>
+
+<p>Definition at line <a class="el" href="PowerSpectrum_8cpp-source.html#l00103">103</a> of file <a class="el" href="PowerSpectrum_8cpp-source.html">PowerSpectrum.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="e04e0e34847a93f3444d04c802ee56ef"></a><!-- doxytag: member="PowerSpectrum::getInputDomain" ref="e04e0e34847a93f3444d04c802ee56ef" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> PowerSpectrum::getInputDomain           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the plugin's required input domain. 
+<p>
+If this is TimeDomain, the samples provided to the <a class="el" href="classPowerSpectrum.html#a5664ffc2b37a16db471fae791c1f55f" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classPowerSpectrum.html#a5664ffc2b37a16db471fae791c1f55f" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
+<p>Implements <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>.</p>
+
+<p>Definition at line <a class="el" href="PowerSpectrum_8h-source.html#l00059">59</a> of file <a class="el" href="PowerSpectrum_8h-source.html">PowerSpectrum.h</a>.</p>
+
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">Vamp::Plugin::FrequencyDomain</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="9e9d8349461cbb88d7565a5e8c51b64e"></a><!-- doxytag: member="PowerSpectrum::getIdentifier" ref="9e9d8349461cbb88d7565a5e8c51b64e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string PowerSpectrum::getIdentifier           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the computer-usable name of the plugin. 
+<p>
+This should be reasonably short and contain no whitespace or punctuation characters. It may only contain the characters [a-zA-Z0-9_-]. This is the authoritative way for a program to identify a plugin within a given library.<p>
+This text may be visible to the user, but it should not be the main text used to identify a plugin to the user (that will be the name, below).<p>
+Example: "zero_crossings" 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="PowerSpectrum_8cpp-source.html#l00056">56</a> of file <a class="el" href="PowerSpectrum_8cpp-source.html">PowerSpectrum.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c9214f9cafeeed3fca549c90aef57623"></a><!-- doxytag: member="PowerSpectrum::getName" ref="c9214f9cafeeed3fca549c90aef57623" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string PowerSpectrum::getName           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get a human-readable name or title of the plugin. 
+<p>
+This should be brief and self-contained, as it may be used to identify the plugin to the user in isolation (i.e. without also showing the plugin's "identifier").<p>
+Example: "Zero Crossings" 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="PowerSpectrum_8cpp-source.html#l00062">62</a> of file <a class="el" href="PowerSpectrum_8cpp-source.html">PowerSpectrum.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="7b48d56dc954f3af344f7e4dcd8993e5"></a><!-- doxytag: member="PowerSpectrum::getDescription" ref="7b48d56dc954f3af344f7e4dcd8993e5" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string PowerSpectrum::getDescription           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get a human-readable description for the plugin, typically a line of text that may optionally be displayed in addition to the plugin's "name". 
+<p>
+May be empty if the name has said it all already.<p>
+Example: "Detect and count zero crossing points" 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="PowerSpectrum_8cpp-source.html#l00068">68</a> of file <a class="el" href="PowerSpectrum_8cpp-source.html">PowerSpectrum.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="9f3e3f759e2b67c771a41f1c276984b2"></a><!-- doxytag: member="PowerSpectrum::getMaker" ref="9f3e3f759e2b67c771a41f1c276984b2" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string PowerSpectrum::getMaker           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the name of the author or vendor of the plugin in human-readable form. 
+<p>
+This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="PowerSpectrum_8cpp-source.html#l00074">74</a> of file <a class="el" href="PowerSpectrum_8cpp-source.html">PowerSpectrum.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="d23d27e4e82f10404a37b933f6a72c33"></a><!-- doxytag: member="PowerSpectrum::getPluginVersion" ref="d23d27e4e82f10404a37b933f6a72c33" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int PowerSpectrum::getPluginVersion           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the version number of the plugin. 
+<p>
+
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="PowerSpectrum_8cpp-source.html#l00080">80</a> of file <a class="el" href="PowerSpectrum_8cpp-source.html">PowerSpectrum.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="708b4d335c57643d5ef2b2e1caf43bd9"></a><!-- doxytag: member="PowerSpectrum::getCopyright" ref="708b4d335c57643d5ef2b2e1caf43bd9" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string PowerSpectrum::getCopyright           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the copyright statement or licensing summary for the plugin. 
+<p>
+This can be an informative text, without the same presentation constraints as mentioned for getMaker above. 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="PowerSpectrum_8cpp-source.html#l00086">86</a> of file <a class="el" href="PowerSpectrum_8cpp-source.html">PowerSpectrum.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="6aac5f93e3a8c033026d739fed427242"></a><!-- doxytag: member="PowerSpectrum::getOutputDescriptors" ref="6aac5f93e3a8c033026d739fed427242" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">PowerSpectrum::OutputList</a> PowerSpectrum::getOutputDescriptors           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the outputs of this plugin. 
+<p>
+An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classPowerSpectrum.html#a5664ffc2b37a16db471fae791c1f55f" title="Process a single block of input data.">process()</a> call. 
+<p>Implements <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>.</p>
+
+<p>Definition at line <a class="el" href="PowerSpectrum_8cpp-source.html#l00108">108</a> of file <a class="el" href="PowerSpectrum_8cpp-source.html">PowerSpectrum.cpp</a>.</p>
+
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00242">Vamp::Plugin::OutputDescriptor::binCount</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00222">Vamp::Plugin::OutputDescriptor::description</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00234">Vamp::Plugin::OutputDescriptor::hasFixedBinCount</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00255">Vamp::Plugin::OutputDescriptor::hasKnownExtents</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00209">Vamp::Plugin::OutputDescriptor::identifier</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00273">Vamp::Plugin::OutputDescriptor::isQuantized</a>, <a class="el" href="PowerSpectrum_8h-source.html#l00076">m_blockSize</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00215">Vamp::Plugin::OutputDescriptor::name</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00285">Vamp::Plugin::OutputDescriptor::OneSamplePerStep</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00297">Vamp::Plugin::OutputDescriptor::sampleType</a>, and <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00227">Vamp::Plugin::OutputDescriptor::unit</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="a5664ffc2b37a16db471fae791c1f55f"></a><!-- doxytag: member="PowerSpectrum::process" ref="a5664ffc2b37a16db471fae791c1f55f" args="(const float *const *inputBuffers, Vamp::RealTime timestamp)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PowerSpectrum::FeatureSet</a> PowerSpectrum::process           </td>
+          <td>(</td>
+          <td class="paramtype">const float *const *&nbsp;</td>
+          <td class="paramname"> <em>inputBuffers</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a>&nbsp;</td>
+          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Process a single block of input data. 
+<p>
+If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.<p>
+If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
+Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) 
+<p>Implements <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</a>.</p>
+
+<p>Definition at line <a class="el" href="PowerSpectrum_8cpp-source.html#l00136">136</a> of file <a class="el" href="PowerSpectrum_8cpp-source.html">PowerSpectrum.cpp</a>.</p>
+
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00339">Vamp::Plugin::Feature::hasTimestamp</a>, <a class="el" href="PowerSpectrum_8h-source.html#l00076">m_blockSize</a>, and <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00369">Vamp::Plugin::Feature::values</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c8a9661a785d38f4c5ce8ca2d53e69f9"></a><!-- doxytag: member="PowerSpectrum::getRemainingFeatures" ref="c8a9661a785d38f4c5ce8ca2d53e69f9" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PowerSpectrum::FeatureSet</a> PowerSpectrum::getRemainingFeatures           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+After all blocks have been processed, calculate and return any remaining features derived from the complete input. 
+<p>
+
+<p>Implements <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>.</p>
+
+<p>Definition at line <a class="el" href="PowerSpectrum_8cpp-source.html#l00166">166</a> of file <a class="el" href="PowerSpectrum_8cpp-source.html">PowerSpectrum.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="a529adf83f87a603954eb31407602aac"></a><!-- doxytag: member="PowerSpectrum::getPreferredBlockSize" ref="a529adf83f87a603954eb31407602aac" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual size_t Vamp::Plugin::getPreferredBlockSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> function). 
+<p>
+This should be called before <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
+A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#21e45180b19873f9ab69fe7a4e184a03">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classFixedTempoEstimator.html#68b8569b71504a0478caf990dbe30683">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">PercussionOnsetDetector</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00174">174</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="514c716c22f81c055f19b56c3f882567"></a><!-- doxytag: member="PowerSpectrum::getPreferredStepSize" ref="514c716c22f81c055f19b56c3f882567" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual size_t Vamp::Plugin::getPreferredStepSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> function) for the plugin. 
+<p>
+This should be called before <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
+A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classFixedTempoEstimator.html#d450bb7e7df559ae3d68dfbfb085676f">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">PercussionOnsetDetector</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00189">189</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="267b42e866df3cf0d190893e8096f525"></a><!-- doxytag: member="PowerSpectrum::getMinChannelCount" ref="267b42e866df3cf0d190893e8096f525" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual size_t Vamp::Plugin::getMinChannelCount           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the minimum supported number of input channels. 
+<p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">Vamp::HostExt::PluginWrapper</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">194</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">SpectralCentroid::initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">FixedTempoEstimator::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="2c5ab12b6fa4847cb244bd1e9cb3ae5e"></a><!-- doxytag: member="PowerSpectrum::getMaxChannelCount" ref="2c5ab12b6fa4847cb244bd1e9cb3ae5e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual size_t Vamp::Plugin::getMaxChannelCount           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the maximum supported number of input channels. 
+<p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">Vamp::HostExt::PluginWrapper</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">199</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">SpectralCentroid::initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">FixedTempoEstimator::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="be13b3997a69fbcc09e2213faa352f91"></a><!-- doxytag: member="PowerSpectrum::getType" ref="be13b3997a69fbcc09e2213faa352f91" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual std::string Vamp::Plugin::getType           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>. 
+<p>
+Do not reimplement this function in your subclass. 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00425">425</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="8fd2c48291c64b790f0efb8948508dcf"></a><!-- doxytag: member="PowerSpectrum::getVampApiVersion" ref="8fd2c48291c64b790f0efb8948508dcf" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual unsigned int Vamp::PluginBase::getVampApiVersion           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. 
+<p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">Vamp::HostExt::PluginWrapper</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00072">72</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="ac3e49b3b66cacfbb768dfdf07444f21"></a><!-- doxytag: member="PowerSpectrum::getParameterDescriptors" ref="ac3e49b3b66cacfbb768dfdf07444f21" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> Vamp::PluginBase::getParameterDescriptors           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the controllable parameters of this plugin. 
+<p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#602faa0bfaae83e2ca53b36292271a76">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#e157465a4e07d180bab05b5c3a4d8987">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">PercussionOnsetDetector</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00208">208</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="97ababcd45348ceec998d0f8e0f38bf7"></a><!-- doxytag: member="PowerSpectrum::getParameter" ref="97ababcd45348ceec998d0f8e0f38bf7" args="(std::string) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual float Vamp::PluginBase::getParameter           </td>
+          <td>(</td>
+          <td class="paramtype">std::string&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the value of a named parameter. 
+<p>
+The argument is the identifier field from that parameter's descriptor. 
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#2030b05fb1228b30ace16200780c9152">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">PercussionOnsetDetector</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00216">216</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="6c718ce822f7b73b98940d59dcaa9366"></a><!-- doxytag: member="PowerSpectrum::setParameter" ref="6c718ce822f7b73b98940d59dcaa9366" args="(std::string, float)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void Vamp::PluginBase::setParameter           </td>
+          <td>(</td>
+          <td class="paramtype">std::string&nbsp;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&nbsp;</td>
+          <td class="paramname"></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set a named parameter. 
+<p>
+The first argument is the identifier field from that parameter's descriptor. 
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7a979b20c169d37adbd7b7d8b8a077b3">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#8a5a413025384cf451c64d2c2ce13a75">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">PercussionOnsetDetector</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00222">222</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="bb307c60bdb981d5f5af50c3c4ae84af"></a><!-- doxytag: member="PowerSpectrum::getPrograms" ref="bb307c60bdb981d5f5af50c3c4ae84af" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> Vamp::PluginBase::getPrograms           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the program settings available in this plugin. 
+<p>
+A program is a named shorthand for a set of parameter values; changing the program may cause the plugin to alter the values of its published parameters (and/or non-public internal processing parameters). The host should re-read the plugin's parameter values after setting a new program.<p>
+The programs must have unique names. 
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#e0cde5cd625418c1bc470b91f75daafc">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">Vamp::HostExt::PluginWrapper</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00237">237</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="24e77eccf1bdfbbca3c79bb25e8799b3"></a><!-- doxytag: member="PowerSpectrum::getCurrentProgram" ref="24e77eccf1bdfbbca3c79bb25e8799b3" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual std::string Vamp::PluginBase::getCurrentProgram           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the current program. 
+<p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">Vamp::HostExt::PluginWrapper</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00242">242</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="add3a547ef140bae200473a9518e3353"></a><!-- doxytag: member="PowerSpectrum::selectProgram" ref="add3a547ef140bae200473a9518e3353" args="(std::string)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void Vamp::PluginBase::selectProgram           </td>
+          <td>(</td>
+          <td class="paramtype">std::string&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Select a program. 
+<p>
+(If the given program name is not one of the available programs, do nothing.) 
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00248">248</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="399e997c033f26b07edb7cc83cd5a6d8"></a><!-- doxytag: member="PowerSpectrum::m_blockSize" ref="399e997c033f26b07edb7cc83cd5a6d8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t <a class="el" href="classPowerSpectrum.html#399e997c033f26b07edb7cc83cd5a6d8">PowerSpectrum::m_blockSize</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="PowerSpectrum_8h-source.html#l00076">76</a> of file <a class="el" href="PowerSpectrum_8h-source.html">PowerSpectrum.h</a>.</p>
+
+<p>Referenced by <a class="el" href="PowerSpectrum_8cpp-source.html#l00108">getOutputDescriptors()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">initialise()</a>, and <a class="el" href="PowerSpectrum_8cpp-source.html#l00136">process()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="59b9dd82a4f4eb946cd0474cc81abc23"></a><!-- doxytag: member="PowerSpectrum::m_inputSampleRate" ref="59b9dd82a4f4eb946cd0474cc81abc23" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">Vamp::Plugin::m_inputSampleRate</a><code> [protected, inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">431</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
+
+</div>
+</div><p>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="PowerSpectrum_8h-source.html">PowerSpectrum.h</a><li><a class="el" href="PowerSpectrum_8cpp-source.html">PowerSpectrum.cpp</a></ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classPowerSpectrum__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,2 @@
+<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="20,80,119,107">
+<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,6,133,32">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classPowerSpectrum__inherit__graph.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,1 @@
+7b6c37765986280671c8a1abfe3bbbf1
\ No newline at end of file
Binary file code-doc/classPowerSpectrum__inherit__graph.png has changed
--- a/code-doc/classSpectralCentroid-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classSpectralCentroid-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -66,8 +66,8 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classSpectralCentroid.html#483e0d6757bc3dcf61e8066f764f45c6">~SpectralCentroid</a>()</td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</a></td><td><code> [virtual]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classSpectralCentroid.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classSpectralCentroid.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -31,7 +31,7 @@
 <div class="dynsection">
 <p><center><img src="classSpectralCentroid__inherit__graph.png" border="0" usemap="#SpectralCentroid__inherit__map" alt="Inheritance graph"></center>
 <map name="SpectralCentroid__inherit__map">
-<area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="20,82,119,106"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,7,133,31"></map>
+<area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="20,80,119,107"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,6,133,32"></map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
 
 <p>
@@ -116,7 +116,7 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.  <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">getVampApiVersion</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <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 compatibility level of the plugin.  <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.  <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">getParameterDescriptors</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#ac3e49b3b66cacfbb768dfdf07444f21"></a><br></td></tr>
@@ -157,7 +157,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00309">309</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00322">322</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -174,7 +174,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00347">347</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00380">380</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -191,7 +191,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00348">348</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00382">382</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -208,7 +208,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00195">195</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -225,7 +225,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00217">217</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -251,7 +251,7 @@
 </table>
 </dl>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00149">149</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">152</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -266,7 +266,7 @@
           <td class="paramtype">float&nbsp;</td>
           <td class="paramname"> <em>inputSampleRate</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -274,7 +274,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00047">47</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00051">51</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -287,7 +287,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -295,7 +295,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00054">54</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00058">58</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -325,7 +325,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -338,9 +338,9 @@
 Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00095">95</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">99</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
 
-<p>References <a class="el" href="Plugin_8h-source.html#l00196">Vamp::Plugin::getMaxChannelCount()</a>, <a class="el" href="Plugin_8h-source.html#l00191">Vamp::Plugin::getMinChannelCount()</a>, <a class="el" href="SpectralCentroid_8h-source.html#l00074">m_blockSize</a>, and <a class="el" href="SpectralCentroid_8h-source.html#l00073">m_stepSize</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">Vamp::Plugin::getMaxChannelCount()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">Vamp::Plugin::getMinChannelCount()</a>, <a class="el" href="SpectralCentroid_8h-source.html#l00074">m_blockSize</a>, and <a class="el" href="SpectralCentroid_8h-source.html#l00073">m_stepSize</a>.</p>
 
 </div>
 </div><p>
@@ -353,7 +353,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -365,7 +365,7 @@
 Not called for the first initialisation (i.e. initialise must also do a reset). 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00107">107</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00111">111</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -378,7 +378,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual]</code></td>
+          <td> const<code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -392,7 +392,7 @@
 
 <p>Definition at line <a class="el" href="SpectralCentroid_8h-source.html#l00056">56</a> of file <a class="el" href="SpectralCentroid_8h-source.html">SpectralCentroid.h</a>.</p>
 
-<p>References <a class="el" href="Plugin_8h-source.html#l00149">Vamp::Plugin::FrequencyDomain</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">Vamp::Plugin::FrequencyDomain</a>.</p>
 
 </div>
 </div><p>
@@ -405,7 +405,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -419,7 +419,7 @@
 Example: "zero_crossings" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00059">59</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00063">63</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -432,7 +432,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -445,7 +445,7 @@
 Example: "Zero Crossings" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00065">65</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00069">69</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -458,7 +458,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -471,7 +471,7 @@
 Example: "Detect and count zero crossing points" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00071">71</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00075">75</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -484,7 +484,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -496,7 +496,7 @@
 This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00077">77</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00081">81</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -509,7 +509,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -521,7 +521,7 @@
 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00083">83</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00087">87</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -534,7 +534,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -546,7 +546,7 @@
 This can be an informative text, without the same presentation constraints as mentioned for getMaker above. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00089">89</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00093">93</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -559,7 +559,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -571,9 +571,9 @@
 An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classSpectralCentroid.html#ca96c70e7e75c9e4a7db38485018914c" title="Process a single block of input data.">process()</a> call. 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00112">112</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00116">116</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
 
-<p>References <a class="el" href="Plugin_8h-source.html#l00239">Vamp::Plugin::OutputDescriptor::binCount</a>, <a class="el" href="Plugin_8h-source.html#l00219">Vamp::Plugin::OutputDescriptor::description</a>, <a class="el" href="Plugin_8h-source.html#l00231">Vamp::Plugin::OutputDescriptor::hasFixedBinCount</a>, <a class="el" href="Plugin_8h-source.html#l00252">Vamp::Plugin::OutputDescriptor::hasKnownExtents</a>, <a class="el" href="Plugin_8h-source.html#l00206">Vamp::Plugin::OutputDescriptor::identifier</a>, <a class="el" href="Plugin_8h-source.html#l00270">Vamp::Plugin::OutputDescriptor::isQuantized</a>, <a class="el" href="Plugin_8h-source.html#l00212">Vamp::Plugin::OutputDescriptor::name</a>, <a class="el" href="Plugin_8h-source.html#l00282">Vamp::Plugin::OutputDescriptor::OneSamplePerStep</a>, <a class="el" href="Plugin_8h-source.html#l00294">Vamp::Plugin::OutputDescriptor::sampleType</a>, and <a class="el" href="Plugin_8h-source.html#l00224">Vamp::Plugin::OutputDescriptor::unit</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00242">Vamp::Plugin::OutputDescriptor::binCount</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00222">Vamp::Plugin::OutputDescriptor::description</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00234">Vamp::Plugin::OutputDescriptor::hasFixedBinCount</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00255">Vamp::Plugin::OutputDescriptor::hasKnownExtents</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00209">Vamp::Plugin::OutputDescriptor::identifier</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00273">Vamp::Plugin::OutputDescriptor::isQuantized</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00215">Vamp::Plugin::OutputDescriptor::name</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00285">Vamp::Plugin::OutputDescriptor::OneSamplePerStep</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00297">Vamp::Plugin::OutputDescriptor::sampleType</a>, and <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00227">Vamp::Plugin::OutputDescriptor::unit</a>.</p>
 
 </div>
 </div><p>
@@ -596,7 +596,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -605,14 +605,14 @@
 <p>
 Process a single block of input data. 
 <p>
-If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp will be the real time in seconds of the start of the supplied block of samples.<p>
+If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.<p>
 If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
 Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">137</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">141</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
 
-<p>References <a class="el" href="Plugin_8h-source.html#l00325">Vamp::Plugin::Feature::hasTimestamp</a>, <a class="el" href="SpectralCentroid_8h-source.html#l00074">m_blockSize</a>, <a class="el" href="Plugin_8h-source.html#l00397">Vamp::Plugin::m_inputSampleRate</a>, <a class="el" href="SpectralCentroid_8h-source.html#l00073">m_stepSize</a>, and <a class="el" href="Plugin_8h-source.html#l00339">Vamp::Plugin::Feature::values</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00339">Vamp::Plugin::Feature::hasTimestamp</a>, <a class="el" href="SpectralCentroid_8h-source.html#l00074">m_blockSize</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">Vamp::Plugin::m_inputSampleRate</a>, <a class="el" href="SpectralCentroid_8h-source.html#l00073">m_stepSize</a>, and <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00369">Vamp::Plugin::Feature::values</a>.</p>
 
 </div>
 </div><p>
@@ -625,7 +625,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -637,7 +637,7 @@
 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00184">184</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+<p>Definition at line <a class="el" href="SpectralCentroid_8cpp-source.html#l00187">187</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -650,7 +650,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -661,11 +661,11 @@
 <p>
 This should be called before <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>, and <a class="el" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#21e45180b19873f9ab69fe7a4e184a03">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classFixedTempoEstimator.html#68b8569b71504a0478caf990dbe30683">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00171">171</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00174">174</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00164">Vamp::HostExt::PluginWrapper::getPreferredBlockSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00283">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredBlockSize()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">Vamp::HostExt::PluginBufferingAdapter::Impl::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -678,7 +678,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -689,11 +689,11 @@
 <p>
 This should be called before <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>, and <a class="el" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classFixedTempoEstimator.html#d450bb7e7df559ae3d68dfbfb085676f">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00186">186</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00189">189</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00158">Vamp::HostExt::PluginWrapper::getPreferredStepSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00271">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredStepSize()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">Vamp::HostExt::PluginBufferingAdapter::Impl::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -706,7 +706,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -718,9 +718,9 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00191">191</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">194</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00170">Vamp::HostExt::PluginWrapper::getMinChannelCount()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00093">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00095">initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">Vamp::HostExt::PluginChannelAdapter::Impl::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">PowerSpectrum::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">FixedTempoEstimator::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -733,7 +733,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -745,9 +745,9 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00196">196</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">199</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00175">Vamp::HostExt::PluginWrapper::getMaxChannelCount()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00093">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00095">initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">Vamp::HostExt::PluginChannelAdapter::Impl::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">PowerSpectrum::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">FixedTempoEstimator::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -760,7 +760,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -772,7 +772,7 @@
 Do not reimplement this function in your subclass. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00391">391</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00425">425</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -785,21 +785,21 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the <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 compatibility level of the plugin. 
+Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. 
 <p>
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00067">67</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00072">72</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00080">Vamp::HostExt::PluginWrapper::getVampApiVersion()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
 
 </div>
 </div><p>
@@ -812,7 +812,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -822,11 +822,11 @@
 Get the controllable parameters of this plugin. 
 <p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#bfa93b20d9b5651a32042a9bb7c8df13">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">AmplitudeFollower</a>, and <a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#602faa0bfaae83e2ca53b36292271a76">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#e157465a4e07d180bab05b5c3a4d8987">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00200">200</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00208">208</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00122">Vamp::HostExt::PluginWrapper::getParameterDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
 
 </div>
 </div><p>
@@ -840,7 +840,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -850,11 +850,9 @@
 Get the value of a named parameter. 
 <p>
 The argument is the identifier field from that parameter's descriptor. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">AmplitudeFollower</a>, and <a class="el" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#2030b05fb1228b30ace16200780c9152">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00208">208</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00128">Vamp::HostExt::PluginWrapper::getParameter()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00216">216</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -877,7 +875,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [inline, virtual, inherited]</code></td>
+          <td></td><td></td><td><code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -887,11 +885,9 @@
 Set a named parameter. 
 <p>
 The first argument is the identifier field from that parameter's descriptor. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">AmplitudeFollower</a>, and <a class="el" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7a979b20c169d37adbd7b7d8b8a077b3">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#8a5a413025384cf451c64d2c2ce13a75">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00214">214</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00134">Vamp::HostExt::PluginWrapper::setParameter()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00222">222</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -904,7 +900,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -915,11 +911,9 @@
 <p>
 A program is a named shorthand for a set of parameter values; changing the program may cause the plugin to alter the values of its published parameters (and/or non-public internal processing parameters). The host should re-read the plugin's parameter values after setting a new program.<p>
 The programs must have unique names. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#7ac5681dcfe08b7b8a796bffc0aff3e3">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">Vamp::HostExt::PluginWrapper</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#e0cde5cd625418c1bc470b91f75daafc">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00229">229</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00140">Vamp::HostExt::PluginWrapper::getPrograms()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00237">237</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -932,7 +926,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -944,9 +938,7 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00234">234</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00146">Vamp::HostExt::PluginWrapper::getCurrentProgram()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00242">242</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -960,7 +952,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline, virtual, inherited]</code></td>
+          <td><code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -970,11 +962,9 @@
 Select a program. 
 <p>
 (If the given program name is not one of the available programs, do nothing.) 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00240">240</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00152">Vamp::HostExt::PluginWrapper::selectProgram()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00248">248</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -994,7 +984,7 @@
 
 <p>Definition at line <a class="el" href="SpectralCentroid_8h-source.html#l00073">73</a> of file <a class="el" href="SpectralCentroid_8h-source.html">SpectralCentroid.h</a>.</p>
 
-<p>Referenced by <a class="el" href="SpectralCentroid_8cpp-source.html#l00095">initialise()</a>, and <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">process()</a>.</p>
+<p>Referenced by <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">initialise()</a>, and <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">process()</a>.</p>
 
 </div>
 </div><p>
@@ -1013,7 +1003,7 @@
 
 <p>Definition at line <a class="el" href="SpectralCentroid_8h-source.html#l00074">74</a> of file <a class="el" href="SpectralCentroid_8h-source.html">SpectralCentroid.h</a>.</p>
 
-<p>Referenced by <a class="el" href="SpectralCentroid_8cpp-source.html#l00095">initialise()</a>, and <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">process()</a>.</p>
+<p>Referenced by <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">initialise()</a>, and <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">process()</a>.</p>
 
 </div>
 </div><p>
@@ -1030,17 +1020,17 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00397">397</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">431</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00047">Vamp::HostExt::PluginRateExtractor::getRate()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00238">Vamp::HostExt::PluginBufferingAdapter::PluginBufferingAdapter()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00113">Vamp::HostExt::PluginInputDomainAdapter::PluginInputDomainAdapter()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
 
 </div>
 </div><p>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="SpectralCentroid_8h-source.html">SpectralCentroid.h</a><li><a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classSpectralCentroid__inherit__graph.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classSpectralCentroid__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,2 +1,2 @@
-<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="20,82,119,106">
-<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,7,133,31">
+<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="20,80,119,107">
+<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,6,133,32">
Binary file code-doc/classSpectralCentroid__inherit__graph.png has changed
--- a/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -28,25 +28,29 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a065985fd864f6869d1bc7fea6fa2ece">getActualStepAndBlockSizes</a>(size_t &amp;stepSize, size_t &amp;blockSize)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">getCopyright</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">getCurrentProgram</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">getDescription</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">getIdentifier</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870">getInputDomain</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e203faf8384c9e1fddc381409aa8a214">getInputDomain</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">getMaker</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">getMaxChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">getMinChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">getName</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#85a027f5859efb31d315205e234e94c0">getOutputDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#f8cc914897a284433de220f1153f3845">getOutputDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">getParameter</a>(std::string) const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">getParameterDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">getParameterDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7045be875de9dd226d2e2a222e957de0">getPluginPreferredBlockSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#d7fad500331808b5cdf90f5a45019b02">getPluginPreferredStepSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">getPluginVersion</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">getPreferredBlockSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#21e45180b19873f9ab69fe7a4e184a03">getPreferredBlockSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">getPreferredStepSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">getPrograms</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#8771cba75552aaa1340b68de9bf1659c">getRemainingFeatures</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">getPrograms</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#28423951b2eda1a1fc371485434f417b">getRemainingFeatures</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">getVampApiVersion</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3">getWrapper</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> enum name</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">m_impl</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td><code> [protected]</code></td></tr>
@@ -57,19 +61,21 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>(float inputSampleRate)</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#1276bcfcbe1414b33eeefbd7b2b702fe">PluginBufferingAdapter</a>(Plugin *plugin)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#35cc2d42f8322f5022e89859a79c97be">PluginWrapper</a>(Plugin *plugin)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#262206b978d9de28ee4bb35f437e915e">process</a>(const float *const *inputBuffers, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#55058a20c1f8bffc0dc927350df778a0">process</a>(const float *const *inputBuffers, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a">reset</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">selectProgram</a>(std::string)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">setParameter</a>(std::string, float)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">selectProgram</a>(std::string)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7a979b20c169d37adbd7b7d8b8a077b3">setParameter</a>(std::string, float)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a80ae1bff6f95e805811df2c3770a98c">setPluginBlockSize</a>(size_t blockSize)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#c99898d78a01a7fad4def4d6c5fd3a7e">setPluginStepSize</a>(size_t stepSize)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">~Plugin</a>()</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#539423b54a4ede511476125f4a97d977">~PluginBufferingAdapter</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7449a364d524de75352a4719fec2e1f5">~PluginWrapper</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#96263f7b0910a10eeae86f20db007e55">~PluginBufferingAdapter</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c4fb6cfd7c0d3b2c8576a4e9dc61f518">~PluginWrapper</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,24 +26,24 @@
   </div>
 </div>
 <div class="contents">
-<h1>Vamp::HostExt::PluginBufferingAdapter Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginBufferingAdapter" --><!-- doxytag: inherits="Vamp::HostExt::PluginWrapper" --><code>#include &lt;<a class="el" href="PluginBufferingAdapter_8h-source.html">vamp-sdk/hostext/PluginBufferingAdapter.h</a>&gt;</code>
+<h1>Vamp::HostExt::PluginBufferingAdapter Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginBufferingAdapter" --><!-- doxytag: inherits="Vamp::HostExt::PluginWrapper" --><code>#include &lt;<a class="el" href="PluginBufferingAdapter_8h-source.html">vamp-hostsdk/PluginBufferingAdapter.h</a>&gt;</code>
 <p>
 <div class="dynheader">
 Inheritance diagram for Vamp::HostExt::PluginBufferingAdapter:</div>
 <div class="dynsection">
 <p><center><img src="classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.png" border="0" usemap="#Vamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__map" alt="Inheritance graph"></center>
 <map name="Vamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__map">
-<area shape="rect" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="31,156,231,180"><area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="81,81,180,105"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="67,6,195,30"></map>
+<area shape="rect" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="29,154,229,181"><area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="80,80,179,106"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="65,5,193,32"></map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
 
 <p>
 <a href="classVamp_1_1HostExt_1_1PluginBufferingAdapter-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-<a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a> is 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 adapter that allows plugins to be used by a host supplying an audio stream in non-overlapping buffers of arbitrary size. 
+<a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that allows plugins to be used by a host supplying an audio stream in non-overlapping buffers of arbitrary size. 
 <p>
 A host using <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a> may ignore the preferred step and block size reported by the plugin, and still expect the plugin to run. The value of blockSize and stepSize passed to initialise should be the size of the buffer which the host will supply; the stepSize should be equal to the blockSize.<p>
 If the internal step size used for the plugin differs from that supplied by the host, the adapter will modify the sample type and rate specifications for the plugin outputs appropriately, and set timestamps on the output features for outputs that formerly used a different sample rate specification. This is necessary in order to obtain correct time stamping.<p>
 In other respects, the <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a> behaves identically to the plugin that it wraps. The wrapped plugin will be deleted when the wrapper is deleted. 
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8h-source.html#l00072">72</a> of file <a class="el" href="PluginBufferingAdapter_8h-source.html">PluginBufferingAdapter.h</a>.</p>
+<p>Definition at line <a class="el" href="PluginBufferingAdapter_8h-source.html#l00075">75</a> of file <a class="el" href="PluginBufferingAdapter_8h-source.html">PluginBufferingAdapter.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
@@ -67,32 +67,57 @@
 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#1276bcfcbe1414b33eeefbd7b2b702fe">PluginBufferingAdapter</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#539423b54a4ede511476125f4a97d977">~PluginBufferingAdapter</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a> wrapping the given plugin.  <a href="#1276bcfcbe1414b33eeefbd7b2b702fe"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#96263f7b0910a10eeae86f20db007e55">~PluginBufferingAdapter</a> ()</td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">getPreferredStepSize</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the preferred step size for this adapter.  <a href="#2e66d009df69c951001e5d2786973d60"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#21e45180b19873f9ab69fe7a4e184a03">getPreferredBlockSize</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the preferred block size for this adapter.  <a href="#21e45180b19873f9ab69fe7a4e184a03"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames).  <a href="#9e7798ba4d7870db46502ab541ab37a8"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">getPreferredStepSize</a> () const </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialise the adapter (and therefore the plugin) for the given number of channels.  <a href="#9e7798ba4d7870db46502ab541ab37a8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#d7fad500331808b5cdf90f5a45019b02">getPluginPreferredStepSize</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#262206b978d9de28ee4bb35f437e915e" title="Process a single block of input data.">process()</a> function) for the plugin.  <a href="#2e66d009df69c951001e5d2786973d60"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#85a027f5859efb31d315205e234e94c0">getOutputDescriptors</a> () const </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the preferred step size of the plugin wrapped by this adapter.  <a href="#d7fad500331808b5cdf90f5a45019b02"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7045be875de9dd226d2e2a222e957de0">getPluginPreferredBlockSize</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#85a027f5859efb31d315205e234e94c0"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the preferred block size of the plugin wrapped by this adapter.  <a href="#7045be875de9dd226d2e2a222e957de0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#c99898d78a01a7fad4def4d6c5fd3a7e">setPluginStepSize</a> (size_t stepSize)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the step size that will be used for the underlying plugin when <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8" title="Initialise the adapter (and therefore the plugin) for the given number of channels...">initialise()</a> is called.  <a href="#c99898d78a01a7fad4def4d6c5fd3a7e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a80ae1bff6f95e805811df2c3770a98c">setPluginBlockSize</a> (size_t blockSize)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the block size that will be used for the underlying plugin when <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8" title="Initialise the adapter (and therefore the plugin) for the given number of channels...">initialise()</a> is called.  <a href="#a80ae1bff6f95e805811df2c3770a98c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a065985fd864f6869d1bc7fea6fa2ece">getActualStepAndBlockSizes</a> (size_t &amp;stepSize, size_t &amp;blockSize)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the step and block sizes that were actually used when initialising the underlying plugin.  <a href="#a065985fd864f6869d1bc7fea6fa2ece"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7a979b20c169d37adbd7b7d8b8a077b3">setParameter</a> (std::string, float)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter.  <a href="#7a979b20c169d37adbd7b7d8b8a077b3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">selectProgram</a> (std::string)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select a program.  <a href="#3cc7000e0aff525950e0a286b87f8927"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#f8cc914897a284433de220f1153f3845">getOutputDescriptors</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#f8cc914897a284433de220f1153f3845"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a">reset</a> ()</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the plugin after use, to prepare it for another clean run.  <a href="#131fd9fe8a1795d7370d8a721176868a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#262206b978d9de28ee4bb35f437e915e">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#55058a20c1f8bffc0dc927350df778a0">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#262206b978d9de28ee4bb35f437e915e"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#8771cba75552aaa1340b68de9bf1659c">getRemainingFeatures</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#55058a20c1f8bffc0dc927350df778a0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#28423951b2eda1a1fc371485434f417b">getRemainingFeatures</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input.  <a href="#8771cba75552aaa1340b68de9bf1659c"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870">getInputDomain</a> () const </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input.  <a href="#28423951b2eda1a1fc371485434f417b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e203faf8384c9e1fddc381409aa8a214">getInputDomain</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#031aa818fd48fd0f4b5e1bf80c032870"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#e203faf8384c9e1fddc381409aa8a214"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">getVampApiVersion</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <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 compatibility level of the plugin.  <a href="#74147fda6b44ff2169bd4a1eea0d46ff"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.  <a href="#74147fda6b44ff2169bd4a1eea0d46ff"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">getIdentifier</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#4baa9e48f717c2b3e7f92496aa39d904"></a><br></td></tr>
@@ -111,46 +136,38 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">getCopyright</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the copyright statement or licensing summary for the plugin.  <a href="#e14f6ecb78be909c4cd5f0cdaed3c566"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">getParameterDescriptors</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">getParameterDescriptors</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#3b075b8f950b344503f0d27ac0fe332e"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#9be71561265c2e6e43b7feaddaa91f36"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">getParameter</a> (std::string) const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of a named parameter.  <a href="#034920f56c8d7609a85447c42556048c"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">setParameter</a> (std::string, float)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">getPrograms</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter.  <a href="#651b15a5dc4c27942ac0c87c6092bfe5"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">getPrograms</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#f3abaf717dc4b00cad5770ed6dfa01e1"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#131fbe1df81215020b9aa8cecef4c802"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">getCurrentProgram</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current program.  <a href="#7a312dd42d161064b70afd7ff24c0651"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">selectProgram</a> (std::string)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select a program.  <a href="#074978333a74fdcf336a8a1d8ea20abf"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">getPreferredBlockSize</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function).  <a href="#2c62a656313a819650656643a867ad01"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">getMinChannelCount</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum supported number of input channels.  <a href="#2b28f1cf37d46a514f1e1411a6037bf8"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">getMaxChannelCount</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum supported number of input channels.  <a href="#985eb21f1827bfbc3950d6871b107a58"></a><br></td></tr>
+<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename WrapperType&gt; </td></tr>
+<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">WrapperType *&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3">getWrapper</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.  <a href="#e9d79bed7237d55a73018a6b982a55b3"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.  <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
 <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Impl</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">m_impl</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">Impl *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">m_impl</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td></tr>
 
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Impl</a></td></tr>
-
 </table>
 <hr><h2>Member Typedef Documentation</h2>
 <a class="anchor" name="30f531b8fb69fac41a24e3d2a6a08ed9"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::OutputList" ref="30f531b8fb69fac41a24e3d2a6a08ed9" args="" -->
@@ -166,7 +183,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00309">309</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00322">322</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -183,7 +200,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00347">347</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00380">380</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -200,7 +217,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00348">348</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00382">382</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -217,7 +234,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00195">195</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -234,7 +251,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00217">217</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -260,7 +277,7 @@
 </table>
 </dl>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00149">149</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">152</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -275,7 +292,28 @@
           <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
           <td class="paramname"> <em>plugin</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Construct a <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a> wrapping the given plugin. 
+<p>
+The adapter takes ownership of the plugin, which will be deleted when the adapter is deleted. 
+</div>
+</div><p>
+<a class="anchor" name="96263f7b0910a10eeae86f20db007e55"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::~PluginBufferingAdapter" ref="96263f7b0910a10eeae86f20db007e55" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual Vamp::HostExt::PluginBufferingAdapter::~PluginBufferingAdapter           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -283,36 +321,56 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00238">238</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8h-source.html#l00091">m_impl</a>, and <a class="el" href="Plugin_8h-source.html#l00397">Vamp::Plugin::m_inputSampleRate</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="539423b54a4ede511476125f4a97d977"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::~PluginBufferingAdapter" ref="539423b54a4ede511476125f4a97d977" args="()" -->
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="2e66d009df69c951001e5d2786973d60"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getPreferredStepSize" ref="2e66d009df69c951001e5d2786973d60" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">Vamp::HostExt::PluginBufferingAdapter::~PluginBufferingAdapter           </td>
+          <td class="memname">size_t Vamp::HostExt::PluginBufferingAdapter::getPreferredStepSize           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00244">244</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8h-source.html#l00091">m_impl</a>.</p>
+Return the preferred step size for this adapter. 
+<p>
+Because of the way this adapter works, its preferred step size will always be the same as its preferred block size. This may or may not be the same as the preferred step size of the underlying plugin, which may be obtained by calling <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#d7fad500331808b5cdf90f5a45019b02" title="Return the preferred step size of the plugin wrapped by this adapter.">getPluginPreferredStepSize()</a>. 
+<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>.</p>
 
 </div>
 </div><p>
-<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="21e45180b19873f9ab69fe7a4e184a03"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getPreferredBlockSize" ref="21e45180b19873f9ab69fe7a4e184a03" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t Vamp::HostExt::PluginBufferingAdapter::getPreferredBlockSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Return the preferred block size for this adapter. 
+<p>
+This may or may not be the same as the preferred block size of the underlying plugin, which may be obtained by calling <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7045be875de9dd226d2e2a222e957de0" title="Return the preferred block size of the plugin wrapped by this adapter.">getPluginPreferredBlockSize()</a>.<p>
+Note that this adapter may be initialised with any block size, not just its supposedly preferred one. 
+<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>.</p>
+
+</div>
+</div><p>
 <a class="anchor" name="9e7798ba4d7870db46502ab541ab37a8"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::initialise" ref="9e7798ba4d7870db46502ab541ab37a8" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
 <div class="memitem">
 <div class="memproto">
@@ -321,7 +379,7 @@
           <td class="memname">bool Vamp::HostExt::PluginBufferingAdapter::initialise           </td>
           <td>(</td>
           <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>inputChannels</em>, </td>
+          <td class="paramname"> <em>channels</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
@@ -338,63 +396,205 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames). 
+Initialise the adapter (and therefore the plugin) for the given number of channels. 
 <p>
-The input sample rate should have been already specified at construction time.<p>
-Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. 
+Initialise the adapter for the given step and block size, which must be equal.<p>
+The step and block size used for the underlying plugin will depend on its preferences, or any values previously passed to setPluginStepSize and setPluginBlockSize. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00250">250</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">Vamp::HostExt::PluginBufferingAdapter::Impl::initialise()</a>, and <a class="el" href="PluginBufferingAdapter_8h-source.html#l00091">m_impl</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="2e66d009df69c951001e5d2786973d60"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getPreferredStepSize" ref="2e66d009df69c951001e5d2786973d60" args="() const " -->
+<a class="anchor" name="d7fad500331808b5cdf90f5a45019b02"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getPluginPreferredStepSize" ref="d7fad500331808b5cdf90f5a45019b02" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">size_t Vamp::HostExt::PluginBufferingAdapter::getPreferredStepSize           </td>
+          <td class="memname">size_t Vamp::HostExt::PluginBufferingAdapter::getPluginPreferredStepSize           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const</td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#262206b978d9de28ee4bb35f437e915e" title="Process a single block of input data.">process()</a> function) for the plugin. 
+Return the preferred step size of the plugin wrapped by this adapter. 
 <p>
-This should be called before <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
-A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
-<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00308">308</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8cpp-source.html#l00164">Vamp::HostExt::PluginWrapper::getPreferredBlockSize()</a>.</p>
-
+This is included mainly for informational purposes. This value is not likely to be a valid step size for the adapter itself, and it is not usually of any use in interpreting the results (because the adapter re-writes OneSamplePerStep outputs to FixedSampleRate so that the hop size no longer needs to be known beforehand in order to interpret them). 
 </div>
 </div><p>
-<a class="anchor" name="85a027f5859efb31d315205e234e94c0"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getOutputDescriptors" ref="85a027f5859efb31d315205e234e94c0" args="() const " -->
+<a class="anchor" name="7045be875de9dd226d2e2a222e957de0"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getPluginPreferredBlockSize" ref="7045be875de9dd226d2e2a222e957de0" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">PluginBufferingAdapter::OutputList</a> Vamp::HostExt::PluginBufferingAdapter::getOutputDescriptors           </td>
+          <td class="memname">size_t Vamp::HostExt::PluginBufferingAdapter::getPluginPreferredBlockSize           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Return the preferred block size of the plugin wrapped by this adapter. 
+<p>
+This is included mainly for informational purposes. 
+</div>
+</div><p>
+<a class="anchor" name="c99898d78a01a7fad4def4d6c5fd3a7e"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::setPluginStepSize" ref="c99898d78a01a7fad4def4d6c5fd3a7e" args="(size_t stepSize)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void Vamp::HostExt::PluginBufferingAdapter::setPluginStepSize           </td>
+          <td>(</td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>stepSize</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set the step size that will be used for the underlying plugin when <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8" title="Initialise the adapter (and therefore the plugin) for the given number of channels...">initialise()</a> is called. 
+<p>
+If this is not set, the plugin's own preferred step size will be used. You will not usually need to call this function. If you do call it, it must be before the first call to <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8" title="Initialise the adapter (and therefore the plugin) for the given number of channels...">initialise()</a>. 
+</div>
+</div><p>
+<a class="anchor" name="a80ae1bff6f95e805811df2c3770a98c"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::setPluginBlockSize" ref="a80ae1bff6f95e805811df2c3770a98c" args="(size_t blockSize)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void Vamp::HostExt::PluginBufferingAdapter::setPluginBlockSize           </td>
+          <td>(</td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>blockSize</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set the block size that will be used for the underlying plugin when <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8" title="Initialise the adapter (and therefore the plugin) for the given number of channels...">initialise()</a> is called. 
+<p>
+If this is not set, the plugin's own preferred block size will be used. You will not usually need to call this function. If you do call it, it must be before the first call to <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8" title="Initialise the adapter (and therefore the plugin) for the given number of channels...">initialise()</a>. 
+</div>
+</div><p>
+<a class="anchor" name="a065985fd864f6869d1bc7fea6fa2ece"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getActualStepAndBlockSizes" ref="a065985fd864f6869d1bc7fea6fa2ece" args="(size_t &amp;stepSize, size_t &amp;blockSize)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void Vamp::HostExt::PluginBufferingAdapter::getActualStepAndBlockSizes           </td>
+          <td>(</td>
+          <td class="paramtype">size_t &amp;&nbsp;</td>
+          <td class="paramname"> <em>stepSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t &amp;&nbsp;</td>
+          <td class="paramname"> <em>blockSize</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Return the step and block sizes that were actually used when initialising the underlying plugin. 
+<p>
+This is included mainly for informational purposes. You will not usually need to call this function. If this is called before <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8" title="Initialise the adapter (and therefore the plugin) for the given number of channels...">initialise()</a>, it will return 0 for both values. If it is called after a failed call to <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8" title="Initialise the adapter (and therefore the plugin) for the given number of channels...">initialise()</a>, it will return the values that were used in the failed call to the plugin's <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8" title="Initialise the adapter (and therefore the plugin) for the given number of channels...">initialise()</a> function. 
+</div>
+</div><p>
+<a class="anchor" name="7a979b20c169d37adbd7b7d8b8a077b3"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::setParameter" ref="7a979b20c169d37adbd7b7d8b8a077b3" args="(std::string, float)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void Vamp::HostExt::PluginBufferingAdapter::setParameter           </td>
+          <td>(</td>
+          <td class="paramtype">std::string&nbsp;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&nbsp;</td>
+          <td class="paramname"></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set a named parameter. 
+<p>
+The first argument is the identifier field from that parameter's descriptor. 
+<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">Vamp::HostExt::PluginWrapper</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="3cc7000e0aff525950e0a286b87f8927"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::selectProgram" ref="3cc7000e0aff525950e0a286b87f8927" args="(std::string)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void Vamp::HostExt::PluginBufferingAdapter::selectProgram           </td>
+          <td>(</td>
+          <td class="paramtype">std::string&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Select a program. 
+<p>
+(If the given program name is not one of the available programs, do nothing.) 
+<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="f8cc914897a284433de220f1153f3845"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getOutputDescriptors" ref="f8cc914897a284433de220f1153f3845" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> Vamp::HostExt::PluginBufferingAdapter::getOutputDescriptors           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -403,12 +603,8 @@
 <p>
 Get the outputs of this plugin. 
 <p>
-An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#262206b978d9de28ee4bb35f437e915e" title="Process a single block of input data.">process()</a> call. 
-<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace">Vamp::HostExt::PluginWrapper</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00256">256</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00367">Vamp::HostExt::PluginBufferingAdapter::Impl::getOutputDescriptors()</a>, and <a class="el" href="PluginBufferingAdapter_8h-source.html#l00091">m_impl</a>.</p>
+An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#55058a20c1f8bffc0dc927350df778a0" title="Process a single block of input data.">process()</a> call. 
+<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#5a9411305f713b4c9827844b89acd270">Vamp::HostExt::PluginWrapper</a>.</p>
 
 </div>
 </div><p>
@@ -421,7 +617,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -433,18 +629,14 @@
 Not called for the first initialisation (i.e. initialise must also do a reset). 
 <p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00262">262</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8h-source.html#l00091">m_impl</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00406">Vamp::HostExt::PluginBufferingAdapter::Impl::reset()</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="262206b978d9de28ee4bb35f437e915e"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::process" ref="262206b978d9de28ee4bb35f437e915e" args="(const float *const *inputBuffers, RealTime timestamp)" -->
+<a class="anchor" name="55058a20c1f8bffc0dc927350df778a0"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::process" ref="55058a20c1f8bffc0dc927350df778a0" args="(const float *const *inputBuffers, RealTime timestamp)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginBufferingAdapter::FeatureSet</a> Vamp::HostExt::PluginBufferingAdapter::process           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::HostExt::PluginBufferingAdapter::process           </td>
           <td>(</td>
           <td class="paramtype">const float *const *&nbsp;</td>
           <td class="paramname"> <em>inputBuffers</em>, </td>
@@ -458,7 +650,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -467,27 +659,23 @@
 <p>
 Process a single block of input data. 
 <p>
-If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp will be the real time in seconds of the start of the supplied block of samples.<p>
+If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.<p>
 If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
 Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) 
-<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7">Vamp::HostExt::PluginWrapper</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00268">268</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8h-source.html#l00091">m_impl</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00417">Vamp::HostExt::PluginBufferingAdapter::Impl::process()</a>.</p>
+<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf">Vamp::HostExt::PluginWrapper</a>.</p>
 
 </div>
 </div><p>
-<a class="anchor" name="8771cba75552aaa1340b68de9bf1659c"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getRemainingFeatures" ref="8771cba75552aaa1340b68de9bf1659c" args="()" -->
+<a class="anchor" name="28423951b2eda1a1fc371485434f417b"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getRemainingFeatures" ref="28423951b2eda1a1fc371485434f417b" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginBufferingAdapter::FeatureSet</a> Vamp::HostExt::PluginBufferingAdapter::getRemainingFeatures           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::HostExt::PluginBufferingAdapter::getRemainingFeatures           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -497,24 +685,20 @@
 After all blocks have been processed, calculate and return any remaining features derived from the complete input. 
 <p>
 
-<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe">Vamp::HostExt::PluginWrapper</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00275">275</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00452">Vamp::HostExt::PluginBufferingAdapter::Impl::getRemainingFeatures()</a>, and <a class="el" href="PluginBufferingAdapter_8h-source.html#l00091">m_impl</a>.</p>
+<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2bc8c0992e64f06991fb7cf89f99857e">Vamp::HostExt::PluginWrapper</a>.</p>
 
 </div>
 </div><p>
-<a class="anchor" name="031aa818fd48fd0f4b5e1bf80c032870"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getInputDomain" ref="031aa818fd48fd0f4b5e1bf80c032870" args="() const " -->
+<a class="anchor" name="e203faf8384c9e1fddc381409aa8a214"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getInputDomain" ref="e203faf8384c9e1fddc381409aa8a214" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Plugin::InputDomain</a> Vamp::HostExt::PluginWrapper::getInputDomain           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> Vamp::HostExt::PluginWrapper::getInputDomain           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -523,14 +707,10 @@
 <p>
 Get the plugin's required input domain. 
 <p>
-If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
+If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>.</p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#376fa97a1c721255541fe35d71368976">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00074">74</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin::getInputDomain()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#47ff1ed72889f323da63f8abc9ea581a">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
 
 </div>
 </div><p>
@@ -543,22 +723,18 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the <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 compatibility level of the plugin. 
+Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. 
 <p>
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00080">80</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00067">Vamp::PluginBase::getVampApiVersion()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="4baa9e48f717c2b3e7f92496aa39d904"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getIdentifier" ref="4baa9e48f717c2b3e7f92496aa39d904" args="() const " -->
@@ -570,7 +746,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -584,10 +760,6 @@
 Example: "zero_crossings" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00086">86</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase::getIdentifier()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="c70a3265bb25aeb03f6dd8f8a0442088"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getName" ref="c70a3265bb25aeb03f6dd8f8a0442088" args="() const " -->
@@ -599,7 +771,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -612,10 +784,6 @@
 Example: "Zero Crossings" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00092">92</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase::getName()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="c334f699c0996055942785410d8a065c"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getDescription" ref="c334f699c0996055942785410d8a065c" args="() const " -->
@@ -627,7 +795,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -640,10 +808,6 @@
 Example: "Detect and count zero crossing points" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00098">98</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase::getDescription()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="59d5a2298951b317995675e664b1c7bb"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getMaker" ref="59d5a2298951b317995675e664b1c7bb" args="() const " -->
@@ -655,7 +819,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -667,10 +831,6 @@
 This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00104">104</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase::getMaker()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="47e1acf1696813008324a915c9ba59c5"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getPluginVersion" ref="47e1acf1696813008324a915c9ba59c5" args="() const " -->
@@ -682,7 +842,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -694,10 +854,6 @@
 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00110">110</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase::getPluginVersion()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="e14f6ecb78be909c4cd5f0cdaed3c566"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getCopyright" ref="e14f6ecb78be909c4cd5f0cdaed3c566" args="() const " -->
@@ -709,7 +865,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -721,22 +877,18 @@
 This can be an informative text, without the same presentation constraints as mentioned for getMaker above. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00116">116</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase::getCopyright()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="3b075b8f950b344503f0d27ac0fe332e"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getParameterDescriptors" ref="3b075b8f950b344503f0d27ac0fe332e" args="() const " -->
+<a class="anchor" name="9be71561265c2e6e43b7feaddaa91f36"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getParameterDescriptors" ref="9be71561265c2e6e43b7feaddaa91f36" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">PluginBase::ParameterList</a> Vamp::HostExt::PluginWrapper::getParameterDescriptors           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> Vamp::HostExt::PluginWrapper::getParameterDescriptors           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -748,10 +900,6 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00122">122</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00200">Vamp::PluginBase::getParameterDescriptors()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="034920f56c8d7609a85447c42556048c"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getParameter" ref="034920f56c8d7609a85447c42556048c" args="(std::string) const " -->
@@ -764,7 +912,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -776,59 +924,18 @@
 The argument is the identifier field from that parameter's descriptor. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00128">128</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00208">Vamp::PluginBase::getParameter()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="651b15a5dc4c27942ac0c87c6092bfe5"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::setParameter" ref="651b15a5dc4c27942ac0c87c6092bfe5" args="(std::string, float)" -->
+<a class="anchor" name="131fbe1df81215020b9aa8cecef4c802"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getPrograms" ref="131fbe1df81215020b9aa8cecef4c802" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">void Vamp::HostExt::PluginWrapper::setParameter           </td>
-          <td>(</td>
-          <td class="paramtype">std::string&nbsp;</td>
-          <td class="paramname">, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">float&nbsp;</td>
-          <td class="paramname"></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Set a named parameter. 
-<p>
-The first argument is the identifier field from that parameter's descriptor. 
-<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00134">134</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>, and <a class="el" href="PluginBase_8h-source.html#l00214">Vamp::PluginBase::setParameter()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="f3abaf717dc4b00cad5770ed6dfa01e1"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getPrograms" ref="f3abaf717dc4b00cad5770ed6dfa01e1" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">PluginBase::ProgramList</a> Vamp::HostExt::PluginWrapper::getPrograms           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> Vamp::HostExt::PluginWrapper::getPrograms           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -841,10 +948,6 @@
 The programs must have unique names. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00140">140</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00229">Vamp::PluginBase::getPrograms()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="7a312dd42d161064b70afd7ff24c0651"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getCurrentProgram" ref="7a312dd42d161064b70afd7ff24c0651" args="() const " -->
@@ -856,7 +959,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -868,70 +971,6 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00146">146</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00234">Vamp::PluginBase::getCurrentProgram()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="074978333a74fdcf336a8a1d8ea20abf"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::selectProgram" ref="074978333a74fdcf336a8a1d8ea20abf" args="(std::string)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::HostExt::PluginWrapper::selectProgram           </td>
-          <td>(</td>
-          <td class="paramtype">std::string&nbsp;</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Select a program. 
-<p>
-(If the given program name is not one of the available programs, do nothing.) 
-<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00152">152</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>, and <a class="el" href="PluginBase_8h-source.html#l00240">Vamp::PluginBase::selectProgram()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="2c62a656313a819650656643a867ad01"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getPreferredBlockSize" ref="2c62a656313a819650656643a867ad01" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t Vamp::HostExt::PluginWrapper::getPreferredBlockSize           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function). 
-<p>
-This should be called before <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
-A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
-<p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">Vamp::Plugin</a>.</p>
-
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00164">164</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00171">Vamp::Plugin::getPreferredBlockSize()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00308">getPreferredStepSize()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="2b28f1cf37d46a514f1e1411a6037bf8"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getMinChannelCount" ref="2b28f1cf37d46a514f1e1411a6037bf8" args="() const " -->
@@ -943,7 +982,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -955,10 +994,6 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00170">170</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00191">Vamp::Plugin::getMinChannelCount()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="985eb21f1827bfbc3950d6871b107a58"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getMaxChannelCount" ref="985eb21f1827bfbc3950d6871b107a58" args="() const " -->
@@ -970,7 +1005,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -982,9 +1017,34 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00175">175</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
+</div>
+</div><p>
+<a class="anchor" name="e9d79bed7237d55a73018a6b982a55b3"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getWrapper" ref="e9d79bed7237d55a73018a6b982a55b3" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename WrapperType&gt; </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">WrapperType* Vamp::HostExt::PluginWrapper::getWrapper           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [inline, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
 
-<p>References <a class="el" href="Plugin_8h-source.html#l00196">Vamp::Plugin::getMaxChannelCount()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
+<p>
+Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present. 
+<p>
+This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f" title="Load a Vamp plugin, given its identifying key.">PluginLoader::loadPlugin</a> may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type. 
+<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00116">116</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
+
+<p>References <a class="el" href="PluginWrapper_8h-source.html#l00116">Vamp::HostExt::PluginWrapper::getWrapper()</a>.</p>
+
+<p>Referenced by <a class="el" href="PluginWrapper_8h-source.html#l00116">Vamp::HostExt::PluginWrapper::getWrapper()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -997,7 +1057,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -1009,7 +1069,7 @@
 Do not reimplement this function in your subclass. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00391">391</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00425">425</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -1019,7 +1079,7 @@
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Impl</a>* <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">Vamp::HostExt::PluginBufferingAdapter::m_impl</a><code> [protected]</code>          </td>
+          <td class="memname">Impl* <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">Vamp::HostExt::PluginBufferingAdapter::m_impl</a><code> [protected]</code>          </td>
         </tr>
       </table>
 </div>
@@ -1027,9 +1087,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8h-source.html#l00091">91</a> of file <a class="el" href="PluginBufferingAdapter_8h-source.html">PluginBufferingAdapter.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00256">getOutputDescriptors()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00275">getRemainingFeatures()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00250">initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00238">PluginBufferingAdapter()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00268">process()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00262">reset()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00244">~PluginBufferingAdapter()</a>.</p>
+<p>Definition at line <a class="el" href="PluginBufferingAdapter_8h-source.html#l00184">184</a> of file <a class="el" href="PluginBufferingAdapter_8h-source.html">PluginBufferingAdapter.h</a>.</p>
 
 </div>
 </div><p>
@@ -1046,9 +1104,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00099">99</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00116">Vamp::HostExt::PluginWrapper::getCopyright()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00146">Vamp::HostExt::PluginWrapper::getCurrentProgram()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00098">Vamp::HostExt::PluginWrapper::getDescription()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00086">Vamp::HostExt::PluginWrapper::getIdentifier()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00074">Vamp::HostExt::PluginWrapper::getInputDomain()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00104">Vamp::HostExt::PluginWrapper::getMaker()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00175">Vamp::HostExt::PluginWrapper::getMaxChannelCount()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00170">Vamp::HostExt::PluginWrapper::getMinChannelCount()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00092">Vamp::HostExt::PluginWrapper::getName()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00181">Vamp::HostExt::PluginWrapper::getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00128">Vamp::HostExt::PluginWrapper::getParameter()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00122">Vamp::HostExt::PluginWrapper::getParameterDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00110">Vamp::HostExt::PluginWrapper::getPluginVersion()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00164">Vamp::HostExt::PluginWrapper::getPreferredBlockSize()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00158">Vamp::HostExt::PluginWrapper::getPreferredStepSize()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00140">Vamp::HostExt::PluginWrapper::getPrograms()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00193">Vamp::HostExt::PluginWrapper::getRemainingFeatures()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00080">Vamp::HostExt::PluginWrapper::getVampApiVersion()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00062">Vamp::HostExt::PluginWrapper::initialise()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00187">Vamp::HostExt::PluginWrapper::process()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00068">Vamp::HostExt::PluginWrapper::reset()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00152">Vamp::HostExt::PluginWrapper::selectProgram()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00134">Vamp::HostExt::PluginWrapper::setParameter()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00620">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::~PluginDeletionNotifyAdapter()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00056">Vamp::HostExt::PluginWrapper::~PluginWrapper()</a>.</p>
+<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00126">126</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
 
 </div>
 </div><p>
@@ -1065,17 +1121,17 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00397">397</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">431</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00047">Vamp::HostExt::PluginRateExtractor::getRate()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00238">PluginBufferingAdapter()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00113">Vamp::HostExt::PluginInputDomainAdapter::PluginInputDomainAdapter()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
 
 </div>
 </div><p>
-<hr>The documentation for this class was generated from the following files:<ul>
-<li><a class="el" href="PluginBufferingAdapter_8h-source.html">PluginBufferingAdapter.h</a><li><a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a></ul>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="PluginBufferingAdapter_8h-source.html">PluginBufferingAdapter.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-<!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: Member List</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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginBufferingAdapter::Impl Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4e8dcacfca3f1b82ac7d70c9d3ddddaf">getOutputDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#242913f6f438bef150e270cbeeacf711">getRemainingFeatures</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#97990c497a954220254172f2554e608e">Impl</a>(Plugin *plugin, float inputSampleRate)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4b2bbe763ec728b5494145abcebca2e2">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d0b81884ecf1f01e8272667e59cce02e">m_buffers</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#3b8801196c981a9953f6f1fbf5a8aabd">m_channels</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#26fe691e7c9ddf55bb55b3d4eb80d8a7">m_frame</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#2a8d125110b2ee19407d10b4e21a865f">m_inputBlockSize</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#cc747b4e448a316346f9f59e2c85dcfc">m_inputSampleRate</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#6140f55c9120314194d3e73a54b25139">m_inputStepSize</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#e65848a6788b5c984635d252fbc8365c">m_outputs</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td><code> [mutable, protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#9c9acb7f9bf51b7406c15d2e60fd4ce2">m_plugin</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">m_queue</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#c3055f44b2a62c1a7aa915e180ed054b">m_rewriteOutputTimes</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td><code> [mutable, protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#fa825144d91babf38fb27aa7c287dc1e">m_unrun</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#03718981c892400287483cc8501adfeb">process</a>(const float *const *inputBuffers, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#65f718273e06cb3d2e0ef09ca173aa54">processBlock</a>(FeatureSet &amp;allFeatureSets)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#102263ad3dc229a1292792d73da2f0a1">reset</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#772d000b68dde932323ed39ab65e1a9a">~Impl</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a></td><td></td></tr>
-</table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,575 +0,0 @@
-<!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::HostExt::PluginBufferingAdapter::Impl Class 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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-  <div class="navpath"><a class="el" href="namespaceVamp.html">Vamp</a>::<a class="el" href="namespaceVamp_1_1HostExt.html">HostExt</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">PluginBufferingAdapter</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Impl</a>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginBufferingAdapter::Impl Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginBufferingAdapter::Impl" -->
-<p>
-<a href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00050">50</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#97990c497a954220254172f2554e608e">Impl</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin, float inputSampleRate)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#772d000b68dde932323ed39ab65e1a9a">~Impl</a> ()</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4b2bbe763ec728b5494145abcebca2e2">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4e8dcacfca3f1b82ac7d70c9d3ddddaf">getOutputDescriptors</a> () const </td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#102263ad3dc229a1292792d73da2f0a1">reset</a> ()</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#03718981c892400287483cc8501adfeb">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#242913f6f438bef150e270cbeeacf711">getRemainingFeatures</a> ()</td></tr>
-
-<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#65f718273e06cb3d2e0ef09ca173aa54">processBlock</a> (<a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> &amp;allFeatureSets)</td></tr>
-
-<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#9c9acb7f9bf51b7406c15d2e60fd4ce2">m_plugin</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#6140f55c9120314194d3e73a54b25139">m_inputStepSize</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#2a8d125110b2ee19407d10b4e21a865f">m_inputBlockSize</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">m_stepSize</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">m_blockSize</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#3b8801196c981a9953f6f1fbf5a8aabd">m_channels</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">vector&lt; <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">RingBuffer</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">m_queue</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">float **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d0b81884ecf1f01e8272667e59cce02e">m_buffers</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#cc747b4e448a316346f9f59e2c85dcfc">m_inputSampleRate</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#26fe691e7c9ddf55bb55b3d4eb80d8a7">m_frame</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#fa825144d91babf38fb27aa7c287dc1e">m_unrun</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#e65848a6788b5c984635d252fbc8365c">m_outputs</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::map&lt; int, bool &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#c3055f44b2a62c1a7aa915e180ed054b">m_rewriteOutputTimes</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">RingBuffer</a></td></tr>
-
-</table>
-<hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" name="97990c497a954220254172f2554e608e"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::Impl" ref="97990c497a954220254172f2554e608e" args="(Plugin *plugin, float inputSampleRate)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::HostExt::PluginBufferingAdapter::Impl::Impl           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
-          <td class="paramname"> <em>plugin</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">float&nbsp;</td>
-          <td class="paramname"> <em>inputSampleRate</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00280">280</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00367">getOutputDescriptors()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="772d000b68dde932323ed39ab65e1a9a"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::~Impl" ref="772d000b68dde932323ed39ab65e1a9a" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::HostExt::PluginBufferingAdapter::Impl::~Impl           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00296">296</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00228">m_buffers</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00226">m_channels</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00227">m_queue</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="4b2bbe763ec728b5494145abcebca2e2"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::initialise" ref="4b2bbe763ec728b5494145abcebca2e2" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool Vamp::HostExt::PluginBufferingAdapter::Impl::initialise           </td>
-          <td>(</td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>channels</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>stepSize</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>blockSize</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">314</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00149">Vamp::Plugin::FrequencyDomain</a>, <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin::getInputDomain()</a>, <a class="el" href="Plugin_8h-source.html#l00171">Vamp::Plugin::getPreferredBlockSize()</a>, <a class="el" href="Plugin_8h-source.html#l00186">Vamp::Plugin::getPreferredStepSize()</a>, <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00225">m_blockSize</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00228">m_buffers</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00226">m_channels</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00223">m_inputBlockSize</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00222">m_inputStepSize</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00221">m_plugin</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00227">m_queue</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00224">m_stepSize</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00250">Vamp::HostExt::PluginBufferingAdapter::initialise()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="4e8dcacfca3f1b82ac7d70c9d3ddddaf"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::getOutputDescriptors" ref="4e8dcacfca3f1b82ac7d70c9d3ddddaf" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">PluginBufferingAdapter::OutputList</a> Vamp::HostExt::PluginBufferingAdapter::Impl::getOutputDescriptors           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const</td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00367">367</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00285">Vamp::Plugin::OutputDescriptor::FixedSampleRate</a>, <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin::getOutputDescriptors()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00229">m_inputSampleRate</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00232">m_outputs</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00221">m_plugin</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00233">m_rewriteOutputTimes</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00224">m_stepSize</a>, <a class="el" href="Plugin_8h-source.html#l00282">Vamp::Plugin::OutputDescriptor::OneSamplePerStep</a>, and <a class="el" href="Plugin_8h-source.html#l00288">Vamp::Plugin::OutputDescriptor::VariableSampleRate</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00256">Vamp::HostExt::PluginBufferingAdapter::getOutputDescriptors()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00280">Impl()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="102263ad3dc229a1292792d73da2f0a1"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::reset" ref="102263ad3dc229a1292792d73da2f0a1" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::HostExt::PluginBufferingAdapter::Impl::reset           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00406">406</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00230">m_frame</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00227">m_queue</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00231">m_unrun</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00262">Vamp::HostExt::PluginBufferingAdapter::reset()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="03718981c892400287483cc8501adfeb"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::process" ref="03718981c892400287483cc8501adfeb" args="(const float *const *inputBuffers, RealTime timestamp)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginBufferingAdapter::FeatureSet</a> Vamp::HostExt::PluginBufferingAdapter::Impl::process           </td>
-          <td>(</td>
-          <td class="paramtype">const float *const *&nbsp;</td>
-          <td class="paramname"> <em>inputBuffers</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td>
-          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00417">417</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00225">m_blockSize</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00226">m_channels</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00230">m_frame</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00223">m_inputBlockSize</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00229">m_inputSampleRate</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00227">m_queue</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00224">m_stepSize</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00231">m_unrun</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">processBlock()</a>, and <a class="el" href="RealTime_8cpp-source.html#l00224">Vamp::RealTime::realTime2Frame()</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00268">Vamp::HostExt::PluginBufferingAdapter::process()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="242913f6f438bef150e270cbeeacf711"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::getRemainingFeatures" ref="242913f6f438bef150e270cbeeacf711" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginBufferingAdapter::FeatureSet</a> Vamp::HostExt::PluginBufferingAdapter::Impl::getRemainingFeatures           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00452">452</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin::getRemainingFeatures()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00225">m_blockSize</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00226">m_channels</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00221">m_plugin</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00227">m_queue</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">processBlock()</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00275">Vamp::HostExt::PluginBufferingAdapter::getRemainingFeatures()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="65f718273e06cb3d2e0ef09ca173aa54"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::processBlock" ref="65f718273e06cb3d2e0ef09ca173aa54" args="(FeatureSet &amp;allFeatureSets)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::HostExt::PluginBufferingAdapter::Impl::processBlock           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> &amp;&nbsp;</td>
-          <td class="paramname"> <em>allFeatureSets</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">485</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00285">Vamp::Plugin::OutputDescriptor::FixedSampleRate</a>, <a class="el" href="RealTime_8cpp-source.html#l00232">Vamp::RealTime::frame2RealTime()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00225">m_blockSize</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00228">m_buffers</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00226">m_channels</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00230">m_frame</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00229">m_inputSampleRate</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00232">m_outputs</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00221">m_plugin</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00227">m_queue</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00233">m_rewriteOutputTimes</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00224">m_stepSize</a>, <a class="el" href="Plugin_8h-source.html#l00282">Vamp::Plugin::OutputDescriptor::OneSamplePerStep</a>, <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin::process()</a>, and <a class="el" href="Plugin_8h-source.html#l00288">Vamp::Plugin::OutputDescriptor::VariableSampleRate</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00452">getRemainingFeatures()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00417">process()</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Data Documentation</h2>
-<a class="anchor" name="9c9acb7f9bf51b7406c15d2e60fd4ce2"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::m_plugin" ref="9c9acb7f9bf51b7406c15d2e60fd4ce2" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a>* <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#9c9acb7f9bf51b7406c15d2e60fd4ce2">Vamp::HostExt::PluginBufferingAdapter::Impl::m_plugin</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00221">221</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00367">getOutputDescriptors()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00452">getRemainingFeatures()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">initialise()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">processBlock()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="6140f55c9120314194d3e73a54b25139"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::m_inputStepSize" ref="6140f55c9120314194d3e73a54b25139" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#6140f55c9120314194d3e73a54b25139">Vamp::HostExt::PluginBufferingAdapter::Impl::m_inputStepSize</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00222">222</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">initialise()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="2a8d125110b2ee19407d10b4e21a865f"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::m_inputBlockSize" ref="2a8d125110b2ee19407d10b4e21a865f" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#2a8d125110b2ee19407d10b4e21a865f">Vamp::HostExt::PluginBufferingAdapter::Impl::m_inputBlockSize</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00223">223</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">initialise()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00417">process()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="23535474c13c9ed9c2a3dfdcb0943050"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::m_stepSize" ref="23535474c13c9ed9c2a3dfdcb0943050" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">Vamp::HostExt::PluginBufferingAdapter::Impl::m_stepSize</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00224">224</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00367">getOutputDescriptors()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00417">process()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">processBlock()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="7f5f42ff4da0046f38579e9d0f384144"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::m_blockSize" ref="7f5f42ff4da0046f38579e9d0f384144" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">Vamp::HostExt::PluginBufferingAdapter::Impl::m_blockSize</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00225">225</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00452">getRemainingFeatures()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00417">process()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">processBlock()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="3b8801196c981a9953f6f1fbf5a8aabd"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::m_channels" ref="3b8801196c981a9953f6f1fbf5a8aabd" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#3b8801196c981a9953f6f1fbf5a8aabd">Vamp::HostExt::PluginBufferingAdapter::Impl::m_channels</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00226">226</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00452">getRemainingFeatures()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00417">process()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">processBlock()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00296">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="d7bc92f4e299bab75d91fbaa08d7c683"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::m_queue" ref="d7bc92f4e299bab75d91fbaa08d7c683" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">vector&lt;<a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">RingBuffer</a> *&gt; <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">Vamp::HostExt::PluginBufferingAdapter::Impl::m_queue</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00227">227</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00452">getRemainingFeatures()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00417">process()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">processBlock()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00406">reset()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00296">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="d0b81884ecf1f01e8272667e59cce02e"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::m_buffers" ref="d0b81884ecf1f01e8272667e59cce02e" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">float** <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d0b81884ecf1f01e8272667e59cce02e">Vamp::HostExt::PluginBufferingAdapter::Impl::m_buffers</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00228">228</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">processBlock()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00296">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="cc747b4e448a316346f9f59e2c85dcfc"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::m_inputSampleRate" ref="cc747b4e448a316346f9f59e2c85dcfc" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">float <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#cc747b4e448a316346f9f59e2c85dcfc">Vamp::HostExt::PluginBufferingAdapter::Impl::m_inputSampleRate</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00229">229</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00367">getOutputDescriptors()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00417">process()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">processBlock()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="26fe691e7c9ddf55bb55b3d4eb80d8a7"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::m_frame" ref="26fe691e7c9ddf55bb55b3d4eb80d8a7" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">long <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#26fe691e7c9ddf55bb55b3d4eb80d8a7">Vamp::HostExt::PluginBufferingAdapter::Impl::m_frame</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00230">230</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00417">process()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">processBlock()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00406">reset()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="fa825144d91babf38fb27aa7c287dc1e"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::m_unrun" ref="fa825144d91babf38fb27aa7c287dc1e" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#fa825144d91babf38fb27aa7c287dc1e">Vamp::HostExt::PluginBufferingAdapter::Impl::m_unrun</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00231">231</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00417">process()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00406">reset()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="e65848a6788b5c984635d252fbc8365c"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::m_outputs" ref="e65848a6788b5c984635d252fbc8365c" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#e65848a6788b5c984635d252fbc8365c">Vamp::HostExt::PluginBufferingAdapter::Impl::m_outputs</a><code> [mutable, protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00232">232</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00367">getOutputDescriptors()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">processBlock()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="c3055f44b2a62c1a7aa915e180ed054b"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::m_rewriteOutputTimes" ref="c3055f44b2a62c1a7aa915e180ed054b" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::map&lt;int, bool&gt; <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#c3055f44b2a62c1a7aa915e180ed054b">Vamp::HostExt::PluginBufferingAdapter::Impl::m_rewriteOutputTimes</a><code> [mutable, protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00233">233</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00367">getOutputDescriptors()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">processBlock()</a>.</p>
-
-</div>
-</div><p>
-<hr>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a></ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-<!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: Member List</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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#830be6afbe2b46f0c9cd6071cf287cf8">getReadSpace</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#205516271035fef2e94bb1af17b6c47d">getSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f9edfe7748168802019429af240bcc74">getWriteSpace</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#4cdf77619ee8e8650b1c71da3ba9b758">m_buffer</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#1775ce5ba3d60520c3634cb2ac8a1dc9">m_reader</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3798697f4cf46c5e9a5433e1bf160b2c">m_writer</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#7166d8a3f7312064f9b2bb1e874ca8ef">operator=</a>(const RingBuffer &amp;)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [private]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#c68e9b2b24e1ac17f017c80ade70b355">peek</a>(float *destination, int n) const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#c3eba9efa4b5bdb4bfa9907ad9203fe1">reset</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3ee5e4cfee66645629063b1db5cffa96">RingBuffer</a>(int n)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3d312133554f60780872939b187b46ee">RingBuffer</a>(const RingBuffer &amp;)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [private]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#62e7a7a8fd76bf3f04add2a7b6932211">skip</a>(int n)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#8e5b1d24ec4534563c48439980368135">write</a>(const float *source, int n)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f9d1d2df1f27bd2399b81c82ee9af6df">zero</a>(int n)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f1e12002a506cc1433793e7b93e73b80">~RingBuffer</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></td><td><code> [inline, virtual]</code></td></tr>
-</table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,453 +0,0 @@
-<!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::HostExt::PluginBufferingAdapter::Impl::RingBuffer Class 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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-  <div class="navpath"><a class="el" href="namespaceVamp.html">Vamp</a>::<a class="el" href="namespaceVamp_1_1HostExt.html">HostExt</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">PluginBufferingAdapter</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Impl</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">RingBuffer</a>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer" -->
-<p>
-<a href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00067">67</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3ee5e4cfee66645629063b1db5cffa96">RingBuffer</a> (int n)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f1e12002a506cc1433793e7b93e73b80">~RingBuffer</a> ()</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#205516271035fef2e94bb1af17b6c47d">getSize</a> () const </td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#c3eba9efa4b5bdb4bfa9907ad9203fe1">reset</a> ()</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#830be6afbe2b46f0c9cd6071cf287cf8">getReadSpace</a> () const </td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f9edfe7748168802019429af240bcc74">getWriteSpace</a> () const </td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#c68e9b2b24e1ac17f017c80ade70b355">peek</a> (float *destination, int n) const </td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#62e7a7a8fd76bf3f04add2a7b6932211">skip</a> (int n)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#8e5b1d24ec4534563c48439980368135">write</a> (const float *source, int n)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f9d1d2df1f27bd2399b81c82ee9af6df">zero</a> (int n)</td></tr>
-
-<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">float *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#4cdf77619ee8e8650b1c71da3ba9b758">m_buffer</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3798697f4cf46c5e9a5433e1bf160b2c">m_writer</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#1775ce5ba3d60520c3634cb2ac8a1dc9">m_reader</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">m_size</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3d312133554f60780872939b187b46ee">RingBuffer</a> (const <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">RingBuffer</a> &amp;)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">RingBuffer</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#7166d8a3f7312064f9b2bb1e874ca8ef">operator=</a> (const <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">RingBuffer</a> &amp;)</td></tr>
-
-</table>
-<hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" name="3ee5e4cfee66645629063b1db5cffa96"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::RingBuffer" ref="3ee5e4cfee66645629063b1db5cffa96" args="(int n)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::RingBuffer           </td>
-          <td>(</td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>n</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00070">70</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="f1e12002a506cc1433793e7b93e73b80"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::~RingBuffer" ref="f1e12002a506cc1433793e7b93e73b80" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::~RingBuffer           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline, virtual]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00072">72</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00211">m_buffer</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="3d312133554f60780872939b187b46ee"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::RingBuffer" ref="3d312133554f60780872939b187b46ee" args="(const RingBuffer &amp;)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::RingBuffer           </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">RingBuffer</a> &amp;&nbsp;</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [private]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-</div>
-</div><p>
-<hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="205516271035fef2e94bb1af17b6c47d"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::getSize" ref="205516271035fef2e94bb1af17b6c47d" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">int Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::getSize           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00074">74</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00214">m_size</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="c3eba9efa4b5bdb4bfa9907ad9203fe1"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::reset" ref="c3eba9efa4b5bdb4bfa9907ad9203fe1" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::reset           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00075">75</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00213">m_reader</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00212">m_writer</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="830be6afbe2b46f0c9cd6071cf287cf8"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::getReadSpace" ref="830be6afbe2b46f0c9cd6071cf287cf8" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">int Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::getReadSpace           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00077">77</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00213">m_reader</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00214">m_size</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00212">m_writer</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00093">peek()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00127">skip()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="f9edfe7748168802019429af240bcc74"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::getWriteSpace" ref="f9edfe7748168802019429af240bcc74" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">int Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::getWriteSpace           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00085">85</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00213">m_reader</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00214">m_size</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00212">m_writer</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00142">write()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00177">zero()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="c68e9b2b24e1ac17f017c80ade70b355"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::peek" ref="c68e9b2b24e1ac17f017c80ade70b355" args="(float *destination, int n) const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">int Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::peek           </td>
-          <td>(</td>
-          <td class="paramtype">float *&nbsp;</td>
-          <td class="paramname"> <em>destination</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"> const<code> [inline]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00093">93</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00077">getReadSpace()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00211">m_buffer</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00213">m_reader</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00214">m_size</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="62e7a7a8fd76bf3f04add2a7b6932211"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::skip" ref="62e7a7a8fd76bf3f04add2a7b6932211" args="(int n)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">int Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::skip           </td>
-          <td>(</td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>n</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00127">127</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00077">getReadSpace()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00213">m_reader</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00214">m_size</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="8e5b1d24ec4534563c48439980368135"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::write" ref="8e5b1d24ec4534563c48439980368135" args="(const float *source, int n)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">int Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::write           </td>
-          <td>(</td>
-          <td class="paramtype">const float *&nbsp;</td>
-          <td class="paramname"> <em>source</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [inline]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00142">142</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00085">getWriteSpace()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00211">m_buffer</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00214">m_size</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00212">m_writer</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="f9d1d2df1f27bd2399b81c82ee9af6df"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::zero" ref="f9d1d2df1f27bd2399b81c82ee9af6df" args="(int n)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">int Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::zero           </td>
-          <td>(</td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>n</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00177">177</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00085">getWriteSpace()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00211">m_buffer</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00214">m_size</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00212">m_writer</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="7166d8a3f7312064f9b2bb1e874ca8ef"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::operator=" ref="7166d8a3f7312064f9b2bb1e874ca8ef" args="(const RingBuffer &amp;)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">RingBuffer</a>&amp; Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::operator=           </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">RingBuffer</a> &amp;&nbsp;</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [private]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-</div>
-</div><p>
-<hr><h2>Member Data Documentation</h2>
-<a class="anchor" name="4cdf77619ee8e8650b1c71da3ba9b758"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::m_buffer" ref="4cdf77619ee8e8650b1c71da3ba9b758" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">float* <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#4cdf77619ee8e8650b1c71da3ba9b758">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::m_buffer</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00211">211</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00093">peek()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00142">write()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00177">zero()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00072">~RingBuffer()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="3798697f4cf46c5e9a5433e1bf160b2c"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::m_writer" ref="3798697f4cf46c5e9a5433e1bf160b2c" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">int <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3798697f4cf46c5e9a5433e1bf160b2c">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::m_writer</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00212">212</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00077">getReadSpace()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00085">getWriteSpace()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00075">reset()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00142">write()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00177">zero()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="1775ce5ba3d60520c3634cb2ac8a1dc9"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::m_reader" ref="1775ce5ba3d60520c3634cb2ac8a1dc9" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">int <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#1775ce5ba3d60520c3634cb2ac8a1dc9">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::m_reader</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00213">213</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00077">getReadSpace()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00085">getWriteSpace()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00093">peek()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00075">reset()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00127">skip()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="fe3fe238440e3afe3aa1a8d3b6270e3a"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::m_size" ref="fe3fe238440e3afe3aa1a8d3b6270e3a" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">int <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer::m_size</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00214">214</a> of file <a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00077">getReadSpace()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00074">getSize()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00085">getWriteSpace()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00093">peek()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00127">skip()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00142">write()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00177">zero()</a>.</p>
-
-</div>
-</div><p>
-<hr>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="PluginBufferingAdapter_8cpp-source.html">PluginBufferingAdapter.cpp</a></ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,3 +1,3 @@
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="31,156,231,180">
-<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="81,81,180,105">
-<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="67,6,195,30">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="29,154,229,181">
+<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="80,80,179,106">
+<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="65,5,193,32">
Binary file code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.png has changed
--- a/code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -32,21 +32,22 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">getCurrentProgram</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">getDescription</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">getIdentifier</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870">getInputDomain</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e203faf8384c9e1fddc381409aa8a214">getInputDomain</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">getMaker</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">getMaxChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">getMinChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">getName</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace">getOutputDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#5a9411305f713b4c9827844b89acd270">getOutputDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">getParameter</a>(std::string) const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">getParameterDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">getParameterDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">getPluginVersion</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">getPreferredBlockSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">getPreferredStepSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">getPrograms</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe">getRemainingFeatures</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">getPrograms</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2bc8c0992e64f06991fb7cf89f99857e">getRemainingFeatures</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">getVampApiVersion</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3">getWrapper</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#de0473c8fc54636431967cbf41649c1c">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">Vamp::HostExt::PluginChannelAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> enum name</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">m_impl</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">Vamp::HostExt::PluginChannelAdapter</a></td><td><code> [protected]</code></td></tr>
@@ -57,7 +58,8 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>(float inputSampleRate)</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#2cda2b672708264f9a33c43bad3acdd8">PluginChannelAdapter</a>(Plugin *plugin)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">Vamp::HostExt::PluginChannelAdapter</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#35cc2d42f8322f5022e89859a79c97be">PluginWrapper</a>(Plugin *plugin)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#294e663b4d9ec885791faa1b440571ed">process</a>(const float *const *inputBuffers, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">Vamp::HostExt::PluginChannelAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#6ff37bf754ff8711dbcb2f020fa3902c">process</a>(const float *const *inputBuffers, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">Vamp::HostExt::PluginChannelAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#5c94c3eb1dbc8899fe58527bbb7bb61f">processInterleaved</a>(const float *inputBuffer, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">Vamp::HostExt::PluginChannelAdapter</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">reset</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">selectProgram</a>(std::string)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
@@ -65,11 +67,11 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">~Plugin</a>()</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#7bd79ac5febc8d3c499e7339476c07b4">~PluginChannelAdapter</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">Vamp::HostExt::PluginChannelAdapter</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7449a364d524de75352a4719fec2e1f5">~PluginWrapper</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#cb9a20fefd130e323b1eb2ced43e521c">~PluginChannelAdapter</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">Vamp::HostExt::PluginChannelAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c4fb6cfd7c0d3b2c8576a4e9dc61f518">~PluginWrapper</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,19 +26,19 @@
   </div>
 </div>
 <div class="contents">
-<h1>Vamp::HostExt::PluginChannelAdapter Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginChannelAdapter" --><!-- doxytag: inherits="Vamp::HostExt::PluginWrapper" --><code>#include &lt;<a class="el" href="PluginChannelAdapter_8h-source.html">vamp-sdk/hostext/PluginChannelAdapter.h</a>&gt;</code>
+<h1>Vamp::HostExt::PluginChannelAdapter Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginChannelAdapter" --><!-- doxytag: inherits="Vamp::HostExt::PluginWrapper" --><code>#include &lt;<a class="el" href="PluginChannelAdapter_8h-source.html">vamp-hostsdk/PluginChannelAdapter.h</a>&gt;</code>
 <p>
 <div class="dynheader">
 Inheritance diagram for Vamp::HostExt::PluginChannelAdapter:</div>
 <div class="dynsection">
 <p><center><img src="classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.png" border="0" usemap="#Vamp_1_1HostExt_1_1PluginChannelAdapter__inherit__map" alt="Inheritance graph"></center>
 <map name="Vamp_1_1HostExt_1_1PluginChannelAdapter__inherit__map">
-<area shape="rect" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="28,156,228,180"><area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="79,81,177,105"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="64,6,192,30"></map>
+<area shape="rect" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="28,154,228,181"><area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="79,80,177,106"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="64,5,192,32"></map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
 
 <p>
 <a href="classVamp_1_1HostExt_1_1PluginChannelAdapter-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-<a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> is 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 adapter that implements a policy for management of plugins that expect a different number of input channels from the number actually available in the source audio data. 
+<a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that implements a policy for management of plugins that expect a different number of input channels from the number actually available in the source audio data. 
 <p>
 A host using <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> may ignore the getMinChannelCount and getMaxChannelCount reported by the plugin, and still expect the plugin to run.<p>
 <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> implements the following policy:<p>
@@ -62,9 +62,9 @@
 Note that <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> does not override the minimum and maximum channel counts returned by the wrapped plugin. The host will need to be aware that it is using a <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a>, and be prepared to ignore these counts as necessary. (This contrasts with the approach used in <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a>, which aims to make the host completely unaware of which underlying input domain is in fact in use.)<p>
 (The rationale for this is that a host may wish to use the <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> but still discriminate in some way on the basis of the number of channels actually supported. For example, a simple stereo audio host may prefer to reject plugins that require more than two channels on the grounds that doesn't actually understand what they are for, rather than allow the channel adapter to make a potentially meaningless channel conversion for them.)<p>
 In every respect other than its management of channels, the <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> behaves identically to the plugin that it wraps. The wrapped plugin will be deleted when the wrapper is deleted.<p>
-<dl class="note" compact><dt><b>Note:</b></dt><dd>This class was introduced in version 1.1 of the <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 SDK. </dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>This class was introduced in version 1.1 of the <a class="el" href="namespaceVamp.html">Vamp</a> plugin SDK. </dd></dl>
 
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8h-source.html#l00109">109</a> of file <a class="el" href="PluginChannelAdapter_8h-source.html">PluginChannelAdapter.h</a>.</p>
+<p>Definition at line <a class="el" href="PluginChannelAdapter_8h-source.html#l00112">112</a> of file <a class="el" href="PluginChannelAdapter_8h-source.html">PluginChannelAdapter.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
@@ -88,23 +88,27 @@
 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#2cda2b672708264f9a33c43bad3acdd8">PluginChannelAdapter</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#7bd79ac5febc8d3c499e7339476c07b4">~PluginChannelAdapter</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> wrapping the given plugin.  <a href="#2cda2b672708264f9a33c43bad3acdd8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#cb9a20fefd130e323b1eb2ced43e521c">~PluginChannelAdapter</a> ()</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#de0473c8fc54636431967cbf41649c1c">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames).  <a href="#de0473c8fc54636431967cbf41649c1c"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#294e663b4d9ec885791faa1b440571ed">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#6ff37bf754ff8711dbcb2f020fa3902c">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#294e663b4d9ec885791faa1b440571ed"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#6ff37bf754ff8711dbcb2f020fa3902c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#5c94c3eb1dbc8899fe58527bbb7bb61f">processInterleaved</a> (const float *inputBuffer, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Call <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#6ff37bf754ff8711dbcb2f020fa3902c" title="Process a single block of input data.">process()</a>, providing interleaved audio data with the number of channels passed to <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#de0473c8fc54636431967cbf41649c1c" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.  <a href="#5c94c3eb1dbc8899fe58527bbb7bb61f"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">reset</a> ()</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the plugin after use, to prepare it for another clean run.  <a href="#d19cc0614ba41cdc26ef3394c5146fe6"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870">getInputDomain</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e203faf8384c9e1fddc381409aa8a214">getInputDomain</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#031aa818fd48fd0f4b5e1bf80c032870"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#e203faf8384c9e1fddc381409aa8a214"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">getVampApiVersion</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <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 compatibility level of the plugin.  <a href="#74147fda6b44ff2169bd4a1eea0d46ff"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.  <a href="#74147fda6b44ff2169bd4a1eea0d46ff"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">getIdentifier</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#4baa9e48f717c2b3e7f92496aa39d904"></a><br></td></tr>
@@ -123,18 +127,18 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">getCopyright</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the copyright statement or licensing summary for the plugin.  <a href="#e14f6ecb78be909c4cd5f0cdaed3c566"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">getParameterDescriptors</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">getParameterDescriptors</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#3b075b8f950b344503f0d27ac0fe332e"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#9be71561265c2e6e43b7feaddaa91f36"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">getParameter</a> (std::string) const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of a named parameter.  <a href="#034920f56c8d7609a85447c42556048c"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">setParameter</a> (std::string, float)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter.  <a href="#651b15a5dc4c27942ac0c87c6092bfe5"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">getPrograms</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">getPrograms</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#f3abaf717dc4b00cad5770ed6dfa01e1"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#131fbe1df81215020b9aa8cecef4c802"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">getCurrentProgram</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current program.  <a href="#7a312dd42d161064b70afd7ff24c0651"></a><br></td></tr>
@@ -143,35 +147,36 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select a program.  <a href="#074978333a74fdcf336a8a1d8ea20abf"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">getPreferredStepSize</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function) for the plugin.  <a href="#0137d93d7019bacc31104836fb4d352e"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function) for the plugin.  <a href="#0137d93d7019bacc31104836fb4d352e"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">getPreferredBlockSize</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function).  <a href="#2c62a656313a819650656643a867ad01"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function).  <a href="#2c62a656313a819650656643a867ad01"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">getMinChannelCount</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum supported number of input channels.  <a href="#2b28f1cf37d46a514f1e1411a6037bf8"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">getMaxChannelCount</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum supported number of input channels.  <a href="#985eb21f1827bfbc3950d6871b107a58"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace">getOutputDescriptors</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#5a9411305f713b4c9827844b89acd270">getOutputDescriptors</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#02c8c01972affeea58b091335e791ace"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe">getRemainingFeatures</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#5a9411305f713b4c9827844b89acd270"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2bc8c0992e64f06991fb7cf89f99857e">getRemainingFeatures</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input.  <a href="#1dce55a75a32b08fc56a52a300d9fcbe"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input.  <a href="#2bc8c0992e64f06991fb7cf89f99857e"></a><br></td></tr>
+<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename WrapperType&gt; </td></tr>
+<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">WrapperType *&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3">getWrapper</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.  <a href="#e9d79bed7237d55a73018a6b982a55b3"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.  <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
 <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Impl</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">m_impl</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">Impl *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">m_impl</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td></tr>
 
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Impl</a></td></tr>
-
 </table>
 <hr><h2>Member Typedef Documentation</h2>
 <a class="anchor" name="30f531b8fb69fac41a24e3d2a6a08ed9"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::OutputList" ref="30f531b8fb69fac41a24e3d2a6a08ed9" args="" -->
@@ -187,7 +192,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00309">309</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00322">322</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -204,7 +209,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00347">347</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00380">380</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -221,7 +226,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00348">348</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00382">382</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -238,7 +243,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00195">195</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -255,7 +260,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00217">217</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -281,7 +286,7 @@
 </table>
 </dl>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00149">149</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">152</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -296,30 +301,28 @@
           <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
           <td class="paramname"> <em>plugin</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00062">62</a> of file <a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginChannelAdapter_8h-source.html#l00120">m_impl</a>.</p>
-
+Construct a <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> wrapping the given plugin. 
+<p>
+The adapter takes ownership of the plugin, which will be deleted when the adapter is deleted. 
 </div>
 </div><p>
-<a class="anchor" name="7bd79ac5febc8d3c499e7339476c07b4"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::~PluginChannelAdapter" ref="7bd79ac5febc8d3c499e7339476c07b4" args="()" -->
+<a class="anchor" name="cb9a20fefd130e323b1eb2ced43e521c"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::~PluginChannelAdapter" ref="cb9a20fefd130e323b1eb2ced43e521c" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">Vamp::HostExt::PluginChannelAdapter::~PluginChannelAdapter           </td>
+          <td class="memname">virtual Vamp::HostExt::PluginChannelAdapter::~PluginChannelAdapter           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -327,10 +330,6 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00068">68</a> of file <a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginChannelAdapter_8h-source.html#l00120">m_impl</a>.</p>
-
 </div>
 </div><p>
 <hr><h2>Member Function Documentation</h2>
@@ -359,7 +358,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -372,18 +371,14 @@
 Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00074">74</a> of file <a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">Vamp::HostExt::PluginChannelAdapter::Impl::initialise()</a>, and <a class="el" href="PluginChannelAdapter_8h-source.html#l00120">m_impl</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="294e663b4d9ec885791faa1b440571ed"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::process" ref="294e663b4d9ec885791faa1b440571ed" args="(const float *const *inputBuffers, RealTime timestamp)" -->
+<a class="anchor" name="6ff37bf754ff8711dbcb2f020fa3902c"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::process" ref="6ff37bf754ff8711dbcb2f020fa3902c" args="(const float *const *inputBuffers, RealTime timestamp)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginChannelAdapter::FeatureSet</a> Vamp::HostExt::PluginChannelAdapter::process           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::HostExt::PluginChannelAdapter::process           </td>
           <td>(</td>
           <td class="paramtype">const float *const *&nbsp;</td>
           <td class="paramname"> <em>inputBuffers</em>, </td>
@@ -397,7 +392,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -406,14 +401,43 @@
 <p>
 Process a single block of input data. 
 <p>
-If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp will be the real time in seconds of the start of the supplied block of samples.<p>
+If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.<p>
 If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
 Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) 
-<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7">Vamp::HostExt::PluginWrapper</a>.</p>
+<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00080">80</a> of file <a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a>.</p>
+</div>
+</div><p>
+<a class="anchor" name="5c94c3eb1dbc8899fe58527bbb7bb61f"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::processInterleaved" ref="5c94c3eb1dbc8899fe58527bbb7bb61f" args="(const float *inputBuffer, RealTime timestamp)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::HostExt::PluginChannelAdapter::processInterleaved           </td>
+          <td>(</td>
+          <td class="paramtype">const float *&nbsp;</td>
+          <td class="paramname"> <em>inputBuffer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td>
+          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
 
-<p>References <a class="el" href="PluginChannelAdapter_8h-source.html#l00120">m_impl</a>, and <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00177">Vamp::HostExt::PluginChannelAdapter::Impl::process()</a>.</p>
+<p>
+Call <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#6ff37bf754ff8711dbcb2f020fa3902c" title="Process a single block of input data.">process()</a>, providing interleaved audio data with the number of channels passed to <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#de0473c8fc54636431967cbf41649c1c" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>. 
+<p>
+The adapter will de-interleave into temporary buffers as appropriate before calling <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#6ff37bf754ff8711dbcb2f020fa3902c" title="Process a single block of input data.">process()</a>.<p>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>This function was introduced in version 1.4 of the <a class="el" href="namespaceVamp.html">Vamp</a> plugin SDK. </dd></dl>
 
 </div>
 </div><p>
@@ -426,7 +450,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual, inherited]</code></td>
+          <td><code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -440,22 +464,18 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00068">68</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>, and <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin::reset()</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="031aa818fd48fd0f4b5e1bf80c032870"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getInputDomain" ref="031aa818fd48fd0f4b5e1bf80c032870" args="() const " -->
+<a class="anchor" name="e203faf8384c9e1fddc381409aa8a214"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getInputDomain" ref="e203faf8384c9e1fddc381409aa8a214" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Plugin::InputDomain</a> Vamp::HostExt::PluginWrapper::getInputDomain           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> Vamp::HostExt::PluginWrapper::getInputDomain           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -464,14 +484,10 @@
 <p>
 Get the plugin's required input domain. 
 <p>
-If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
+If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>.</p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#376fa97a1c721255541fe35d71368976">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00074">74</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin::getInputDomain()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#47ff1ed72889f323da63f8abc9ea581a">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
 
 </div>
 </div><p>
@@ -484,22 +500,18 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the <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 compatibility level of the plugin. 
+Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. 
 <p>
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00080">80</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00067">Vamp::PluginBase::getVampApiVersion()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="4baa9e48f717c2b3e7f92496aa39d904"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getIdentifier" ref="4baa9e48f717c2b3e7f92496aa39d904" args="() const " -->
@@ -511,7 +523,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -525,10 +537,6 @@
 Example: "zero_crossings" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00086">86</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase::getIdentifier()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="c70a3265bb25aeb03f6dd8f8a0442088"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getName" ref="c70a3265bb25aeb03f6dd8f8a0442088" args="() const " -->
@@ -540,7 +548,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -553,10 +561,6 @@
 Example: "Zero Crossings" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00092">92</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase::getName()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="c334f699c0996055942785410d8a065c"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getDescription" ref="c334f699c0996055942785410d8a065c" args="() const " -->
@@ -568,7 +572,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -581,10 +585,6 @@
 Example: "Detect and count zero crossing points" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00098">98</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase::getDescription()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="59d5a2298951b317995675e664b1c7bb"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getMaker" ref="59d5a2298951b317995675e664b1c7bb" args="() const " -->
@@ -596,7 +596,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -608,10 +608,6 @@
 This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00104">104</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase::getMaker()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="47e1acf1696813008324a915c9ba59c5"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getPluginVersion" ref="47e1acf1696813008324a915c9ba59c5" args="() const " -->
@@ -623,7 +619,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -635,10 +631,6 @@
 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00110">110</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase::getPluginVersion()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="e14f6ecb78be909c4cd5f0cdaed3c566"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getCopyright" ref="e14f6ecb78be909c4cd5f0cdaed3c566" args="() const " -->
@@ -650,7 +642,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -662,22 +654,18 @@
 This can be an informative text, without the same presentation constraints as mentioned for getMaker above. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00116">116</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase::getCopyright()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="3b075b8f950b344503f0d27ac0fe332e"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getParameterDescriptors" ref="3b075b8f950b344503f0d27ac0fe332e" args="() const " -->
+<a class="anchor" name="9be71561265c2e6e43b7feaddaa91f36"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getParameterDescriptors" ref="9be71561265c2e6e43b7feaddaa91f36" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">PluginBase::ParameterList</a> Vamp::HostExt::PluginWrapper::getParameterDescriptors           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> Vamp::HostExt::PluginWrapper::getParameterDescriptors           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -689,10 +677,6 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00122">122</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00200">Vamp::PluginBase::getParameterDescriptors()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="034920f56c8d7609a85447c42556048c"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getParameter" ref="034920f56c8d7609a85447c42556048c" args="(std::string) const " -->
@@ -705,7 +689,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -717,10 +701,6 @@
 The argument is the identifier field from that parameter's descriptor. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00128">128</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00208">Vamp::PluginBase::getParameter()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="651b15a5dc4c27942ac0c87c6092bfe5"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::setParameter" ref="651b15a5dc4c27942ac0c87c6092bfe5" args="(std::string, float)" -->
@@ -742,7 +722,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual, inherited]</code></td>
+          <td></td><td></td><td><code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -754,22 +734,20 @@
 The first argument is the identifier field from that parameter's descriptor. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00134">134</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>, and <a class="el" href="PluginBase_8h-source.html#l00214">Vamp::PluginBase::setParameter()</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7a979b20c169d37adbd7b7d8b8a077b3">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
 
 </div>
 </div><p>
-<a class="anchor" name="f3abaf717dc4b00cad5770ed6dfa01e1"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getPrograms" ref="f3abaf717dc4b00cad5770ed6dfa01e1" args="() const " -->
+<a class="anchor" name="131fbe1df81215020b9aa8cecef4c802"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getPrograms" ref="131fbe1df81215020b9aa8cecef4c802" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">PluginBase::ProgramList</a> Vamp::HostExt::PluginWrapper::getPrograms           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> Vamp::HostExt::PluginWrapper::getPrograms           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -782,10 +760,6 @@
 The programs must have unique names. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00140">140</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00229">Vamp::PluginBase::getPrograms()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="7a312dd42d161064b70afd7ff24c0651"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getCurrentProgram" ref="7a312dd42d161064b70afd7ff24c0651" args="() const " -->
@@ -797,7 +771,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -809,10 +783,6 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00146">146</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00234">Vamp::PluginBase::getCurrentProgram()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="074978333a74fdcf336a8a1d8ea20abf"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::selectProgram" ref="074978333a74fdcf336a8a1d8ea20abf" args="(std::string)" -->
@@ -825,7 +795,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual, inherited]</code></td>
+          <td><code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -837,9 +807,7 @@
 (If the given program name is not one of the available programs, do nothing.) 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00152">152</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>, and <a class="el" href="PluginBase_8h-source.html#l00240">Vamp::PluginBase::selectProgram()</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
 
 </div>
 </div><p>
@@ -852,14 +820,14 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function) for the plugin. 
+Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function) for the plugin. 
 <p>
 This should be called before <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
@@ -867,10 +835,6 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00158">158</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00186">Vamp::Plugin::getPreferredStepSize()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="2c62a656313a819650656643a867ad01"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getPreferredBlockSize" ref="2c62a656313a819650656643a867ad01" args="() const " -->
@@ -882,26 +846,20 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function). 
+Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function). 
 <p>
 This should be called before <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">Vamp::Plugin</a>.</p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00164">164</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00171">Vamp::Plugin::getPreferredBlockSize()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00308">Vamp::HostExt::PluginBufferingAdapter::getPreferredStepSize()</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#21e45180b19873f9ab69fe7a4e184a03">Vamp::HostExt::PluginBufferingAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
 
 </div>
 </div><p>
@@ -914,7 +872,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -926,10 +884,6 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00170">170</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00191">Vamp::Plugin::getMinChannelCount()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="985eb21f1827bfbc3950d6871b107a58"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getMaxChannelCount" ref="985eb21f1827bfbc3950d6871b107a58" args="() const " -->
@@ -941,7 +895,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -953,22 +907,18 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00175">175</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00196">Vamp::Plugin::getMaxChannelCount()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="02c8c01972affeea58b091335e791ace"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getOutputDescriptors" ref="02c8c01972affeea58b091335e791ace" args="() const " -->
+<a class="anchor" name="5a9411305f713b4c9827844b89acd270"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getOutputDescriptors" ref="5a9411305f713b4c9827844b89acd270" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Plugin::OutputList</a> Vamp::HostExt::PluginWrapper::getOutputDescriptors           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> Vamp::HostExt::PluginWrapper::getOutputDescriptors           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -977,27 +927,23 @@
 <p>
 Get the outputs of this plugin. 
 <p>
-An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> call. 
+An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> call. 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>.</p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#85a027f5859efb31d315205e234e94c0">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00181">181</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin::getOutputDescriptors()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#f8cc914897a284433de220f1153f3845">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
 
 </div>
 </div><p>
-<a class="anchor" name="1dce55a75a32b08fc56a52a300d9fcbe"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getRemainingFeatures" ref="1dce55a75a32b08fc56a52a300d9fcbe" args="()" -->
+<a class="anchor" name="2bc8c0992e64f06991fb7cf89f99857e"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getRemainingFeatures" ref="2bc8c0992e64f06991fb7cf89f99857e" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a> Vamp::HostExt::PluginWrapper::getRemainingFeatures           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::HostExt::PluginWrapper::getRemainingFeatures           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual, inherited]</code></td>
+          <td><code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -1009,11 +955,36 @@
 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>.</p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#8771cba75552aaa1340b68de9bf1659c">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#28423951b2eda1a1fc371485434f417b">Vamp::HostExt::PluginBufferingAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#e9dcbd1ba8197ff90b4fc6bf7ade7688">Vamp::HostExt::PluginSummarisingAdapter</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00193">193</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
+</div>
+</div><p>
+<a class="anchor" name="e9d79bed7237d55a73018a6b982a55b3"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::getWrapper" ref="e9d79bed7237d55a73018a6b982a55b3" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename WrapperType&gt; </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">WrapperType* Vamp::HostExt::PluginWrapper::getWrapper           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [inline, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
 
-<p>References <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin::getRemainingFeatures()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
+<p>
+Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present. 
+<p>
+This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f" title="Load a Vamp plugin, given its identifying key.">PluginLoader::loadPlugin</a> may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type. 
+<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00116">116</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
+
+<p>References <a class="el" href="PluginWrapper_8h-source.html#l00116">Vamp::HostExt::PluginWrapper::getWrapper()</a>.</p>
+
+<p>Referenced by <a class="el" href="PluginWrapper_8h-source.html#l00116">Vamp::HostExt::PluginWrapper::getWrapper()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -1026,7 +997,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -1038,7 +1009,7 @@
 Do not reimplement this function in your subclass. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00391">391</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00425">425</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -1048,7 +1019,7 @@
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Impl</a>* <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">Vamp::HostExt::PluginChannelAdapter::m_impl</a><code> [protected]</code>          </td>
+          <td class="memname">Impl* <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">Vamp::HostExt::PluginChannelAdapter::m_impl</a><code> [protected]</code>          </td>
         </tr>
       </table>
 </div>
@@ -1056,9 +1027,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8h-source.html#l00120">120</a> of file <a class="el" href="PluginChannelAdapter_8h-source.html">PluginChannelAdapter.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00074">initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00062">PluginChannelAdapter()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00080">process()</a>, and <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00068">~PluginChannelAdapter()</a>.</p>
+<p>Definition at line <a class="el" href="PluginChannelAdapter_8h-source.html#l00139">139</a> of file <a class="el" href="PluginChannelAdapter_8h-source.html">PluginChannelAdapter.h</a>.</p>
 
 </div>
 </div><p>
@@ -1075,9 +1044,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00099">99</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00116">Vamp::HostExt::PluginWrapper::getCopyright()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00146">Vamp::HostExt::PluginWrapper::getCurrentProgram()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00098">Vamp::HostExt::PluginWrapper::getDescription()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00086">Vamp::HostExt::PluginWrapper::getIdentifier()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00074">Vamp::HostExt::PluginWrapper::getInputDomain()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00104">Vamp::HostExt::PluginWrapper::getMaker()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00175">Vamp::HostExt::PluginWrapper::getMaxChannelCount()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00170">Vamp::HostExt::PluginWrapper::getMinChannelCount()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00092">Vamp::HostExt::PluginWrapper::getName()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00181">Vamp::HostExt::PluginWrapper::getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00128">Vamp::HostExt::PluginWrapper::getParameter()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00122">Vamp::HostExt::PluginWrapper::getParameterDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00110">Vamp::HostExt::PluginWrapper::getPluginVersion()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00164">Vamp::HostExt::PluginWrapper::getPreferredBlockSize()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00158">Vamp::HostExt::PluginWrapper::getPreferredStepSize()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00140">Vamp::HostExt::PluginWrapper::getPrograms()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00193">Vamp::HostExt::PluginWrapper::getRemainingFeatures()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00080">Vamp::HostExt::PluginWrapper::getVampApiVersion()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00062">Vamp::HostExt::PluginWrapper::initialise()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00187">Vamp::HostExt::PluginWrapper::process()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00068">Vamp::HostExt::PluginWrapper::reset()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00152">Vamp::HostExt::PluginWrapper::selectProgram()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00134">Vamp::HostExt::PluginWrapper::setParameter()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00620">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::~PluginDeletionNotifyAdapter()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00056">Vamp::HostExt::PluginWrapper::~PluginWrapper()</a>.</p>
+<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00126">126</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
 
 </div>
 </div><p>
@@ -1094,17 +1061,17 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00397">397</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">431</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00047">Vamp::HostExt::PluginRateExtractor::getRate()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00238">Vamp::HostExt::PluginBufferingAdapter::PluginBufferingAdapter()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00113">Vamp::HostExt::PluginInputDomainAdapter::PluginInputDomainAdapter()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
 
 </div>
 </div><p>
-<hr>The documentation for this class was generated from the following files:<ul>
-<li><a class="el" href="PluginChannelAdapter_8h-source.html">PluginChannelAdapter.h</a><li><a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a></ul>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="PluginChannelAdapter_8h-source.html">PluginChannelAdapter.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-<!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: Member List</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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginChannelAdapter::Impl Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Vamp::HostExt::PluginChannelAdapter::Impl</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#dff6fc53236f067148f82da1adca7876">Impl</a>(Plugin *plugin)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Vamp::HostExt::PluginChannelAdapter::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#bf47235b455880c94ec15bb71122afc8">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Vamp::HostExt::PluginChannelAdapter::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#be7b76040411a4544a9a8b0808737626">m_blockSize</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Vamp::HostExt::PluginChannelAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Vamp::HostExt::PluginChannelAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#882147731ba96cf5da446265dbce11bd">m_forwardPtrs</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Vamp::HostExt::PluginChannelAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Vamp::HostExt::PluginChannelAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ff31c1cf3a0fb18ddab7e3ab213c3c07">m_plugin</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Vamp::HostExt::PluginChannelAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Vamp::HostExt::PluginChannelAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ce73f776af09556fa6dc000c8bfdbe06">process</a>(const float *const *inputBuffers, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Vamp::HostExt::PluginChannelAdapter::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#2f93eb032a41a52967e1c47a2901fa33">~Impl</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Vamp::HostExt::PluginChannelAdapter::Impl</a></td><td></td></tr>
-</table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,304 +0,0 @@
-<!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::HostExt::PluginChannelAdapter::Impl Class 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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-  <div class="navpath"><a class="el" href="namespaceVamp.html">Vamp</a>::<a class="el" href="namespaceVamp_1_1HostExt.html">HostExt</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">PluginChannelAdapter</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Impl</a>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginChannelAdapter::Impl Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginChannelAdapter::Impl" -->
-<p>
-<a href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00043">43</a> of file <a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a>.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#dff6fc53236f067148f82da1adca7876">Impl</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#2f93eb032a41a52967e1c47a2901fa33">~Impl</a> ()</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#bf47235b455880c94ec15bb71122afc8">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ce73f776af09556fa6dc000c8bfdbe06">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
-
-<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ff31c1cf3a0fb18ddab7e3ab213c3c07">m_plugin</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#be7b76040411a4544a9a8b0808737626">m_blockSize</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">m_inputChannels</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">m_pluginChannels</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">float **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">m_buffer</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">const float **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#882147731ba96cf5da446265dbce11bd">m_forwardPtrs</a></td></tr>
-
-</table>
-<hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" name="dff6fc53236f067148f82da1adca7876"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::Impl::Impl" ref="dff6fc53236f067148f82da1adca7876" args="(Plugin *plugin)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::HostExt::PluginChannelAdapter::Impl::Impl           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
-          <td class="paramname"> <em>plugin</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00086">86</a> of file <a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="2f93eb032a41a52967e1c47a2901fa33"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::Impl::~Impl" ref="2f93eb032a41a52967e1c47a2901fa33" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::HostExt::PluginChannelAdapter::Impl::~Impl           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00096">96</a> of file <a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00058">m_buffer</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00059">m_forwardPtrs</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00056">m_inputChannels</a>, and <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00057">m_pluginChannels</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="bf47235b455880c94ec15bb71122afc8"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::Impl::initialise" ref="bf47235b455880c94ec15bb71122afc8" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool Vamp::HostExt::PluginChannelAdapter::Impl::initialise           </td>
-          <td>(</td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>channels</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>stepSize</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>blockSize</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">119</a> of file <a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00196">Vamp::Plugin::getMaxChannelCount()</a>, <a class="el" href="Plugin_8h-source.html#l00191">Vamp::Plugin::getMinChannelCount()</a>, <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin::initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00055">m_blockSize</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00058">m_buffer</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00059">m_forwardPtrs</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00056">m_inputChannels</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00054">m_plugin</a>, and <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00057">m_pluginChannels</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00074">Vamp::HostExt::PluginChannelAdapter::initialise()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="ce73f776af09556fa6dc000c8bfdbe06"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::Impl::process" ref="ce73f776af09556fa6dc000c8bfdbe06" args="(const float *const *inputBuffers, RealTime timestamp)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginChannelAdapter::FeatureSet</a> Vamp::HostExt::PluginChannelAdapter::Impl::process           </td>
-          <td>(</td>
-          <td class="paramtype">const float *const *&nbsp;</td>
-          <td class="paramname"> <em>inputBuffers</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td>
-          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00177">177</a> of file <a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00055">m_blockSize</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00058">m_buffer</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00059">m_forwardPtrs</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00056">m_inputChannels</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00054">m_plugin</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00057">m_pluginChannels</a>, and <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin::process()</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00080">Vamp::HostExt::PluginChannelAdapter::process()</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Data Documentation</h2>
-<a class="anchor" name="ff31c1cf3a0fb18ddab7e3ab213c3c07"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::Impl::m_plugin" ref="ff31c1cf3a0fb18ddab7e3ab213c3c07" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a>* <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ff31c1cf3a0fb18ddab7e3ab213c3c07">Vamp::HostExt::PluginChannelAdapter::Impl::m_plugin</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00054">54</a> of file <a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">initialise()</a>, and <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00177">process()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="be7b76040411a4544a9a8b0808737626"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::Impl::m_blockSize" ref="be7b76040411a4544a9a8b0808737626" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#be7b76040411a4544a9a8b0808737626">Vamp::HostExt::PluginChannelAdapter::Impl::m_blockSize</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00055">55</a> of file <a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">initialise()</a>, and <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00177">process()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="6e32d1564be175506a4d43dbfb8e3ace"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::Impl::m_inputChannels" ref="6e32d1564be175506a4d43dbfb8e3ace" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">Vamp::HostExt::PluginChannelAdapter::Impl::m_inputChannels</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00056">56</a> of file <a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00177">process()</a>, and <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00096">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="94268d42f93bd26608fab34d5b4ad680"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::Impl::m_pluginChannels" ref="94268d42f93bd26608fab34d5b4ad680" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">Vamp::HostExt::PluginChannelAdapter::Impl::m_pluginChannels</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00057">57</a> of file <a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00177">process()</a>, and <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00096">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="0494a5293836baeb822405ec4ce0c553"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::Impl::m_buffer" ref="0494a5293836baeb822405ec4ce0c553" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">float** <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">Vamp::HostExt::PluginChannelAdapter::Impl::m_buffer</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00058">58</a> of file <a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00177">process()</a>, and <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00096">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="882147731ba96cf5da446265dbce11bd"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::Impl::m_forwardPtrs" ref="882147731ba96cf5da446265dbce11bd" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const float** <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#882147731ba96cf5da446265dbce11bd">Vamp::HostExt::PluginChannelAdapter::Impl::m_forwardPtrs</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00059">59</a> of file <a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00177">process()</a>, and <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00096">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<hr>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="PluginChannelAdapter_8cpp-source.html">PluginChannelAdapter.cpp</a></ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,3 +1,3 @@
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="28,156,228,180">
-<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="79,81,177,105">
-<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="64,6,192,30">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="28,154,228,181">
+<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="79,80,177,106">
+<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="64,5,192,32">
Binary file code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.png has changed
--- a/code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -32,21 +32,23 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">getCurrentProgram</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">getDescription</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">getIdentifier</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#376fa97a1c721255541fe35d71368976">getInputDomain</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#47ff1ed72889f323da63f8abc9ea581a">getInputDomain</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">getMaker</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">getMaxChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">getMinChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">getName</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace">getOutputDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#5a9411305f713b4c9827844b89acd270">getOutputDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">getParameter</a>(std::string) const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">getParameterDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">getParameterDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">getPluginVersion</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">getPreferredBlockSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">getPreferredStepSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">getPrograms</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe">getRemainingFeatures</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">getPrograms</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2bc8c0992e64f06991fb7cf89f99857e">getRemainingFeatures</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#c1ab6af0fcda0a4c3f050c54b2db4769">getTimestampAdjustment</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">getVampApiVersion</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3">getWrapper</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> enum name</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">m_impl</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a></td><td><code> [protected]</code></td></tr>
@@ -57,7 +59,7 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>(float inputSampleRate)</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#878e7275acdb77efc7a802944305039d">PluginInputDomainAdapter</a>(Plugin *plugin)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#35cc2d42f8322f5022e89859a79c97be">PluginWrapper</a>(Plugin *plugin)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07">process</a>(const float *const *inputBuffers, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231">process</a>(const float *const *inputBuffers, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">reset</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">selectProgram</a>(std::string)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
@@ -65,11 +67,11 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">~Plugin</a>()</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ec457c952155adf516dd8e3dc7739321">~PluginInputDomainAdapter</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7449a364d524de75352a4719fec2e1f5">~PluginWrapper</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ba2cbfa650d8a7c9181dbdb49b10aad0">~PluginInputDomainAdapter</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c4fb6cfd7c0d3b2c8576a4e9dc61f518">~PluginWrapper</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,28 +26,28 @@
   </div>
 </div>
 <div class="contents">
-<h1>Vamp::HostExt::PluginInputDomainAdapter Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginInputDomainAdapter" --><!-- doxytag: inherits="Vamp::HostExt::PluginWrapper" --><code>#include &lt;<a class="el" href="PluginInputDomainAdapter_8h-source.html">vamp-sdk/hostext/PluginInputDomainAdapter.h</a>&gt;</code>
+<h1>Vamp::HostExt::PluginInputDomainAdapter Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginInputDomainAdapter" --><!-- doxytag: inherits="Vamp::HostExt::PluginWrapper" --><code>#include &lt;<a class="el" href="PluginInputDomainAdapter_8h-source.html">vamp-hostsdk/PluginInputDomainAdapter.h</a>&gt;</code>
 <p>
 <div class="dynheader">
 Inheritance diagram for Vamp::HostExt::PluginInputDomainAdapter:</div>
 <div class="dynsection">
 <p><center><img src="classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.png" border="0" usemap="#Vamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__map" alt="Inheritance graph"></center>
 <map name="Vamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__map">
-<area shape="rect" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="41,156,241,180"><area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="92,81,191,105"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="77,6,205,30"></map>
+<area shape="rect" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="41,154,241,181"><area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="92,80,191,106"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="77,5,205,32"></map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
 
 <p>
 <a href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-<a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a> is 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 adapter that converts time-domain input into frequency-domain input for plugins that need it. 
+<a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that converts time-domain input into frequency-domain input for plugins that need it. 
 <p>
 This permits a host to use time- and frequency-domain plugins interchangeably without needing to handle the conversion itself.<p>
 This adapter uses a basic Hanning windowed FFT that supports power-of-two block sizes only. If a frequency domain plugin requests a non-power-of-two blocksize, the adapter will adjust it to a nearby power of two instead. Thus, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5" title="Get the preferred block size (window size -- the number of sample frames passed in...">getPreferredBlockSize()</a> will always return a power of two if the wrapped plugin is a frequency domain one. If the plugin doesn't accept the adjusted power of two block size, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> will fail.<p>
 The adapter provides no way for the host to discover whether the underlying plugin is actually a time or frequency domain plugin (except that if the preferred block size is not a power of two, it must be a time domain plugin).<p>
 The FFT implementation is simple and self-contained, but unlikely to be the fastest available: a host can usually do better if it cares enough.<p>
 In every respect other than its input domain handling, the <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a> behaves identically to the plugin that it wraps. The wrapped plugin will be deleted when the wrapper is deleted.<p>
-<dl class="note" compact><dt><b>Note:</b></dt><dd>This class was introduced in version 1.1 of the <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 SDK. </dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>This class was introduced in version 1.1 of the <a class="el" href="namespaceVamp.html">Vamp</a> plugin SDK. </dd></dl>
 
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8h-source.html#l00079">79</a> of file <a class="el" href="PluginInputDomainAdapter_8h-source.html">PluginInputDomainAdapter.h</a>.</p>
+<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8h-source.html#l00082">82</a> of file <a class="el" href="PluginInputDomainAdapter_8h-source.html">PluginInputDomainAdapter.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
@@ -71,29 +71,33 @@
 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#878e7275acdb77efc7a802944305039d">PluginInputDomainAdapter</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ec457c952155adf516dd8e3dc7739321">~PluginInputDomainAdapter</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a> wrapping the given plugin.  <a href="#878e7275acdb77efc7a802944305039d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ba2cbfa650d8a7c9181dbdb49b10aad0">~PluginInputDomainAdapter</a> ()</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames).  <a href="#72d201eca10ec73bf16e07984f58f94c"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#376fa97a1c721255541fe35d71368976">getInputDomain</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#47ff1ed72889f323da63f8abc9ea581a">getInputDomain</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#376fa97a1c721255541fe35d71368976"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#47ff1ed72889f323da63f8abc9ea581a"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">getPreferredStepSize</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07" title="Process a single block of input data.">process()</a> function) for the plugin.  <a href="#d979af9f1cbf2eeb16f4eaedb4a4f565"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231" title="Process a single block of input data.">process()</a> function) for the plugin.  <a href="#d979af9f1cbf2eeb16f4eaedb4a4f565"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">getPreferredBlockSize</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07" title="Process a single block of input data.">process()</a> function).  <a href="#4cf40d09d02022b1962ff17bb0324ea5"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231" title="Process a single block of input data.">process()</a> function).  <a href="#4cf40d09d02022b1962ff17bb0324ea5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#0867737693c16801d40a6adbde07ec07"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#b36a81ac9a0ded8d83c6b855263c0231"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#c1ab6af0fcda0a4c3f050c54b2db4769">getTimestampAdjustment</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the amount by which the timestamps supplied to <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231" title="Process a single block of input data.">process()</a> are being incremented when they are passed to the plugin's own <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231" title="Process a single block of input data.">process()</a> implementation.  <a href="#c1ab6af0fcda0a4c3f050c54b2db4769"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">reset</a> ()</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the plugin after use, to prepare it for another clean run.  <a href="#d19cc0614ba41cdc26ef3394c5146fe6"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">getVampApiVersion</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <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 compatibility level of the plugin.  <a href="#74147fda6b44ff2169bd4a1eea0d46ff"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.  <a href="#74147fda6b44ff2169bd4a1eea0d46ff"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">getIdentifier</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#4baa9e48f717c2b3e7f92496aa39d904"></a><br></td></tr>
@@ -112,18 +116,18 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">getCopyright</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the copyright statement or licensing summary for the plugin.  <a href="#e14f6ecb78be909c4cd5f0cdaed3c566"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">getParameterDescriptors</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">getParameterDescriptors</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#3b075b8f950b344503f0d27ac0fe332e"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#9be71561265c2e6e43b7feaddaa91f36"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">getParameter</a> (std::string) const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of a named parameter.  <a href="#034920f56c8d7609a85447c42556048c"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">setParameter</a> (std::string, float)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter.  <a href="#651b15a5dc4c27942ac0c87c6092bfe5"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">getPrograms</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">getPrograms</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#f3abaf717dc4b00cad5770ed6dfa01e1"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#131fbe1df81215020b9aa8cecef4c802"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">getCurrentProgram</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current program.  <a href="#7a312dd42d161064b70afd7ff24c0651"></a><br></td></tr>
@@ -136,25 +140,26 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">getMaxChannelCount</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum supported number of input channels.  <a href="#985eb21f1827bfbc3950d6871b107a58"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace">getOutputDescriptors</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#5a9411305f713b4c9827844b89acd270">getOutputDescriptors</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#02c8c01972affeea58b091335e791ace"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe">getRemainingFeatures</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#5a9411305f713b4c9827844b89acd270"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2bc8c0992e64f06991fb7cf89f99857e">getRemainingFeatures</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input.  <a href="#1dce55a75a32b08fc56a52a300d9fcbe"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input.  <a href="#2bc8c0992e64f06991fb7cf89f99857e"></a><br></td></tr>
+<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename WrapperType&gt; </td></tr>
+<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">WrapperType *&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3">getWrapper</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.  <a href="#e9d79bed7237d55a73018a6b982a55b3"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.  <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
 <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Impl</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">m_impl</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">Impl *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">m_impl</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td></tr>
 
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Impl</a></td></tr>
-
 </table>
 <hr><h2>Member Typedef Documentation</h2>
 <a class="anchor" name="30f531b8fb69fac41a24e3d2a6a08ed9"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::OutputList" ref="30f531b8fb69fac41a24e3d2a6a08ed9" args="" -->
@@ -170,7 +175,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00309">309</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00322">322</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -187,7 +192,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00347">347</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00380">380</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -204,7 +209,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00348">348</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00382">382</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -221,7 +226,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00195">195</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -238,7 +243,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00217">217</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -264,7 +269,7 @@
 </table>
 </dl>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00149">149</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">152</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -279,30 +284,28 @@
           <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
           <td class="paramname"> <em>plugin</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00113">113</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginInputDomainAdapter_8h-source.html#l00095">m_impl</a>, and <a class="el" href="Plugin_8h-source.html#l00397">Vamp::Plugin::m_inputSampleRate</a>.</p>
-
+Construct a <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a> wrapping the given plugin. 
+<p>
+The adapter takes ownership of the plugin, which will be deleted when the adapter is deleted. 
 </div>
 </div><p>
-<a class="anchor" name="ec457c952155adf516dd8e3dc7739321"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::~PluginInputDomainAdapter" ref="ec457c952155adf516dd8e3dc7739321" args="()" -->
+<a class="anchor" name="ba2cbfa650d8a7c9181dbdb49b10aad0"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::~PluginInputDomainAdapter" ref="ba2cbfa650d8a7c9181dbdb49b10aad0" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">Vamp::HostExt::PluginInputDomainAdapter::~PluginInputDomainAdapter           </td>
+          <td class="memname">virtual Vamp::HostExt::PluginInputDomainAdapter::~PluginInputDomainAdapter           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -310,10 +313,6 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00119">119</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginInputDomainAdapter_8h-source.html#l00095">m_impl</a>.</p>
-
 </div>
 </div><p>
 <hr><h2>Member Function Documentation</h2>
@@ -342,7 +341,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -355,22 +354,18 @@
 Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00125">125</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00203">Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise()</a>, and <a class="el" href="PluginInputDomainAdapter_8h-source.html#l00095">m_impl</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="376fa97a1c721255541fe35d71368976"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getInputDomain" ref="376fa97a1c721255541fe35d71368976" args="() const " -->
+<a class="anchor" name="47ff1ed72889f323da63f8abc9ea581a"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getInputDomain" ref="47ff1ed72889f323da63f8abc9ea581a" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Plugin::InputDomain</a> Vamp::HostExt::PluginInputDomainAdapter::getInputDomain           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> Vamp::HostExt::PluginInputDomainAdapter::getInputDomain           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -379,12 +374,8 @@
 <p>
 Get the plugin's required input domain. 
 <p>
-If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
-<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870">Vamp::HostExt::PluginWrapper</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00131">131</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00149">Vamp::Plugin::TimeDomain</a>.</p>
+If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
+<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e203faf8384c9e1fddc381409aa8a214">Vamp::HostExt::PluginWrapper</a>.</p>
 
 </div>
 </div><p>
@@ -397,23 +388,19 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07" title="Process a single block of input data.">process()</a> function) for the plugin. 
+Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231" title="Process a single block of input data.">process()</a> function) for the plugin. 
 <p>
 This should be called before <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00137">137</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00271">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredStepSize()</a>, and <a class="el" href="PluginInputDomainAdapter_8h-source.html#l00095">m_impl</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="4cf40d09d02022b1962ff17bb0324ea5"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getPreferredBlockSize" ref="4cf40d09d02022b1962ff17bb0324ea5" args="() const " -->
@@ -425,31 +412,27 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07" title="Process a single block of input data.">process()</a> function). 
+Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231" title="Process a single block of input data.">process()</a> function). 
 <p>
 This should be called before <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00143">143</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00283">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredBlockSize()</a>, and <a class="el" href="PluginInputDomainAdapter_8h-source.html#l00095">m_impl</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="0867737693c16801d40a6adbde07ec07"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::process" ref="0867737693c16801d40a6adbde07ec07" args="(const float *const *inputBuffers, RealTime timestamp)" -->
+<a class="anchor" name="b36a81ac9a0ded8d83c6b855263c0231"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::process" ref="b36a81ac9a0ded8d83c6b855263c0231" args="(const float *const *inputBuffers, RealTime timestamp)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a> Vamp::HostExt::PluginInputDomainAdapter::process           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::HostExt::PluginInputDomainAdapter::process           </td>
           <td>(</td>
           <td class="paramtype">const float *const *&nbsp;</td>
           <td class="paramname"> <em>inputBuffers</em>, </td>
@@ -463,7 +446,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -472,14 +455,35 @@
 <p>
 Process a single block of input data. 
 <p>
-If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp will be the real time in seconds of the start of the supplied block of samples.<p>
+If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.<p>
 If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
 Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) 
-<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7">Vamp::HostExt::PluginWrapper</a>.</p>
+<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00149">149</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
+</div>
+</div><p>
+<a class="anchor" name="c1ab6af0fcda0a4c3f050c54b2db4769"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getTimestampAdjustment" ref="c1ab6af0fcda0a4c3f050c54b2db4769" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a> Vamp::HostExt::PluginInputDomainAdapter::getTimestampAdjustment           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
 
-<p>References <a class="el" href="PluginInputDomainAdapter_8h-source.html#l00095">m_impl</a>, and <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">Vamp::HostExt::PluginInputDomainAdapter::Impl::process()</a>.</p>
+<p>
+Return the amount by which the timestamps supplied to <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231" title="Process a single block of input data.">process()</a> are being incremented when they are passed to the plugin's own <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231" title="Process a single block of input data.">process()</a> implementation. 
+<p>
+The <a class="el" href="namespaceVamp.html">Vamp</a> API mandates that the timestamp passed to the plugin for time-domain input should be the time of the first sample in the block, but the timestamp passed for frequency-domain input should be the timestamp of the centre of the block.<p>
+The <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a> adjusts its timestamps properly so that the plugin receives correct times, but in some circumstances (such as for establishing the correct timing of implicitly-timed features, i.e. features without their own timestamps) the host may need to be aware that this adjustment is taking place.<p>
+If the plugin requires time-domain input, this function will return zero. The result of calling this function before <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> has been called is undefined. 
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -492,7 +496,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual, inherited]</code></td>
+          <td><code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -506,10 +510,6 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00068">68</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>, and <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin::reset()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="74147fda6b44ff2169bd4a1eea0d46ff"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getVampApiVersion" ref="74147fda6b44ff2169bd4a1eea0d46ff" args="() const " -->
@@ -521,22 +521,18 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the <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 compatibility level of the plugin. 
+Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. 
 <p>
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00080">80</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00067">Vamp::PluginBase::getVampApiVersion()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="4baa9e48f717c2b3e7f92496aa39d904"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getIdentifier" ref="4baa9e48f717c2b3e7f92496aa39d904" args="() const " -->
@@ -548,7 +544,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -562,10 +558,6 @@
 Example: "zero_crossings" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00086">86</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase::getIdentifier()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="c70a3265bb25aeb03f6dd8f8a0442088"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getName" ref="c70a3265bb25aeb03f6dd8f8a0442088" args="() const " -->
@@ -577,7 +569,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -590,10 +582,6 @@
 Example: "Zero Crossings" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00092">92</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase::getName()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="c334f699c0996055942785410d8a065c"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getDescription" ref="c334f699c0996055942785410d8a065c" args="() const " -->
@@ -605,7 +593,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -618,10 +606,6 @@
 Example: "Detect and count zero crossing points" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00098">98</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase::getDescription()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="59d5a2298951b317995675e664b1c7bb"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getMaker" ref="59d5a2298951b317995675e664b1c7bb" args="() const " -->
@@ -633,7 +617,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -645,10 +629,6 @@
 This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00104">104</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase::getMaker()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="47e1acf1696813008324a915c9ba59c5"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getPluginVersion" ref="47e1acf1696813008324a915c9ba59c5" args="() const " -->
@@ -660,7 +640,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -672,10 +652,6 @@
 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00110">110</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase::getPluginVersion()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="e14f6ecb78be909c4cd5f0cdaed3c566"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getCopyright" ref="e14f6ecb78be909c4cd5f0cdaed3c566" args="() const " -->
@@ -687,7 +663,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -699,22 +675,18 @@
 This can be an informative text, without the same presentation constraints as mentioned for getMaker above. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00116">116</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase::getCopyright()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="3b075b8f950b344503f0d27ac0fe332e"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getParameterDescriptors" ref="3b075b8f950b344503f0d27ac0fe332e" args="() const " -->
+<a class="anchor" name="9be71561265c2e6e43b7feaddaa91f36"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getParameterDescriptors" ref="9be71561265c2e6e43b7feaddaa91f36" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">PluginBase::ParameterList</a> Vamp::HostExt::PluginWrapper::getParameterDescriptors           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> Vamp::HostExt::PluginWrapper::getParameterDescriptors           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -726,10 +698,6 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00122">122</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00200">Vamp::PluginBase::getParameterDescriptors()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="034920f56c8d7609a85447c42556048c"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getParameter" ref="034920f56c8d7609a85447c42556048c" args="(std::string) const " -->
@@ -742,7 +710,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -754,10 +722,6 @@
 The argument is the identifier field from that parameter's descriptor. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00128">128</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00208">Vamp::PluginBase::getParameter()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="651b15a5dc4c27942ac0c87c6092bfe5"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::setParameter" ref="651b15a5dc4c27942ac0c87c6092bfe5" args="(std::string, float)" -->
@@ -779,7 +743,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual, inherited]</code></td>
+          <td></td><td></td><td><code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -791,22 +755,20 @@
 The first argument is the identifier field from that parameter's descriptor. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00134">134</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>, and <a class="el" href="PluginBase_8h-source.html#l00214">Vamp::PluginBase::setParameter()</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7a979b20c169d37adbd7b7d8b8a077b3">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
 
 </div>
 </div><p>
-<a class="anchor" name="f3abaf717dc4b00cad5770ed6dfa01e1"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getPrograms" ref="f3abaf717dc4b00cad5770ed6dfa01e1" args="() const " -->
+<a class="anchor" name="131fbe1df81215020b9aa8cecef4c802"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getPrograms" ref="131fbe1df81215020b9aa8cecef4c802" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">PluginBase::ProgramList</a> Vamp::HostExt::PluginWrapper::getPrograms           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> Vamp::HostExt::PluginWrapper::getPrograms           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -819,10 +781,6 @@
 The programs must have unique names. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00140">140</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00229">Vamp::PluginBase::getPrograms()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="7a312dd42d161064b70afd7ff24c0651"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getCurrentProgram" ref="7a312dd42d161064b70afd7ff24c0651" args="() const " -->
@@ -834,7 +792,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -846,10 +804,6 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00146">146</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00234">Vamp::PluginBase::getCurrentProgram()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="074978333a74fdcf336a8a1d8ea20abf"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::selectProgram" ref="074978333a74fdcf336a8a1d8ea20abf" args="(std::string)" -->
@@ -862,7 +816,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual, inherited]</code></td>
+          <td><code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -874,9 +828,7 @@
 (If the given program name is not one of the available programs, do nothing.) 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00152">152</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>, and <a class="el" href="PluginBase_8h-source.html#l00240">Vamp::PluginBase::selectProgram()</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
 
 </div>
 </div><p>
@@ -889,7 +841,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -901,10 +853,6 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00170">170</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00191">Vamp::Plugin::getMinChannelCount()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="985eb21f1827bfbc3950d6871b107a58"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getMaxChannelCount" ref="985eb21f1827bfbc3950d6871b107a58" args="() const " -->
@@ -916,7 +864,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -928,22 +876,18 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00175">175</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00196">Vamp::Plugin::getMaxChannelCount()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="02c8c01972affeea58b091335e791ace"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getOutputDescriptors" ref="02c8c01972affeea58b091335e791ace" args="() const " -->
+<a class="anchor" name="5a9411305f713b4c9827844b89acd270"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getOutputDescriptors" ref="5a9411305f713b4c9827844b89acd270" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Plugin::OutputList</a> Vamp::HostExt::PluginWrapper::getOutputDescriptors           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> Vamp::HostExt::PluginWrapper::getOutputDescriptors           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
+          <td> const<code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -952,27 +896,23 @@
 <p>
 Get the outputs of this plugin. 
 <p>
-An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> call. 
+An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> call. 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>.</p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#85a027f5859efb31d315205e234e94c0">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00181">181</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin::getOutputDescriptors()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#f8cc914897a284433de220f1153f3845">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
 
 </div>
 </div><p>
-<a class="anchor" name="1dce55a75a32b08fc56a52a300d9fcbe"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getRemainingFeatures" ref="1dce55a75a32b08fc56a52a300d9fcbe" args="()" -->
+<a class="anchor" name="2bc8c0992e64f06991fb7cf89f99857e"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getRemainingFeatures" ref="2bc8c0992e64f06991fb7cf89f99857e" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a> Vamp::HostExt::PluginWrapper::getRemainingFeatures           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::HostExt::PluginWrapper::getRemainingFeatures           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual, inherited]</code></td>
+          <td><code> [virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -984,11 +924,36 @@
 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>.</p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#8771cba75552aaa1340b68de9bf1659c">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#28423951b2eda1a1fc371485434f417b">Vamp::HostExt::PluginBufferingAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#e9dcbd1ba8197ff90b4fc6bf7ade7688">Vamp::HostExt::PluginSummarisingAdapter</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00193">193</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
+</div>
+</div><p>
+<a class="anchor" name="e9d79bed7237d55a73018a6b982a55b3"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getWrapper" ref="e9d79bed7237d55a73018a6b982a55b3" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename WrapperType&gt; </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">WrapperType* Vamp::HostExt::PluginWrapper::getWrapper           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [inline, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
 
-<p>References <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin::getRemainingFeatures()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
+<p>
+Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present. 
+<p>
+This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f" title="Load a Vamp plugin, given its identifying key.">PluginLoader::loadPlugin</a> may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type. 
+<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00116">116</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
+
+<p>References <a class="el" href="PluginWrapper_8h-source.html#l00116">Vamp::HostExt::PluginWrapper::getWrapper()</a>.</p>
+
+<p>Referenced by <a class="el" href="PluginWrapper_8h-source.html#l00116">Vamp::HostExt::PluginWrapper::getWrapper()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -1001,7 +966,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -1013,7 +978,7 @@
 Do not reimplement this function in your subclass. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00391">391</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00425">425</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -1023,7 +988,7 @@
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Impl</a>* <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">Vamp::HostExt::PluginInputDomainAdapter::m_impl</a><code> [protected]</code>          </td>
+          <td class="memname">Impl* <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">Vamp::HostExt::PluginInputDomainAdapter::m_impl</a><code> [protected]</code>          </td>
         </tr>
       </table>
 </div>
@@ -1031,9 +996,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8h-source.html#l00095">95</a> of file <a class="el" href="PluginInputDomainAdapter_8h-source.html">PluginInputDomainAdapter.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00143">getPreferredBlockSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00137">getPreferredStepSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00125">initialise()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00113">PluginInputDomainAdapter()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00149">process()</a>, and <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00119">~PluginInputDomainAdapter()</a>.</p>
+<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8h-source.html#l00126">126</a> of file <a class="el" href="PluginInputDomainAdapter_8h-source.html">PluginInputDomainAdapter.h</a>.</p>
 
 </div>
 </div><p>
@@ -1050,9 +1013,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00099">99</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00116">Vamp::HostExt::PluginWrapper::getCopyright()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00146">Vamp::HostExt::PluginWrapper::getCurrentProgram()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00098">Vamp::HostExt::PluginWrapper::getDescription()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00086">Vamp::HostExt::PluginWrapper::getIdentifier()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00074">Vamp::HostExt::PluginWrapper::getInputDomain()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00104">Vamp::HostExt::PluginWrapper::getMaker()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00175">Vamp::HostExt::PluginWrapper::getMaxChannelCount()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00170">Vamp::HostExt::PluginWrapper::getMinChannelCount()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00092">Vamp::HostExt::PluginWrapper::getName()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00181">Vamp::HostExt::PluginWrapper::getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00128">Vamp::HostExt::PluginWrapper::getParameter()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00122">Vamp::HostExt::PluginWrapper::getParameterDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00110">Vamp::HostExt::PluginWrapper::getPluginVersion()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00164">Vamp::HostExt::PluginWrapper::getPreferredBlockSize()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00158">Vamp::HostExt::PluginWrapper::getPreferredStepSize()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00140">Vamp::HostExt::PluginWrapper::getPrograms()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00193">Vamp::HostExt::PluginWrapper::getRemainingFeatures()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00080">Vamp::HostExt::PluginWrapper::getVampApiVersion()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00062">Vamp::HostExt::PluginWrapper::initialise()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00187">Vamp::HostExt::PluginWrapper::process()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00068">Vamp::HostExt::PluginWrapper::reset()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00152">Vamp::HostExt::PluginWrapper::selectProgram()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00134">Vamp::HostExt::PluginWrapper::setParameter()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00620">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::~PluginDeletionNotifyAdapter()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00056">Vamp::HostExt::PluginWrapper::~PluginWrapper()</a>.</p>
+<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00126">126</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
 
 </div>
 </div><p>
@@ -1069,17 +1030,17 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00397">397</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">431</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00047">Vamp::HostExt::PluginRateExtractor::getRate()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00238">Vamp::HostExt::PluginBufferingAdapter::PluginBufferingAdapter()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00113">PluginInputDomainAdapter()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
 
 </div>
 </div><p>
-<hr>The documentation for this class was generated from the following files:<ul>
-<li><a class="el" href="PluginInputDomainAdapter_8h-source.html">PluginInputDomainAdapter.h</a><li><a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a></ul>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="PluginInputDomainAdapter_8h-source.html">PluginInputDomainAdapter.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-<!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: Member List</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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginInputDomainAdapter::Impl Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#7ea985ca8cdc45dd156e8d50293c3085">fft</a>(unsigned int n, bool inverse, double *ri, double *ii, double *ro, double *io)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#b530681a774b29db3fd059149f4c1bf9">getPreferredBlockSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4380af577605306d2edab51042c71681">getPreferredStepSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dffa09cc6be98d87cb33c1e92310c9fc">Impl</a>(Plugin *plugin, float inputSampleRate)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#58c9bcbddcb7c3a1a3791b2a04e7372e">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#efcb8c5e8d65003eaf96d2bfefc83fe5">m_blockSize</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">m_channels</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">m_freqbuf</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#bafd656a3bf6d74d6dd38def0c73cc57">m_inputSampleRate</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4d73b85b9ba00c10b55be4febc56dfc4">m_io</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">m_plugin</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#6407b3c17dc96ba7036f2161b1aa30cb">m_ro</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a43f6ea4727b9bb29d6d66869886d15e">m_window</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#76073669d78c0681a3b3a9e71da86ae6">makeBlockSizeAcceptable</a>(size_t) const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#1bd8c3ca5ce5d8254d2d4af910cc31f0">process</a>(const float *const *inputBuffers, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#2c75fc9191782ee69185c60f9b68cb90">~Impl</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></td><td></td></tr>
-</table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,518 +0,0 @@
-<!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::HostExt::PluginInputDomainAdapter::Impl Class 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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-  <div class="navpath"><a class="el" href="namespaceVamp.html">Vamp</a>::<a class="el" href="namespaceVamp_1_1HostExt.html">HostExt</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">PluginInputDomainAdapter</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Impl</a>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginInputDomainAdapter::Impl Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginInputDomainAdapter::Impl" -->
-<p>
-<a href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00077">77</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dffa09cc6be98d87cb33c1e92310c9fc">Impl</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin, float inputSampleRate)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#2c75fc9191782ee69185c60f9b68cb90">~Impl</a> ()</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#58c9bcbddcb7c3a1a3791b2a04e7372e">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4380af577605306d2edab51042c71681">getPreferredStepSize</a> () const </td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#b530681a774b29db3fd059149f4c1bf9">getPreferredBlockSize</a> () const </td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#1bd8c3ca5ce5d8254d2d4af910cc31f0">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
-
-<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#7ea985ca8cdc45dd156e8d50293c3085">fft</a> (unsigned int n, bool inverse, double *ri, double *ii, double *ro, double *io)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#76073669d78c0681a3b3a9e71da86ae6">makeBlockSizeAcceptable</a> (size_t) const </td></tr>
-
-<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">m_plugin</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#bafd656a3bf6d74d6dd38def0c73cc57">m_inputSampleRate</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">m_channels</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#efcb8c5e8d65003eaf96d2bfefc83fe5">m_blockSize</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">float **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">m_freqbuf</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">double *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">m_ri</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">double *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a43f6ea4727b9bb29d6d66869886d15e">m_window</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">double *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#6407b3c17dc96ba7036f2161b1aa30cb">m_ro</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">double *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4d73b85b9ba00c10b55be4febc56dfc4">m_io</a></td></tr>
-
-</table>
-<hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" name="dffa09cc6be98d87cb33c1e92310c9fc"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::Impl" ref="dffa09cc6be98d87cb33c1e92310c9fc" args="(Plugin *plugin, float inputSampleRate)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::HostExt::PluginInputDomainAdapter::Impl::Impl           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
-          <td class="paramname"> <em>plugin</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">float&nbsp;</td>
-          <td class="paramname"> <em>inputSampleRate</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00154">154</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="2c75fc9191782ee69185c60f9b68cb90"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::~Impl" ref="2c75fc9191782ee69185c60f9b68cb90" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::HostExt::PluginInputDomainAdapter::Impl::~Impl           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00172">172</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00093">m_channels</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00095">m_freqbuf</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00105">m_io</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00097">m_ri</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00104">m_ro</a>, and <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00098">m_window</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="58c9bcbddcb7c3a1a3791b2a04e7372e"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise" ref="58c9bcbddcb7c3a1a3791b2a04e7372e" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise           </td>
-          <td>(</td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>channels</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>stepSize</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>blockSize</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00203">203</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin::getInputDomain()</a>, <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin::initialise()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00094">m_blockSize</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00093">m_channels</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00095">m_freqbuf</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00105">m_io</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00199">M_PI</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00091">m_plugin</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00097">m_ri</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00104">m_ro</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00098">m_window</a>, and <a class="el" href="Plugin_8h-source.html#l00149">Vamp::Plugin::TimeDomain</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00125">Vamp::HostExt::PluginInputDomainAdapter::initialise()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="4380af577605306d2edab51042c71681"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredStepSize" ref="4380af577605306d2edab51042c71681" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredStepSize           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const</td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00271">271</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00149">Vamp::Plugin::FrequencyDomain</a>, <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin::getInputDomain()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00283">getPreferredBlockSize()</a>, <a class="el" href="Plugin_8h-source.html#l00186">Vamp::Plugin::getPreferredStepSize()</a>, and <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00091">m_plugin</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00137">Vamp::HostExt::PluginInputDomainAdapter::getPreferredStepSize()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="b530681a774b29db3fd059149f4c1bf9"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredBlockSize" ref="b530681a774b29db3fd059149f4c1bf9" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredBlockSize           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const</td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00283">283</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00149">Vamp::Plugin::FrequencyDomain</a>, <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin::getInputDomain()</a>, <a class="el" href="Plugin_8h-source.html#l00171">Vamp::Plugin::getPreferredBlockSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00091">m_plugin</a>, and <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00299">makeBlockSizeAcceptable()</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00143">Vamp::HostExt::PluginInputDomainAdapter::getPreferredBlockSize()</a>, and <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00271">getPreferredStepSize()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="1bd8c3ca5ce5d8254d2d4af910cc31f0"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::process" ref="1bd8c3ca5ce5d8254d2d4af910cc31f0" args="(const float *const *inputBuffers, RealTime timestamp)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a> Vamp::HostExt::PluginInputDomainAdapter::Impl::process           </td>
-          <td>(</td>
-          <td class="paramtype">const float *const *&nbsp;</td>
-          <td class="paramname"> <em>inputBuffers</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td>
-          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">342</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00438">fft()</a>, <a class="el" href="RealTime_8cpp-source.html#l00232">Vamp::RealTime::frame2RealTime()</a>, <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin::getInputDomain()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00094">m_blockSize</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00093">m_channels</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00095">m_freqbuf</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00092">m_inputSampleRate</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00105">m_io</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00091">m_plugin</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00097">m_ri</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00104">m_ro</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00098">m_window</a>, <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin::process()</a>, and <a class="el" href="Plugin_8h-source.html#l00149">Vamp::Plugin::TimeDomain</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00149">Vamp::HostExt::PluginInputDomainAdapter::process()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="7ea985ca8cdc45dd156e8d50293c3085"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::fft" ref="7ea985ca8cdc45dd156e8d50293c3085" args="(unsigned int n, bool inverse, double *ri, double *ii, double *ro, double *io)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::HostExt::PluginInputDomainAdapter::Impl::fft           </td>
-          <td>(</td>
-          <td class="paramtype">unsigned int&nbsp;</td>
-          <td class="paramname"> <em>n</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">bool&nbsp;</td>
-          <td class="paramname"> <em>inverse</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">double *&nbsp;</td>
-          <td class="paramname"> <em>ri</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">double *&nbsp;</td>
-          <td class="paramname"> <em>ii</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">double *&nbsp;</td>
-          <td class="paramname"> <em>ro</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">double *&nbsp;</td>
-          <td class="paramname"> <em>io</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00438">438</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00199">M_PI</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">process()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="76073669d78c0681a3b3a9e71da86ae6"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::makeBlockSizeAcceptable" ref="76073669d78c0681a3b3a9e71da86ae6" args="(size_t) const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t Vamp::HostExt::PluginInputDomainAdapter::Impl::makeBlockSizeAcceptable           </td>
-          <td>(</td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>blockSize</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00299">299</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00283">getPreferredBlockSize()</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Data Documentation</h2>
-<a class="anchor" name="a85961dc001c031beb0382a883f0738c"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::m_plugin" ref="a85961dc001c031beb0382a883f0738c" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a>* <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">Vamp::HostExt::PluginInputDomainAdapter::Impl::m_plugin</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00091">91</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00283">getPreferredBlockSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00271">getPreferredStepSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00203">initialise()</a>, and <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">process()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="bafd656a3bf6d74d6dd38def0c73cc57"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::m_inputSampleRate" ref="bafd656a3bf6d74d6dd38def0c73cc57" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">float <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#bafd656a3bf6d74d6dd38def0c73cc57">Vamp::HostExt::PluginInputDomainAdapter::Impl::m_inputSampleRate</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00092">92</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">process()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="dc38e78c7bf4375516c1d2466bc349e9"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::m_channels" ref="dc38e78c7bf4375516c1d2466bc349e9" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">int <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">Vamp::HostExt::PluginInputDomainAdapter::Impl::m_channels</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00093">93</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00203">initialise()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">process()</a>, and <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00172">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="efcb8c5e8d65003eaf96d2bfefc83fe5"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::m_blockSize" ref="efcb8c5e8d65003eaf96d2bfefc83fe5" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">int <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#efcb8c5e8d65003eaf96d2bfefc83fe5">Vamp::HostExt::PluginInputDomainAdapter::Impl::m_blockSize</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00094">94</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00203">initialise()</a>, and <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">process()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="24b96bba51fec82383a5413c63f27a57"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::m_freqbuf" ref="24b96bba51fec82383a5413c63f27a57" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">float** <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">Vamp::HostExt::PluginInputDomainAdapter::Impl::m_freqbuf</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00095">95</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00203">initialise()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">process()</a>, and <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00172">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="0c379b5bf280b6db1cf8fe782c1a94bb"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::m_ri" ref="0c379b5bf280b6db1cf8fe782c1a94bb" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">double* <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">Vamp::HostExt::PluginInputDomainAdapter::Impl::m_ri</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00097">97</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00203">initialise()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">process()</a>, and <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00172">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="a43f6ea4727b9bb29d6d66869886d15e"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::m_window" ref="a43f6ea4727b9bb29d6d66869886d15e" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">double* <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a43f6ea4727b9bb29d6d66869886d15e">Vamp::HostExt::PluginInputDomainAdapter::Impl::m_window</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00098">98</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00203">initialise()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">process()</a>, and <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00172">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="6407b3c17dc96ba7036f2161b1aa30cb"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::m_ro" ref="6407b3c17dc96ba7036f2161b1aa30cb" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">double* <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#6407b3c17dc96ba7036f2161b1aa30cb">Vamp::HostExt::PluginInputDomainAdapter::Impl::m_ro</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00104">104</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00203">initialise()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">process()</a>, and <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00172">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="4d73b85b9ba00c10b55be4febc56dfc4"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::Impl::m_io" ref="4d73b85b9ba00c10b55be4febc56dfc4" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">double* <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4d73b85b9ba00c10b55be4febc56dfc4">Vamp::HostExt::PluginInputDomainAdapter::Impl::m_io</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00105">105</a> of file <a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00203">initialise()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">process()</a>, and <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00172">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<hr>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="PluginInputDomainAdapter_8cpp-source.html">PluginInputDomainAdapter.cpp</a></ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,3 +1,3 @@
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="41,156,241,180">
-<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="92,81,191,105">
-<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="77,6,205,30">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="41,154,241,181">
+<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="92,80,191,106">
+<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="77,5,205,32">
Binary file code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.png has changed
--- a/code-doc/classVamp_1_1HostExt_1_1PluginLoader-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginLoader-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -32,21 +32,21 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494763a9a0caf512d9671b90c05c2808a09">ADAPT_INPUT_DOMAIN</a> enum value</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494">AdapterFlags</a> enum name</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#cc6865d27825c100d7b6f9ed6ecf5207">composePluginKey</a>(std::string libraryName, std::string identifier)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#dbb5c8855697a24be890e4f107e26b0e">getInstance</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td><code> [static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#592d6b4c6edaa369407e833f56e4a4de">getLibraryPathForPlugin</a>(PluginKey plugin)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d5c594142ff058bd70e66247d45cd86e">getPluginCategory</a>(PluginKey plugin)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ec450c2928b1ae5318d45972722dd16b">listPlugins</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#2154970381343edef629482bdafea7e2">loadPlugin</a>(PluginKey key, float inputSampleRate, int adapterFlags=0)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#1d77fa1d58ee4fee2985b5af02380326">getInstance</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#4bbcb7873e617bbc9f79eade1f90f7ad">getLibraryPathForPlugin</a>(PluginKey plugin)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#52746ea66339ad981b868a031a3b382d">getPluginCategory</a>(PluginKey plugin)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff51b52bb68aa2934ccf26ad1d284f28">listPlugins</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f">loadPlugin</a>(PluginKey key, float inputSampleRate, int adapterFlags=0)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">m_impl</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#aa4eae58ddbadf6537a95dbb6e957187">m_instance</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td><code> [protected, static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#f89caf5f838a586b117c417260b7a116">m_instance</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td><code> [protected, static]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364">PluginCategoryHierarchy</a> typedef</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a> typedef</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#0d48b76e4f995110f53e0feeb23f733a">PluginKeyList</a> typedef</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#5ab9e0281244bef7976c6c0ce1a55c24">PluginLoader</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#9e092d864efdc0f16c032bfb25e76dea">~PluginLoader</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td><code> [protected, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d74ab52bc6aa2514b3a6b3f679fc492c">~PluginLoader</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a></td><td><code> [protected, virtual]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginLoader.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginLoader.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,18 +26,18 @@
   </div>
 </div>
 <div class="contents">
-<h1>Vamp::HostExt::PluginLoader Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginLoader" --><code>#include &lt;<a class="el" href="PluginLoader_8h-source.html">vamp-sdk/hostext/PluginLoader.h</a>&gt;</code>
+<h1>Vamp::HostExt::PluginLoader Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginLoader" --><code>#include &lt;<a class="el" href="PluginLoader_8h-source.html">vamp-hostsdk/PluginLoader.h</a>&gt;</code>
 <p>
 
 <p>
 <a href="classVamp_1_1HostExt_1_1PluginLoader-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">Vamp::HostExt::PluginLoader</a> is a convenience class for discovering and loading <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 using the typical plugin-path, library naming, and categorisation conventions described in the <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> SDK documentation. 
+<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">Vamp::HostExt::PluginLoader</a> is a convenience class for discovering and loading <a class="el" href="namespaceVamp.html">Vamp</a> plugins using the typical plugin-path, library naming, and categorisation conventions described in the <a class="el" href="namespaceVamp.html">Vamp</a> SDK documentation. 
 <p>
-This class is intended to greatly simplify the task of becoming 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 host for any C++ application.<p>
-Hosts are not required by the <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> specification to use the same plugin search path and naming conventions as implemented by this class, and are certainly not required to use this actual class. But we do strongly recommend it.<p>
-<dl class="note" compact><dt><b>Note:</b></dt><dd>This class was introduced in version 1.1 of the <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 SDK. </dd></dl>
+This class is intended to greatly simplify the task of becoming a <a class="el" href="namespaceVamp.html">Vamp</a> plugin host for any C++ application.<p>
+Hosts are not required by the <a class="el" href="namespaceVamp.html">Vamp</a> specification to use the same plugin search path and naming conventions as implemented by this class, and are certainly not required to use this actual class. But we do strongly recommend it.<p>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>This class was introduced in version 1.1 of the <a class="el" href="namespaceVamp.html">Vamp</a> plugin SDK. </dd></dl>
 
-<p>Definition at line <a class="el" href="PluginLoader_8h-source.html#l00069">69</a> of file <a class="el" href="PluginLoader_8h-source.html">PluginLoader.h</a>.</p>
+<p>Definition at line <a class="el" href="PluginLoader_8h-source.html#l00072">72</a> of file <a class="el" href="PluginLoader_8h-source.html">PluginLoader.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
@@ -57,43 +57,40 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PluginKey is a string type that is used to identify a plugin uniquely within the scope of "the current system".  <a href="#473645bbb3ac5c1a0da2f0f482947c4d"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#0d48b76e4f995110f53e0feeb23f733a">PluginKeyList</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PluginKeyList is a sequence of plugin keys, such as returned by <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ec450c2928b1ae5318d45972722dd16b" title="Search for all available Vamp plugins, and return a list of them in the order in...">listPlugins()</a>.  <a href="#0d48b76e4f995110f53e0feeb23f733a"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PluginKeyList is a sequence of plugin keys, such as returned by <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff51b52bb68aa2934ccf26ad1d284f28" title="Search for all available Vamp plugins, and return a list of them in the order in...">listPlugins()</a>.  <a href="#0d48b76e4f995110f53e0feeb23f733a"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364">PluginCategoryHierarchy</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PluginCategoryHierarchy is a sequence of general-&gt;specific category names, as may be associated with a single plugin.  <a href="#d6a39aa0c79d8d9209eb0b8dfe9d1364"></a><br></td></tr>
 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#0d48b76e4f995110f53e0feeb23f733a">PluginKeyList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ec450c2928b1ae5318d45972722dd16b">listPlugins</a> ()</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#0d48b76e4f995110f53e0feeb23f733a">PluginKeyList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff51b52bb68aa2934ccf26ad1d284f28">listPlugins</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Search for all available <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, and return a list of them in the order in which they were found.  <a href="#ec450c2928b1ae5318d45972722dd16b"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#2154970381343edef629482bdafea7e2">loadPlugin</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a> key, float inputSampleRate, int adapterFlags=0)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Search for all available <a class="el" href="namespaceVamp.html">Vamp</a> plugins, and return a list of them in the order in which they were found.  <a href="#ff51b52bb68aa2934ccf26ad1d284f28"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f">loadPlugin</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a> key, float inputSampleRate, int adapterFlags=0)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Load 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, given its identifying key.  <a href="#2154970381343edef629482bdafea7e2"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Load a <a class="el" href="namespaceVamp.html">Vamp</a> plugin, given its identifying key.  <a href="#964689eb9688cd7e58e8c82ebb0d305f"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#cc6865d27825c100d7b6f9ed6ecf5207">composePluginKey</a> (std::string libraryName, std::string identifier)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given 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 library name and plugin identifier, return the corresponding plugin key in a form suitable for passing in to <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#2154970381343edef629482bdafea7e2" title="Load a Vamp plugin, given its identifying key.">loadPlugin()</a>.  <a href="#cc6865d27825c100d7b6f9ed6ecf5207"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364">PluginCategoryHierarchy</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d5c594142ff058bd70e66247d45cd86e">getPluginCategory</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a> plugin)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given a <a class="el" href="namespaceVamp.html">Vamp</a> plugin library name and plugin identifier, return the corresponding plugin key in a form suitable for passing in to <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f" title="Load a Vamp plugin, given its identifying key.">loadPlugin()</a>.  <a href="#cc6865d27825c100d7b6f9ed6ecf5207"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364">PluginCategoryHierarchy</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#52746ea66339ad981b868a031a3b382d">getPluginCategory</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a> plugin)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the category hierarchy for 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, given its identifying key.  <a href="#d5c594142ff058bd70e66247d45cd86e"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#592d6b4c6edaa369407e833f56e4a4de">getLibraryPathForPlugin</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a> plugin)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the category hierarchy for a <a class="el" href="namespaceVamp.html">Vamp</a> plugin, given its identifying key.  <a href="#52746ea66339ad981b868a031a3b382d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#4bbcb7873e617bbc9f79eade1f90f7ad">getLibraryPathForPlugin</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a> plugin)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the file path of the dynamic library from which the given plugin will be loaded (if available).  <a href="#592d6b4c6edaa369407e833f56e4a4de"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the file path of the dynamic library from which the given plugin will be loaded (if available).  <a href="#4bbcb7873e617bbc9f79eade1f90f7ad"></a><br></td></tr>
 <tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#dbb5c8855697a24be890e4f107e26b0e">getInstance</a> ()</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#1d77fa1d58ee4fee2985b5af02380326">getInstance</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain a pointer to the singleton instance of <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a>.  <a href="#dbb5c8855697a24be890e4f107e26b0e"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain a pointer to the singleton instance of <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a>.  <a href="#1d77fa1d58ee4fee2985b5af02380326"></a><br></td></tr>
 <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#5ab9e0281244bef7976c6c0ce1a55c24">PluginLoader</a> ()</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#9e092d864efdc0f16c032bfb25e76dea">~PluginLoader</a> ()</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d74ab52bc6aa2514b3a6b3f679fc492c">~PluginLoader</a> ()</td></tr>
 
 <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">m_impl</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">Impl *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">m_impl</a></td></tr>
 
 <tr><td colspan="2"><br><h2>Static Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#aa4eae58ddbadf6537a95dbb6e957187">m_instance</a> = 0</td></tr>
-
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#f89caf5f838a586b117c417260b7a116">m_instance</a></td></tr>
 
 </table>
 <hr><h2>Member Typedef Documentation</h2>
@@ -111,10 +108,10 @@
 <p>
 PluginKey is a string type that is used to identify a plugin uniquely within the scope of "the current system". 
 <p>
-It consists of the lower-cased base name of the plugin library, a colon separator, and the identifier string for the plugin. It is only meaningful in the context of a given plugin path (the one returned by <a class="el" href="classVamp_1_1PluginHostAdapter.html#08d7ed3a11bf4a3c30fa0f9b41a0fed6">PluginHostAdapter::getPluginPath()</a>).<p>
+It consists of the lower-cased base name of the plugin library, a colon separator, and the identifier string for the plugin. It is only meaningful in the context of a given plugin path (the one returned by <a class="el" href="classVamp_1_1PluginHostAdapter.html#09cbfb7903d28f10d6d556c6cb81c5f6">PluginHostAdapter::getPluginPath()</a>).<p>
 Use <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#cc6865d27825c100d7b6f9ed6ecf5207" title="Given a Vamp plugin library name and plugin identifier, return the corresponding...">composePluginKey()</a> to construct a plugin key from a known plugin library name and identifier.<p>
-Note: the fact that the library component of the key is lower-cased implies that library names are matched case-insensitively by the <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> class, regardless of the case sensitivity of the underlying filesystem. (<a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> identifiers _are_ case sensitive, however.) Also, it is not possible to portably extract a working library name from a plugin key, as the result may fail on case-sensitive filesystems. Use <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#592d6b4c6edaa369407e833f56e4a4de" title="Return the file path of the dynamic library from which the given plugin will be loaded...">getLibraryPathForPlugin()</a> instead. 
-<p>Definition at line <a class="el" href="PluginLoader_8h-source.html#l00098">98</a> of file <a class="el" href="PluginLoader_8h-source.html">PluginLoader.h</a>.</p>
+Note: the fact that the library component of the key is lower-cased implies that library names are matched case-insensitively by the <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> class, regardless of the case sensitivity of the underlying filesystem. (<a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> identifiers _are_ case sensitive, however.) Also, it is not possible to portably extract a working library name from a plugin key, as the result may fail on case-sensitive filesystems. Use <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#4bbcb7873e617bbc9f79eade1f90f7ad" title="Return the file path of the dynamic library from which the given plugin will be loaded...">getLibraryPathForPlugin()</a> instead. 
+<p>Definition at line <a class="el" href="PluginLoader_8h-source.html#l00101">101</a> of file <a class="el" href="PluginLoader_8h-source.html">PluginLoader.h</a>.</p>
 
 </div>
 </div><p>
@@ -130,10 +127,10 @@
 <div class="memdoc">
 
 <p>
-PluginKeyList is a sequence of plugin keys, such as returned by <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ec450c2928b1ae5318d45972722dd16b" title="Search for all available Vamp plugins, and return a list of them in the order in...">listPlugins()</a>. 
+PluginKeyList is a sequence of plugin keys, such as returned by <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff51b52bb68aa2934ccf26ad1d284f28" title="Search for all available Vamp plugins, and return a list of them in the order in...">listPlugins()</a>. 
 <p>
 
-<p>Definition at line <a class="el" href="PluginLoader_8h-source.html#l00104">104</a> of file <a class="el" href="PluginLoader_8h-source.html">PluginLoader.h</a>.</p>
+<p>Definition at line <a class="el" href="PluginLoader_8h-source.html#l00107">107</a> of file <a class="el" href="PluginLoader_8h-source.html">PluginLoader.h</a>.</p>
 
 </div>
 </div><p>
@@ -152,9 +149,9 @@
 PluginCategoryHierarchy is a sequence of general-&gt;specific category names, as may be associated with a single plugin. 
 <p>
 This sequence describes the location of a plugin within a category forest, containing the human-readable names of the plugin's category tree root, followed by each of the nodes down to the leaf containing the plugin.<p>
-<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d5c594142ff058bd70e66247d45cd86e" title="Return the category hierarchy for a Vamp plugin, given its identifying key.">getPluginCategory()</a> </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#52746ea66339ad981b868a031a3b382d" title="Return the category hierarchy for a Vamp plugin, given its identifying key.">getPluginCategory()</a> </dd></dl>
 
-<p>Definition at line <a class="el" href="PluginLoader_8h-source.html#l00116">116</a> of file <a class="el" href="PluginLoader_8h-source.html">PluginLoader.h</a>.</p>
+<p>Definition at line <a class="el" href="PluginLoader_8h-source.html#l00119">119</a> of file <a class="el" href="PluginLoader_8h-source.html">PluginLoader.h</a>.</p>
 
 </div>
 </div><p>
@@ -194,7 +191,7 @@
 </table>
 </dl>
 
-<p>Definition at line <a class="el" href="PluginLoader_8h-source.html#l00166">166</a> of file <a class="el" href="PluginLoader_8h-source.html">PluginLoader.h</a>.</p>
+<p>Definition at line <a class="el" href="PluginLoader_8h-source.html#l00169">169</a> of file <a class="el" href="PluginLoader_8h-source.html">PluginLoader.h</a>.</p>
 
 </div>
 </div><p>
@@ -208,7 +205,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [protected]</code></td>
+          <td><code> [protected]</code></td>
         </tr>
       </table>
 </div>
@@ -216,24 +213,18 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00141">141</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8h-source.html#l00227">m_impl</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00152">getInstance()</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="9e092d864efdc0f16c032bfb25e76dea"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::~PluginLoader" ref="9e092d864efdc0f16c032bfb25e76dea" args="()" -->
+<a class="anchor" name="d74ab52bc6aa2514b3a6b3f679fc492c"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::~PluginLoader" ref="d74ab52bc6aa2514b3a6b3f679fc492c" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">Vamp::HostExt::PluginLoader::~PluginLoader           </td>
+          <td class="memname">virtual Vamp::HostExt::PluginLoader::~PluginLoader           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [protected, virtual]</code></td>
+          <td><code> [protected, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -241,23 +232,19 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00146">146</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8h-source.html#l00227">m_impl</a>.</p>
-
 </div>
 </div><p>
 <hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="dbb5c8855697a24be890e4f107e26b0e"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::getInstance" ref="dbb5c8855697a24be890e4f107e26b0e" args="()" -->
+<a class="anchor" name="1d77fa1d58ee4fee2985b5af02380326"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::getInstance" ref="1d77fa1d58ee4fee2985b5af02380326" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a> * Vamp::HostExt::PluginLoader::getInstance           </td>
+          <td class="memname">static <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a>* Vamp::HostExt::PluginLoader::getInstance           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static]</code></td>
+          <td><code> [static]</code></td>
         </tr>
       </table>
 </div>
@@ -267,45 +254,37 @@
 Obtain a pointer to the singleton instance of <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a>. 
 <p>
 Use this to obtain your loader object. 
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00152">152</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8h-source.html#l00230">m_instance</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00141">PluginLoader()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00206">Vamp::HostExt::PluginLoader::Impl::setInstanceToClean()</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="ec450c2928b1ae5318d45972722dd16b"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::listPlugins" ref="ec450c2928b1ae5318d45972722dd16b" args="()" -->
+<a class="anchor" name="ff51b52bb68aa2934ccf26ad1d284f28"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::listPlugins" ref="ff51b52bb68aa2934ccf26ad1d284f28" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">vector&lt; <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginLoader::PluginKey</a> &gt; Vamp::HostExt::PluginLoader::listPlugins           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#0d48b76e4f995110f53e0feeb23f733a">PluginKeyList</a> Vamp::HostExt::PluginLoader::listPlugins           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Search for all available <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, and return a list of them in the order in which they were found. 
+Search for all available <a class="el" href="namespaceVamp.html">Vamp</a> plugins, and return a list of them in the order in which they were found. 
 <p>
 
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00165">165</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8cpp-source.html#l00212">Vamp::HostExt::PluginLoader::Impl::listPlugins()</a>, and <a class="el" href="PluginLoader_8h-source.html#l00227">m_impl</a>.</p>
-
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00577">printPluginCategoryList()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00778">printPluginCategoryList()</a>.</p>
 
 </div>
 </div><p>
-<a class="anchor" name="2154970381343edef629482bdafea7e2"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::loadPlugin" ref="2154970381343edef629482bdafea7e2" args="(PluginKey key, float inputSampleRate, int adapterFlags=0)" -->
+<a class="anchor" name="964689eb9688cd7e58e8c82ebb0d305f"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::loadPlugin" ref="964689eb9688cd7e58e8c82ebb0d305f" args="(PluginKey key, float inputSampleRate, int adapterFlags=0)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> * Vamp::HostExt::PluginLoader::loadPlugin           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a>* Vamp::HostExt::PluginLoader::loadPlugin           </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a>&nbsp;</td>
           <td class="paramname"> <em>key</em>, </td>
@@ -325,14 +304,14 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Load 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, given its identifying key. 
+Load a <a class="el" href="namespaceVamp.html">Vamp</a> plugin, given its identifying key. 
 <p>
 If the plugin could not be loaded, returns 0.<p>
 The returned plugin should be deleted (using the standard C++ delete keyword) after use.<p>
@@ -343,11 +322,7 @@
 </dl>
 <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494" title="AdapterFlags contains a set of values that may be OR&#39;d together to indicate in...">AdapterFlags</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> </dd></dl>
 
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00171">171</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8cpp-source.html#l00355">Vamp::HostExt::PluginLoader::Impl::loadPlugin()</a>, and <a class="el" href="PluginLoader_8h-source.html#l00227">m_impl</a>.</p>
-
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00577">printPluginCategoryList()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00778">printPluginCategoryList()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -370,61 +345,57 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Given 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 library name and plugin identifier, return the corresponding plugin key in a form suitable for passing in to <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#2154970381343edef629482bdafea7e2" title="Load a Vamp plugin, given its identifying key.">loadPlugin()</a>. 
+Given a <a class="el" href="namespaceVamp.html">Vamp</a> plugin library name and plugin identifier, return the corresponding plugin key in a form suitable for passing in to <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f" title="Load a Vamp plugin, given its identifying key.">loadPlugin()</a>. 
 <p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
-<a class="anchor" name="d5c594142ff058bd70e66247d45cd86e"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::getPluginCategory" ref="d5c594142ff058bd70e66247d45cd86e" args="(PluginKey plugin)" -->
+<a class="anchor" name="52746ea66339ad981b868a031a3b382d"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::getPluginCategory" ref="52746ea66339ad981b868a031a3b382d" args="(PluginKey plugin)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364">PluginLoader::PluginCategoryHierarchy</a> Vamp::HostExt::PluginLoader::getPluginCategory           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364">PluginCategoryHierarchy</a> Vamp::HostExt::PluginLoader::getPluginCategory           </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a>&nbsp;</td>
           <td class="paramname"> <em>plugin</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Return the category hierarchy for 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, given its identifying key. 
+Return the category hierarchy for a <a class="el" href="namespaceVamp.html">Vamp</a> plugin, given its identifying key. 
 <p>
 If the plugin has no category information, return an empty hierarchy.<p>
 <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364" title="PluginCategoryHierarchy is a sequence of general-&gt;specific category names, as...">PluginCategoryHierarchy</a> </dd></dl>
 
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00185">185</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8cpp-source.html#l00332">Vamp::HostExt::PluginLoader::Impl::getPluginCategory()</a>, and <a class="el" href="PluginLoader_8h-source.html#l00227">m_impl</a>.</p>
-
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00577">printPluginCategoryList()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00778">printPluginCategoryList()</a>.</p>
 
 </div>
 </div><p>
-<a class="anchor" name="592d6b4c6edaa369407e833f56e4a4de"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::getLibraryPathForPlugin" ref="592d6b4c6edaa369407e833f56e4a4de" args="(PluginKey plugin)" -->
+<a class="anchor" name="4bbcb7873e617bbc9f79eade1f90f7ad"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::getLibraryPathForPlugin" ref="4bbcb7873e617bbc9f79eade1f90f7ad" args="(PluginKey plugin)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">string Vamp::HostExt::PluginLoader::getLibraryPathForPlugin           </td>
+          <td class="memname">std::string Vamp::HostExt::PluginLoader::getLibraryPathForPlugin           </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a>&nbsp;</td>
           <td class="paramname"> <em>plugin</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -434,11 +405,7 @@
 Return the file path of the dynamic library from which the given plugin will be loaded (if available). 
 <p>
 
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00191">191</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8cpp-source.html#l00342">Vamp::HostExt::PluginLoader::Impl::getLibraryPathForPlugin()</a>, and <a class="el" href="PluginLoader_8h-source.html#l00227">m_impl</a>.</p>
-
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
 
 </div>
 </div><p>
@@ -448,26 +415,7 @@
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a>* <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">Vamp::HostExt::PluginLoader::m_impl</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8h-source.html#l00227">227</a> of file <a class="el" href="PluginLoader_8h-source.html">PluginLoader.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00191">getLibraryPathForPlugin()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00185">getPluginCategory()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00165">listPlugins()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00171">loadPlugin()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00141">PluginLoader()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00146">~PluginLoader()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="aa4eae58ddbadf6537a95dbb6e957187"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::m_instance" ref="aa4eae58ddbadf6537a95dbb6e957187" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a> * <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#aa4eae58ddbadf6537a95dbb6e957187">Vamp::HostExt::PluginLoader::m_instance</a> = 0<code> [static, protected]</code>          </td>
+          <td class="memname">Impl* <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">Vamp::HostExt::PluginLoader::m_impl</a><code> [protected]</code>          </td>
         </tr>
       </table>
 </div>
@@ -477,15 +425,30 @@
 
 <p>Definition at line <a class="el" href="PluginLoader_8h-source.html#l00230">230</a> of file <a class="el" href="PluginLoader_8h-source.html">PluginLoader.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00152">getInstance()</a>.</p>
+</div>
+</div><p>
+<a class="anchor" name="f89caf5f838a586b117c417260b7a116"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::m_instance" ref="f89caf5f838a586b117c417260b7a116" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a>* <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#f89caf5f838a586b117c417260b7a116">Vamp::HostExt::PluginLoader::m_instance</a><code> [static, protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="PluginLoader_8h-source.html#l00233">233</a> of file <a class="el" href="PluginLoader_8h-source.html">PluginLoader.h</a>.</p>
 
 </div>
 </div><p>
-<hr>The documentation for this class was generated from the following files:<ul>
-<li><a class="el" href="PluginLoader_8h-source.html">PluginLoader.h</a><li><a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a></ul>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="PluginLoader_8h-source.html">PluginLoader.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-<!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: Member List</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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginLoader::Impl Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c84fafd9b12d44f8756628571b57d7ea">composePluginKey</a>(string libraryName, string identifier)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b06d720c0d53f908426ce244294d38ed">decomposePluginKey</a>(PluginKey key, string &amp;libraryName, string &amp;identifier)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6fb71e4d0b4ff367ffef141c5e62763d">enumeratePlugins</a>(PluginKey forPlugin=&quot;&quot;)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#923d9ace30548d8f3cce58b4037ec9e4">generateTaxonomy</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#aac3ed8bf770f0675e624d411dab3efb">getLibraryPathForPlugin</a>(PluginKey key)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#de4a5a8acbd85537c99440c4ac974be4">getPluginCategory</a>(PluginKey key)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ddac537272c2eb69973cbb942dc11deb">Impl</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2dd3964e84bca56390cd31b079fbc01f">listFiles</a>(string dir, string ext)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#398ccb508176f5550b2b2ca05f1fa3eb">listPlugins</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c0618149e415b7fd8ad782f434070752">loadLibrary</a>(string path)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#3f6c4872459007b13722818cbdac409c">loadPlugin</a>(PluginKey key, float inputSampleRate, int adapterFlags)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ec71088ca89ba77f357bde8b37b807f8">lookupInLibrary</a>(void *handle, const char *symbol)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#d7b867e5cf9c29ad7254f567849f9913">m_allPluginsEnumerated</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#5d03696d9093949f627bd684c8db44c2">m_cleaner</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1c3cee03d20e669c8b9379247a222600">m_pluginLibraryHandleMap</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">m_pluginLibraryNameMap</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2ba901c7e59ece349b715d4a3fec7b04">m_taxonomy</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#e0a6e1bf07a62eb6a34a1393bc3da26c">pluginDeleted</a>(PluginDeletionNotifyAdapter *adapter)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [protected, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b7147ecb2186a715b0f7e83ba70f0946">setInstanceToClean</a>(PluginLoader *instance)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#eb7a794c0a2410a81a382a08e8a0143c">splicePath</a>(string a, string b)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6a93367036f896d505f553b616e1e7aa">unloadLibrary</a>(void *handle)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1e28874a14fafaf015404694da5fcfc8">~Impl</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a></td><td><code> [virtual]</code></td></tr>
-</table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,679 +0,0 @@
-<!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::HostExt::PluginLoader::Impl Class 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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-  <div class="navpath"><a class="el" href="namespaceVamp.html">Vamp</a>::<a class="el" href="namespaceVamp_1_1HostExt.html">HostExt</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginLoader::Impl Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginLoader::Impl" -->
-<p>
-<a href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00073">73</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ddac537272c2eb69973cbb942dc11deb">Impl</a> ()</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1e28874a14fafaf015404694da5fcfc8">~Impl</a> ()</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#0d48b76e4f995110f53e0feeb23f733a">PluginKeyList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#398ccb508176f5550b2b2ca05f1fa3eb">listPlugins</a> ()</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#3f6c4872459007b13722818cbdac409c">loadPlugin</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a> key, float inputSampleRate, int adapterFlags)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c84fafd9b12d44f8756628571b57d7ea">composePluginKey</a> (string libraryName, string identifier)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364">PluginCategoryHierarchy</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#de4a5a8acbd85537c99440c4ac974be4">getPluginCategory</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a> key)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#aac3ed8bf770f0675e624d411dab3efb">getLibraryPathForPlugin</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a> key)</td></tr>
-
-<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b7147ecb2186a715b0f7e83ba70f0946">setInstanceToClean</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a> *instance)</td></tr>
-
-<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#e0a6e1bf07a62eb6a34a1393bc3da26c">pluginDeleted</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">PluginDeletionNotifyAdapter</a> *adapter)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6fb71e4d0b4ff367ffef141c5e62763d">enumeratePlugins</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a> forPlugin=&quot;&quot;)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#923d9ace30548d8f3cce58b4037ec9e4">generateTaxonomy</a> ()</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b06d720c0d53f908426ce244294d38ed">decomposePluginKey</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a> key, string &amp;libraryName, string &amp;identifier)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c0618149e415b7fd8ad782f434070752">loadLibrary</a> (string path)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6a93367036f896d505f553b616e1e7aa">unloadLibrary</a> (void *handle)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ec71088ca89ba77f357bde8b37b807f8">lookupInLibrary</a> (void *handle, const char *symbol)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#eb7a794c0a2410a81a382a08e8a0143c">splicePath</a> (string a, string b)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">vector&lt; string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2dd3964e84bca56390cd31b079fbc01f">listFiles</a> (string dir, string ext)</td></tr>
-
-<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">map&lt; <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a>, string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">m_pluginLibraryNameMap</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#d7b867e5cf9c29ad7254f567849f9913">m_allPluginsEnumerated</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">map&lt; <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a>, <br>
-<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364">PluginCategoryHierarchy</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2ba901c7e59ece349b715d4a3fec7b04">m_taxonomy</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">map&lt; <a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *, void * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1c3cee03d20e669c8b9379247a222600">m_pluginLibraryHandleMap</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Static Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">InstanceCleaner</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#5d03696d9093949f627bd684c8db44c2">m_cleaner</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">InstanceCleaner</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">PluginDeletionNotifyAdapter</a></td></tr>
-
-</table>
-<hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" name="ddac537272c2eb69973cbb942dc11deb"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::Impl" ref="ddac537272c2eb69973cbb942dc11deb" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::HostExt::PluginLoader::Impl::Impl           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00196">196</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="1e28874a14fafaf015404694da5fcfc8"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::~Impl" ref="1e28874a14fafaf015404694da5fcfc8" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::HostExt::PluginLoader::Impl::~Impl           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00201">201</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="398ccb508176f5550b2b2ca05f1fa3eb"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::listPlugins" ref="398ccb508176f5550b2b2ca05f1fa3eb" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">vector&lt; <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginLoader::PluginKey</a> &gt; Vamp::HostExt::PluginLoader::Impl::listPlugins           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00212">212</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8cpp-source.html#l00226">enumeratePlugins()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00114">m_allPluginsEnumerated</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00113">m_pluginLibraryNameMap</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00165">Vamp::HostExt::PluginLoader::listPlugins()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="3f6c4872459007b13722818cbdac409c"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::loadPlugin" ref="3f6c4872459007b13722818cbdac409c" args="(PluginKey key, float inputSampleRate, int adapterFlags)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> * Vamp::HostExt::PluginLoader::Impl::loadPlugin           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a>&nbsp;</td>
-          <td class="paramname"> <em>key</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">float&nbsp;</td>
-          <td class="paramname"> <em>inputSampleRate</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>adapterFlags</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00355">355</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8h-source.html#l00170">Vamp::HostExt::PluginLoader::ADAPT_BUFFER_SIZE</a>, <a class="el" href="PluginLoader_8h-source.html#l00169">Vamp::HostExt::PluginLoader::ADAPT_CHANNEL_COUNT</a>, <a class="el" href="PluginLoader_8h-source.html#l00168">Vamp::HostExt::PluginLoader::ADAPT_INPUT_DOMAIN</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00317">decomposePluginKey()</a>, <a class="el" href="Plugin_8h-source.html#l00149">Vamp::Plugin::FrequencyDomain</a>, <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin::getInputDomain()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00342">getLibraryPathForPlugin()</a>, <a class="el" href="vamp_8h-source.html#l00212">_VampPluginDescriptor::identifier</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00510">loadLibrary()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00540">lookupInLibrary()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00120">m_pluginLibraryHandleMap</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00530">unloadLibrary()</a>, and <a class="el" href="vamp_8h-source.html#l00053">VAMP_API_VERSION</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00171">Vamp::HostExt::PluginLoader::loadPlugin()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="c84fafd9b12d44f8756628571b57d7ea"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::composePluginKey" ref="c84fafd9b12d44f8756628571b57d7ea" args="(string libraryName, string identifier)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginLoader::PluginKey</a> Vamp::HostExt::PluginLoader::Impl::composePluginKey           </td>
-          <td>(</td>
-          <td class="paramtype">string&nbsp;</td>
-          <td class="paramname"> <em>libraryName</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">string&nbsp;</td>
-          <td class="paramname"> <em>identifier</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00299">299</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00226">enumeratePlugins()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="de4a5a8acbd85537c99440c4ac974be4"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::getPluginCategory" ref="de4a5a8acbd85537c99440c4ac974be4" args="(PluginKey key)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364">PluginLoader::PluginCategoryHierarchy</a> Vamp::HostExt::PluginLoader::Impl::getPluginCategory           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a>&nbsp;</td>
-          <td class="paramname"> <em>key</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00332">332</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8cpp-source.html#l00422">generateTaxonomy()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00117">m_taxonomy</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00185">Vamp::HostExt::PluginLoader::getPluginCategory()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="aac3ed8bf770f0675e624d411dab3efb"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::getLibraryPathForPlugin" ref="aac3ed8bf770f0675e624d411dab3efb" args="(PluginKey key)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">string Vamp::HostExt::PluginLoader::Impl::getLibraryPathForPlugin           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a>&nbsp;</td>
-          <td class="paramname"> <em>key</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00342">342</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8cpp-source.html#l00226">enumeratePlugins()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00114">m_allPluginsEnumerated</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00113">m_pluginLibraryNameMap</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00191">Vamp::HostExt::PluginLoader::getLibraryPathForPlugin()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00355">loadPlugin()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="b7147ecb2186a715b0f7e83ba70f0946"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::setInstanceToClean" ref="b7147ecb2186a715b0f7e83ba70f0946" args="(PluginLoader *instance)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::HostExt::PluginLoader::Impl::setInstanceToClean           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a> *&nbsp;</td>
-          <td class="paramname"> <em>instance</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00206">206</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8cpp-source.html#l00132">m_cleaner</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00106">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner::setInstance()</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00152">Vamp::HostExt::PluginLoader::getInstance()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="e0a6e1bf07a62eb6a34a1393bc3da26c"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::pluginDeleted" ref="e0a6e1bf07a62eb6a34a1393bc3da26c" args="(PluginDeletionNotifyAdapter *adapter)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::HostExt::PluginLoader::Impl::pluginDeleted           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">PluginDeletionNotifyAdapter</a> *&nbsp;</td>
-          <td class="paramname"> <em>adapter</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [protected, virtual]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00606">606</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8cpp-source.html#l00120">m_pluginLibraryHandleMap</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00530">unloadLibrary()</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00620">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::~PluginDeletionNotifyAdapter()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="6fb71e4d0b4ff367ffef141c5e62763d"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::enumeratePlugins" ref="6fb71e4d0b4ff367ffef141c5e62763d" args="(PluginKey forPlugin=&quot;&quot;)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::HostExt::PluginLoader::Impl::enumeratePlugins           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a>&nbsp;</td>
-          <td class="paramname"> <em>forPlugin</em> = <code>&quot;&quot;</code>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00226">226</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8cpp-source.html#l00299">composePluginKey()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00317">decomposePluginKey()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00062">Vamp::PluginHostAdapter::getPluginPath()</a>, <a class="el" href="vamp_8h-source.html#l00212">_VampPluginDescriptor::identifier</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00560">listFiles()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00510">loadLibrary()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00540">lookupInLibrary()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00114">m_allPluginsEnumerated</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00113">m_pluginLibraryNameMap</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00062">PLUGIN_SUFFIX</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00550">splicePath()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00530">unloadLibrary()</a>, and <a class="el" href="vamp_8h-source.html#l00053">VAMP_API_VERSION</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00342">getLibraryPathForPlugin()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00212">listPlugins()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="923d9ace30548d8f3cce58b4037ec9e4"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::generateTaxonomy" ref="923d9ace30548d8f3cce58b4037ec9e4" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::HostExt::PluginLoader::Impl::generateTaxonomy           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00422">422</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginHostAdapter_8cpp-source.html#l00062">Vamp::PluginHostAdapter::getPluginPath()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00560">listFiles()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00117">m_taxonomy</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00550">splicePath()</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00332">getPluginCategory()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="b06d720c0d53f908426ce244294d38ed"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::decomposePluginKey" ref="b06d720c0d53f908426ce244294d38ed" args="(PluginKey key, string &amp;libraryName, string &amp;identifier)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool Vamp::HostExt::PluginLoader::Impl::decomposePluginKey           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a>&nbsp;</td>
-          <td class="paramname"> <em>key</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">string &amp;&nbsp;</td>
-          <td class="paramname"> <em>libraryName</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">string &amp;&nbsp;</td>
-          <td class="paramname"> <em>identifier</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00317">317</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00226">enumeratePlugins()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00355">loadPlugin()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="c0618149e415b7fd8ad782f434070752"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::loadLibrary" ref="c0618149e415b7fd8ad782f434070752" args="(string path)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void * Vamp::HostExt::PluginLoader::Impl::loadLibrary           </td>
-          <td>(</td>
-          <td class="paramtype">string&nbsp;</td>
-          <td class="paramname"> <em>path</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00510">510</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00226">enumeratePlugins()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00355">loadPlugin()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="6a93367036f896d505f553b616e1e7aa"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::unloadLibrary" ref="6a93367036f896d505f553b616e1e7aa" args="(void *handle)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::HostExt::PluginLoader::Impl::unloadLibrary           </td>
-          <td>(</td>
-          <td class="paramtype">void *&nbsp;</td>
-          <td class="paramname"> <em>handle</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00530">530</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00226">enumeratePlugins()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00355">loadPlugin()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00606">pluginDeleted()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="ec71088ca89ba77f357bde8b37b807f8"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::lookupInLibrary" ref="ec71088ca89ba77f357bde8b37b807f8" args="(void *handle, const char *symbol)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void * Vamp::HostExt::PluginLoader::Impl::lookupInLibrary           </td>
-          <td>(</td>
-          <td class="paramtype">void *&nbsp;</td>
-          <td class="paramname"> <em>handle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const char *&nbsp;</td>
-          <td class="paramname"> <em>symbol</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00540">540</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00226">enumeratePlugins()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00355">loadPlugin()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="eb7a794c0a2410a81a382a08e8a0143c"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::splicePath" ref="eb7a794c0a2410a81a382a08e8a0143c" args="(string a, string b)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">string Vamp::HostExt::PluginLoader::Impl::splicePath           </td>
-          <td>(</td>
-          <td class="paramtype">string&nbsp;</td>
-          <td class="paramname"> <em>a</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">string&nbsp;</td>
-          <td class="paramname"> <em>b</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00550">550</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00226">enumeratePlugins()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00422">generateTaxonomy()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="2dd3964e84bca56390cd31b079fbc01f"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::listFiles" ref="2dd3964e84bca56390cd31b079fbc01f" args="(string dir, string ext)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">vector&lt; string &gt; Vamp::HostExt::PluginLoader::Impl::listFiles           </td>
-          <td>(</td>
-          <td class="paramtype">string&nbsp;</td>
-          <td class="paramname"> <em>dir</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">string&nbsp;</td>
-          <td class="paramname"> <em>ext</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00560">560</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00226">enumeratePlugins()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00422">generateTaxonomy()</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Data Documentation</h2>
-<a class="anchor" name="59f6310a3bb71f761b635d06408713f3"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::m_pluginLibraryNameMap" ref="59f6310a3bb71f761b635d06408713f3" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">map&lt;<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a>, string&gt; <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">Vamp::HostExt::PluginLoader::Impl::m_pluginLibraryNameMap</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00113">113</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00226">enumeratePlugins()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00342">getLibraryPathForPlugin()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00212">listPlugins()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="d7b867e5cf9c29ad7254f567849f9913"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::m_allPluginsEnumerated" ref="d7b867e5cf9c29ad7254f567849f9913" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#d7b867e5cf9c29ad7254f567849f9913">Vamp::HostExt::PluginLoader::Impl::m_allPluginsEnumerated</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00114">114</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00226">enumeratePlugins()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00342">getLibraryPathForPlugin()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00212">listPlugins()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="2ba901c7e59ece349b715d4a3fec7b04"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::m_taxonomy" ref="2ba901c7e59ece349b715d4a3fec7b04" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">map&lt;<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364">PluginCategoryHierarchy</a>&gt; <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2ba901c7e59ece349b715d4a3fec7b04">Vamp::HostExt::PluginLoader::Impl::m_taxonomy</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00117">117</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00422">generateTaxonomy()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00332">getPluginCategory()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="1c3cee03d20e669c8b9379247a222600"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::m_pluginLibraryHandleMap" ref="1c3cee03d20e669c8b9379247a222600" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">map&lt;<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *, void *&gt; <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1c3cee03d20e669c8b9379247a222600">Vamp::HostExt::PluginLoader::Impl::m_pluginLibraryHandleMap</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00120">120</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00355">loadPlugin()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00606">pluginDeleted()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="5d03696d9093949f627bd684c8db44c2"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::m_cleaner" ref="5d03696d9093949f627bd684c8db44c2" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">PluginLoader::Impl::InstanceCleaner</a> <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#5d03696d9093949f627bd684c8db44c2">Vamp::HostExt::PluginLoader::Impl::m_cleaner</a><code> [static, protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00132">132</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00206">setInstanceToClean()</a>.</p>
-
-</div>
-</div><p>
-<hr>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a></ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-<!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: Member List</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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginLoader::Impl::InstanceCleaner Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#94ae2e994b87be62dd401852fb8d49fd">InstanceCleaner</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#2b6d3d267fe1754ea3dca7bb6d48fc70">m_instance</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#11edf3783377088dd757b46d9b2c9101">setInstance</a>(PluginLoader *instance)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#246ddea5df77287755b1aaef734538bf">~InstanceCleaner</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a></td><td><code> [inline]</code></td></tr>
-</table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-<!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::HostExt::PluginLoader::Impl::InstanceCleaner Class 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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-  <div class="navpath"><a class="el" href="namespaceVamp.html">Vamp</a>::<a class="el" href="namespaceVamp_1_1HostExt.html">HostExt</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">InstanceCleaner</a>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginLoader::Impl::InstanceCleaner Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginLoader::Impl::InstanceCleaner" -->
-<p>
-<a href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00102">102</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#94ae2e994b87be62dd401852fb8d49fd">InstanceCleaner</a> ()</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#246ddea5df77287755b1aaef734538bf">~InstanceCleaner</a> ()</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#11edf3783377088dd757b46d9b2c9101">setInstance</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a> *instance)</td></tr>
-
-<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#2b6d3d267fe1754ea3dca7bb6d48fc70">m_instance</a></td></tr>
-
-</table>
-<hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" name="94ae2e994b87be62dd401852fb8d49fd"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::InstanceCleaner::InstanceCleaner" ref="94ae2e994b87be62dd401852fb8d49fd" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner::InstanceCleaner           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00104">104</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="246ddea5df77287755b1aaef734538bf"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::InstanceCleaner::~InstanceCleaner" ref="246ddea5df77287755b1aaef734538bf" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner::~InstanceCleaner           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00105">105</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8cpp-source.html#l00108">m_instance</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="11edf3783377088dd757b46d9b2c9101"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::InstanceCleaner::setInstance" ref="11edf3783377088dd757b46d9b2c9101" args="(PluginLoader *instance)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::HostExt::PluginLoader::Impl::InstanceCleaner::setInstance           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a> *&nbsp;</td>
-          <td class="paramname"> <em>instance</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00106">106</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8cpp-source.html#l00108">m_instance</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00206">Vamp::HostExt::PluginLoader::Impl::setInstanceToClean()</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Data Documentation</h2>
-<a class="anchor" name="2b6d3d267fe1754ea3dca7bb6d48fc70"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::InstanceCleaner::m_instance" ref="2b6d3d267fe1754ea3dca7bb6d48fc70" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a>* <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#2b6d3d267fe1754ea3dca7bb6d48fc70">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner::m_instance</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00108">108</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00106">setInstance()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00105">~InstanceCleaner()</a>.</p>
-
-</div>
-</div><p>
-<hr>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a></ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-<!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: Member List</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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">getCopyright</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">getCurrentProgram</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">getDescription</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">getIdentifier</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870">getInputDomain</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">getMaker</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">getMaxChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">getMinChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">getName</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace">getOutputDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">getParameter</a>(std::string) const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">getParameterDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">getPluginVersion</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">getPreferredBlockSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">getPreferredStepSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">getPrograms</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe">getRemainingFeatures</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">getVampApiVersion</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> enum name</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#1fb8473ea9ad73b1b6a00b92345d8397">m_loader</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>(float inputSampleRate)</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#80196e30ed72a4f45b4152a3991d7777">PluginDeletionNotifyAdapter</a>(Plugin *plugin, Impl *loader)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#35cc2d42f8322f5022e89859a79c97be">PluginWrapper</a>(Plugin *plugin)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7">process</a>(const float *const *inputBuffers, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">reset</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">selectProgram</a>(std::string)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">setParameter</a>(std::string, float)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">~Plugin</a>()</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#bb85c0134c354c0854f3868a60d0193f">~PluginDeletionNotifyAdapter</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7449a364d524de75352a4719fec2e1f5">~PluginWrapper</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-</table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1091 +0,0 @@
-<!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::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter Class 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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-  <div class="navpath"><a class="el" href="namespaceVamp.html">Vamp</a>::<a class="el" href="namespaceVamp_1_1HostExt.html">HostExt</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">PluginDeletionNotifyAdapter</a>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter" --><!-- doxytag: inherits="Vamp::HostExt::PluginWrapper" --><div class="dynheader">
-Inheritance diagram for Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter:</div>
-<div class="dynsection">
-<p><center><img src="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter__inherit__graph.png" border="0" usemap="#Vamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter__inherit__map" alt="Inheritance graph"></center>
-<map name="Vamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter__inherit__map">
-<area shape="rect" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="103,156,303,180"><area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="153,81,252,105"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="139,6,267,30"></map>
-<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
-
-<p>
-<a href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00094">94</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> { <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a>, 
-<a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a>
- }</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector<br>
-&lt; <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; <a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; int, <br>
-<a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector<br>
-&lt; <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#80196e30ed72a4f45b4152a3991d7777">PluginDeletionNotifyAdapter</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a> *loader)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#bb85c0134c354c0854f3868a60d0193f">~PluginDeletionNotifyAdapter</a> ()</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames).  <a href="#a5a1f8290d8e9a315695584dcb3ad137"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">reset</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the plugin after use, to prepare it for another clean run.  <a href="#d19cc0614ba41cdc26ef3394c5146fe6"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870">getInputDomain</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#031aa818fd48fd0f4b5e1bf80c032870"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">getVampApiVersion</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <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 compatibility level of the plugin.  <a href="#74147fda6b44ff2169bd4a1eea0d46ff"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">getIdentifier</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#4baa9e48f717c2b3e7f92496aa39d904"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">getName</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a human-readable name or title of the plugin.  <a href="#c70a3265bb25aeb03f6dd8f8a0442088"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">getDescription</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a human-readable description for the plugin, typically a line of text that may optionally be displayed in addition to the plugin's "name".  <a href="#c334f699c0996055942785410d8a065c"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">getMaker</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the name of the author or vendor of the plugin in human-readable form.  <a href="#59d5a2298951b317995675e664b1c7bb"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">getPluginVersion</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the version number of the plugin.  <a href="#47e1acf1696813008324a915c9ba59c5"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">getCopyright</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the copyright statement or licensing summary for the plugin.  <a href="#e14f6ecb78be909c4cd5f0cdaed3c566"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">getParameterDescriptors</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#3b075b8f950b344503f0d27ac0fe332e"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">getParameter</a> (std::string) const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of a named parameter.  <a href="#034920f56c8d7609a85447c42556048c"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">setParameter</a> (std::string, float)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter.  <a href="#651b15a5dc4c27942ac0c87c6092bfe5"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">getPrograms</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#f3abaf717dc4b00cad5770ed6dfa01e1"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">getCurrentProgram</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current program.  <a href="#7a312dd42d161064b70afd7ff24c0651"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">selectProgram</a> (std::string)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select a program.  <a href="#074978333a74fdcf336a8a1d8ea20abf"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">getPreferredStepSize</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function) for the plugin.  <a href="#0137d93d7019bacc31104836fb4d352e"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">getPreferredBlockSize</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function).  <a href="#2c62a656313a819650656643a867ad01"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">getMinChannelCount</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum supported number of input channels.  <a href="#2b28f1cf37d46a514f1e1411a6037bf8"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">getMaxChannelCount</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum supported number of input channels.  <a href="#985eb21f1827bfbc3950d6871b107a58"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace">getOutputDescriptors</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#02c8c01972affeea58b091335e791ace"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#fca78043c2843c1d45019983515e23f7"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe">getRemainingFeatures</a> ()</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input.  <a href="#1dce55a75a32b08fc56a52a300d9fcbe"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.  <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
-<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#1fb8473ea9ad73b1b6a00b92345d8397">m_loader</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td></tr>
-
-</table>
-<hr><h2>Member Typedef Documentation</h2>
-<a class="anchor" name="30f531b8fb69fac41a24e3d2a6a08ed9"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::OutputList" ref="30f531b8fb69fac41a24e3d2a6a08ed9" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Vamp::Plugin::OutputList</a><code> [inherited]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00309">309</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="0730bc72c87fa02eb8d2854b233f7be1"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::FeatureList" ref="0730bc72c87fa02eb8d2854b233f7be1" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">Vamp::Plugin::FeatureList</a><code> [inherited]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00347">347</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="448fb57dc245d47923ec9eeaf9856c5f"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::FeatureSet" ref="448fb57dc245d47923ec9eeaf9856c5f" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef std::map&lt;int, <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Vamp::Plugin::FeatureSet</a><code> [inherited]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00348">348</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="3b6bb4bbd86affe1ca9deceea1aad4f8"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::ParameterList" ref="3b6bb4bbd86affe1ca9deceea1aad4f8" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a>&gt; <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">Vamp::PluginBase::ParameterList</a><code> [inherited]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00195">195</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="7f66f00437b21e5f694fe02356b12f20"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::ProgramList" ref="7f66f00437b21e5f694fe02356b12f20" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef std::vector&lt;std::string&gt; <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">Vamp::PluginBase::ProgramList</a><code> [inherited]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00217">217</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Enumeration Documentation</h2>
-<a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bc"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::InputDomain" ref="39cb7649d6dcc20e4cb1640cd55907bc" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">enum <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Vamp::Plugin::InputDomain</a><code> [inherited]</code>          </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="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff"></a><!-- doxytag: member="TimeDomain" ref="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff" args="" -->TimeDomain</em>&nbsp;</td><td>
-</td></tr>
-<tr><td valign="top"><em><a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53"></a><!-- doxytag: member="FrequencyDomain" ref="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53" args="" -->FrequencyDomain</em>&nbsp;</td><td>
-</td></tr>
-</table>
-</dl>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00149">149</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" name="80196e30ed72a4f45b4152a3991d7777"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::PluginDeletionNotifyAdapter" ref="80196e30ed72a4f45b4152a3991d7777" args="(Plugin *plugin, Impl *loader)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::PluginDeletionNotifyAdapter           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
-          <td class="paramname"> <em>plugin</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a> *&nbsp;</td>
-          <td class="paramname"> <em>loader</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00613">613</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="bb85c0134c354c0854f3868a60d0193f"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::~PluginDeletionNotifyAdapter" ref="bb85c0134c354c0854f3868a60d0193f" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::~PluginDeletionNotifyAdapter           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00620">620</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginLoader_8cpp-source.html#l00099">m_loader</a>, <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00606">Vamp::HostExt::PluginLoader::Impl::pluginDeleted()</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="a5a1f8290d8e9a315695584dcb3ad137"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::initialise" ref="a5a1f8290d8e9a315695584dcb3ad137" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool Vamp::HostExt::PluginWrapper::initialise           </td>
-          <td>(</td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>inputChannels</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>stepSize</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>blockSize</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames). 
-<p>
-The input sample rate should have been already specified at construction time.<p>
-Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. 
-<p>Implements <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin</a>.</p>
-
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#de0473c8fc54636431967cbf41649c1c">Vamp::HostExt::PluginChannelAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00062">62</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin::initialise()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="d19cc0614ba41cdc26ef3394c5146fe6"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::reset" ref="d19cc0614ba41cdc26ef3394c5146fe6" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::HostExt::PluginWrapper::reset           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Reset the plugin after use, to prepare it for another clean run. 
-<p>
-Not called for the first initialisation (i.e. initialise must also do a reset). 
-<p>Implements <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin</a>.</p>
-
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00068">68</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>, and <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin::reset()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="031aa818fd48fd0f4b5e1bf80c032870"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getInputDomain" ref="031aa818fd48fd0f4b5e1bf80c032870" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Plugin::InputDomain</a> Vamp::HostExt::PluginWrapper::getInputDomain           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the plugin's required input domain. 
-<p>
-If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
-<p>Implements <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>.</p>
-
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#376fa97a1c721255541fe35d71368976">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00074">74</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin::getInputDomain()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="74147fda6b44ff2169bd4a1eea0d46ff"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getVampApiVersion" ref="74147fda6b44ff2169bd4a1eea0d46ff" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">unsigned int Vamp::HostExt::PluginWrapper::getVampApiVersion           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the <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 compatibility level of the plugin. 
-<p>
-
-<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00080">80</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00067">Vamp::PluginBase::getVampApiVersion()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="4baa9e48f717c2b3e7f92496aa39d904"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getIdentifier" ref="4baa9e48f717c2b3e7f92496aa39d904" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string Vamp::HostExt::PluginWrapper::getIdentifier           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the computer-usable name of the plugin. 
-<p>
-This should be reasonably short and contain no whitespace or punctuation characters. It may only contain the characters [a-zA-Z0-9_-]. This is the authoritative way for a program to identify a plugin within a given library.<p>
-This text may be visible to the user, but it should not be the main text used to identify a plugin to the user (that will be the name, below).<p>
-Example: "zero_crossings" 
-<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00086">86</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase::getIdentifier()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="c70a3265bb25aeb03f6dd8f8a0442088"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getName" ref="c70a3265bb25aeb03f6dd8f8a0442088" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string Vamp::HostExt::PluginWrapper::getName           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get a human-readable name or title of the plugin. 
-<p>
-This should be brief and self-contained, as it may be used to identify the plugin to the user in isolation (i.e. without also showing the plugin's "identifier").<p>
-Example: "Zero Crossings" 
-<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00092">92</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase::getName()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="c334f699c0996055942785410d8a065c"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getDescription" ref="c334f699c0996055942785410d8a065c" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string Vamp::HostExt::PluginWrapper::getDescription           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get a human-readable description for the plugin, typically a line of text that may optionally be displayed in addition to the plugin's "name". 
-<p>
-May be empty if the name has said it all already.<p>
-Example: "Detect and count zero crossing points" 
-<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00098">98</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase::getDescription()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="59d5a2298951b317995675e664b1c7bb"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getMaker" ref="59d5a2298951b317995675e664b1c7bb" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string Vamp::HostExt::PluginWrapper::getMaker           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the name of the author or vendor of the plugin in human-readable form. 
-<p>
-This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. 
-<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00104">104</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase::getMaker()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="47e1acf1696813008324a915c9ba59c5"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getPluginVersion" ref="47e1acf1696813008324a915c9ba59c5" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">int Vamp::HostExt::PluginWrapper::getPluginVersion           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the version number of the plugin. 
-<p>
-
-<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00110">110</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase::getPluginVersion()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="e14f6ecb78be909c4cd5f0cdaed3c566"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getCopyright" ref="e14f6ecb78be909c4cd5f0cdaed3c566" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string Vamp::HostExt::PluginWrapper::getCopyright           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the copyright statement or licensing summary for the plugin. 
-<p>
-This can be an informative text, without the same presentation constraints as mentioned for getMaker above. 
-<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00116">116</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase::getCopyright()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="3b075b8f950b344503f0d27ac0fe332e"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getParameterDescriptors" ref="3b075b8f950b344503f0d27ac0fe332e" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">PluginBase::ParameterList</a> Vamp::HostExt::PluginWrapper::getParameterDescriptors           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the controllable parameters of this plugin. 
-<p>
-
-<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00122">122</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00200">Vamp::PluginBase::getParameterDescriptors()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="034920f56c8d7609a85447c42556048c"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getParameter" ref="034920f56c8d7609a85447c42556048c" args="(std::string) const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">float Vamp::HostExt::PluginWrapper::getParameter           </td>
-          <td>(</td>
-          <td class="paramtype">std::string&nbsp;</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the value of a named parameter. 
-<p>
-The argument is the identifier field from that parameter's descriptor. 
-<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00128">128</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00208">Vamp::PluginBase::getParameter()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="651b15a5dc4c27942ac0c87c6092bfe5"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::setParameter" ref="651b15a5dc4c27942ac0c87c6092bfe5" args="(std::string, float)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::HostExt::PluginWrapper::setParameter           </td>
-          <td>(</td>
-          <td class="paramtype">std::string&nbsp;</td>
-          <td class="paramname">, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">float&nbsp;</td>
-          <td class="paramname"></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Set a named parameter. 
-<p>
-The first argument is the identifier field from that parameter's descriptor. 
-<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00134">134</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>, and <a class="el" href="PluginBase_8h-source.html#l00214">Vamp::PluginBase::setParameter()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="f3abaf717dc4b00cad5770ed6dfa01e1"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getPrograms" ref="f3abaf717dc4b00cad5770ed6dfa01e1" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">PluginBase::ProgramList</a> Vamp::HostExt::PluginWrapper::getPrograms           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the program settings available in this plugin. 
-<p>
-A program is a named shorthand for a set of parameter values; changing the program may cause the plugin to alter the values of its published parameters (and/or non-public internal processing parameters). The host should re-read the plugin's parameter values after setting a new program.<p>
-The programs must have unique names. 
-<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00140">140</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00229">Vamp::PluginBase::getPrograms()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="7a312dd42d161064b70afd7ff24c0651"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getCurrentProgram" ref="7a312dd42d161064b70afd7ff24c0651" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string Vamp::HostExt::PluginWrapper::getCurrentProgram           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the current program. 
-<p>
-
-<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00146">146</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00234">Vamp::PluginBase::getCurrentProgram()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="074978333a74fdcf336a8a1d8ea20abf"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::selectProgram" ref="074978333a74fdcf336a8a1d8ea20abf" args="(std::string)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::HostExt::PluginWrapper::selectProgram           </td>
-          <td>(</td>
-          <td class="paramtype">std::string&nbsp;</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Select a program. 
-<p>
-(If the given program name is not one of the available programs, do nothing.) 
-<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00152">152</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>, and <a class="el" href="PluginBase_8h-source.html#l00240">Vamp::PluginBase::selectProgram()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="0137d93d7019bacc31104836fb4d352e"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getPreferredStepSize" ref="0137d93d7019bacc31104836fb4d352e" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t Vamp::HostExt::PluginWrapper::getPreferredStepSize           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function) for the plugin. 
-<p>
-This should be called before <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
-A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
-<p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">Vamp::Plugin</a>.</p>
-
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00158">158</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00186">Vamp::Plugin::getPreferredStepSize()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="2c62a656313a819650656643a867ad01"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getPreferredBlockSize" ref="2c62a656313a819650656643a867ad01" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t Vamp::HostExt::PluginWrapper::getPreferredBlockSize           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function). 
-<p>
-This should be called before <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
-A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
-<p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">Vamp::Plugin</a>.</p>
-
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00164">164</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00171">Vamp::Plugin::getPreferredBlockSize()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00308">Vamp::HostExt::PluginBufferingAdapter::getPreferredStepSize()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="2b28f1cf37d46a514f1e1411a6037bf8"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getMinChannelCount" ref="2b28f1cf37d46a514f1e1411a6037bf8" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t Vamp::HostExt::PluginWrapper::getMinChannelCount           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the minimum supported number of input channels. 
-<p>
-
-<p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">Vamp::Plugin</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00170">170</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00191">Vamp::Plugin::getMinChannelCount()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="985eb21f1827bfbc3950d6871b107a58"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getMaxChannelCount" ref="985eb21f1827bfbc3950d6871b107a58" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">size_t Vamp::HostExt::PluginWrapper::getMaxChannelCount           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the maximum supported number of input channels. 
-<p>
-
-<p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">Vamp::Plugin</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00175">175</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00196">Vamp::Plugin::getMaxChannelCount()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="02c8c01972affeea58b091335e791ace"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getOutputDescriptors" ref="02c8c01972affeea58b091335e791ace" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Plugin::OutputList</a> Vamp::HostExt::PluginWrapper::getOutputDescriptors           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the outputs of this plugin. 
-<p>
-An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> call. 
-<p>Implements <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>.</p>
-
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#85a027f5859efb31d315205e234e94c0">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00181">181</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin::getOutputDescriptors()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="fca78043c2843c1d45019983515e23f7"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::process" ref="fca78043c2843c1d45019983515e23f7" args="(const float *const *inputBuffers, RealTime timestamp)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a> Vamp::HostExt::PluginWrapper::process           </td>
-          <td>(</td>
-          <td class="paramtype">const float *const *&nbsp;</td>
-          <td class="paramname"> <em>inputBuffers</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td>
-          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Process a single block of input data. 
-<p>
-If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp will be the real time in seconds of the start of the supplied block of samples.<p>
-If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
-Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) 
-<p>Implements <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</a>.</p>
-
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#262206b978d9de28ee4bb35f437e915e">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#294e663b4d9ec885791faa1b440571ed">Vamp::HostExt::PluginChannelAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00187">187</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>, and <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin::process()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="1dce55a75a32b08fc56a52a300d9fcbe"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getRemainingFeatures" ref="1dce55a75a32b08fc56a52a300d9fcbe" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a> Vamp::HostExt::PluginWrapper::getRemainingFeatures           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-After all blocks have been processed, calculate and return any remaining features derived from the complete input. 
-<p>
-
-<p>Implements <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>.</p>
-
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#8771cba75552aaa1340b68de9bf1659c">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00193">193</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin::getRemainingFeatures()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">Vamp::HostExt::PluginWrapper::m_plugin</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="be13b3997a69fbcc09e2213faa352f91"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::getType" ref="be13b3997a69fbcc09e2213faa352f91" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual std::string Vamp::Plugin::getType           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>. 
-<p>
-Do not reimplement this function in your subclass. 
-<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00391">391</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Data Documentation</h2>
-<a class="anchor" name="1fb8473ea9ad73b1b6a00b92345d8397"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::m_loader" ref="1fb8473ea9ad73b1b6a00b92345d8397" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Impl</a>* <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#1fb8473ea9ad73b1b6a00b92345d8397">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::m_loader</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginLoader_8cpp-source.html#l00099">99</a> of file <a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00620">~PluginDeletionNotifyAdapter()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="b4e40ecd98b445e1a2aa9e7baa280ea2"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::m_plugin" ref="b4e40ecd98b445e1a2aa9e7baa280ea2" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a>* <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">Vamp::HostExt::PluginWrapper::m_plugin</a><code> [protected, inherited]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00099">99</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00116">Vamp::HostExt::PluginWrapper::getCopyright()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00146">Vamp::HostExt::PluginWrapper::getCurrentProgram()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00098">Vamp::HostExt::PluginWrapper::getDescription()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00086">Vamp::HostExt::PluginWrapper::getIdentifier()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00074">Vamp::HostExt::PluginWrapper::getInputDomain()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00104">Vamp::HostExt::PluginWrapper::getMaker()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00175">Vamp::HostExt::PluginWrapper::getMaxChannelCount()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00170">Vamp::HostExt::PluginWrapper::getMinChannelCount()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00092">Vamp::HostExt::PluginWrapper::getName()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00181">Vamp::HostExt::PluginWrapper::getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00128">Vamp::HostExt::PluginWrapper::getParameter()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00122">Vamp::HostExt::PluginWrapper::getParameterDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00110">Vamp::HostExt::PluginWrapper::getPluginVersion()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00164">Vamp::HostExt::PluginWrapper::getPreferredBlockSize()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00158">Vamp::HostExt::PluginWrapper::getPreferredStepSize()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00140">Vamp::HostExt::PluginWrapper::getPrograms()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00193">Vamp::HostExt::PluginWrapper::getRemainingFeatures()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00080">Vamp::HostExt::PluginWrapper::getVampApiVersion()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00062">Vamp::HostExt::PluginWrapper::initialise()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00187">Vamp::HostExt::PluginWrapper::process()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00068">Vamp::HostExt::PluginWrapper::reset()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00152">Vamp::HostExt::PluginWrapper::selectProgram()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00134">Vamp::HostExt::PluginWrapper::setParameter()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00620">~PluginDeletionNotifyAdapter()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00056">Vamp::HostExt::PluginWrapper::~PluginWrapper()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="59b9dd82a4f4eb946cd0474cc81abc23"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::m_inputSampleRate" ref="59b9dd82a4f4eb946cd0474cc81abc23" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">float <a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">Vamp::Plugin::m_inputSampleRate</a><code> [protected, inherited]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00397">397</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00047">Vamp::HostExt::PluginRateExtractor::getRate()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00238">Vamp::HostExt::PluginBufferingAdapter::PluginBufferingAdapter()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00113">Vamp::HostExt::PluginInputDomainAdapter::PluginInputDomainAdapter()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
-
-</div>
-</div><p>
-<hr>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="PluginLoader_8cpp-source.html">PluginLoader.cpp</a></ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter__inherit__graph.map	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="103,156,303,180">
-<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="153,81,252,105">
-<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="139,6,267,30">
--- a/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter__inherit__graph.md5	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-c7eba68e8345b6e9e6f05c0d9b5d4650
\ No newline at end of file
Binary file code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter__inherit__graph.png has changed
--- a/code-doc/classVamp_1_1HostExt_1_1PluginRateExtractor-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-<!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: Member List</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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginRateExtractor Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html">Vamp::HostExt::PluginRateExtractor</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">getCopyright</a>() const =0</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [pure virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">getCurrentProgram</a>() const </td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">getDescription</a>() const =0</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [pure virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">getIdentifier</a>() const =0</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [pure virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">getInputDomain</a>() const =0</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [pure virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">getMaker</a>() const =0</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [pure virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">getMaxChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">getMinChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">getName</a>() const =0</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [pure virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">getOutputDescriptors</a>() const =0</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [pure virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">getParameter</a>(std::string) const </td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">getParameterDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">getPluginVersion</a>() const =0</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [pure virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">getPreferredBlockSize</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">getPreferredStepSize</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">getPrograms</a>() const </td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html#d6f14e142d960be479b291291cf8d735">getRate</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html">Vamp::HostExt::PluginRateExtractor</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">getRemainingFeatures</a>()=0</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [pure virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">getVampApiVersion</a>() const </td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">initialise</a>(size_t inputChannels, size_t stepSize, size_t blockSize)=0</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [pure virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> enum name</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>(float inputSampleRate)</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html#2ca2ad6683e73737a7c9b0f9b1a35f00">PluginRateExtractor</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html">Vamp::HostExt::PluginRateExtractor</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">process</a>(const float *const *inputBuffers, RealTime timestamp)=0</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [pure virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">reset</a>()=0</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [pure virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">selectProgram</a>(std::string)</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">setParameter</a>(std::string, float)</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">~Plugin</a>()</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
-</table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginRateExtractor.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,997 +0,0 @@
-<!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::HostExt::PluginRateExtractor Class 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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-  <div class="navpath"><a class="el" href="namespaceVamp.html">Vamp</a>::<a class="el" href="namespaceVamp_1_1HostExt.html">HostExt</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html">PluginRateExtractor</a>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::HostExt::PluginRateExtractor Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginRateExtractor" --><!-- doxytag: inherits="Vamp::Plugin" --><div class="dynheader">
-Inheritance diagram for Vamp::HostExt::PluginRateExtractor:</div>
-<div class="dynsection">
-<p><center><img src="classVamp_1_1HostExt_1_1PluginRateExtractor__inherit__graph.png" border="0" usemap="#Vamp_1_1HostExt_1_1PluginRateExtractor__inherit__map" alt="Inheritance graph"></center>
-<map name="Vamp_1_1HostExt_1_1PluginRateExtractor__inherit__map">
-<area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="72,82,171,106"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="57,7,185,31"></map>
-<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
-
-<p>
-<a href="classVamp_1_1HostExt_1_1PluginRateExtractor-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00043">43</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> { <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a>, 
-<a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a>
- }</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector<br>
-&lt; <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; <a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; int, <br>
-<a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector<br>
-&lt; <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html#2ca2ad6683e73737a7c9b0f9b1a35f00">PluginRateExtractor</a> ()</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html#d6f14e142d960be479b291291cf8d735">getRate</a> () const </td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">initialise</a> (size_t inputChannels, size_t stepSize, size_t blockSize)=0</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames).  <a href="#f26212cf5fc511b603a8b48034247822"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">reset</a> ()=0</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the plugin after use, to prepare it for another clean run.  <a href="#ad67dc9d0052417511070c4ebcfbf24f"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">getInputDomain</a> () const =0</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#e1d317a9702cbeda65ddf0ec500c1ff6"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">getPreferredBlockSize</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> function).  <a href="#a529adf83f87a603954eb31407602aac"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">getPreferredStepSize</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> function) for the plugin.  <a href="#514c716c22f81c055f19b56c3f882567"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">getMinChannelCount</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum supported number of input channels.  <a href="#267b42e866df3cf0d190893e8096f525"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">getMaxChannelCount</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum supported number of input channels.  <a href="#2c5ab12b6fa4847cb244bd1e9cb3ae5e"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">getOutputDescriptors</a> () const =0</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#d064d5d132b5c9bd7064f429c3309e35"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)=0</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#e4aed3bebfe80a2e2fccd3d37af26996"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">getRemainingFeatures</a> ()=0</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input.  <a href="#eca2a26e658ba0314ba90d25dd2195d6"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.  <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">getVampApiVersion</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <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 compatibility level of the plugin.  <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">getIdentifier</a> () const =0</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#d1c6dfc77aa03d937a885b7f08258f4a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">getName</a> () const =0</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a human-readable name or title of the plugin.  <a href="#18619d5097e444ecefee0c359da53232"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">getDescription</a> () const =0</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a human-readable description for the plugin, typically a line of text that may optionally be displayed in addition to the plugin's "name".  <a href="#59153a02364f75fff46973b2072e9e5a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">getMaker</a> () const =0</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the name of the author or vendor of the plugin in human-readable form.  <a href="#53d9918bf9ef4d12feedf66b2b26c637"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">getCopyright</a> () const =0</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the copyright statement or licensing summary for the plugin.  <a href="#b7e9dedbe965f5ab9018b72920fe7661"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">getPluginVersion</a> () const =0</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the version number of the plugin.  <a href="#63f686d77bc3d6b807e7944cdde83151"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">getParameterDescriptors</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#ac3e49b3b66cacfbb768dfdf07444f21"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">getParameter</a> (std::string) const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of a named parameter.  <a href="#97ababcd45348ceec998d0f8e0f38bf7"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">setParameter</a> (std::string, float)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter.  <a href="#6c718ce822f7b73b98940d59dcaa9366"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">getPrograms</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#bb307c60bdb981d5f5af50c3c4ae84af"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">getCurrentProgram</a> () const </td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current program.  <a href="#24e77eccf1bdfbbca3c79bb25e8799b3"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">selectProgram</a> (std::string)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select a program.  <a href="#add3a547ef140bae200473a9518e3353"></a><br></td></tr>
-<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td></tr>
-
-</table>
-<hr><h2>Member Typedef Documentation</h2>
-<a class="anchor" name="30f531b8fb69fac41a24e3d2a6a08ed9"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::OutputList" ref="30f531b8fb69fac41a24e3d2a6a08ed9" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Vamp::Plugin::OutputList</a><code> [inherited]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00309">309</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="0730bc72c87fa02eb8d2854b233f7be1"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::FeatureList" ref="0730bc72c87fa02eb8d2854b233f7be1" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">Vamp::Plugin::FeatureList</a><code> [inherited]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00347">347</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="448fb57dc245d47923ec9eeaf9856c5f"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::FeatureSet" ref="448fb57dc245d47923ec9eeaf9856c5f" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef std::map&lt;int, <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Vamp::Plugin::FeatureSet</a><code> [inherited]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00348">348</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="3b6bb4bbd86affe1ca9deceea1aad4f8"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::ParameterList" ref="3b6bb4bbd86affe1ca9deceea1aad4f8" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a>&gt; <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">Vamp::PluginBase::ParameterList</a><code> [inherited]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00195">195</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="7f66f00437b21e5f694fe02356b12f20"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::ProgramList" ref="7f66f00437b21e5f694fe02356b12f20" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef std::vector&lt;std::string&gt; <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">Vamp::PluginBase::ProgramList</a><code> [inherited]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00217">217</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Enumeration Documentation</h2>
-<a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bc"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::InputDomain" ref="39cb7649d6dcc20e4cb1640cd55907bc" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">enum <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Vamp::Plugin::InputDomain</a><code> [inherited]</code>          </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="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff"></a><!-- doxytag: member="TimeDomain" ref="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff" args="" -->TimeDomain</em>&nbsp;</td><td>
-</td></tr>
-<tr><td valign="top"><em><a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53"></a><!-- doxytag: member="FrequencyDomain" ref="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53" args="" -->FrequencyDomain</em>&nbsp;</td><td>
-</td></tr>
-</table>
-</dl>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00149">149</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" name="2ca2ad6683e73737a7c9b0f9b1a35f00"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::PluginRateExtractor" ref="2ca2ad6683e73737a7c9b0f9b1a35f00" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::HostExt::PluginRateExtractor::PluginRateExtractor           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00046">46</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="d6f14e142d960be479b291291cf8d735"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getRate" ref="d6f14e142d960be479b291291cf8d735" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">float Vamp::HostExt::PluginRateExtractor::getRate           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00047">47</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00397">Vamp::Plugin::m_inputSampleRate</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="f26212cf5fc511b603a8b48034247822"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::initialise" ref="f26212cf5fc511b603a8b48034247822" args="(size_t inputChannels, size_t stepSize, size_t blockSize)=0" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual bool Vamp::Plugin::initialise           </td>
-          <td>(</td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>inputChannels</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>stepSize</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>blockSize</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [pure virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames). 
-<p>
-The input sample rate should have been already specified at construction time.<p>
-Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#de0473c8fc54636431967cbf41649c1c">Vamp::HostExt::PluginChannelAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#eb727e44ee8ad1aceb90964d20f8d90d">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#349c528260622308f3850bcda8a448ab">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#ab1ae16f5c68e2b319668f447908cedb">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#f21bbcc87a6eb7875dfab7d86222dccc">ZeroCrossing</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00062">Vamp::HostExt::PluginWrapper::initialise()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00203">Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">Vamp::HostExt::PluginChannelAdapter::Impl::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">Vamp::HostExt::PluginBufferingAdapter::Impl::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="ad67dc9d0052417511070c4ebcfbf24f"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::reset" ref="ad67dc9d0052417511070c4ebcfbf24f" args="()=0" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual void Vamp::Plugin::reset           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [pure virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Reset the plugin after use, to prepare it for another clean run. 
-<p>
-Not called for the first initialisation (i.e. initialise must also do a reset). 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#5d54c5bbd76bc27b7a243827148afeaa">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#cebd835e80e84669df078fbd7591d8f7">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#9b1075e992cd9599764ef3881fb91d1a">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#9b5f5581691ff8f46bb7674d8d74395c">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#9ae6c4a31ea027dceb1e97ead807e228">ZeroCrossing</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00068">Vamp::HostExt::PluginWrapper::reset()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="e1d317a9702cbeda65ddf0ec500c1ff6"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getInputDomain" ref="e1d317a9702cbeda65ddf0ec500c1ff6" args="() const =0" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> Vamp::Plugin::getInputDomain           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the plugin's required input domain. 
-<p>
-If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#9c5239a4da67f1a426cd059e1a2856eb">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#376fa97a1c721255541fe35d71368976">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#fc07a389b5f922b944b0350fd232d2eb">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#4f6954267696ee5bfa7dd1c4a6cfa92a">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#0ec2cb74c1c5f6e57d0bd9dcf7c8f469">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#afe2ce6ebd353a14c40db7e8e60f4051">ZeroCrossing</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00074">Vamp::HostExt::PluginWrapper::getInputDomain()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00283">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredBlockSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00271">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredStepSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00203">Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">Vamp::HostExt::PluginBufferingAdapter::Impl::initialise()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00355">Vamp::HostExt::PluginLoader::Impl::loadPlugin()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">Vamp::HostExt::PluginInputDomainAdapter::Impl::process()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="a529adf83f87a603954eb31407602aac"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getPreferredBlockSize" ref="a529adf83f87a603954eb31407602aac" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual size_t Vamp::Plugin::getPreferredBlockSize           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> function). 
-<p>
-This should be called before <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
-A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>, and <a class="el" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">PercussionOnsetDetector</a>.</p>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00171">171</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00164">Vamp::HostExt::PluginWrapper::getPreferredBlockSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00283">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredBlockSize()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">Vamp::HostExt::PluginBufferingAdapter::Impl::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="514c716c22f81c055f19b56c3f882567"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getPreferredStepSize" ref="514c716c22f81c055f19b56c3f882567" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual size_t Vamp::Plugin::getPreferredStepSize           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> function) for the plugin. 
-<p>
-This should be called before <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
-A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>, and <a class="el" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">PercussionOnsetDetector</a>.</p>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00186">186</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00158">Vamp::HostExt::PluginWrapper::getPreferredStepSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00271">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredStepSize()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">Vamp::HostExt::PluginBufferingAdapter::Impl::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="267b42e866df3cf0d190893e8096f525"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getMinChannelCount" ref="267b42e866df3cf0d190893e8096f525" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual size_t Vamp::Plugin::getMinChannelCount           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the minimum supported number of input channels. 
-<p>
-
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">Vamp::HostExt::PluginWrapper</a>.</p>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00191">191</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00170">Vamp::HostExt::PluginWrapper::getMinChannelCount()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00093">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00095">SpectralCentroid::initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">Vamp::HostExt::PluginChannelAdapter::Impl::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="2c5ab12b6fa4847cb244bd1e9cb3ae5e"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getMaxChannelCount" ref="2c5ab12b6fa4847cb244bd1e9cb3ae5e" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual size_t Vamp::Plugin::getMaxChannelCount           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the maximum supported number of input channels. 
-<p>
-
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">Vamp::HostExt::PluginWrapper</a>.</p>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00196">196</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00175">Vamp::HostExt::PluginWrapper::getMaxChannelCount()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00093">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00095">SpectralCentroid::initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">Vamp::HostExt::PluginChannelAdapter::Impl::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="d064d5d132b5c9bd7064f429c3309e35"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getOutputDescriptors" ref="d064d5d132b5c9bd7064f429c3309e35" args="() const =0" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual <a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> Vamp::Plugin::getOutputDescriptors           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the outputs of this plugin. 
-<p>
-An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> call. 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#e02670cca9d25cdc4100cbe7a12e3e68">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#85a027f5859efb31d315205e234e94c0">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#043e3c3db77d76267cd8069e1485bf26">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#a4537aa0eb58a67d6e824d46924cf782">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#894ca9740927102bb80b56b5e9e95877">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#c9d590a6feb1fc9a37d7892aefe2b688">ZeroCrossing</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00619">Vamp::PluginAdapterBase::Impl::checkOutputMap()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00181">Vamp::HostExt::PluginWrapper::getOutputDescriptors()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00367">Vamp::HostExt::PluginBufferingAdapter::Impl::getOutputDescriptors()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="e4aed3bebfe80a2e2fccd3d37af26996"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::process" ref="e4aed3bebfe80a2e2fccd3d37af26996" args="(const float *const *inputBuffers, RealTime timestamp)=0" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::Plugin::process           </td>
-          <td>(</td>
-          <td class="paramtype">const float *const *&nbsp;</td>
-          <td class="paramname"> <em>inputBuffers</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td>
-          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [pure virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Process a single block of input data. 
-<p>
-If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp will be the real time in seconds of the start of the supplied block of samples.<p>
-If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
-Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#262206b978d9de28ee4bb35f437e915e">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#294e663b4d9ec885791faa1b440571ed">Vamp::HostExt::PluginChannelAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#48d0f95cac31ffd190cff89b50a2a5bd">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#ca96c70e7e75c9e4a7db38485018914c">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da">ZeroCrossing</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00187">Vamp::HostExt::PluginWrapper::process()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">Vamp::HostExt::PluginInputDomainAdapter::Impl::process()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00177">Vamp::HostExt::PluginChannelAdapter::Impl::process()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00690">Vamp::PluginAdapterBase::Impl::process()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">Vamp::HostExt::PluginBufferingAdapter::Impl::processBlock()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="eca2a26e658ba0314ba90d25dd2195d6"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getRemainingFeatures" ref="eca2a26e658ba0314ba90d25dd2195d6" args="()=0" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::Plugin::getRemainingFeatures           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [pure virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-After all blocks have been processed, calculate and return any remaining features derived from the complete input. 
-<p>
-
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#d3f5f16a89a821da2ec1186fd2062e83">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#8771cba75552aaa1340b68de9bf1659c">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#368606f643b88e0df0823d85e36f030c">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#d3d6767ed137783e84f842b4d4732ffa">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#83ba39f0870a2f86837605a958dfab1a">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#70996d1b7166e303903daf92a9a37ad8">ZeroCrossing</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00193">Vamp::HostExt::PluginWrapper::getRemainingFeatures()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00452">Vamp::HostExt::PluginBufferingAdapter::Impl::getRemainingFeatures()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00701">Vamp::PluginAdapterBase::Impl::getRemainingFeatures()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="be13b3997a69fbcc09e2213faa352f91"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getType" ref="be13b3997a69fbcc09e2213faa352f91" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual std::string Vamp::Plugin::getType           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>. 
-<p>
-Do not reimplement this function in your subclass. 
-<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00391">391</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="8fd2c48291c64b790f0efb8948508dcf"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getVampApiVersion" ref="8fd2c48291c64b790f0efb8948508dcf" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual unsigned int Vamp::PluginBase::getVampApiVersion           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the <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 compatibility level of the plugin. 
-<p>
-
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">Vamp::HostExt::PluginWrapper</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00067">67</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00080">Vamp::HostExt::PluginWrapper::getVampApiVersion()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="d1c6dfc77aa03d937a885b7f08258f4a"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getIdentifier" ref="d1c6dfc77aa03d937a885b7f08258f4a" args="() const =0" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual std::string Vamp::PluginBase::getIdentifier           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the computer-usable name of the plugin. 
-<p>
-This should be reasonably short and contain no whitespace or punctuation characters. It may only contain the characters [a-zA-Z0-9_-]. This is the authoritative way for a program to identify a plugin within a given library.<p>
-This text may be visible to the user, but it should not be the main text used to identify a plugin to the user (that will be the name, below).<p>
-Example: "zero_crossings" 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#b27423a656f878d97d2ad2eba4e76c7a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#fe7576af95c8fcc7f5bad42eec9f9f29">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#267c83a7533146c127e2c3be310e0154">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#1b2c4c8440c024c4c635fcef5697949f">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a">ZeroCrossing</a>.</p>
-
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00086">Vamp::HostExt::PluginWrapper::getIdentifier()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="18619d5097e444ecefee0c359da53232"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getName" ref="18619d5097e444ecefee0c359da53232" args="() const =0" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual std::string Vamp::PluginBase::getName           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get a human-readable name or title of the plugin. 
-<p>
-This should be brief and self-contained, as it may be used to identify the plugin to the user in isolation (i.e. without also showing the plugin's "identifier").<p>
-Example: "Zero Crossings" 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#45f1d0377e233eeddd1b7cefb48be62a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#7cfed00bc9d96ba6c709b69ab6a40594">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#a98f1ad061a11af98c054011a8844e6f">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#b7e6a620fea568af431be3cfd9dd5a41">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498">ZeroCrossing</a>.</p>
-
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00092">Vamp::HostExt::PluginWrapper::getName()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00577">printPluginCategoryList()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="59153a02364f75fff46973b2072e9e5a"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getDescription" ref="59153a02364f75fff46973b2072e9e5a" args="() const =0" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual std::string Vamp::PluginBase::getDescription           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get a human-readable description for the plugin, typically a line of text that may optionally be displayed in addition to the plugin's "name". 
-<p>
-May be empty if the name has said it all already.<p>
-Example: "Detect and count zero crossing points" 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#5eaafcef030e81b90a3e77cf16cf8ae1">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#6f0f2fea1fdb4b51e688edfe859d5062">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#9061d189705802a48973a7ccab6360db">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#8fbb74a46283057d9a0b0e4718ee943c">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#710bb0b013157adaeef2a9e6867b4478">ZeroCrossing</a>.</p>
-
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00098">Vamp::HostExt::PluginWrapper::getDescription()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00577">printPluginCategoryList()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="53d9918bf9ef4d12feedf66b2b26c637"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getMaker" ref="53d9918bf9ef4d12feedf66b2b26c637" args="() const =0" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual std::string Vamp::PluginBase::getMaker           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the name of the author or vendor of the plugin in human-readable form. 
-<p>
-This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f572be0b175f5661559006a380a0f3db">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#44fc43838f203f58bc2ce6e3cb2b03dd">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#63d63f2cb7ea8d8b09d58cc13b541375">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a">ZeroCrossing</a>.</p>
-
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00104">Vamp::HostExt::PluginWrapper::getMaker()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00577">printPluginCategoryList()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="b7e9dedbe965f5ab9018b72920fe7661"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getCopyright" ref="b7e9dedbe965f5ab9018b72920fe7661" args="() const =0" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual std::string Vamp::PluginBase::getCopyright           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the copyright statement or licensing summary for the plugin. 
-<p>
-This can be an informative text, without the same presentation constraints as mentioned for getMaker above. 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#c73c9d6baad04369beee695e99584815">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#0c197fc90f30d91cb4403115c83c9134">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#1a22ece271330c94cc08798a77416351">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#f9c41b92aa8ff8bddaebf75569ff789c">ZeroCrossing</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00116">Vamp::HostExt::PluginWrapper::getCopyright()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="63f686d77bc3d6b807e7944cdde83151"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getPluginVersion" ref="63f686d77bc3d6b807e7944cdde83151" args="() const =0" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual int Vamp::PluginBase::getPluginVersion           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the version number of the plugin. 
-<p>
-
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#6fbd94781867ca46a20368c2a3593c77">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#8a5d7a834eb996d517c51f84b2a72250">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#d6b818dbd81867ce7be71c99cae861be">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#f64622e66bf678ac2b0b58aa832ca2b3">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb">ZeroCrossing</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00110">Vamp::HostExt::PluginWrapper::getPluginVersion()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="ac3e49b3b66cacfbb768dfdf07444f21"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getParameterDescriptors" ref="ac3e49b3b66cacfbb768dfdf07444f21" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> Vamp::PluginBase::getParameterDescriptors           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the controllable parameters of this plugin. 
-<p>
-
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#bfa93b20d9b5651a32042a9bb7c8df13">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">AmplitudeFollower</a>, and <a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">PercussionOnsetDetector</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00200">200</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00122">Vamp::HostExt::PluginWrapper::getParameterDescriptors()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="97ababcd45348ceec998d0f8e0f38bf7"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getParameter" ref="97ababcd45348ceec998d0f8e0f38bf7" args="(std::string) const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual float Vamp::PluginBase::getParameter           </td>
-          <td>(</td>
-          <td class="paramtype">std::string&nbsp;</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the value of a named parameter. 
-<p>
-The argument is the identifier field from that parameter's descriptor. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">AmplitudeFollower</a>, and <a class="el" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">PercussionOnsetDetector</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00208">208</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00128">Vamp::HostExt::PluginWrapper::getParameter()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="6c718ce822f7b73b98940d59dcaa9366"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::setParameter" ref="6c718ce822f7b73b98940d59dcaa9366" args="(std::string, float)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual void Vamp::PluginBase::setParameter           </td>
-          <td>(</td>
-          <td class="paramtype">std::string&nbsp;</td>
-          <td class="paramname">, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">float&nbsp;</td>
-          <td class="paramname"></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [inline, virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Set a named parameter. 
-<p>
-The first argument is the identifier field from that parameter's descriptor. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">AmplitudeFollower</a>, and <a class="el" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">PercussionOnsetDetector</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00214">214</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00134">Vamp::HostExt::PluginWrapper::setParameter()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="bb307c60bdb981d5f5af50c3c4ae84af"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getPrograms" ref="bb307c60bdb981d5f5af50c3c4ae84af" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> Vamp::PluginBase::getPrograms           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the program settings available in this plugin. 
-<p>
-A program is a named shorthand for a set of parameter values; changing the program may cause the plugin to alter the values of its published parameters (and/or non-public internal processing parameters). The host should re-read the plugin's parameter values after setting a new program.<p>
-The programs must have unique names. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#7ac5681dcfe08b7b8a796bffc0aff3e3">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">Vamp::HostExt::PluginWrapper</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00229">229</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00140">Vamp::HostExt::PluginWrapper::getPrograms()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="24e77eccf1bdfbbca3c79bb25e8799b3"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::getCurrentProgram" ref="24e77eccf1bdfbbca3c79bb25e8799b3" args="() const " -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual std::string Vamp::PluginBase::getCurrentProgram           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get the current program. 
-<p>
-
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">Vamp::HostExt::PluginWrapper</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00234">234</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00146">Vamp::HostExt::PluginWrapper::getCurrentProgram()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="add3a547ef140bae200473a9518e3353"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::selectProgram" ref="add3a547ef140bae200473a9518e3353" args="(std::string)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual void Vamp::PluginBase::selectProgram           </td>
-          <td>(</td>
-          <td class="paramtype">std::string&nbsp;</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline, virtual, inherited]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-Select a program. 
-<p>
-(If the given program name is not one of the available programs, do nothing.) 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00240">240</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00152">Vamp::HostExt::PluginWrapper::selectProgram()</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Data Documentation</h2>
-<a class="anchor" name="59b9dd82a4f4eb946cd0474cc81abc23"></a><!-- doxytag: member="Vamp::HostExt::PluginRateExtractor::m_inputSampleRate" ref="59b9dd82a4f4eb946cd0474cc81abc23" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">float <a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">Vamp::Plugin::m_inputSampleRate</a><code> [protected, inherited]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00397">397</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00047">getRate()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00238">Vamp::HostExt::PluginBufferingAdapter::PluginBufferingAdapter()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00113">Vamp::HostExt::PluginInputDomainAdapter::PluginInputDomainAdapter()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
-
-</div>
-</div><p>
-<hr>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a></ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginRateExtractor__inherit__graph.map	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="72,82,171,106">
-<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="57,7,185,31">
--- a/code-doc/classVamp_1_1HostExt_1_1PluginRateExtractor__inherit__graph.md5	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-61ba944fa583567e3491e7f68e1e0a9e
\ No newline at end of file
Binary file code-doc/classVamp_1_1HostExt_1_1PluginRateExtractor__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginSummarisingAdapter-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,94 @@
+<!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: Member List</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Vamp::HostExt::PluginSummarisingAdapter Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">AveragingMethod</a> enum name</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac766af6316c12e29bdbdff90c5fec764baa">ContinuousTimeAverage</a> enum value</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717052395772fa2e74b3f617e20c76d579ad6">Count</a> enum value</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">getCopyright</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">getCurrentProgram</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">getDescription</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">getIdentifier</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e203faf8384c9e1fddc381409aa8a214">getInputDomain</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">getMaker</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">getMaxChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">getMinChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">getName</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#5a9411305f713b4c9827844b89acd270">getOutputDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">getParameter</a>(std::string) const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">getParameterDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">getPluginVersion</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">getPreferredBlockSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">getPreferredStepSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">getPrograms</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#e9dcbd1ba8197ff90b4fc6bf7ade7688">getRemainingFeatures</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#c3f93d9ca2d25c9fdc80d0ba10eaaa6b">getSummaryForAllOutputs</a>(SummaryType type, AveragingMethod method=SampleAverage)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#be13faa68d3244b962dbd362671e23f9">getSummaryForOutput</a>(int output, SummaryType type, AveragingMethod method=SampleAverage)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">getVampApiVersion</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3">getWrapper</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#1e994576d43efe103bf8f83b69716745">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> enum name</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f131140817d9f131650af98b6b8d7a94">m_impl</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a></td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705defff4e5073aa298a96d99b92025b7f9">Maximum</a> enum value</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705e8a03f013397d08c85734e47524f5a75">Mean</a> enum value</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705adde1f9a5a6557f25223279433699195">Median</a> enum value</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705320b8a4cd0c3d492aeb17f7fc4ed930c">Minimum</a> enum value</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717051688d03811a2268daa062220f5be0614">Mode</a> enum value</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> typedef</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>(float inputSampleRate)</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#31b41f54560a2ae6c3ec1a945f3f1d68">PluginSummarisingAdapter</a>(Plugin *plugin)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#35cc2d42f8322f5022e89859a79c97be">PluginWrapper</a>(Plugin *plugin)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#3314b456a4780601c021dac25b478846">process</a>(const float *const *inputBuffers, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">reset</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76e8833d866dec593d29f1f4e3cd1e6e36">SampleAverage</a> enum value</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#74e7f93c745802a2409185b63922466b">SegmentBoundaries</a> typedef</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">selectProgram</a>(std::string)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">setParameter</a>(std::string, float)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#1a659500ca1290a228c0b9b91f6ac0b7">setSummarySegmentBoundaries</a>(const SegmentBoundaries &amp;)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717059342cd2209e20b93843cd389d9511ec7">StandardDeviation</a> enum value</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717059496664a605b3aa706f909070d73060b">Sum</a> enum value</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">SummaryType</a> enum name</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705eed3a16d665eb789053b82fdd386ee7c">UnknownSummaryType</a> enum value</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705e965a9e5381745e6e3a75342d7c8e075">Variance</a> enum value</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">~Plugin</a>()</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#47846e7cc0ef4a29335e08b9645316d0">~PluginSummarisingAdapter</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c4fb6cfd7c0d3b2c8576a4e9dc61f518">~PluginWrapper</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+</table></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,1230 @@
+<!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::HostExt::PluginSummarisingAdapter Class 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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+  <div class="navpath"><a class="el" href="namespaceVamp.html">Vamp</a>::<a class="el" href="namespaceVamp_1_1HostExt.html">HostExt</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">PluginSummarisingAdapter</a>
+  </div>
+</div>
+<div class="contents">
+<h1>Vamp::HostExt::PluginSummarisingAdapter Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginSummarisingAdapter" --><!-- doxytag: inherits="Vamp::HostExt::PluginWrapper" --><code>#include &lt;<a class="el" href="PluginSummarisingAdapter_8h-source.html">vamp-hostsdk/PluginSummarisingAdapter.h</a>&gt;</code>
+<p>
+<div class="dynheader">
+Inheritance diagram for Vamp::HostExt::PluginSummarisingAdapter:</div>
+<div class="dynsection">
+<p><center><img src="classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.png" border="0" usemap="#Vamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__map" alt="Inheritance graph"></center>
+<map name="Vamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__map">
+<area shape="rect" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="43,154,243,181"><area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="93,80,192,106"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="79,5,207,32"></map>
+<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
+
+<p>
+<a href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
+<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that provides summarisation methods such as mean and median averages of output features, for use in any context where an available plugin produces individual values but the result that is actually needed is some sort of aggregate. 
+<p>
+To make use of <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a>, the host should configure, initialise and run the plugin through the adapter interface just as normal. Then, after the process and getRemainingFeatures methods have been properly called and processing is complete, the host may call getSummaryForOutput or getSummaryForAllOutputs to obtain summarised features: averages, maximum values, etc, depending on the SummaryType passed to the function.<p>
+By default <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> calculates a single summary of each output's feature across the whole duration of processed audio. A host needing summaries of sub-segments of the whole audio may call setSummarySegmentBoundaries before retrieving the summaries, providing a list of times such that one summary will be provided for each segment between two consecutive times.<p>
+<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> is straightforward rather than fast. It calculates all of the summary types for all outputs always, and then returns only the ones that are requested. It is designed on the basis that, for most features, summarising and storing summarised results is far cheaper than calculating the results in the first place. If this is not true for your particular feature, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> may not be the best approach for you.<p>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>This class was introduced in version 2.0 of the <a class="el" href="namespaceVamp.html">Vamp</a> plugin SDK. </dd></dl>
+
+<p>Definition at line <a class="el" href="PluginSummarisingAdapter_8h-source.html#l00086">86</a> of file <a class="el" href="PluginSummarisingAdapter_8h-source.html">PluginSummarisingAdapter.h</a>.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">SummaryType</a> { <br>
+&nbsp;&nbsp;<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705320b8a4cd0c3d492aeb17f7fc4ed930c">Minimum</a> =  0, 
+<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705defff4e5073aa298a96d99b92025b7f9">Maximum</a> =  1, 
+<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705e8a03f013397d08c85734e47524f5a75">Mean</a> =  2, 
+<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705adde1f9a5a6557f25223279433699195">Median</a> =  3, 
+<br>
+&nbsp;&nbsp;<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717051688d03811a2268daa062220f5be0614">Mode</a> =  4, 
+<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717059496664a605b3aa706f909070d73060b">Sum</a> =  5, 
+<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705e965a9e5381745e6e3a75342d7c8e075">Variance</a> =  6, 
+<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717059342cd2209e20b93843cd389d9511ec7">StandardDeviation</a> =  7, 
+<br>
+&nbsp;&nbsp;<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717052395772fa2e74b3f617e20c76d579ad6">Count</a> =  8, 
+<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705eed3a16d665eb789053b82fdd386ee7c">UnknownSummaryType</a> =  999
+<br>
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">AveragingMethod</a> { <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76e8833d866dec593d29f1f4e3cd1e6e36">SampleAverage</a> =  0, 
+<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac766af6316c12e29bdbdff90c5fec764baa">ContinuousTimeAverage</a> =  1
+ }</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">AveragingMethod indicates how the adapter should handle average-based summaries of features whose results are not equally spaced in time.  <a href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::set&lt; <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#74e7f93c745802a2409185b63922466b">SegmentBoundaries</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> { <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a>, 
+<a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a>
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector<br>
+&lt; <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; <a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; int, <br>
+<a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector<br>
+&lt; <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#31b41f54560a2ae6c3ec1a945f3f1d68">PluginSummarisingAdapter</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> wrapping the given plugin.  <a href="#31b41f54560a2ae6c3ec1a945f3f1d68"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#47846e7cc0ef4a29335e08b9645316d0">~PluginSummarisingAdapter</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#1e994576d43efe103bf8f83b69716745">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames).  <a href="#1e994576d43efe103bf8f83b69716745"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#3314b456a4780601c021dac25b478846">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#3314b456a4780601c021dac25b478846"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#e9dcbd1ba8197ff90b4fc6bf7ade7688">getRemainingFeatures</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input.  <a href="#e9dcbd1ba8197ff90b4fc6bf7ade7688"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#1a659500ca1290a228c0b9b91f6ac0b7">setSummarySegmentBoundaries</a> (const <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#74e7f93c745802a2409185b63922466b">SegmentBoundaries</a> &amp;)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specify a series of segment boundaries, such that one summary will be returned for each of the contiguous intra-boundary segments.  <a href="#1a659500ca1290a228c0b9b91f6ac0b7"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#be13faa68d3244b962dbd362671e23f9">getSummaryForOutput</a> (int output, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">SummaryType</a> type, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">AveragingMethod</a> method=SampleAverage)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return summaries of the features that were returned on the given output, using the given SummaryType and AveragingMethod.  <a href="#be13faa68d3244b962dbd362671e23f9"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#c3f93d9ca2d25c9fdc80d0ba10eaaa6b">getSummaryForAllOutputs</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">SummaryType</a> type, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">AveragingMethod</a> method=SampleAverage)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return summaries of the features that were returned on all of the plugin's outputs, using the given SummaryType and AveragingMethod.  <a href="#c3f93d9ca2d25c9fdc80d0ba10eaaa6b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">reset</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the plugin after use, to prepare it for another clean run.  <a href="#d19cc0614ba41cdc26ef3394c5146fe6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e203faf8384c9e1fddc381409aa8a214">getInputDomain</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#e203faf8384c9e1fddc381409aa8a214"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">getVampApiVersion</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.  <a href="#74147fda6b44ff2169bd4a1eea0d46ff"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">getIdentifier</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#4baa9e48f717c2b3e7f92496aa39d904"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">getName</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a human-readable name or title of the plugin.  <a href="#c70a3265bb25aeb03f6dd8f8a0442088"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">getDescription</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a human-readable description for the plugin, typically a line of text that may optionally be displayed in addition to the plugin's "name".  <a href="#c334f699c0996055942785410d8a065c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">getMaker</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the name of the author or vendor of the plugin in human-readable form.  <a href="#59d5a2298951b317995675e664b1c7bb"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">getPluginVersion</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the version number of the plugin.  <a href="#47e1acf1696813008324a915c9ba59c5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">getCopyright</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the copyright statement or licensing summary for the plugin.  <a href="#e14f6ecb78be909c4cd5f0cdaed3c566"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">getParameterDescriptors</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#9be71561265c2e6e43b7feaddaa91f36"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">getParameter</a> (std::string) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of a named parameter.  <a href="#034920f56c8d7609a85447c42556048c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">setParameter</a> (std::string, float)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter.  <a href="#651b15a5dc4c27942ac0c87c6092bfe5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">getPrograms</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#131fbe1df81215020b9aa8cecef4c802"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">getCurrentProgram</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current program.  <a href="#7a312dd42d161064b70afd7ff24c0651"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">selectProgram</a> (std::string)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select a program.  <a href="#074978333a74fdcf336a8a1d8ea20abf"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">getPreferredStepSize</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function) for the plugin.  <a href="#0137d93d7019bacc31104836fb4d352e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">getPreferredBlockSize</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function).  <a href="#2c62a656313a819650656643a867ad01"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">getMinChannelCount</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum supported number of input channels.  <a href="#2b28f1cf37d46a514f1e1411a6037bf8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">getMaxChannelCount</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum supported number of input channels.  <a href="#985eb21f1827bfbc3950d6871b107a58"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#5a9411305f713b4c9827844b89acd270">getOutputDescriptors</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#5a9411305f713b4c9827844b89acd270"></a><br></td></tr>
+<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename WrapperType&gt; </td></tr>
+<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">WrapperType *&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3">getWrapper</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.  <a href="#e9d79bed7237d55a73018a6b982a55b3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.  <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">Impl *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f131140817d9f131650af98b6b8d7a94">m_impl</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">m_plugin</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td></tr>
+
+</table>
+<hr><h2>Member Typedef Documentation</h2>
+<a class="anchor" name="74e7f93c745802a2409185b63922466b"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::SegmentBoundaries" ref="74e7f93c745802a2409185b63922466b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::set&lt;<a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&gt; <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#74e7f93c745802a2409185b63922466b">Vamp::HostExt::PluginSummarisingAdapter::SegmentBoundaries</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="PluginSummarisingAdapter_8h-source.html#l00102">102</a> of file <a class="el" href="PluginSummarisingAdapter_8h-source.html">PluginSummarisingAdapter.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="30f531b8fb69fac41a24e3d2a6a08ed9"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::OutputList" ref="30f531b8fb69fac41a24e3d2a6a08ed9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Vamp::Plugin::OutputList</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00322">322</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="0730bc72c87fa02eb8d2854b233f7be1"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::FeatureList" ref="0730bc72c87fa02eb8d2854b233f7be1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">Vamp::Plugin::FeatureList</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00380">380</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="448fb57dc245d47923ec9eeaf9856c5f"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::FeatureSet" ref="448fb57dc245d47923ec9eeaf9856c5f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::map&lt;int, <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Vamp::Plugin::FeatureSet</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00382">382</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="3b6bb4bbd86affe1ca9deceea1aad4f8"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::ParameterList" ref="3b6bb4bbd86affe1ca9deceea1aad4f8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::vector&lt;<a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a>&gt; <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">Vamp::PluginBase::ParameterList</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="7f66f00437b21e5f694fe02356b12f20"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::ProgramList" ref="7f66f00437b21e5f694fe02356b12f20" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::vector&lt;std::string&gt; <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">Vamp::PluginBase::ProgramList</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="f504f810448961fc489e9b6572471705"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::SummaryType" ref="f504f810448961fc489e9b6572471705" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">Vamp::HostExt::PluginSummarisingAdapter::SummaryType</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="f504f810448961fc489e9b6572471705320b8a4cd0c3d492aeb17f7fc4ed930c"></a><!-- doxytag: member="Minimum" ref="f504f810448961fc489e9b6572471705320b8a4cd0c3d492aeb17f7fc4ed930c" args="" -->Minimum</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b6572471705defff4e5073aa298a96d99b92025b7f9"></a><!-- doxytag: member="Maximum" ref="f504f810448961fc489e9b6572471705defff4e5073aa298a96d99b92025b7f9" args="" -->Maximum</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b6572471705e8a03f013397d08c85734e47524f5a75"></a><!-- doxytag: member="Mean" ref="f504f810448961fc489e9b6572471705e8a03f013397d08c85734e47524f5a75" args="" -->Mean</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b6572471705adde1f9a5a6557f25223279433699195"></a><!-- doxytag: member="Median" ref="f504f810448961fc489e9b6572471705adde1f9a5a6557f25223279433699195" args="" -->Median</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b65724717051688d03811a2268daa062220f5be0614"></a><!-- doxytag: member="Mode" ref="f504f810448961fc489e9b65724717051688d03811a2268daa062220f5be0614" args="" -->Mode</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b65724717059496664a605b3aa706f909070d73060b"></a><!-- doxytag: member="Sum" ref="f504f810448961fc489e9b65724717059496664a605b3aa706f909070d73060b" args="" -->Sum</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b6572471705e965a9e5381745e6e3a75342d7c8e075"></a><!-- doxytag: member="Variance" ref="f504f810448961fc489e9b6572471705e965a9e5381745e6e3a75342d7c8e075" args="" -->Variance</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b65724717059342cd2209e20b93843cd389d9511ec7"></a><!-- doxytag: member="StandardDeviation" ref="f504f810448961fc489e9b65724717059342cd2209e20b93843cd389d9511ec7" args="" -->StandardDeviation</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b65724717052395772fa2e74b3f617e20c76d579ad6"></a><!-- doxytag: member="Count" ref="f504f810448961fc489e9b65724717052395772fa2e74b3f617e20c76d579ad6" args="" -->Count</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b6572471705eed3a16d665eb789053b82fdd386ee7c"></a><!-- doxytag: member="UnknownSummaryType" ref="f504f810448961fc489e9b6572471705eed3a16d665eb789053b82fdd386ee7c" args="" -->UnknownSummaryType</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>Definition at line <a class="el" href="PluginSummarisingAdapter_8h-source.html#l00119">119</a> of file <a class="el" href="PluginSummarisingAdapter_8h-source.html">PluginSummarisingAdapter.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="294e9eed9c541dcedbaa4f2dfda1ac76"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::AveragingMethod" ref="294e9eed9c541dcedbaa4f2dfda1ac76" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">Vamp::HostExt::PluginSummarisingAdapter::AveragingMethod</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+AveragingMethod indicates how the adapter should handle average-based summaries of features whose results are not equally spaced in time. 
+<p>
+If SampleAverage is specified, summary types based on averages will be calculated by treating each result individually without regard to its time: for example, the mean will be the sum of all values divided by the number of values.<p>
+If ContinuousTimeAverage is specified, each feature will be considered to have a duration, either as specified in the feature's duration field, or until the following feature: thus, for example, the mean will be the sum of the products of values and durations, divided by the total duration.<p>
+Although SampleAverage is useful for many types of feature, ContinuousTimeAverage is essential for some situations, for example finding the result that spans the largest proportion of the input given a feature that emits a new result only when the value changes (the modal value integrated over time). <dl compact><dt><b>Enumerator: </b></dt><dd>
+<table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" name="294e9eed9c541dcedbaa4f2dfda1ac76e8833d866dec593d29f1f4e3cd1e6e36"></a><!-- doxytag: member="SampleAverage" ref="294e9eed9c541dcedbaa4f2dfda1ac76e8833d866dec593d29f1f4e3cd1e6e36" args="" -->SampleAverage</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="294e9eed9c541dcedbaa4f2dfda1ac766af6316c12e29bdbdff90c5fec764baa"></a><!-- doxytag: member="ContinuousTimeAverage" ref="294e9eed9c541dcedbaa4f2dfda1ac766af6316c12e29bdbdff90c5fec764baa" args="" -->ContinuousTimeAverage</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>Definition at line <a class="el" href="PluginSummarisingAdapter_8h-source.html#l00155">155</a> of file <a class="el" href="PluginSummarisingAdapter_8h-source.html">PluginSummarisingAdapter.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bc"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::InputDomain" ref="39cb7649d6dcc20e4cb1640cd55907bc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Vamp::Plugin::InputDomain</a><code> [inherited]</code>          </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="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff"></a><!-- doxytag: member="TimeDomain" ref="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff" args="" -->TimeDomain</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53"></a><!-- doxytag: member="FrequencyDomain" ref="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53" args="" -->FrequencyDomain</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">152</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="31b41f54560a2ae6c3ec1a945f3f1d68"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::PluginSummarisingAdapter" ref="31b41f54560a2ae6c3ec1a945f3f1d68" args="(Plugin *plugin)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::HostExt::PluginSummarisingAdapter::PluginSummarisingAdapter           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
+          <td class="paramname"> <em>plugin</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Construct a <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> wrapping the given plugin. 
+<p>
+The adapter takes ownership of the plugin, which will be deleted when the adapter is deleted. 
+</div>
+</div><p>
+<a class="anchor" name="47846e7cc0ef4a29335e08b9645316d0"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::~PluginSummarisingAdapter" ref="47846e7cc0ef4a29335e08b9645316d0" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual Vamp::HostExt::PluginSummarisingAdapter::~PluginSummarisingAdapter           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="1e994576d43efe103bf8f83b69716745"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::initialise" ref="1e994576d43efe103bf8f83b69716745" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool Vamp::HostExt::PluginSummarisingAdapter::initialise           </td>
+          <td>(</td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>inputChannels</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>stepSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"> <em>blockSize</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames). 
+<p>
+The input sample rate should have been already specified at construction time.<p>
+Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. 
+<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">Vamp::HostExt::PluginWrapper</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="3314b456a4780601c021dac25b478846"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::process" ref="3314b456a4780601c021dac25b478846" args="(const float *const *inputBuffers, RealTime timestamp)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::HostExt::PluginSummarisingAdapter::process           </td>
+          <td>(</td>
+          <td class="paramtype">const float *const *&nbsp;</td>
+          <td class="paramname"> <em>inputBuffers</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td>
+          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Process a single block of input data. 
+<p>
+If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.<p>
+If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
+Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) 
+<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf">Vamp::HostExt::PluginWrapper</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="e9dcbd1ba8197ff90b4fc6bf7ade7688"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getRemainingFeatures" ref="e9dcbd1ba8197ff90b4fc6bf7ade7688" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::HostExt::PluginSummarisingAdapter::getRemainingFeatures           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+After all blocks have been processed, calculate and return any remaining features derived from the complete input. 
+<p>
+
+<p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2bc8c0992e64f06991fb7cf89f99857e">Vamp::HostExt::PluginWrapper</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="1a659500ca1290a228c0b9b91f6ac0b7"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::setSummarySegmentBoundaries" ref="1a659500ca1290a228c0b9b91f6ac0b7" args="(const SegmentBoundaries &amp;)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void Vamp::HostExt::PluginSummarisingAdapter::setSummarySegmentBoundaries           </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#74e7f93c745802a2409185b63922466b">SegmentBoundaries</a> &amp;&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Specify a series of segment boundaries, such that one summary will be returned for each of the contiguous intra-boundary segments. 
+<p>
+This function must be called before getSummaryForOutput or getSummaryForAllOutputs.<p>
+Note that you cannot retrieve results with multiple different segmentations by repeatedly calling this function followed by one of the getSummary functions. The summaries are all calculated at the first call to any getSummary function, and once the summaries have been calculated, they remain calculated. 
+</div>
+</div><p>
+<a class="anchor" name="be13faa68d3244b962dbd362671e23f9"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getSummaryForOutput" ref="be13faa68d3244b962dbd362671e23f9" args="(int output, SummaryType type, AveragingMethod method=SampleAverage)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> Vamp::HostExt::PluginSummarisingAdapter::getSummaryForOutput           </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>output</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">SummaryType</a>&nbsp;</td>
+          <td class="paramname"> <em>type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">AveragingMethod</a>&nbsp;</td>
+          <td class="paramname"> <em>method</em> = <code>SampleAverage</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Return summaries of the features that were returned on the given output, using the given SummaryType and AveragingMethod. 
+<p>
+The plugin must have been fully run (<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#3314b456a4780601c021dac25b478846" title="Process a single block of input data.">process()</a> and <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#e9dcbd1ba8197ff90b4fc6bf7ade7688" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures()</a> calls all made as appropriate) before this function is called. 
+</div>
+</div><p>
+<a class="anchor" name="c3f93d9ca2d25c9fdc80d0ba10eaaa6b"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getSummaryForAllOutputs" ref="c3f93d9ca2d25c9fdc80d0ba10eaaa6b" args="(SummaryType type, AveragingMethod method=SampleAverage)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::HostExt::PluginSummarisingAdapter::getSummaryForAllOutputs           </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">SummaryType</a>&nbsp;</td>
+          <td class="paramname"> <em>type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">AveragingMethod</a>&nbsp;</td>
+          <td class="paramname"> <em>method</em> = <code>SampleAverage</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Return summaries of the features that were returned on all of the plugin's outputs, using the given SummaryType and AveragingMethod. 
+<p>
+The plugin must have been fully run (<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#3314b456a4780601c021dac25b478846" title="Process a single block of input data.">process()</a> and <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#e9dcbd1ba8197ff90b4fc6bf7ade7688" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures()</a> calls all made as appropriate) before this function is called. 
+</div>
+</div><p>
+<a class="anchor" name="d19cc0614ba41cdc26ef3394c5146fe6"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::reset" ref="d19cc0614ba41cdc26ef3394c5146fe6" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void Vamp::HostExt::PluginWrapper::reset           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Reset the plugin after use, to prepare it for another clean run. 
+<p>
+Not called for the first initialisation (i.e. initialise must also do a reset). 
+<p>Implements <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin</a>.</p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="e203faf8384c9e1fddc381409aa8a214"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getInputDomain" ref="e203faf8384c9e1fddc381409aa8a214" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> Vamp::HostExt::PluginWrapper::getInputDomain           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the plugin's required input domain. 
+<p>
+If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
+<p>Implements <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>.</p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#47ff1ed72889f323da63f8abc9ea581a">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="74147fda6b44ff2169bd4a1eea0d46ff"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getVampApiVersion" ref="74147fda6b44ff2169bd4a1eea0d46ff" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int Vamp::HostExt::PluginWrapper::getVampApiVersion           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. 
+<p>
+
+<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">Vamp::PluginBase</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="4baa9e48f717c2b3e7f92496aa39d904"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getIdentifier" ref="4baa9e48f717c2b3e7f92496aa39d904" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string Vamp::HostExt::PluginWrapper::getIdentifier           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the computer-usable name of the plugin. 
+<p>
+This should be reasonably short and contain no whitespace or punctuation characters. It may only contain the characters [a-zA-Z0-9_-]. This is the authoritative way for a program to identify a plugin within a given library.<p>
+This text may be visible to the user, but it should not be the main text used to identify a plugin to the user (that will be the name, below).<p>
+Example: "zero_crossings" 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c70a3265bb25aeb03f6dd8f8a0442088"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getName" ref="c70a3265bb25aeb03f6dd8f8a0442088" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string Vamp::HostExt::PluginWrapper::getName           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get a human-readable name or title of the plugin. 
+<p>
+This should be brief and self-contained, as it may be used to identify the plugin to the user in isolation (i.e. without also showing the plugin's "identifier").<p>
+Example: "Zero Crossings" 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c334f699c0996055942785410d8a065c"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getDescription" ref="c334f699c0996055942785410d8a065c" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string Vamp::HostExt::PluginWrapper::getDescription           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get a human-readable description for the plugin, typically a line of text that may optionally be displayed in addition to the plugin's "name". 
+<p>
+May be empty if the name has said it all already.<p>
+Example: "Detect and count zero crossing points" 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="59d5a2298951b317995675e664b1c7bb"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getMaker" ref="59d5a2298951b317995675e664b1c7bb" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string Vamp::HostExt::PluginWrapper::getMaker           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the name of the author or vendor of the plugin in human-readable form. 
+<p>
+This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="47e1acf1696813008324a915c9ba59c5"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getPluginVersion" ref="47e1acf1696813008324a915c9ba59c5" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int Vamp::HostExt::PluginWrapper::getPluginVersion           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the version number of the plugin. 
+<p>
+
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="e14f6ecb78be909c4cd5f0cdaed3c566"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getCopyright" ref="e14f6ecb78be909c4cd5f0cdaed3c566" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string Vamp::HostExt::PluginWrapper::getCopyright           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the copyright statement or licensing summary for the plugin. 
+<p>
+This can be an informative text, without the same presentation constraints as mentioned for getMaker above. 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="9be71561265c2e6e43b7feaddaa91f36"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getParameterDescriptors" ref="9be71561265c2e6e43b7feaddaa91f36" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> Vamp::HostExt::PluginWrapper::getParameterDescriptors           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the controllable parameters of this plugin. 
+<p>
+
+<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">Vamp::PluginBase</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="034920f56c8d7609a85447c42556048c"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getParameter" ref="034920f56c8d7609a85447c42556048c" args="(std::string) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float Vamp::HostExt::PluginWrapper::getParameter           </td>
+          <td>(</td>
+          <td class="paramtype">std::string&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the value of a named parameter. 
+<p>
+The argument is the identifier field from that parameter's descriptor. 
+<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">Vamp::PluginBase</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="651b15a5dc4c27942ac0c87c6092bfe5"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::setParameter" ref="651b15a5dc4c27942ac0c87c6092bfe5" args="(std::string, float)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void Vamp::HostExt::PluginWrapper::setParameter           </td>
+          <td>(</td>
+          <td class="paramtype">std::string&nbsp;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&nbsp;</td>
+          <td class="paramname"></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Set a named parameter. 
+<p>
+The first argument is the identifier field from that parameter's descriptor. 
+<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">Vamp::PluginBase</a>.</p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7a979b20c169d37adbd7b7d8b8a077b3">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="131fbe1df81215020b9aa8cecef4c802"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getPrograms" ref="131fbe1df81215020b9aa8cecef4c802" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> Vamp::HostExt::PluginWrapper::getPrograms           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the program settings available in this plugin. 
+<p>
+A program is a named shorthand for a set of parameter values; changing the program may cause the plugin to alter the values of its published parameters (and/or non-public internal processing parameters). The host should re-read the plugin's parameter values after setting a new program.<p>
+The programs must have unique names. 
+<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">Vamp::PluginBase</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="7a312dd42d161064b70afd7ff24c0651"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getCurrentProgram" ref="7a312dd42d161064b70afd7ff24c0651" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string Vamp::HostExt::PluginWrapper::getCurrentProgram           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the current program. 
+<p>
+
+<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">Vamp::PluginBase</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="074978333a74fdcf336a8a1d8ea20abf"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::selectProgram" ref="074978333a74fdcf336a8a1d8ea20abf" args="(std::string)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void Vamp::HostExt::PluginWrapper::selectProgram           </td>
+          <td>(</td>
+          <td class="paramtype">std::string&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Select a program. 
+<p>
+(If the given program name is not one of the available programs, do nothing.) 
+<p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">Vamp::PluginBase</a>.</p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="0137d93d7019bacc31104836fb4d352e"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getPreferredStepSize" ref="0137d93d7019bacc31104836fb4d352e" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t Vamp::HostExt::PluginWrapper::getPreferredStepSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function) for the plugin. 
+<p>
+This should be called before <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
+A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
+<p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">Vamp::Plugin</a>.</p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="2c62a656313a819650656643a867ad01"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getPreferredBlockSize" ref="2c62a656313a819650656643a867ad01" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t Vamp::HostExt::PluginWrapper::getPreferredBlockSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function). 
+<p>
+This should be called before <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
+A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
+<p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">Vamp::Plugin</a>.</p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#21e45180b19873f9ab69fe7a4e184a03">Vamp::HostExt::PluginBufferingAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="2b28f1cf37d46a514f1e1411a6037bf8"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getMinChannelCount" ref="2b28f1cf37d46a514f1e1411a6037bf8" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t Vamp::HostExt::PluginWrapper::getMinChannelCount           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the minimum supported number of input channels. 
+<p>
+
+<p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">Vamp::Plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="985eb21f1827bfbc3950d6871b107a58"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getMaxChannelCount" ref="985eb21f1827bfbc3950d6871b107a58" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t Vamp::HostExt::PluginWrapper::getMaxChannelCount           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the maximum supported number of input channels. 
+<p>
+
+<p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">Vamp::Plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="5a9411305f713b4c9827844b89acd270"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getOutputDescriptors" ref="5a9411305f713b4c9827844b89acd270" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> Vamp::HostExt::PluginWrapper::getOutputDescriptors           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the outputs of this plugin. 
+<p>
+An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> call. 
+<p>Implements <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>.</p>
+
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#f8cc914897a284433de220f1153f3845">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="e9d79bed7237d55a73018a6b982a55b3"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getWrapper" ref="e9d79bed7237d55a73018a6b982a55b3" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename WrapperType&gt; </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">WrapperType* Vamp::HostExt::PluginWrapper::getWrapper           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [inline, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present. 
+<p>
+This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f" title="Load a Vamp plugin, given its identifying key.">PluginLoader::loadPlugin</a> may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type. 
+<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00116">116</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
+
+<p>References <a class="el" href="PluginWrapper_8h-source.html#l00116">Vamp::HostExt::PluginWrapper::getWrapper()</a>.</p>
+
+<p>Referenced by <a class="el" href="PluginWrapper_8h-source.html#l00116">Vamp::HostExt::PluginWrapper::getWrapper()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="be13b3997a69fbcc09e2213faa352f91"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getType" ref="be13b3997a69fbcc09e2213faa352f91" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual std::string Vamp::Plugin::getType           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>. 
+<p>
+Do not reimplement this function in your subclass. 
+<p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00425">425</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="f131140817d9f131650af98b6b8d7a94"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::m_impl" ref="f131140817d9f131650af98b6b8d7a94" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Impl* <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f131140817d9f131650af98b6b8d7a94">Vamp::HostExt::PluginSummarisingAdapter::m_impl</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="PluginSummarisingAdapter_8h-source.html#l00185">185</a> of file <a class="el" href="PluginSummarisingAdapter_8h-source.html">PluginSummarisingAdapter.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="b4e40ecd98b445e1a2aa9e7baa280ea2"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::m_plugin" ref="b4e40ecd98b445e1a2aa9e7baa280ea2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a>* <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">Vamp::HostExt::PluginWrapper::m_plugin</a><code> [protected, inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00126">126</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="59b9dd82a4f4eb946cd0474cc81abc23"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::m_inputSampleRate" ref="59b9dd82a4f4eb946cd0474cc81abc23" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">Vamp::Plugin::m_inputSampleRate</a><code> [protected, inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">431</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
+
+</div>
+</div><p>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="PluginSummarisingAdapter_8h-source.html">PluginSummarisingAdapter.h</a></ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,3 @@
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="43,154,243,181">
+<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="93,80,192,106">
+<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="79,5,207,32">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,1 @@
+524cd5a5d3a0eab71129f2ae42f2bc43
\ No newline at end of file
Binary file code-doc/classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.png has changed
--- a/code-doc/classVamp_1_1HostExt_1_1PluginWrapper-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginWrapper-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -32,21 +32,22 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">getCurrentProgram</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">getDescription</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">getIdentifier</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870">getInputDomain</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e203faf8384c9e1fddc381409aa8a214">getInputDomain</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">getMaker</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">getMaxChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">getMinChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">getName</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace">getOutputDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#5a9411305f713b4c9827844b89acd270">getOutputDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">getParameter</a>(std::string) const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">getParameterDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">getParameterDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">getPluginVersion</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">getPreferredBlockSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">getPreferredStepSize</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">getPrograms</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe">getRemainingFeatures</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">getPrograms</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2bc8c0992e64f06991fb7cf89f99857e">getRemainingFeatures</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">getVampApiVersion</a>() const </td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3">getWrapper</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> enum name</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [protected]</code></td></tr>
@@ -55,7 +56,7 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>(float inputSampleRate)</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#35cc2d42f8322f5022e89859a79c97be">PluginWrapper</a>(Plugin *plugin)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7">process</a>(const float *const *inputBuffers, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf">process</a>(const float *const *inputBuffers, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">reset</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">selectProgram</a>(std::string)</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
@@ -63,10 +64,10 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">~Plugin</a>()</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7449a364d524de75352a4719fec2e1f5">~PluginWrapper</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c4fb6cfd7c0d3b2c8576a4e9dc61f518">~PluginWrapper</a>()</td><td><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a></td><td><code> [virtual]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginWrapper.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginWrapper.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,24 +26,24 @@
   </div>
 </div>
 <div class="contents">
-<h1>Vamp::HostExt::PluginWrapper Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginWrapper" --><!-- doxytag: inherits="Vamp::Plugin" --><code>#include &lt;<a class="el" href="PluginWrapper_8h-source.html">vamp-sdk/hostext/PluginWrapper.h</a>&gt;</code>
+<h1>Vamp::HostExt::PluginWrapper Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginWrapper" --><!-- doxytag: inherits="Vamp::Plugin" --><code>#include &lt;<a class="el" href="PluginWrapper_8h-source.html">vamp-hostsdk/PluginWrapper.h</a>&gt;</code>
 <p>
 <div class="dynheader">
 Inheritance diagram for Vamp::HostExt::PluginWrapper:</div>
 <div class="dynsection">
 <p><center><img src="classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.png" border="0" usemap="#Vamp_1_1HostExt_1_1PluginWrapper__inherit__map" alt="Inheritance graph"></center>
 <map name="Vamp_1_1HostExt_1_1PluginWrapper__inherit__map">
-<area shape="rect" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="652,6,903,30"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="655,54,900,78"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="641,102,913,126"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html" title="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter" alt="" coords="580,150,975,174"><area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="181,78,280,102"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,78,133,102"></map>
+<area shape="rect" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="592,5,840,32"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="593,56,839,82"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="580,106,852,133"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods..." alt="" coords="579,157,853,184"><area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="181,81,280,108"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,81,133,108"></map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
 
 <p>
 <a href="classVamp_1_1HostExt_1_1PluginWrapper-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
 <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a> is a simple base class for adapter plugins. 
 <p>
-It takes a pointer to a "to be wrapped" <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 on construction, and provides implementations of all the <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 methods that simply delegate through to the wrapped plugin. A subclass can therefore override only the methods that are meaningful for the particular adapter.<p>
-<dl class="note" compact><dt><b>Note:</b></dt><dd>This class was introduced in version 1.1 of the <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 SDK. </dd></dl>
+It takes a pointer to a "to be wrapped" <a class="el" href="namespaceVamp.html">Vamp</a> plugin on construction, and provides implementations of all the <a class="el" href="namespaceVamp.html">Vamp</a> plugin methods that simply delegate through to the wrapped plugin. A subclass can therefore override only the methods that are meaningful for the particular adapter.<p>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>This class was introduced in version 1.1 of the <a class="el" href="namespaceVamp.html">Vamp</a> plugin SDK. </dd></dl>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00059">59</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
+<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00062">62</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
@@ -65,7 +65,7 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a></td></tr>
 
 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7449a364d524de75352a4719fec2e1f5">~PluginWrapper</a> ()</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c4fb6cfd7c0d3b2c8576a4e9dc61f518">~PluginWrapper</a> ()</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
 
@@ -73,12 +73,12 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">reset</a> ()</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the plugin after use, to prepare it for another clean run.  <a href="#d19cc0614ba41cdc26ef3394c5146fe6"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870">getInputDomain</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e203faf8384c9e1fddc381409aa8a214">getInputDomain</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#031aa818fd48fd0f4b5e1bf80c032870"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#e203faf8384c9e1fddc381409aa8a214"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">getVampApiVersion</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <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 compatibility level of the plugin.  <a href="#74147fda6b44ff2169bd4a1eea0d46ff"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.  <a href="#74147fda6b44ff2169bd4a1eea0d46ff"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">getIdentifier</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#4baa9e48f717c2b3e7f92496aa39d904"></a><br></td></tr>
@@ -97,18 +97,18 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">getCopyright</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the copyright statement or licensing summary for the plugin.  <a href="#e14f6ecb78be909c4cd5f0cdaed3c566"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">getParameterDescriptors</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">getParameterDescriptors</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#3b075b8f950b344503f0d27ac0fe332e"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#9be71561265c2e6e43b7feaddaa91f36"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">getParameter</a> (std::string) const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of a named parameter.  <a href="#034920f56c8d7609a85447c42556048c"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">setParameter</a> (std::string, float)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter.  <a href="#651b15a5dc4c27942ac0c87c6092bfe5"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">getPrograms</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">getPrograms</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#f3abaf717dc4b00cad5770ed6dfa01e1"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#131fbe1df81215020b9aa8cecef4c802"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">getCurrentProgram</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current program.  <a href="#7a312dd42d161064b70afd7ff24c0651"></a><br></td></tr>
@@ -117,25 +117,29 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select a program.  <a href="#074978333a74fdcf336a8a1d8ea20abf"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">getPreferredStepSize</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function) for the plugin.  <a href="#0137d93d7019bacc31104836fb4d352e"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function) for the plugin.  <a href="#0137d93d7019bacc31104836fb4d352e"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">getPreferredBlockSize</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function).  <a href="#2c62a656313a819650656643a867ad01"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function).  <a href="#2c62a656313a819650656643a867ad01"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">getMinChannelCount</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum supported number of input channels.  <a href="#2b28f1cf37d46a514f1e1411a6037bf8"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">getMaxChannelCount</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum supported number of input channels.  <a href="#985eb21f1827bfbc3950d6871b107a58"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace">getOutputDescriptors</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#5a9411305f713b4c9827844b89acd270">getOutputDescriptors</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#02c8c01972affeea58b091335e791ace"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#5a9411305f713b4c9827844b89acd270"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#fca78043c2843c1d45019983515e23f7"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe">getRemainingFeatures</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#6bd72d6dfb3047524dbe8ae3294527cf"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2bc8c0992e64f06991fb7cf89f99857e">getRemainingFeatures</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input.  <a href="#1dce55a75a32b08fc56a52a300d9fcbe"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input.  <a href="#2bc8c0992e64f06991fb7cf89f99857e"></a><br></td></tr>
+<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename WrapperType&gt; </td></tr>
+<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">WrapperType *&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3">getWrapper</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.  <a href="#e9d79bed7237d55a73018a6b982a55b3"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.  <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
@@ -162,7 +166,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00309">309</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00322">322</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -179,7 +183,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00347">347</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00380">380</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -196,7 +200,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00348">348</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00382">382</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -213,7 +217,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00195">195</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -230,7 +234,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00217">217</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -256,21 +260,21 @@
 </table>
 </dl>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00149">149</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">152</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
 <hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" name="7449a364d524de75352a4719fec2e1f5"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::~PluginWrapper" ref="7449a364d524de75352a4719fec2e1f5" args="()" -->
+<a class="anchor" name="c4fb6cfd7c0d3b2c8576a4e9dc61f518"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::~PluginWrapper" ref="c4fb6cfd7c0d3b2c8576a4e9dc61f518" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">Vamp::HostExt::PluginWrapper::~PluginWrapper           </td>
+          <td class="memname">virtual Vamp::HostExt::PluginWrapper::~PluginWrapper           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -278,10 +282,6 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00056">56</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="35cc2d42f8322f5022e89859a79c97be"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::PluginWrapper" ref="35cc2d42f8322f5022e89859a79c97be" args="(Plugin *plugin)" -->
@@ -294,7 +294,7 @@
           <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
           <td class="paramname"> <em>plugin</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [protected]</code></td>
+          <td><code> [protected]</code></td>
         </tr>
       </table>
 </div>
@@ -302,8 +302,6 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00050">50</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
 </div>
 </div><p>
 <hr><h2>Member Function Documentation</h2>
@@ -332,7 +330,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -345,11 +343,7 @@
 Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin</a>.</p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#de0473c8fc54636431967cbf41649c1c">Vamp::HostExt::PluginChannelAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00062">62</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin::initialise()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#de0473c8fc54636431967cbf41649c1c">Vamp::HostExt::PluginChannelAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c">Vamp::HostExt::PluginInputDomainAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#1e994576d43efe103bf8f83b69716745">Vamp::HostExt::PluginSummarisingAdapter</a>.</p>
 
 </div>
 </div><p>
@@ -362,7 +356,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -376,22 +370,18 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00068">68</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>, and <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin::reset()</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="031aa818fd48fd0f4b5e1bf80c032870"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getInputDomain" ref="031aa818fd48fd0f4b5e1bf80c032870" args="() const " -->
+<a class="anchor" name="e203faf8384c9e1fddc381409aa8a214"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getInputDomain" ref="e203faf8384c9e1fddc381409aa8a214" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Plugin::InputDomain</a> Vamp::HostExt::PluginWrapper::getInputDomain           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> Vamp::HostExt::PluginWrapper::getInputDomain           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -400,14 +390,10 @@
 <p>
 Get the plugin's required input domain. 
 <p>
-If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
+If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>.</p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#376fa97a1c721255541fe35d71368976">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00074">74</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin::getInputDomain()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#47ff1ed72889f323da63f8abc9ea581a">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
 
 </div>
 </div><p>
@@ -420,22 +406,18 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the <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 compatibility level of the plugin. 
+Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. 
 <p>
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00080">80</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00067">Vamp::PluginBase::getVampApiVersion()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="4baa9e48f717c2b3e7f92496aa39d904"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getIdentifier" ref="4baa9e48f717c2b3e7f92496aa39d904" args="() const " -->
@@ -447,7 +429,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -461,10 +443,6 @@
 Example: "zero_crossings" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00086">86</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase::getIdentifier()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="c70a3265bb25aeb03f6dd8f8a0442088"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getName" ref="c70a3265bb25aeb03f6dd8f8a0442088" args="() const " -->
@@ -476,7 +454,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -489,10 +467,6 @@
 Example: "Zero Crossings" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00092">92</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase::getName()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="c334f699c0996055942785410d8a065c"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getDescription" ref="c334f699c0996055942785410d8a065c" args="() const " -->
@@ -504,7 +478,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -517,10 +491,6 @@
 Example: "Detect and count zero crossing points" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00098">98</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase::getDescription()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="59d5a2298951b317995675e664b1c7bb"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getMaker" ref="59d5a2298951b317995675e664b1c7bb" args="() const " -->
@@ -532,7 +502,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -544,10 +514,6 @@
 This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00104">104</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase::getMaker()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="47e1acf1696813008324a915c9ba59c5"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getPluginVersion" ref="47e1acf1696813008324a915c9ba59c5" args="() const " -->
@@ -559,7 +525,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -571,10 +537,6 @@
 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00110">110</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase::getPluginVersion()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="e14f6ecb78be909c4cd5f0cdaed3c566"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getCopyright" ref="e14f6ecb78be909c4cd5f0cdaed3c566" args="() const " -->
@@ -586,7 +548,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -598,22 +560,18 @@
 This can be an informative text, without the same presentation constraints as mentioned for getMaker above. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00116">116</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase::getCopyright()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="3b075b8f950b344503f0d27ac0fe332e"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getParameterDescriptors" ref="3b075b8f950b344503f0d27ac0fe332e" args="() const " -->
+<a class="anchor" name="9be71561265c2e6e43b7feaddaa91f36"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getParameterDescriptors" ref="9be71561265c2e6e43b7feaddaa91f36" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">PluginBase::ParameterList</a> Vamp::HostExt::PluginWrapper::getParameterDescriptors           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> Vamp::HostExt::PluginWrapper::getParameterDescriptors           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -625,10 +583,6 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00122">122</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00200">Vamp::PluginBase::getParameterDescriptors()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="034920f56c8d7609a85447c42556048c"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getParameter" ref="034920f56c8d7609a85447c42556048c" args="(std::string) const " -->
@@ -641,7 +595,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -653,10 +607,6 @@
 The argument is the identifier field from that parameter's descriptor. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00128">128</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00208">Vamp::PluginBase::getParameter()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="651b15a5dc4c27942ac0c87c6092bfe5"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::setParameter" ref="651b15a5dc4c27942ac0c87c6092bfe5" args="(std::string, float)" -->
@@ -678,7 +628,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -690,22 +640,20 @@
 The first argument is the identifier field from that parameter's descriptor. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00134">134</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>, and <a class="el" href="PluginBase_8h-source.html#l00214">Vamp::PluginBase::setParameter()</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7a979b20c169d37adbd7b7d8b8a077b3">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
 
 </div>
 </div><p>
-<a class="anchor" name="f3abaf717dc4b00cad5770ed6dfa01e1"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getPrograms" ref="f3abaf717dc4b00cad5770ed6dfa01e1" args="() const " -->
+<a class="anchor" name="131fbe1df81215020b9aa8cecef4c802"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getPrograms" ref="131fbe1df81215020b9aa8cecef4c802" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">PluginBase::ProgramList</a> Vamp::HostExt::PluginWrapper::getPrograms           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> Vamp::HostExt::PluginWrapper::getPrograms           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -718,10 +666,6 @@
 The programs must have unique names. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00140">140</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00229">Vamp::PluginBase::getPrograms()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="7a312dd42d161064b70afd7ff24c0651"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getCurrentProgram" ref="7a312dd42d161064b70afd7ff24c0651" args="() const " -->
@@ -733,7 +677,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -745,10 +689,6 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00146">146</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginBase_8h-source.html#l00234">Vamp::PluginBase::getCurrentProgram()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="074978333a74fdcf336a8a1d8ea20abf"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::selectProgram" ref="074978333a74fdcf336a8a1d8ea20abf" args="(std::string)" -->
@@ -761,7 +701,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -773,9 +713,7 @@
 (If the given program name is not one of the available programs, do nothing.) 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00152">152</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>, and <a class="el" href="PluginBase_8h-source.html#l00240">Vamp::PluginBase::selectProgram()</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
 
 </div>
 </div><p>
@@ -788,14 +726,14 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function) for the plugin. 
+Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function) for the plugin. 
 <p>
 This should be called before <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
@@ -803,10 +741,6 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00158">158</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00186">Vamp::Plugin::getPreferredStepSize()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="2c62a656313a819650656643a867ad01"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getPreferredBlockSize" ref="2c62a656313a819650656643a867ad01" args="() const " -->
@@ -818,26 +752,20 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> function). 
+Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function). 
 <p>
 This should be called before <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">Vamp::Plugin</a>.</p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00164">164</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00171">Vamp::Plugin::getPreferredBlockSize()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00308">Vamp::HostExt::PluginBufferingAdapter::getPreferredStepSize()</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#21e45180b19873f9ab69fe7a4e184a03">Vamp::HostExt::PluginBufferingAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
 
 </div>
 </div><p>
@@ -850,7 +778,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -862,10 +790,6 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00170">170</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00191">Vamp::Plugin::getMinChannelCount()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="985eb21f1827bfbc3950d6871b107a58"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getMaxChannelCount" ref="985eb21f1827bfbc3950d6871b107a58" args="() const " -->
@@ -877,7 +801,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -889,22 +813,18 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00175">175</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00196">Vamp::Plugin::getMaxChannelCount()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="02c8c01972affeea58b091335e791ace"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getOutputDescriptors" ref="02c8c01972affeea58b091335e791ace" args="() const " -->
+<a class="anchor" name="5a9411305f713b4c9827844b89acd270"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getOutputDescriptors" ref="5a9411305f713b4c9827844b89acd270" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Plugin::OutputList</a> Vamp::HostExt::PluginWrapper::getOutputDescriptors           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> Vamp::HostExt::PluginWrapper::getOutputDescriptors           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -913,23 +833,19 @@
 <p>
 Get the outputs of this plugin. 
 <p>
-An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7" title="Process a single block of input data.">process()</a> call. 
+An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> call. 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>.</p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#85a027f5859efb31d315205e234e94c0">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00181">181</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin::getOutputDescriptors()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#f8cc914897a284433de220f1153f3845">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
 
 </div>
 </div><p>
-<a class="anchor" name="fca78043c2843c1d45019983515e23f7"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::process" ref="fca78043c2843c1d45019983515e23f7" args="(const float *const *inputBuffers, RealTime timestamp)" -->
+<a class="anchor" name="6bd72d6dfb3047524dbe8ae3294527cf"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::process" ref="6bd72d6dfb3047524dbe8ae3294527cf" args="(const float *const *inputBuffers, RealTime timestamp)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a> Vamp::HostExt::PluginWrapper::process           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::HostExt::PluginWrapper::process           </td>
           <td>(</td>
           <td class="paramtype">const float *const *&nbsp;</td>
           <td class="paramname"> <em>inputBuffers</em>, </td>
@@ -943,7 +859,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -952,29 +868,25 @@
 <p>
 Process a single block of input data. 
 <p>
-If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp will be the real time in seconds of the start of the supplied block of samples.<p>
+If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.<p>
 If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
 Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</a>.</p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#262206b978d9de28ee4bb35f437e915e">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#294e663b4d9ec885791faa1b440571ed">Vamp::HostExt::PluginChannelAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
-
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00187">187</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>, and <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin::process()</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#55058a20c1f8bffc0dc927350df778a0">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#6ff37bf754ff8711dbcb2f020fa3902c">Vamp::HostExt::PluginChannelAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231">Vamp::HostExt::PluginInputDomainAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#3314b456a4780601c021dac25b478846">Vamp::HostExt::PluginSummarisingAdapter</a>.</p>
 
 </div>
 </div><p>
-<a class="anchor" name="1dce55a75a32b08fc56a52a300d9fcbe"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getRemainingFeatures" ref="1dce55a75a32b08fc56a52a300d9fcbe" args="()" -->
+<a class="anchor" name="2bc8c0992e64f06991fb7cf89f99857e"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getRemainingFeatures" ref="2bc8c0992e64f06991fb7cf89f99857e" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a> Vamp::HostExt::PluginWrapper::getRemainingFeatures           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::HostExt::PluginWrapper::getRemainingFeatures           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -986,11 +898,36 @@
 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>.</p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#8771cba75552aaa1340b68de9bf1659c">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#28423951b2eda1a1fc371485434f417b">Vamp::HostExt::PluginBufferingAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#e9dcbd1ba8197ff90b4fc6bf7ade7688">Vamp::HostExt::PluginSummarisingAdapter</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8cpp-source.html#l00193">193</a> of file <a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a>.</p>
+</div>
+</div><p>
+<a class="anchor" name="e9d79bed7237d55a73018a6b982a55b3"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::getWrapper" ref="e9d79bed7237d55a73018a6b982a55b3" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename WrapperType&gt; </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">WrapperType* Vamp::HostExt::PluginWrapper::getWrapper           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
 
-<p>References <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin::getRemainingFeatures()</a>, and <a class="el" href="PluginWrapper_8h-source.html#l00099">m_plugin</a>.</p>
+<p>
+Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present. 
+<p>
+This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f" title="Load a Vamp plugin, given its identifying key.">PluginLoader::loadPlugin</a> may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type. 
+<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00116">116</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
+
+<p>References <a class="el" href="PluginWrapper_8h-source.html#l00116">getWrapper()</a>.</p>
+
+<p>Referenced by <a class="el" href="PluginWrapper_8h-source.html#l00116">getWrapper()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -1003,7 +940,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -1015,7 +952,7 @@
 Do not reimplement this function in your subclass. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00391">391</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00425">425</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -1033,9 +970,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00099">99</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00116">getCopyright()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00146">getCurrentProgram()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00098">getDescription()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00086">getIdentifier()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00074">getInputDomain()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00104">getMaker()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00175">getMaxChannelCount()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00170">getMinChannelCount()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00092">getName()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00181">getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00128">getParameter()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00122">getParameterDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00110">getPluginVersion()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00164">getPreferredBlockSize()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00158">getPreferredStepSize()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00140">getPrograms()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00193">getRemainingFeatures()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00080">getVampApiVersion()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00062">initialise()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00187">process()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00068">reset()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00152">selectProgram()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00134">setParameter()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00620">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::~PluginDeletionNotifyAdapter()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00056">~PluginWrapper()</a>.</p>
+<p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00126">126</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
 
 </div>
 </div><p>
@@ -1052,17 +987,17 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00397">397</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">431</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00047">Vamp::HostExt::PluginRateExtractor::getRate()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00238">Vamp::HostExt::PluginBufferingAdapter::PluginBufferingAdapter()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00113">Vamp::HostExt::PluginInputDomainAdapter::PluginInputDomainAdapter()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
 
 </div>
 </div><p>
-<hr>The documentation for this class was generated from the following files:<ul>
-<li><a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a><li><a class="el" href="PluginWrapper_8cpp-source.html">PluginWrapper.cpp</a></ul>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,6 +1,6 @@
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="652,6,903,30">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="655,54,900,78">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="641,102,913,126">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html" title="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter" alt="" coords="580,150,975,174">
-<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="181,78,280,102">
-<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,78,133,102">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="592,5,840,32">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="593,56,839,82">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="580,106,852,133">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods..." alt="" coords="579,157,853,184">
+<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="181,81,280,108">
+<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,81,133,108">
--- a/code-doc/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-0debc54b8d79aeb1dbbe5a52c0d0a0fb
\ No newline at end of file
+26c90b25b2428a766de6c40900a6c338
\ No newline at end of file
Binary file code-doc/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.png has changed
--- a/code-doc/classVamp_1_1Plugin-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1Plugin-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -62,8 +62,8 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">~Plugin</a>()</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:09 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:20 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1Plugin.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1Plugin.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,14 +26,14 @@
   </div>
 </div>
 <div class="contents">
-<h1>Vamp::Plugin Class Reference</h1><!-- doxytag: class="Vamp::Plugin" --><!-- doxytag: inherits="Vamp::PluginBase" --><code>#include &lt;<a class="el" href="Plugin_8h-source.html">vamp-sdk/Plugin.h</a>&gt;</code>
+<h1>Vamp::Plugin Class Reference</h1><!-- doxytag: class="Vamp::Plugin" --><!-- doxytag: inherits="Vamp::PluginBase" --><code>#include &lt;<a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>&gt;</code>
 <p>
 <div class="dynheader">
 Inheritance diagram for Vamp::Plugin:</div>
 <div class="dynsection">
 <p><center><img src="classVamp_1_1Plugin__inherit__graph.png" border="0" usemap="#Vamp_1_1Plugin__inherit__map" alt="Inheritance graph"></center>
 <map name="Vamp_1_1Plugin__inherit__map">
-<area shape="rect" href="classAmplitudeFollower.html" title="Example plugin implementing the SuperCollider amplitude follower function." alt="" coords="381,6,509,30"><area shape="rect" href="classPercussionOnsetDetector.html" title="Example plugin that detects percussive events." alt="" coords="360,54,531,78"><area shape="rect" href="classSpectralCentroid.html" title="Example plugin that calculates the centre of gravity of the frequency domain representation..." alt="" coords="387,102,504,126"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html" title="Vamp::HostExt::PluginRateExtractor" alt="" coords="329,150,561,174"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="345,198,545,222"><area shape="rect" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C&#45;language..." alt="" coords="360,246,531,270"><area shape="rect" href="classZeroCrossing.html" title="Example plugin that calculates the positions and density of zero&#45;crossing points..." alt="" coords="396,294,495,318"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,150,133,174"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="684,126,935,150"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="687,174,932,198"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="673,222,945,246"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html" title="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter" alt="" coords="612,270,1007,294"></map>
+<area shape="rect" href="classAmplitudeFollower.html" title="Example plugin implementing the SuperCollider amplitude follower function." alt="" coords="365,5,493,32"><area shape="rect" href="classFixedTempoEstimator.html" title="Example plugin that estimates the tempo of a short fixed&#45;tempo sample." alt="" coords="356,56,503,83"><area shape="rect" href="classPercussionOnsetDetector.html" title="Example plugin that detects percussive events." alt="" coords="344,107,515,133"><area shape="rect" href="classPowerSpectrum.html" title="Example plugin that returns a power spectrum calculated (trivially) from the frequency..." alt="" coords="373,157,485,184"><area shape="rect" href="classSpectralCentroid.html" title="Example plugin that calculates the centre of gravity of the frequency domain representation..." alt="" coords="371,208,488,235"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="329,259,529,285"><area shape="rect" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C&#45;language..." alt="" coords="344,309,515,336"><area shape="rect" href="classZeroCrossing.html" title="Example plugin that calculates the positions and density of zero&#45;crossing points..." alt="" coords="380,360,479,387"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,183,133,209"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="592,183,840,209"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="593,233,839,260"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="580,284,852,311"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods..." alt="" coords="579,335,853,361"></map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
 
 <p>
@@ -54,7 +54,7 @@
 8. Host will call getRemainingFeatures exactly once, after all the input data has been processed. This may return any non-causal or leftover features.<p>
 9. At any point after initialise was called, the host may optionally call the reset method and restart processing. (This does not mean it can change the parameters, which are fixed from initialise until destruction.)<p>
 A plugin does not need to handle the case where setParameter or selectProgram is called after initialise has been called. It's the host's responsibility not to do that. Similarly, the plugin may safely assume that initialise is called no more than once. 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00121">121</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00124">124</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
@@ -113,7 +113,7 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.  <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">getVampApiVersion</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <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 compatibility level of the plugin.  <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.  <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">getIdentifier</a> () const =0</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#d1c6dfc77aa03d937a885b7f08258f4a"></a><br></td></tr>
@@ -176,7 +176,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00309">309</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00322">322</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -193,7 +193,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00347">347</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00380">380</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -210,7 +210,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00348">348</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00382">382</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -227,7 +227,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00195">195</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -244,7 +244,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00217">217</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -270,7 +270,7 @@
 </table>
 </dl>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00149">149</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">152</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -284,7 +284,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline, virtual]</code></td>
+          <td><code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -292,7 +292,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00124">124</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00127">127</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -306,7 +306,7 @@
           <td class="paramtype">float&nbsp;</td>
           <td class="paramname"> <em>inputSampleRate</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline, protected]</code></td>
+          <td><code> [inline, protected]</code></td>
         </tr>
       </table>
 </div>
@@ -314,7 +314,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00394">394</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00428">428</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -344,7 +344,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
+          <td></td><td></td><td><code> [pure virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -355,9 +355,9 @@
 <p>
 The input sample rate should have been already specified at construction time.<p>
 Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#de0473c8fc54636431967cbf41649c1c">Vamp::HostExt::PluginChannelAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#eb727e44ee8ad1aceb90964d20f8d90d">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#349c528260622308f3850bcda8a448ab">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#ab1ae16f5c68e2b319668f447908cedb">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#f21bbcc87a6eb7875dfab7d86222dccc">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#de0473c8fc54636431967cbf41649c1c">Vamp::HostExt::PluginChannelAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#1e994576d43efe103bf8f83b69716745">Vamp::HostExt::PluginSummarisingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#eb727e44ee8ad1aceb90964d20f8d90d">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#a7500a4ffbc4653baaf5101defdb37f5">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#349c528260622308f3850bcda8a448ab">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#e2d046334c4bede5be72a0d97e4dfb29">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#ab1ae16f5c68e2b319668f447908cedb">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#f21bbcc87a6eb7875dfab7d86222dccc">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00062">Vamp::HostExt::PluginWrapper::initialise()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00203">Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">Vamp::HostExt::PluginChannelAdapter::Impl::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">Vamp::HostExt::PluginBufferingAdapter::Impl::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -370,7 +370,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [pure virtual]</code></td>
+          <td><code> [pure virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -380,9 +380,7 @@
 Reset the plugin after use, to prepare it for another clean run. 
 <p>
 Not called for the first initialisation (i.e. initialise must also do a reset). 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#5d54c5bbd76bc27b7a243827148afeaa">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#cebd835e80e84669df078fbd7591d8f7">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#9b1075e992cd9599764ef3881fb91d1a">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#9b5f5581691ff8f46bb7674d8d74395c">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#9ae6c4a31ea027dceb1e97ead807e228">ZeroCrossing</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00068">Vamp::HostExt::PluginWrapper::reset()</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#5d54c5bbd76bc27b7a243827148afeaa">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#cebd835e80e84669df078fbd7591d8f7">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#c41708397255400c6682fee6c1b3d45f">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#9b1075e992cd9599764ef3881fb91d1a">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#091ba21e1697ea4208f42e8295c389d9">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#9b5f5581691ff8f46bb7674d8d74395c">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#9ae6c4a31ea027dceb1e97ead807e228">ZeroCrossing</a>.</p>
 
 </div>
 </div><p>
@@ -395,7 +393,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual]</code></td>
+          <td> const<code> [pure virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -405,9 +403,9 @@
 Get the plugin's required input domain. 
 <p>
 If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#9c5239a4da67f1a426cd059e1a2856eb">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#376fa97a1c721255541fe35d71368976">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#fc07a389b5f922b944b0350fd232d2eb">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#4f6954267696ee5bfa7dd1c4a6cfa92a">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#0ec2cb74c1c5f6e57d0bd9dcf7c8f469">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#afe2ce6ebd353a14c40db7e8e60f4051">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#8e9d25673367c741631a60cbb36e91d2">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#47ff1ed72889f323da63f8abc9ea581a">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e203faf8384c9e1fddc381409aa8a214">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#fc07a389b5f922b944b0350fd232d2eb">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#055689c9b41b0945e8d3cdbc3b8c3a2e">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#4f6954267696ee5bfa7dd1c4a6cfa92a">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#e04e0e34847a93f3444d04c802ee56ef">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#0ec2cb74c1c5f6e57d0bd9dcf7c8f469">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#afe2ce6ebd353a14c40db7e8e60f4051">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00074">Vamp::HostExt::PluginWrapper::getInputDomain()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00283">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredBlockSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00271">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredStepSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00203">Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">Vamp::HostExt::PluginBufferingAdapter::Impl::initialise()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00355">Vamp::HostExt::PluginLoader::Impl::loadPlugin()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">Vamp::HostExt::PluginInputDomainAdapter::Impl::process()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -420,7 +418,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual]</code></td>
+          <td> const<code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -431,11 +429,11 @@
 <p>
 This should be called before <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>, and <a class="el" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#21e45180b19873f9ab69fe7a4e184a03">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classFixedTempoEstimator.html#68b8569b71504a0478caf990dbe30683">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00171">171</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00174">174</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00164">Vamp::HostExt::PluginWrapper::getPreferredBlockSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00283">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredBlockSize()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">Vamp::HostExt::PluginBufferingAdapter::Impl::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -448,7 +446,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual]</code></td>
+          <td> const<code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -459,11 +457,11 @@
 <p>
 This should be called before <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>, and <a class="el" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classFixedTempoEstimator.html#d450bb7e7df559ae3d68dfbfb085676f">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00186">186</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00189">189</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00158">Vamp::HostExt::PluginWrapper::getPreferredStepSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00271">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredStepSize()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">Vamp::HostExt::PluginBufferingAdapter::Impl::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -476,7 +474,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual]</code></td>
+          <td> const<code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -488,9 +486,9 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00191">191</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">194</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00170">Vamp::HostExt::PluginWrapper::getMinChannelCount()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00093">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00095">SpectralCentroid::initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">Vamp::HostExt::PluginChannelAdapter::Impl::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">SpectralCentroid::initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">PowerSpectrum::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">FixedTempoEstimator::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -503,7 +501,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual]</code></td>
+          <td> const<code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -515,9 +513,9 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00196">196</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">199</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00175">Vamp::HostExt::PluginWrapper::getMaxChannelCount()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00093">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00095">SpectralCentroid::initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">Vamp::HostExt::PluginChannelAdapter::Impl::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">ZeroCrossing::initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">SpectralCentroid::initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">PowerSpectrum::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">FixedTempoEstimator::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -530,7 +528,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual]</code></td>
+          <td> const<code> [pure virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -540,9 +538,9 @@
 Get the outputs of this plugin. 
 <p>
 An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> call. 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#e02670cca9d25cdc4100cbe7a12e3e68">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#85a027f5859efb31d315205e234e94c0">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#043e3c3db77d76267cd8069e1485bf26">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#a4537aa0eb58a67d6e824d46924cf782">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#894ca9740927102bb80b56b5e9e95877">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#c9d590a6feb1fc9a37d7892aefe2b688">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#f8cc914897a284433de220f1153f3845">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#9649a113da0252fe8bd9fc731b047ae0">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#5a9411305f713b4c9827844b89acd270">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#043e3c3db77d76267cd8069e1485bf26">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#83121c205a723fe6297e2bf8870622a4">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#a4537aa0eb58a67d6e824d46924cf782">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#6aac5f93e3a8c033026d739fed427242">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#894ca9740927102bb80b56b5e9e95877">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#c9d590a6feb1fc9a37d7892aefe2b688">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00619">Vamp::PluginAdapterBase::Impl::checkOutputMap()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00181">Vamp::HostExt::PluginWrapper::getOutputDescriptors()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00367">Vamp::HostExt::PluginBufferingAdapter::Impl::getOutputDescriptors()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -565,7 +563,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
+          <td></td><td></td><td><code> [pure virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -574,12 +572,12 @@
 <p>
 Process a single block of input data. 
 <p>
-If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp will be the real time in seconds of the start of the supplied block of samples.<p>
+If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.<p>
 If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
 Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#262206b978d9de28ee4bb35f437e915e">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#294e663b4d9ec885791faa1b440571ed">Vamp::HostExt::PluginChannelAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#48d0f95cac31ffd190cff89b50a2a5bd">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#ca96c70e7e75c9e4a7db38485018914c">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#55058a20c1f8bffc0dc927350df778a0">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#6ff37bf754ff8711dbcb2f020fa3902c">Vamp::HostExt::PluginChannelAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#3314b456a4780601c021dac25b478846">Vamp::HostExt::PluginSummarisingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#48d0f95cac31ffd190cff89b50a2a5bd">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#1cf76b0e55cf4ed3da095cffcdeaec3c">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#a5664ffc2b37a16db471fae791c1f55f">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#ca96c70e7e75c9e4a7db38485018914c">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00187">Vamp::HostExt::PluginWrapper::process()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">Vamp::HostExt::PluginInputDomainAdapter::Impl::process()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00177">Vamp::HostExt::PluginChannelAdapter::Impl::process()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00690">Vamp::PluginAdapterBase::Impl::process()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">Vamp::HostExt::PluginBufferingAdapter::Impl::processBlock()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -592,7 +590,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [pure virtual]</code></td>
+          <td><code> [pure virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -602,9 +600,9 @@
 After all blocks have been processed, calculate and return any remaining features derived from the complete input. 
 <p>
 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#d3f5f16a89a821da2ec1186fd2062e83">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#8771cba75552aaa1340b68de9bf1659c">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#368606f643b88e0df0823d85e36f030c">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#d3d6767ed137783e84f842b4d4732ffa">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#83ba39f0870a2f86837605a958dfab1a">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#70996d1b7166e303903daf92a9a37ad8">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#28423951b2eda1a1fc371485434f417b">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#984a4c11f3fbdcfd90e4837b1619a5ab">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#e9dcbd1ba8197ff90b4fc6bf7ade7688">Vamp::HostExt::PluginSummarisingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2bc8c0992e64f06991fb7cf89f99857e">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#368606f643b88e0df0823d85e36f030c">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#4965cf99be77fc4d1de51e11d83936b0">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#d3d6767ed137783e84f842b4d4732ffa">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#c8a9661a785d38f4c5ce8ca2d53e69f9">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#83ba39f0870a2f86837605a958dfab1a">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#70996d1b7166e303903daf92a9a37ad8">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00193">Vamp::HostExt::PluginWrapper::getRemainingFeatures()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00452">Vamp::HostExt::PluginBufferingAdapter::Impl::getRemainingFeatures()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00701">Vamp::PluginAdapterBase::Impl::getRemainingFeatures()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -617,7 +615,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual]</code></td>
+          <td> const<code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -629,7 +627,7 @@
 Do not reimplement this function in your subclass. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00391">391</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00425">425</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -642,21 +640,21 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the <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 compatibility level of the plugin. 
+Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. 
 <p>
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00067">67</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00072">72</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00080">Vamp::HostExt::PluginWrapper::getVampApiVersion()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
 
 </div>
 </div><p>
@@ -669,7 +667,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual, inherited]</code></td>
+          <td> const<code> [pure virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -681,9 +679,9 @@
 This should be reasonably short and contain no whitespace or punctuation characters. It may only contain the characters [a-zA-Z0-9_-]. This is the authoritative way for a program to identify a plugin within a given library.<p>
 This text may be visible to the user, but it should not be the main text used to identify a plugin to the user (that will be the name, below).<p>
 Example: "zero_crossings" 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#b27423a656f878d97d2ad2eba4e76c7a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#fe7576af95c8fcc7f5bad42eec9f9f29">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#267c83a7533146c127e2c3be310e0154">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#1b2c4c8440c024c4c635fcef5697949f">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#b27423a656f878d97d2ad2eba4e76c7a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#fe7576af95c8fcc7f5bad42eec9f9f29">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#b818edcf1555177d10260e197e3a5e7a">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#267c83a7533146c127e2c3be310e0154">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#9e9d8349461cbb88d7565a5e8c51b64e">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#1b2c4c8440c024c4c635fcef5697949f">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00086">Vamp::HostExt::PluginWrapper::getIdentifier()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -696,7 +694,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual, inherited]</code></td>
+          <td> const<code> [pure virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -707,9 +705,9 @@
 <p>
 This should be brief and self-contained, as it may be used to identify the plugin to the user in isolation (i.e. without also showing the plugin's "identifier").<p>
 Example: "Zero Crossings" 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#45f1d0377e233eeddd1b7cefb48be62a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#7cfed00bc9d96ba6c709b69ab6a40594">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#a98f1ad061a11af98c054011a8844e6f">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#b7e6a620fea568af431be3cfd9dd5a41">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#45f1d0377e233eeddd1b7cefb48be62a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#7cfed00bc9d96ba6c709b69ab6a40594">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#f9eb6fa8a98aa66b55e64e1795f9405f">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#a98f1ad061a11af98c054011a8844e6f">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#c9214f9cafeeed3fca549c90aef57623">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#b7e6a620fea568af431be3cfd9dd5a41">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00092">Vamp::HostExt::PluginWrapper::getName()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00577">printPluginCategoryList()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00778">printPluginCategoryList()</a>.</p>
 
 </div>
 </div><p>
@@ -722,7 +720,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual, inherited]</code></td>
+          <td> const<code> [pure virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -733,9 +731,9 @@
 <p>
 May be empty if the name has said it all already.<p>
 Example: "Detect and count zero crossing points" 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#5eaafcef030e81b90a3e77cf16cf8ae1">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#6f0f2fea1fdb4b51e688edfe859d5062">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#9061d189705802a48973a7ccab6360db">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#8fbb74a46283057d9a0b0e4718ee943c">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#710bb0b013157adaeef2a9e6867b4478">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#5eaafcef030e81b90a3e77cf16cf8ae1">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#6f0f2fea1fdb4b51e688edfe859d5062">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#06b00853f00c2e78d490697fcd7d1920">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#9061d189705802a48973a7ccab6360db">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#7b48d56dc954f3af344f7e4dcd8993e5">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#8fbb74a46283057d9a0b0e4718ee943c">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#710bb0b013157adaeef2a9e6867b4478">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00098">Vamp::HostExt::PluginWrapper::getDescription()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00577">printPluginCategoryList()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00778">printPluginCategoryList()</a>.</p>
 
 </div>
 </div><p>
@@ -748,7 +746,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual, inherited]</code></td>
+          <td> const<code> [pure virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -758,9 +756,9 @@
 Get the name of the author or vendor of the plugin in human-readable form. 
 <p>
 This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f572be0b175f5661559006a380a0f3db">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#44fc43838f203f58bc2ce6e3cb2b03dd">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#63d63f2cb7ea8d8b09d58cc13b541375">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f572be0b175f5661559006a380a0f3db">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#44fc43838f203f58bc2ce6e3cb2b03dd">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#e910d1b9250b11097fd6b51cd8285b68">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#63d63f2cb7ea8d8b09d58cc13b541375">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#9f3e3f759e2b67c771a41f1c276984b2">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00104">Vamp::HostExt::PluginWrapper::getMaker()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00577">printPluginCategoryList()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00778">printPluginCategoryList()</a>.</p>
 
 </div>
 </div><p>
@@ -773,7 +771,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual, inherited]</code></td>
+          <td> const<code> [pure virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -783,9 +781,9 @@
 Get the copyright statement or licensing summary for the plugin. 
 <p>
 This can be an informative text, without the same presentation constraints as mentioned for getMaker above. 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#c73c9d6baad04369beee695e99584815">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#0c197fc90f30d91cb4403115c83c9134">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#1a22ece271330c94cc08798a77416351">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#f9c41b92aa8ff8bddaebf75569ff789c">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#c73c9d6baad04369beee695e99584815">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#0c197fc90f30d91cb4403115c83c9134">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#50c6b64530c84c0707ba3936c5022a48">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#1a22ece271330c94cc08798a77416351">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#708b4d335c57643d5ef2b2e1caf43bd9">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#f9c41b92aa8ff8bddaebf75569ff789c">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00116">Vamp::HostExt::PluginWrapper::getCopyright()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
 
 </div>
 </div><p>
@@ -798,7 +796,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual, inherited]</code></td>
+          <td> const<code> [pure virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -808,9 +806,9 @@
 Get the version number of the plugin. 
 <p>
 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#6fbd94781867ca46a20368c2a3593c77">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#8a5d7a834eb996d517c51f84b2a72250">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#d6b818dbd81867ce7be71c99cae861be">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#f64622e66bf678ac2b0b58aa832ca2b3">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#6fbd94781867ca46a20368c2a3593c77">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#8a5d7a834eb996d517c51f84b2a72250">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#d002fddb3735c2dd7e31e6a9def9949f">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#d6b818dbd81867ce7be71c99cae861be">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#d23d27e4e82f10404a37b933f6a72c33">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#f64622e66bf678ac2b0b58aa832ca2b3">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00110">Vamp::HostExt::PluginWrapper::getPluginVersion()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
 
 </div>
 </div><p>
@@ -823,7 +821,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -833,11 +831,11 @@
 Get the controllable parameters of this plugin. 
 <p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#bfa93b20d9b5651a32042a9bb7c8df13">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">AmplitudeFollower</a>, and <a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#602faa0bfaae83e2ca53b36292271a76">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#e157465a4e07d180bab05b5c3a4d8987">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00200">200</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00208">208</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00122">Vamp::HostExt::PluginWrapper::getParameterDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
 
 </div>
 </div><p>
@@ -851,7 +849,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -861,11 +859,9 @@
 Get the value of a named parameter. 
 <p>
 The argument is the identifier field from that parameter's descriptor. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">AmplitudeFollower</a>, and <a class="el" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#2030b05fb1228b30ace16200780c9152">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00208">208</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00128">Vamp::HostExt::PluginWrapper::getParameter()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00216">216</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -888,7 +884,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [inline, virtual, inherited]</code></td>
+          <td></td><td></td><td><code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -898,11 +894,9 @@
 Set a named parameter. 
 <p>
 The first argument is the identifier field from that parameter's descriptor. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">AmplitudeFollower</a>, and <a class="el" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7a979b20c169d37adbd7b7d8b8a077b3">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#8a5a413025384cf451c64d2c2ce13a75">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00214">214</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00134">Vamp::HostExt::PluginWrapper::setParameter()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00222">222</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -915,7 +909,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -926,11 +920,9 @@
 <p>
 A program is a named shorthand for a set of parameter values; changing the program may cause the plugin to alter the values of its published parameters (and/or non-public internal processing parameters). The host should re-read the plugin's parameter values after setting a new program.<p>
 The programs must have unique names. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#7ac5681dcfe08b7b8a796bffc0aff3e3">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">Vamp::HostExt::PluginWrapper</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#e0cde5cd625418c1bc470b91f75daafc">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00229">229</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00140">Vamp::HostExt::PluginWrapper::getPrograms()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00237">237</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -943,7 +935,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -955,9 +947,7 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00234">234</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00146">Vamp::HostExt::PluginWrapper::getCurrentProgram()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00242">242</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -971,7 +961,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline, virtual, inherited]</code></td>
+          <td><code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -981,11 +971,9 @@
 Select a program. 
 <p>
 (If the given program name is not one of the available programs, do nothing.) 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00240">240</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00152">Vamp::HostExt::PluginWrapper::selectProgram()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00248">248</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -1003,17 +991,17 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00397">397</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">431</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00047">Vamp::HostExt::PluginRateExtractor::getRate()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00238">Vamp::HostExt::PluginBufferingAdapter::PluginBufferingAdapter()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00113">Vamp::HostExt::PluginInputDomainAdapter::PluginInputDomainAdapter()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
 
 </div>
 </div><p>
 <hr>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="Plugin_8h-source.html">Plugin.h</a></ul>
+<li><a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:09 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:20 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1PluginAdapter-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1PluginAdapter-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,15 +26,15 @@
 <div class="contents">
 <h1>Vamp::PluginAdapter&lt; P &gt; Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1PluginAdapter.html">Vamp::PluginAdapter&lt; P &gt;</a>, including all inherited members.<p><table>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapter.html#3f387e7e37409e00d32477903b5b13d3">createPlugin</a>(float inputSampleRate)</td><td><a class="el" href="classVamp_1_1PluginAdapter.html">Vamp::PluginAdapter&lt; P &gt;</a></td><td><code> [inline, protected, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase.html#7ff5c9374a8dc43f977c3707d1da45b5">getDescriptor</a>()</td><td><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase.html#d24595002512f9f00e8e45216d6f5dfb">getDescriptor</a>()</td><td><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">m_impl</a></td><td><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapter.html#16312efd629b7063d7b6d67889a2c15a">PluginAdapter</a>()</td><td><a class="el" href="classVamp_1_1PluginAdapter.html">Vamp::PluginAdapter&lt; P &gt;</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase.html#5dad6a9b4b170c0f284962e125ac988e">PluginAdapterBase</a>()</td><td><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapter.html#9612c9df7d4844959a36921d43d4bd50">~PluginAdapter</a>()</td><td><a class="el" href="classVamp_1_1PluginAdapter.html">Vamp::PluginAdapter&lt; P &gt;</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase.html#e39492abdca4b588a582962fdeab819d">~PluginAdapterBase</a>()</td><td><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase.html#aa8afd318b6c3da108e1cbcc7e46603d">~PluginAdapterBase</a>()</td><td><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td><td><code> [virtual]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:09 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1PluginAdapter.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1PluginAdapter.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -33,7 +33,7 @@
 <div class="dynsection">
 <p><center><img src="classVamp_1_1PluginAdapter__inherit__graph.png" border="0" usemap="#Vamp_1_1PluginAdapter_3_01P_01_4__inherit__map" alt="Inheritance graph"></center>
 <map name="Vamp_1_1PluginAdapter_3_01P_01_4__inherit__map">
-<area shape="rect" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library..." alt="" coords="7,7,180,31"></map>
+<area shape="rect" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library..." alt="" coords="7,5,180,32"></map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
 
 <p>
@@ -44,7 +44,7 @@
 <a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a> turns a <a class="el" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a> into a specific wrapper for a particular plugin implementation. 
 <p>
 See <a class="el" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a>. 
-<p>Definition at line <a class="el" href="PluginAdapter_8h-source.html#l00093">93</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
+<p>Definition at line <a class="el" href="PluginAdapter_8h-source.html#l00095">95</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
@@ -52,14 +52,14 @@
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapter.html#9612c9df7d4844959a36921d43d4bd50">~PluginAdapter</a> ()</td></tr>
 
-<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="classVamp_1_1PluginAdapterBase.html#7ff5c9374a8dc43f977c3707d1da45b5">getDescriptor</a> ()</td></tr>
+<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="classVamp_1_1PluginAdapterBase.html#d24595002512f9f00e8e45216d6f5dfb">getDescriptor</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter.  <a href="#7ff5c9374a8dc43f977c3707d1da45b5"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter.  <a href="#d24595002512f9f00e8e45216d6f5dfb"></a><br></td></tr>
 <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapter.html#3f387e7e37409e00d32477903b5b13d3">createPlugin</a> (float inputSampleRate)</td></tr>
 
 <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">m_impl</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">Impl *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">m_impl</a></td></tr>
 
 </table>
 <hr><h2>Constructor &amp; Destructor Documentation</h2>
@@ -74,7 +74,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline]</code></td>
+          <td><code> [inline]</code></td>
         </tr>
       </table>
 </div>
@@ -82,7 +82,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginAdapter_8h-source.html#l00096">96</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
+<p>Definition at line <a class="el" href="PluginAdapter_8h-source.html#l00098">98</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
 
 </div>
 </div><p>
@@ -97,7 +97,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline, virtual]</code></td>
+          <td><code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -105,7 +105,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginAdapter_8h-source.html#l00097">97</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
+<p>Definition at line <a class="el" href="PluginAdapter_8h-source.html#l00099">99</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
 
 </div>
 </div><p>
@@ -122,7 +122,7 @@
           <td class="paramtype">float&nbsp;</td>
           <td class="paramname"> <em>inputSampleRate</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline, protected, virtual]</code></td>
+          <td><code> [inline, protected, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -132,20 +132,20 @@
 
 <p>Implements <a class="el" href="classVamp_1_1PluginAdapterBase.html#9116adb9b7a426f4f0ded15e45a5531b">Vamp::PluginAdapterBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginAdapter_8h-source.html#l00100">100</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
+<p>Definition at line <a class="el" href="PluginAdapter_8h-source.html#l00102">102</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
 
 </div>
 </div><p>
-<a class="anchor" name="7ff5c9374a8dc43f977c3707d1da45b5"></a><!-- doxytag: member="Vamp::PluginAdapter::getDescriptor" ref="7ff5c9374a8dc43f977c3707d1da45b5" args="()" -->
+<a class="anchor" name="d24595002512f9f00e8e45216d6f5dfb"></a><!-- doxytag: member="Vamp::PluginAdapter::getDescriptor" ref="d24595002512f9f00e8e45216d6f5dfb" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> * Vamp::PluginAdapterBase::getDescriptor           </td>
+          <td class="memname">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a>* Vamp::PluginAdapterBase::getDescriptor           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inherited]</code></td>
+          <td><code> [inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -155,11 +155,7 @@
 Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter. 
 <p>
 
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00138">138</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginAdapter_8h-source.html#l00079">Vamp::PluginAdapterBase::m_impl</a>.</p>
-
-<p>Referenced by <a class="el" href="plugins_8cpp-source.html#l00050">vampGetPluginDescriptor()</a>.</p>
+<p>Referenced by <a class="el" href="plugins_8cpp-source.html#l00054">vampGetPluginDescriptor()</a>.</p>
 
 </div>
 </div><p>
@@ -169,7 +165,7 @@
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a>* <a class="el" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">Vamp::PluginAdapterBase::m_impl</a><code> [protected, inherited]</code>          </td>
+          <td class="memname">Impl* <a class="el" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">Vamp::PluginAdapterBase::m_impl</a><code> [protected, inherited]</code>          </td>
         </tr>
       </table>
 </div>
@@ -177,17 +173,15 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginAdapter_8h-source.html#l00079">79</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00138">Vamp::PluginAdapterBase::getDescriptor()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00127">Vamp::PluginAdapterBase::PluginAdapterBase()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00132">Vamp::PluginAdapterBase::~PluginAdapterBase()</a>.</p>
+<p>Definition at line <a class="el" href="PluginAdapter_8h-source.html#l00081">81</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
 
 </div>
 </div><p>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:09 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1PluginAdapterBase-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1PluginAdapterBase-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,13 +26,13 @@
 <div class="contents">
 <h1>Vamp::PluginAdapterBase Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a>, including all inherited members.<p><table>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase.html#9116adb9b7a426f4f0ded15e45a5531b">createPlugin</a>(float inputSampleRate)=0</td><td><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td><td><code> [protected, pure virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase.html#7ff5c9374a8dc43f977c3707d1da45b5">getDescriptor</a>()</td><td><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase.html#d24595002512f9f00e8e45216d6f5dfb">getDescriptor</a>()</td><td><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">m_impl</a></td><td><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase.html#5dad6a9b4b170c0f284962e125ac988e">PluginAdapterBase</a>()</td><td><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase.html#e39492abdca4b588a582962fdeab819d">~PluginAdapterBase</a>()</td><td><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase.html#aa8afd318b6c3da108e1cbcc7e46603d">~PluginAdapterBase</a>()</td><td><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a></td><td><code> [virtual]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:09 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:20 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1PluginAdapterBase.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1PluginAdapterBase.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -33,47 +33,44 @@
 <div class="dynsection">
 <p><center><img src="classVamp_1_1PluginAdapterBase__inherit__graph.png" border="0" usemap="#Vamp_1_1PluginAdapterBase__inherit__map" alt="Inheritance graph"></center>
 <map name="Vamp_1_1PluginAdapterBase__inherit__map">
-<area shape="rect" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular..." alt="" coords="5,81,181,105"></map>
+<area shape="rect" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular..." alt="" coords="5,80,181,107"></map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
 
 <p>
 <a href="classVamp_1_1PluginAdapterBase-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-<a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a> and <a class="el" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a> provide a wrapper class that a plugin library can use to make its C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> objects available through the <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> C API. 
+<a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a> and <a class="el" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a> provide a wrapper class that a plugin library can use to make its C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> objects available through the <a class="el" href="namespaceVamp.html">Vamp</a> C API. 
 <p>
-Almost all <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 libraries will want to make use of this. To do so, all they need to do is declare a PluginAdapter&lt;T&gt; for each plugin class T in their library. It's very simple, and you need to know absolutely nothing about how it works in order to use it. Just cut and paste from an existing plugin's discovery function. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="plugins_8cpp.html#bb0fd6db76ddd39698bc370e0fd0ea78" title="Get the descriptor for a given plugin index in this library.">vampGetPluginDescriptor</a> </dd></dl>
+Almost all <a class="el" href="namespaceVamp.html">Vamp</a> plugin libraries will want to make use of this. To do so, all they need to do is declare a PluginAdapter&lt;T&gt; for each plugin class T in their library. It's very simple, and you need to know absolutely nothing about how it works in order to use it. Just cut and paste from an existing plugin's discovery function. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="plugins_8cpp.html#bb0fd6db76ddd39698bc370e0fd0ea78" title="Get the descriptor for a given plugin index in this library.">vampGetPluginDescriptor</a> </dd></dl>
 
-<p>Definition at line <a class="el" href="PluginAdapter_8h-source.html#l00063">63</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
+<p>Definition at line <a class="el" href="PluginAdapter_8h-source.html#l00065">65</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase.html#e39492abdca4b588a582962fdeab819d">~PluginAdapterBase</a> ()</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase.html#aa8afd318b6c3da108e1cbcc7e46603d">~PluginAdapterBase</a> ()</td></tr>
 
-<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="classVamp_1_1PluginAdapterBase.html#7ff5c9374a8dc43f977c3707d1da45b5">getDescriptor</a> ()</td></tr>
+<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="classVamp_1_1PluginAdapterBase.html#d24595002512f9f00e8e45216d6f5dfb">getDescriptor</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter.  <a href="#7ff5c9374a8dc43f977c3707d1da45b5"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter.  <a href="#d24595002512f9f00e8e45216d6f5dfb"></a><br></td></tr>
 <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase.html#5dad6a9b4b170c0f284962e125ac988e">PluginAdapterBase</a> ()</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase.html#9116adb9b7a426f4f0ded15e45a5531b">createPlugin</a> (float inputSampleRate)=0</td></tr>
 
 <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">m_impl</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">Impl *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">m_impl</a></td></tr>
 
 </table>
 <hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" name="e39492abdca4b588a582962fdeab819d"></a><!-- doxytag: member="Vamp::PluginAdapterBase::~PluginAdapterBase" ref="e39492abdca4b588a582962fdeab819d" args="()" -->
+<a class="anchor" name="aa8afd318b6c3da108e1cbcc7e46603d"></a><!-- doxytag: member="Vamp::PluginAdapterBase::~PluginAdapterBase" ref="aa8afd318b6c3da108e1cbcc7e46603d" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">Vamp::PluginAdapterBase::~PluginAdapterBase           </td>
+          <td class="memname">virtual Vamp::PluginAdapterBase::~PluginAdapterBase           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -81,10 +78,6 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00132">132</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8h-source.html#l00079">m_impl</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="5dad6a9b4b170c0f284962e125ac988e"></a><!-- doxytag: member="Vamp::PluginAdapterBase::PluginAdapterBase" ref="5dad6a9b4b170c0f284962e125ac988e" args="()" -->
@@ -96,7 +89,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [protected]</code></td>
+          <td><code> [protected]</code></td>
         </tr>
       </table>
 </div>
@@ -104,23 +97,19 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00127">127</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8h-source.html#l00079">m_impl</a>.</p>
-
 </div>
 </div><p>
 <hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="7ff5c9374a8dc43f977c3707d1da45b5"></a><!-- doxytag: member="Vamp::PluginAdapterBase::getDescriptor" ref="7ff5c9374a8dc43f977c3707d1da45b5" args="()" -->
+<a class="anchor" name="d24595002512f9f00e8e45216d6f5dfb"></a><!-- doxytag: member="Vamp::PluginAdapterBase::getDescriptor" ref="d24595002512f9f00e8e45216d6f5dfb" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> * Vamp::PluginAdapterBase::getDescriptor           </td>
+          <td class="memname">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a>* Vamp::PluginAdapterBase::getDescriptor           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -130,11 +119,7 @@
 Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter. 
 <p>
 
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00138">138</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginAdapter_8h-source.html#l00079">m_impl</a>.</p>
-
-<p>Referenced by <a class="el" href="plugins_8cpp-source.html#l00050">vampGetPluginDescriptor()</a>.</p>
+<p>Referenced by <a class="el" href="plugins_8cpp-source.html#l00054">vampGetPluginDescriptor()</a>.</p>
 
 </div>
 </div><p>
@@ -148,7 +133,7 @@
           <td class="paramtype">float&nbsp;</td>
           <td class="paramname"> <em>inputSampleRate</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [protected, pure virtual]</code></td>
+          <td><code> [protected, pure virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -158,8 +143,6 @@
 
 <p>Implemented in <a class="el" href="classVamp_1_1PluginAdapter.html#3f387e7e37409e00d32477903b5b13d3">Vamp::PluginAdapter&lt; P &gt;</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00317">Vamp::PluginAdapterBase::Impl::vampInstantiate()</a>.</p>
-
 </div>
 </div><p>
 <hr><h2>Member Data Documentation</h2>
@@ -168,7 +151,7 @@
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a>* <a class="el" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">Vamp::PluginAdapterBase::m_impl</a><code> [protected]</code>          </td>
+          <td class="memname">Impl* <a class="el" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">Vamp::PluginAdapterBase::m_impl</a><code> [protected]</code>          </td>
         </tr>
       </table>
 </div>
@@ -176,17 +159,15 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginAdapter_8h-source.html#l00079">79</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00138">getDescriptor()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00127">PluginAdapterBase()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00132">~PluginAdapterBase()</a>.</p>
+<p>Definition at line <a class="el" href="PluginAdapter_8h-source.html#l00081">81</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
 
 </div>
 </div><p>
-<hr>The documentation for this class was generated from the following files:<ul>
-<li><a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a><li><a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a></ul>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:09 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:20 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1PluginAdapterBase_1_1Impl-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-<!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: Member List</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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::PluginAdapterBase::Impl Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#6c8f2c8fce370d586785353c939601d5">AdapterMap</a> typedef</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8274f19566392f843cbf5f745308fd2c">checkOutputMap</a>(Plugin *plugin)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b4199ab4a8ba40098aac387032c52aa4">cleanup</a>(Plugin *plugin)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#550b4522bfbf1ad23297be28c51a4d72">convertFeatures</a>(Plugin *plugin, const Plugin::FeatureSet &amp;features)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#31d6c53c6ef9851782674f3e14bf891d">getDescriptor</a>()</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#17af6e67c075bfb9b5069c51c7861e64">getOutputCount</a>(Plugin *plugin)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#088345ac72041e44e18b7bf5edd32f44">getOutputDescriptor</a>(Plugin *plugin, unsigned int i)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9fe7df06eb951c259763d56c49544676">getRemainingFeatures</a>(Plugin *plugin)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9b5cff59377109e63b3894920205be9a">Impl</a>(PluginAdapterBase *)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">lookupAdapter</a>(VampPluginHandle)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a></td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#c0372df58956b4bf99a9ec070b11dea4">m_base</a></td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a></td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a></td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">m_fsizes</a></td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#166ff8e5df4fcd27f74bc7179e14c33e">m_fvsizes</a></td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a></td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a></td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#93384198b121720dfa627dafe77839a6">m_populated</a></td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#79666690394693c9e293a4e74960b444">m_programs</a></td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#fd448b66d5973d8e14ec592dabcbbd2d">OutputMap</a> typedef</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0eca18a4ae046e4ac1ebd25bb3ac5a08">process</a>(Plugin *plugin, const float *const *inputBuffers, int sec, int nsec)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f5fcc5331f2dfa4c650eee636af72403">resizeFL</a>(Plugin *plugin, int n, size_t sz)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#429c029c0068230d1afa97426b04ce0d">resizeFS</a>(Plugin *plugin, int n)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9b0791b97e91f8b8c3d18f3ed3bed861">resizeFV</a>(Plugin *plugin, int n, int j, size_t sz)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#198dddb40f4fedc71f8ec45088d22d93">vampCleanup</a>(VampPluginHandle handle)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#62824538d09f38a060bcc593f79ca8a1">vampGetCurrentProgram</a>(VampPluginHandle handle)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#16bfdb3fc7b683a170b01bf92a49dee2">vampGetMaxChannelCount</a>(VampPluginHandle handle)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9825e946f36f8838ec3d4cb838c00220">vampGetMinChannelCount</a>(VampPluginHandle handle)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#debb9f604929cde924e783997e9efda3">vampGetOutputCount</a>(VampPluginHandle handle)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#5118f9af094598b9f8c8a295a5e2290c">vampGetOutputDescriptor</a>(VampPluginHandle handle, unsigned int i)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#e3791f409c626f856133d1ed473dbcdd">vampGetParameter</a>(VampPluginHandle handle, int param)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#46d39ad29bb4c689e21379e1eb387ace">vampGetPreferredBlockSize</a>(VampPluginHandle handle)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a6e7c06690fed8d7af284be34a590b4b">vampGetPreferredStepSize</a>(VampPluginHandle handle)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f6af04fcb927463cfe1f85e936935767">vampGetRemainingFeatures</a>(VampPluginHandle handle)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#210cd61fc3fd8f66eda087a6d726cd2b">vampInitialise</a>(VampPluginHandle handle, unsigned int channels, unsigned int stepSize, unsigned int blockSize)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8cf9e01074559a6b23064d920629dd55">vampInstantiate</a>(const VampPluginDescriptor *desc, float inputSampleRate)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#bc8f37b80648a0a7108a6e0ebaf45525">vampProcess</a>(VampPluginHandle handle, const float *const *inputBuffers, int sec, int nsec)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b0bc48dbdb1396410690d1b190522a95">vampReleaseFeatureSet</a>(VampFeatureList *fs)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#ff063ab7b4dfb0d13883e7ce19cf93a3">vampReleaseOutputDescriptor</a>(VampOutputDescriptor *desc)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9dc6a2cc51118525c50583e2f7ac339a">vampReset</a>(VampPluginHandle handle)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#124b1ee65cbb733004ae96f4fa001246">vampSelectProgram</a>(VampPluginHandle handle, unsigned int program)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#96a4f1c8359479d41e9b9c3438b561a6">vampSetParameter</a>(VampPluginHandle handle, int param, float value)</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td><code> [protected, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#75b00d5c8012db240fc410d18fd1235a">~Impl</a>()</td><td><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a></td><td></td></tr>
-</table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:09 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1PluginAdapterBase_1_1Impl.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1359 +0,0 @@
-<!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::PluginAdapterBase::Impl Class 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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-  <div class="navpath"><a class="el" href="namespaceVamp.html">Vamp</a>::<a class="el" href="classVamp_1_1PluginAdapterBase.html">PluginAdapterBase</a>::<a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a>
-  </div>
-</div>
-<div class="contents">
-<h1>Vamp::PluginAdapterBase::Impl Class Reference</h1><!-- doxytag: class="Vamp::PluginAdapterBase::Impl" -->
-<p>
-<a href="classVamp_1_1PluginAdapterBase_1_1Impl-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00046">46</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9b5cff59377109e63b3894920205be9a">Impl</a> (<a class="el" href="classVamp_1_1PluginAdapterBase.html">PluginAdapterBase</a> *)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#75b00d5c8012db240fc410d18fd1235a">~Impl</a> ()</td></tr>
-
-<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="classVamp_1_1PluginAdapterBase_1_1Impl.html#31d6c53c6ef9851782674f3e14bf891d">getDescriptor</a> ()</td></tr>
-
-<tr><td colspan="2"><br><h2>Protected Types</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; const void <br>
-*, <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#6c8f2c8fce370d586785353c939601d5">AdapterMap</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; <a class="el" href="classVamp_1_1Plugin.html">Plugin</a> <br>
-*, <a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Plugin::OutputList</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#fd448b66d5973d8e14ec592dabcbbd2d">OutputMap</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b4199ab4a8ba40098aac387032c52aa4">cleanup</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8274f19566392f843cbf5f745308fd2c">checkOutputMap</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#17af6e67c075bfb9b5069c51c7861e64">getOutputCount</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#088345ac72041e44e18b7bf5edd32f44">getOutputDescriptor</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin, unsigned int i)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0eca18a4ae046e4ac1ebd25bb3ac5a08">process</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin, const float *const *inputBuffers, int sec, int nsec)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9fe7df06eb951c259763d56c49544676">getRemainingFeatures</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#550b4522bfbf1ad23297be28c51a4d72">convertFeatures</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin, const <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a> &amp;features)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#429c029c0068230d1afa97426b04ce0d">resizeFS</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin, int n)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f5fcc5331f2dfa4c650eee636af72403">resizeFL</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin, int n, size_t sz)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9b0791b97e91f8b8c3d18f3ed3bed861">resizeFV</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin, int n, int j, size_t sz)</td></tr>
-
-<tr><td colspan="2"><br><h2>Static Protected Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8cf9e01074559a6b23064d920629dd55">vampInstantiate</a> (const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *desc, float inputSampleRate)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#198dddb40f4fedc71f8ec45088d22d93">vampCleanup</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#210cd61fc3fd8f66eda087a6d726cd2b">vampInitialise</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle, unsigned int channels, unsigned int stepSize, unsigned int blockSize)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9dc6a2cc51118525c50583e2f7ac339a">vampReset</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#e3791f409c626f856133d1ed473dbcdd">vampGetParameter</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle, int param)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#96a4f1c8359479d41e9b9c3438b561a6">vampSetParameter</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle, int param, float value)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#62824538d09f38a060bcc593f79ca8a1">vampGetCurrentProgram</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#124b1ee65cbb733004ae96f4fa001246">vampSelectProgram</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle, unsigned int program)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a6e7c06690fed8d7af284be34a590b4b">vampGetPreferredStepSize</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#46d39ad29bb4c689e21379e1eb387ace">vampGetPreferredBlockSize</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9825e946f36f8838ec3d4cb838c00220">vampGetMinChannelCount</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#16bfdb3fc7b683a170b01bf92a49dee2">vampGetMaxChannelCount</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#debb9f604929cde924e783997e9efda3">vampGetOutputCount</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#5118f9af094598b9f8c8a295a5e2290c">vampGetOutputDescriptor</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle, unsigned int i)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#ff063ab7b4dfb0d13883e7ce19cf93a3">vampReleaseOutputDescriptor</a> (<a class="el" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *desc)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#bc8f37b80648a0a7108a6e0ebaf45525">vampProcess</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle, const float *const *inputBuffers, int sec, int nsec)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f6af04fcb927463cfe1f85e936935767">vampGetRemainingFeatures</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> handle)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b0bc48dbdb1396410690d1b190522a95">vampReleaseFeatureSet</a> (<a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> *fs)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">lookupAdapter</a> (<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)</td></tr>
-
-<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginAdapterBase.html">PluginAdapterBase</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#c0372df58956b4bf99a9ec070b11dea4">m_base</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#93384198b121720dfa627dafe77839a6">m_populated</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">m_descriptor</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">Plugin::ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">m_parameters</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">Plugin::ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#79666690394693c9e293a4e74960b444">m_programs</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#fd448b66d5973d8e14ec592dabcbbd2d">OutputMap</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">m_pluginOutputs</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::map&lt; <a class="el" href="classVamp_1_1Plugin.html">Plugin</a> <br>
-*, <a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">m_fs</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::map&lt; <a class="el" href="classVamp_1_1Plugin.html">Plugin</a> <br>
-*, std::vector&lt; size_t &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">m_fsizes</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::map&lt; <a class="el" href="classVamp_1_1Plugin.html">Plugin</a> <br>
-*, std::vector&lt; std::vector<br>
-&lt; size_t &gt; &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#166ff8e5df4fcd27f74bc7179e14c33e">m_fvsizes</a></td></tr>
-
-<tr><td colspan="2"><br><h2>Static Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#6c8f2c8fce370d586785353c939601d5">AdapterMap</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">m_adapterMap</a> = 0</td></tr>
-
-</table>
-<hr><h2>Member Typedef Documentation</h2>
-<a class="anchor" name="6c8f2c8fce370d586785353c939601d5"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::AdapterMap" ref="6c8f2c8fce370d586785353c939601d5" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef std::map&lt;const void *, <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Impl</a> *&gt; <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#6c8f2c8fce370d586785353c939601d5">Vamp::PluginAdapterBase::Impl::AdapterMap</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00107">107</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="fd448b66d5973d8e14ec592dabcbbd2d"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::OutputMap" ref="fd448b66d5973d8e14ec592dabcbbd2d" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">typedef std::map&lt;<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *, <a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Plugin::OutputList</a> *&gt; <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#fd448b66d5973d8e14ec592dabcbbd2d">Vamp::PluginAdapterBase::Impl::OutputMap</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00116">116</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" name="9b5cff59377109e63b3894920205be9a"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::Impl" ref="9b5cff59377109e63b3894920205be9a" args="(PluginAdapterBase *)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::PluginAdapterBase::Impl::Impl           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1PluginAdapterBase.html">PluginAdapterBase</a> *&nbsp;</td>
-          <td class="paramname"> <em>base</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00143">143</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="75b00d5c8012db240fc410d18fd1235a"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::~Impl" ref="75b00d5c8012db240fc410d18fd1235a" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Vamp::PluginAdapterBase::Impl::~Impl           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00258">258</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="vamp_8h-source.html#l00227">_VampPluginDescriptor::copyright</a>, <a class="el" href="vamp_8h-source.html#l00080">_VampParameterDescriptor::description</a>, <a class="el" href="vamp_8h-source.html#l00218">_VampPluginDescriptor::description</a>, <a class="el" href="vamp_8h-source.html#l00074">_VampParameterDescriptor::identifier</a>, <a class="el" href="vamp_8h-source.html#l00212">_VampPluginDescriptor::identifier</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00108">m_adapterMap</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00112">m_descriptor</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00111">m_populated</a>, <a class="el" href="vamp_8h-source.html#l00221">_VampPluginDescriptor::maker</a>, <a class="el" href="vamp_8h-source.html#l00077">_VampParameterDescriptor::name</a>, <a class="el" href="vamp_8h-source.html#l00215">_VampPluginDescriptor::name</a>, <a class="el" href="vamp_8h-source.html#l00230">_VampPluginDescriptor::parameterCount</a>, <a class="el" href="vamp_8h-source.html#l00233">_VampPluginDescriptor::parameters</a>, <a class="el" href="vamp_8h-source.html#l00236">_VampPluginDescriptor::programCount</a>, <a class="el" href="vamp_8h-source.html#l00239">_VampPluginDescriptor::programs</a>, <a class="el" href="vamp_8h-source.html#l00083">_VampParameterDescriptor::unit</a>, and <a class="el" href="vamp_8h-source.html#l00101">_VampParameterDescriptor::valueNames</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="31d6c53c6ef9851782674f3e14bf891d"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::getDescriptor" ref="31d6c53c6ef9851782674f3e14bf891d" args="()" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> * Vamp::PluginAdapterBase::Impl::getDescriptor           </td>
-          <td>(</td>
-          <td class="paramname">          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00153">153</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="struct__VampPluginDescriptor.html#0e4522c33e59c3c518b9262f2477bc27">_VampPluginDescriptor::cleanup</a>, <a class="el" href="vamp_8h-source.html#l00227">_VampPluginDescriptor::copyright</a>, <a class="el" href="classVamp_1_1PluginAdapterBase.html#9116adb9b7a426f4f0ded15e45a5531b">Vamp::PluginAdapterBase::createPlugin()</a>, <a class="el" href="vamp_8h-source.html#l00092">_VampParameterDescriptor::defaultValue</a>, <a class="el" href="vamp_8h-source.html#l00080">_VampParameterDescriptor::description</a>, <a class="el" href="vamp_8h-source.html#l00218">_VampPluginDescriptor::description</a>, <a class="el" href="Plugin_8h-source.html#l00149">Vamp::Plugin::FrequencyDomain</a>, <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase::getCopyright()</a>, <a class="el" href="struct__VampPluginDescriptor.html#861a77525a95d424cb846820b018af53">_VampPluginDescriptor::getCurrentProgram</a>, <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase::getDescription()</a>, <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase::getIdentifier()</a>, <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin::getInputDomain()</a>, <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase::getMaker()</a>, <a class="el" href="struct__VampPluginDescriptor.html#d1600203418d9646332f5b917284261b">_VampPluginDescriptor::getMaxChannelCount</a>, <a class="el" href="struct__VampPluginDescriptor.html#f175ca17716db5a7545b61b01caabd92">_VampPluginDescriptor::getMinChannelCount</a>, <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase::getName()</a>, <a class="el" href="struct__VampPluginDescriptor.html#a8fc88da704e24b2b5f674821dd380c1">_VampPluginDescriptor::getOutputCount</a>, <a class="el" href="struct__VampPluginDescriptor.html#92c58b8ff99ad0c23a42333aa55c144d">_VampPluginDescriptor::getOutputDescriptor</a>, <a class="el" href="struct__VampPluginDescriptor.html#07174981875b55ee2ec7521a7f4fc395">_VampPluginDescriptor::getParameter</a>, <a class="el" href="PluginBase_8h-source.html#l00200">Vamp::PluginBase::getParameterDescriptors()</a>, <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase::getPluginVersion()</a>, <a class="el" href="struct__VampPluginDescriptor.html#c626e42554ab1532c8d8b5132a0faee8">_VampPluginDescriptor::getPreferredBlockSize</a>, <a class="el" href="struct__VampPluginDescriptor.html#2beddf2ce156c05dd24477ac663adcbb">_VampPluginDescriptor::getPreferredStepSize</a>, <a class="el" href="PluginBase_8h-source.html#l00229">Vamp::PluginBase::getPrograms()</a>, <a class="el" href="struct__VampPluginDescriptor.html#d22c666188aadab83c354a0edb18fcf0">_VampPluginDescriptor::getRemainingFeatures</a>, <a class="el" href="PluginBase_8h-source.html#l00067">Vamp::PluginBase::getVampApiVersion()</a>, <a class="el" href="vamp_8h-source.html#l00074">_VampParameterDescriptor::identifier</a>, <a class="el" href="vamp_8h-source.html#l00212">_VampPluginDescriptor::identifier</a>, <a class="el" href="struct__VampPluginDescriptor.html#d0978f17a5e568079470a1978a9aad22">_VampPluginDescriptor::initialise</a>, <a class="el" href="vamp_8h-source.html#l00242">_VampPluginDescriptor::inputDomain</a>, <a class="el" href="struct__VampPluginDescriptor.html#19c4ce36fdeb88eeedb539efc544b8ee">_VampPluginDescriptor::instantiate</a>, <a class="el" href="vamp_8h-source.html#l00095">_VampParameterDescriptor::isQuantized</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00108">m_adapterMap</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00055">m_base</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00112">m_descriptor</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00113">m_parameters</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00111">m_populated</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00114">m_programs</a>, <a class="el" href="vamp_8h-source.html#l00221">_VampPluginDescriptor::maker</a>, <a class="el" href="vamp_8h-source.html#l00089">_VampParameterDescriptor::maxValue</a>, <a class="el" href="vamp_8h-source.html#l00086">_VampParameterDescriptor::minValue</a>, <a class="el" href="vamp_8h-source.html#l00077">_VampParameterDescriptor::name</a>, <a class="el" href="vamp_8h-source.html#l00215">_VampPluginDescriptor::name</a>, <a class="el" href="vamp_8h-source.html#l00230">_VampPluginDescriptor::parameterCount</a>, <a class="el" href="vamp_8h-source.html#l00233">_VampPluginDescriptor::parameters</a>, <a class="el" href="vamp_8h-source.html#l00224">_VampPluginDescriptor::pluginVersion</a>, <a class="el" href="struct__VampPluginDescriptor.html#c5a0a75b6e68b22fed536765d1f2f254">_VampPluginDescriptor::process</a>, <a class="el" href="vamp_8h-source.html#l00236">_VampPluginDescriptor::programCount</a>, <a class="el" href="vamp_8h-source.html#l00239">_VampPluginDescriptor::programs</a>, <a class="el" href="vamp_8h-source.html#l00098">_VampParameterDescriptor::quantizeStep</a>, <a class="el" href="struct__VampPluginDescriptor.html#c4bafe8ad2734d21a433d745b18e7d63">_VampPluginDescriptor::releaseFeatureSet</a>, <a class="el" href="struct__VampPluginDescriptor.html#8cc38edc921616e67e551aa03397ec79">_VampPluginDescriptor::releaseOutputDescriptor</a>, <a class="el" href="struct__VampPluginDescriptor.html#12267f6b506aeda3792ff7c982b02336">_VampPluginDescriptor::reset</a>, <a class="el" href="struct__VampPluginDescriptor.html#d9af40cb165ca187e49250964af5f5cf">_VampPluginDescriptor::selectProgram</a>, <a class="el" href="struct__VampPluginDescriptor.html#ad3cfc7a3b432df40bd9db13eee6a481">_VampPluginDescriptor::setParameter</a>, <a class="el" href="vamp_8h-source.html#l00083">_VampParameterDescriptor::unit</a>, <a class="el" href="vamp_8h-source.html#l00101">_VampParameterDescriptor::valueNames</a>, <a class="el" href="vamp_8h-source.html#l00053">VAMP_API_VERSION</a>, <a class="el" href="vamp_8h-source.html#l00209">_VampPluginDescriptor::vampApiVersion</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00349">vampCleanup()</a>, <a class="el" href="vamp_8h-source.html#l00200">vampFrequencyDomain</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00417">vampGetCurrentProgram()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00478">vampGetMaxChannelCount()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00468">vampGetMinChannelCount()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00488">vampGetOutputCount()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00503">vampGetOutputDescriptor()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00389">vampGetParameter()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00458">vampGetPreferredBlockSize()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00448">vampGetPreferredStepSize()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00557">vampGetRemainingFeatures()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00364">vampInitialise()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00317">vampInstantiate()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00541">vampProcess()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00569">vampReleaseFeatureSet()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00519">vampReleaseOutputDescriptor()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00379">vampReset()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00434">vampSelectProgram()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00403">vampSetParameter()</a>, and <a class="el" href="vamp_8h-source.html#l00199">vampTimeDomain</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00138">Vamp::PluginAdapterBase::getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="8cf9e01074559a6b23064d920629dd55"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampInstantiate" ref="8cf9e01074559a6b23064d920629dd55" args="(const VampPluginDescriptor *desc, float inputSampleRate)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> Vamp::PluginAdapterBase::Impl::vampInstantiate           </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *&nbsp;</td>
-          <td class="paramname"> <em>desc</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">float&nbsp;</td>
-          <td class="paramname"> <em>inputSampleRate</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00317">317</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1PluginAdapterBase.html#9116adb9b7a426f4f0ded15e45a5531b">Vamp::PluginAdapterBase::createPlugin()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00108">m_adapterMap</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00055">m_base</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00112">m_descriptor</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="198dddb40f4fedc71f8ec45088d22d93"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampCleanup" ref="198dddb40f4fedc71f8ec45088d22d93" args="(VampPluginHandle handle)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::PluginAdapterBase::Impl::vampCleanup           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00349">349</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00577">cleanup()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00304">lookupAdapter()</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="210cd61fc3fd8f66eda087a6d726cd2b"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampInitialise" ref="210cd61fc3fd8f66eda087a6d726cd2b" args="(VampPluginHandle handle, unsigned int channels, unsigned int stepSize, unsigned int blockSize)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">int Vamp::PluginAdapterBase::Impl::vampInitialise           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">unsigned int&nbsp;</td>
-          <td class="paramname"> <em>channels</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">unsigned int&nbsp;</td>
-          <td class="paramname"> <em>stepSize</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">unsigned int&nbsp;</td>
-          <td class="paramname"> <em>blockSize</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00364">364</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="9dc6a2cc51118525c50583e2f7ac339a"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampReset" ref="9dc6a2cc51118525c50583e2f7ac339a" args="(VampPluginHandle handle)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::PluginAdapterBase::Impl::vampReset           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00379">379</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="e3791f409c626f856133d1ed473dbcdd"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampGetParameter" ref="e3791f409c626f856133d1ed473dbcdd" args="(VampPluginHandle handle, int param)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">float Vamp::PluginAdapterBase::Impl::vampGetParameter           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>param</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00389">389</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00304">lookupAdapter()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00113">m_parameters</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="96a4f1c8359479d41e9b9c3438b561a6"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampSetParameter" ref="96a4f1c8359479d41e9b9c3438b561a6" args="(VampPluginHandle handle, int param, float value)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::PluginAdapterBase::Impl::vampSetParameter           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>param</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">float&nbsp;</td>
-          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00403">403</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00304">lookupAdapter()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00113">m_parameters</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="62824538d09f38a060bcc593f79ca8a1"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampGetCurrentProgram" ref="62824538d09f38a060bcc593f79ca8a1" args="(VampPluginHandle handle)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">unsigned int Vamp::PluginAdapterBase::Impl::vampGetCurrentProgram           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00417">417</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00304">lookupAdapter()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00114">m_programs</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="124b1ee65cbb733004ae96f4fa001246"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampSelectProgram" ref="124b1ee65cbb733004ae96f4fa001246" args="(VampPluginHandle handle, unsigned int program)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::PluginAdapterBase::Impl::vampSelectProgram           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">unsigned int&nbsp;</td>
-          <td class="paramname"> <em>program</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00434">434</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00304">lookupAdapter()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00114">m_programs</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="a6e7c06690fed8d7af284be34a590b4b"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampGetPreferredStepSize" ref="a6e7c06690fed8d7af284be34a590b4b" args="(VampPluginHandle handle)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">unsigned int Vamp::PluginAdapterBase::Impl::vampGetPreferredStepSize           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00448">448</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="46d39ad29bb4c689e21379e1eb387ace"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampGetPreferredBlockSize" ref="46d39ad29bb4c689e21379e1eb387ace" args="(VampPluginHandle handle)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">unsigned int Vamp::PluginAdapterBase::Impl::vampGetPreferredBlockSize           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00458">458</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="9825e946f36f8838ec3d4cb838c00220"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampGetMinChannelCount" ref="9825e946f36f8838ec3d4cb838c00220" args="(VampPluginHandle handle)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">unsigned int Vamp::PluginAdapterBase::Impl::vampGetMinChannelCount           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00468">468</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="16bfdb3fc7b683a170b01bf92a49dee2"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampGetMaxChannelCount" ref="16bfdb3fc7b683a170b01bf92a49dee2" args="(VampPluginHandle handle)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">unsigned int Vamp::PluginAdapterBase::Impl::vampGetMaxChannelCount           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00478">478</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="debb9f604929cde924e783997e9efda3"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampGetOutputCount" ref="debb9f604929cde924e783997e9efda3" args="(VampPluginHandle handle)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">unsigned int Vamp::PluginAdapterBase::Impl::vampGetOutputCount           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00488">488</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00630">getOutputCount()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00304">lookupAdapter()</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="5118f9af094598b9f8c8a295a5e2290c"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampGetOutputDescriptor" ref="5118f9af094598b9f8c8a295a5e2290c" args="(VampPluginHandle handle, unsigned int i)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> * Vamp::PluginAdapterBase::Impl::vampGetOutputDescriptor           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">unsigned int&nbsp;</td>
-          <td class="paramname"> <em>i</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00503">503</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00637">getOutputDescriptor()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00304">lookupAdapter()</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="ff063ab7b4dfb0d13883e7ce19cf93a3"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampReleaseOutputDescriptor" ref="ff063ab7b4dfb0d13883e7ce19cf93a3" args="(VampOutputDescriptor *desc)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::PluginAdapterBase::Impl::vampReleaseOutputDescriptor           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *&nbsp;</td>
-          <td class="paramname"> <em>desc</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00519">519</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="vamp_8h-source.html#l00136">_VampOutputDescriptor::binCount</a>, <a class="el" href="vamp_8h-source.html#l00139">_VampOutputDescriptor::binNames</a>, <a class="el" href="vamp_8h-source.html#l00127">_VampOutputDescriptor::description</a>, <a class="el" href="vamp_8h-source.html#l00133">_VampOutputDescriptor::hasFixedBinCount</a>, <a class="el" href="vamp_8h-source.html#l00121">_VampOutputDescriptor::identifier</a>, <a class="el" href="vamp_8h-source.html#l00124">_VampOutputDescriptor::name</a>, and <a class="el" href="vamp_8h-source.html#l00130">_VampOutputDescriptor::unit</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="bc8f37b80648a0a7108a6e0ebaf45525"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampProcess" ref="bc8f37b80648a0a7108a6e0ebaf45525" args="(VampPluginHandle handle, const float *const *inputBuffers, int sec, int nsec)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> * Vamp::PluginAdapterBase::Impl::vampProcess           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const float *const *&nbsp;</td>
-          <td class="paramname"> <em>inputBuffers</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>sec</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>nsec</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00541">541</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00304">lookupAdapter()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00690">process()</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="f6af04fcb927463cfe1f85e936935767"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampGetRemainingFeatures" ref="f6af04fcb927463cfe1f85e936935767" args="(VampPluginHandle handle)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> * Vamp::PluginAdapterBase::Impl::vampGetRemainingFeatures           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00557">557</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00701">getRemainingFeatures()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00304">lookupAdapter()</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="b0bc48dbdb1396410690d1b190522a95"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::vampReleaseFeatureSet" ref="b0bc48dbdb1396410690d1b190522a95" args="(VampFeatureList *fs)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::PluginAdapterBase::Impl::vampReleaseFeatureSet           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> *&nbsp;</td>
-          <td class="paramname"> <em>fs</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00569">569</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="b4199ab4a8ba40098aac387032c52aa4"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::cleanup" ref="b4199ab4a8ba40098aac387032c52aa4" args="(Plugin *plugin)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::PluginAdapterBase::Impl::cleanup           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
-          <td class="paramname"> <em>plugin</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00577">577</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00108">m_adapterMap</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00119">m_fs</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00120">m_fsizes</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00121">m_fvsizes</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00117">m_pluginOutputs</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00349">vampCleanup()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="8274f19566392f843cbf5f745308fd2c"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::checkOutputMap" ref="8274f19566392f843cbf5f745308fd2c" args="(Plugin *plugin)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::PluginAdapterBase::Impl::checkOutputMap           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
-          <td class="paramname"> <em>plugin</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00619">619</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin::getOutputDescriptors()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00117">m_pluginOutputs</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00630">getOutputCount()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00637">getOutputDescriptor()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00701">getRemainingFeatures()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00690">process()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="17af6e67c075bfb9b5069c51c7861e64"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::getOutputCount" ref="17af6e67c075bfb9b5069c51c7861e64" args="(Plugin *plugin)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">unsigned int Vamp::PluginAdapterBase::Impl::getOutputCount           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
-          <td class="paramname"> <em>plugin</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00630">630</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00619">checkOutputMap()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00117">m_pluginOutputs</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00488">vampGetOutputCount()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="088345ac72041e44e18b7bf5edd32f44"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::getOutputDescriptor" ref="088345ac72041e44e18b7bf5edd32f44" args="(Plugin *plugin, unsigned int i)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> * Vamp::PluginAdapterBase::Impl::getOutputDescriptor           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
-          <td class="paramname"> <em>plugin</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">unsigned int&nbsp;</td>
-          <td class="paramname"> <em>i</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00637">637</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00239">Vamp::Plugin::OutputDescriptor::binCount</a>, <a class="el" href="vamp_8h-source.html#l00136">_VampOutputDescriptor::binCount</a>, <a class="el" href="Plugin_8h-source.html#l00245">Vamp::Plugin::OutputDescriptor::binNames</a>, <a class="el" href="vamp_8h-source.html#l00139">_VampOutputDescriptor::binNames</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00619">checkOutputMap()</a>, <a class="el" href="Plugin_8h-source.html#l00219">Vamp::Plugin::OutputDescriptor::description</a>, <a class="el" href="vamp_8h-source.html#l00127">_VampOutputDescriptor::description</a>, <a class="el" href="Plugin_8h-source.html#l00285">Vamp::Plugin::OutputDescriptor::FixedSampleRate</a>, <a class="el" href="Plugin_8h-source.html#l00231">Vamp::Plugin::OutputDescriptor::hasFixedBinCount</a>, <a class="el" href="vamp_8h-source.html#l00133">_VampOutputDescriptor::hasFixedBinCount</a>, <a class="el" href="Plugin_8h-source.html#l00252">Vamp::Plugin::OutputDescriptor::hasKnownExtents</a>, <a class="el" href="vamp_8h-source.html#l00142">_VampOutputDescriptor::hasKnownExtents</a>, <a class="el" href="Plugin_8h-source.html#l00206">Vamp::Plugin::OutputDescriptor::identifier</a>, <a class="el" href="vamp_8h-source.html#l00121">_VampOutputDescriptor::identifier</a>, <a class="el" href="Plugin_8h-source.html#l00270">Vamp::Plugin::OutputDescriptor::isQuantized</a>, <a class="el" href="vamp_8h-source.html#l00151">_VampOutputDescriptor::isQuantized</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00117">m_pluginOutputs</a>, <a class="el" href="Plugin_8h-source.html#l00264">Vamp::Plugin::OutputDescriptor::maxValue</a>, <a class="el" href="vamp_8h-source.html#l00148">_VampOutputDescriptor::maxValue</a>, <a class="el" href="Plugin_8h-source.html#l00258">Vamp::Plugin::OutputDescriptor::minValue</a>, <a class="el" href="vamp_8h-source.html#l00145">_VampOutputDescriptor::minValue</a>, <a class="el" href="Plugin_8h-source.html#l00212">Vamp::Plugin::OutputDescriptor::name</a>, <a class="el" href="vamp_8h-source.html#l00124">_VampOutputDescriptor::name</a>, <a class="el" href="Plugin_8h-source.html#l00282">Vamp::Plugin::OutputDescriptor::OneSamplePerStep</a>, <a class="el" href="Plugin_8h-source.html#l00277">Vamp::Plugin::OutputDescriptor::quantizeStep</a>, <a class="el" href="vamp_8h-source.html#l00154">_VampOutputDescriptor::quantizeStep</a>, <a class="el" href="Plugin_8h-source.html#l00306">Vamp::Plugin::OutputDescriptor::sampleRate</a>, <a class="el" href="vamp_8h-source.html#l00161">_VampOutputDescriptor::sampleRate</a>, <a class="el" href="vamp_8h-source.html#l00157">_VampOutputDescriptor::sampleType</a>, <a class="el" href="Plugin_8h-source.html#l00294">Vamp::Plugin::OutputDescriptor::sampleType</a>, <a class="el" href="Plugin_8h-source.html#l00224">Vamp::Plugin::OutputDescriptor::unit</a>, <a class="el" href="vamp_8h-source.html#l00130">_VampOutputDescriptor::unit</a>, <a class="el" href="vamp_8h-source.html#l00111">vampFixedSampleRate</a>, <a class="el" href="vamp_8h-source.html#l00108">vampOneSamplePerStep</a>, <a class="el" href="vamp_8h-source.html#l00114">vampVariableSampleRate</a>, and <a class="el" href="Plugin_8h-source.html#l00288">Vamp::Plugin::OutputDescriptor::VariableSampleRate</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00503">vampGetOutputDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="0eca18a4ae046e4ac1ebd25bb3ac5a08"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::process" ref="0eca18a4ae046e4ac1ebd25bb3ac5a08" args="(Plugin *plugin, const float *const *inputBuffers, int sec, int nsec)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> * Vamp::PluginAdapterBase::Impl::process           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
-          <td class="paramname"> <em>plugin</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const float *const *&nbsp;</td>
-          <td class="paramname"> <em>inputBuffers</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>sec</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>nsec</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00690">690</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00619">checkOutputMap()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00709">convertFeatures()</a>, and <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin::process()</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00541">vampProcess()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="9fe7df06eb951c259763d56c49544676"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::getRemainingFeatures" ref="9fe7df06eb951c259763d56c49544676" args="(Plugin *plugin)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> * Vamp::PluginAdapterBase::Impl::getRemainingFeatures           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
-          <td class="paramname"> <em>plugin</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00701">701</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00619">checkOutputMap()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00709">convertFeatures()</a>, and <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin::getRemainingFeatures()</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00557">vampGetRemainingFeatures()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="550b4522bfbf1ad23297be28c51a4d72"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::convertFeatures" ref="550b4522bfbf1ad23297be28c51a4d72" args="(Plugin *plugin, const Plugin::FeatureSet &amp;features)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> * Vamp::PluginAdapterBase::Impl::convertFeatures           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
-          <td class="paramname"> <em>plugin</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Plugin::FeatureSet</a> &amp;&nbsp;</td>
-          <td class="paramname"> <em>features</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00709">709</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="vamp_8h-source.html#l00190">_VampFeatureList::featureCount</a>, <a class="el" href="vamp_8h-source.html#l00193">_VampFeatureList::features</a>, <a class="el" href="vamp_8h-source.html#l00168">_VampFeature::hasTimestamp</a>, <a class="el" href="vamp_8h-source.html#l00183">_VampFeature::label</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00119">m_fs</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00120">m_fsizes</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00121">m_fvsizes</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00117">m_pluginOutputs</a>, <a class="el" href="vamp_8h-source.html#l00174">_VampFeature::nsec</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00810">resizeFL()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00788">resizeFS()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00833">resizeFV()</a>, <a class="el" href="vamp_8h-source.html#l00171">_VampFeature::sec</a>, <a class="el" href="vamp_8h-source.html#l00177">_VampFeature::valueCount</a>, and <a class="el" href="vamp_8h-source.html#l00180">_VampFeature::values</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00701">getRemainingFeatures()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00690">process()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="186446e143fb2bb237c952a14db6ceff"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::lookupAdapter" ref="186446e143fb2bb237c952a14db6ceff" args="(VampPluginHandle)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">PluginAdapterBase::Impl</a> * Vamp::PluginAdapterBase::Impl::lookupAdapter           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td>
-          <td class="paramname"> <em>handle</em>          </td>
-          <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static, protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00304">304</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00108">m_adapterMap</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00349">vampCleanup()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00417">vampGetCurrentProgram()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00488">vampGetOutputCount()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00503">vampGetOutputDescriptor()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00389">vampGetParameter()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00557">vampGetRemainingFeatures()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00541">vampProcess()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00434">vampSelectProgram()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00403">vampSetParameter()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="429c029c0068230d1afa97426b04ce0d"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::resizeFS" ref="429c029c0068230d1afa97426b04ce0d" args="(Plugin *plugin, int n)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::PluginAdapterBase::Impl::resizeFS           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
-          <td class="paramname"> <em>plugin</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00788">788</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00119">m_fs</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00120">m_fsizes</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00121">m_fvsizes</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00709">convertFeatures()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="f5fcc5331f2dfa4c650eee636af72403"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::resizeFL" ref="f5fcc5331f2dfa4c650eee636af72403" args="(Plugin *plugin, int n, size_t sz)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::PluginAdapterBase::Impl::resizeFL           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
-          <td class="paramname"> <em>plugin</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>n</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>sz</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00810">810</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00119">m_fs</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00120">m_fsizes</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00121">m_fvsizes</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00709">convertFeatures()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="9b0791b97e91f8b8c3d18f3ed3bed861"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::resizeFV" ref="9b0791b97e91f8b8c3d18f3ed3bed861" args="(Plugin *plugin, int n, int j, size_t sz)" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Vamp::PluginAdapterBase::Impl::resizeFV           </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
-          <td class="paramname"> <em>plugin</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>n</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&nbsp;</td>
-          <td class="paramname"> <em>j</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">size_t&nbsp;</td>
-          <td class="paramname"> <em>sz</em></td><td>&nbsp;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td><td width="100%"><code> [protected]</code></td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00833">833</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00119">m_fs</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00121">m_fvsizes</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00709">convertFeatures()</a>.</p>
-
-</div>
-</div><p>
-<hr><h2>Member Data Documentation</h2>
-<a class="anchor" name="c0372df58956b4bf99a9ec070b11dea4"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::m_base" ref="c0372df58956b4bf99a9ec070b11dea4" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginAdapterBase.html">PluginAdapterBase</a>* <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#c0372df58956b4bf99a9ec070b11dea4">Vamp::PluginAdapterBase::Impl::m_base</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00055">55</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00317">vampInstantiate()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="3526d127572dd900de260ac90433d062"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::m_adapterMap" ref="3526d127572dd900de260ac90433d062" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#6c8f2c8fce370d586785353c939601d5">PluginAdapterBase::Impl::AdapterMap</a> * <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">Vamp::PluginAdapterBase::Impl::m_adapterMap</a> = 0<code> [static, protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00108">108</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00577">cleanup()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00304">lookupAdapter()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00317">vampInstantiate()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="93384198b121720dfa627dafe77839a6"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::m_populated" ref="93384198b121720dfa627dafe77839a6" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#93384198b121720dfa627dafe77839a6">Vamp::PluginAdapterBase::Impl::m_populated</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00111">111</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="eeea6028dbc6b4b96f4351a5cb79abac"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::m_descriptor" ref="eeea6028dbc6b4b96f4351a5cb79abac" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">Vamp::PluginAdapterBase::Impl::m_descriptor</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00112">112</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00317">vampInstantiate()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">~Impl()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="0edebff94969c59cc651b4517bcc6bb9"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::m_parameters" ref="0edebff94969c59cc651b4517bcc6bb9" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">Plugin::ParameterList</a> <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">Vamp::PluginAdapterBase::Impl::m_parameters</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00113">113</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00389">vampGetParameter()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00403">vampSetParameter()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="79666690394693c9e293a4e74960b444"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::m_programs" ref="79666690394693c9e293a4e74960b444" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">Plugin::ProgramList</a> <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#79666690394693c9e293a4e74960b444">Vamp::PluginAdapterBase::Impl::m_programs</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00114">114</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">getDescriptor()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00417">vampGetCurrentProgram()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00434">vampSelectProgram()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="193241eba6e9bcd3d4482c5f646d3822"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::m_pluginOutputs" ref="193241eba6e9bcd3d4482c5f646d3822" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#fd448b66d5973d8e14ec592dabcbbd2d">OutputMap</a> <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">Vamp::PluginAdapterBase::Impl::m_pluginOutputs</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00117">117</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00619">checkOutputMap()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00577">cleanup()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00709">convertFeatures()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00630">getOutputCount()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00637">getOutputDescriptor()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="4d3b0d23ae969d2895f13448d294455a"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::m_fs" ref="4d3b0d23ae969d2895f13448d294455a" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::map&lt;<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *, <a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> *&gt; <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">Vamp::PluginAdapterBase::Impl::m_fs</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00119">119</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00577">cleanup()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00709">convertFeatures()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00810">resizeFL()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00788">resizeFS()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00833">resizeFV()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="a9fa862a49d49fae2dc4b45bc23f5281"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::m_fsizes" ref="a9fa862a49d49fae2dc4b45bc23f5281" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::map&lt;<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *, std::vector&lt;size_t&gt; &gt; <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">Vamp::PluginAdapterBase::Impl::m_fsizes</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00120">120</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00577">cleanup()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00709">convertFeatures()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00810">resizeFL()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00788">resizeFS()</a>.</p>
-
-</div>
-</div><p>
-<a class="anchor" name="166ff8e5df4fcd27f74bc7179e14c33e"></a><!-- doxytag: member="Vamp::PluginAdapterBase::Impl::m_fvsizes" ref="166ff8e5df4fcd27f74bc7179e14c33e" args="" -->
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::map&lt;<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *, std::vector&lt;std::vector&lt;size_t&gt; &gt; &gt; <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#166ff8e5df4fcd27f74bc7179e14c33e">Vamp::PluginAdapterBase::Impl::m_fvsizes</a><code> [protected]</code>          </td>
-        </tr>
-      </table>
-</div>
-<div class="memdoc">
-
-<p>
-
-<p>Definition at line <a class="el" href="PluginAdapter_8cpp-source.html#l00121">121</a> of file <a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00577">cleanup()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00709">convertFeatures()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00810">resizeFL()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00788">resizeFS()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00833">resizeFV()</a>.</p>
-
-</div>
-</div><p>
-<hr>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="PluginAdapter_8cpp-source.html">PluginAdapter.cpp</a></ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:09 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/classVamp_1_1PluginAdapterBase__inherit__graph.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1PluginAdapterBase__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-<area shape="rect" href="$classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular..." alt="" coords="5,81,181,105">
+<area shape="rect" href="$classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular..." alt="" coords="5,80,181,107">
Binary file code-doc/classVamp_1_1PluginAdapterBase__inherit__graph.png has changed
--- a/code-doc/classVamp_1_1PluginAdapter__inherit__graph.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1PluginAdapter__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-<area shape="rect" href="$classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library..." alt="" coords="7,7,180,31">
+<area shape="rect" href="$classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library..." alt="" coords="7,5,180,32">
Binary file code-doc/classVamp_1_1PluginAdapter__inherit__graph.png has changed
--- a/code-doc/classVamp_1_1PluginBase-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1PluginBase-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -43,8 +43,8 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">setParameter</a>(std::string, float)</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1PluginBase.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1PluginBase.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,23 +26,23 @@
   </div>
 </div>
 <div class="contents">
-<h1>Vamp::PluginBase Class Reference</h1><!-- doxytag: class="Vamp::PluginBase" --><code>#include &lt;<a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>&gt;</code>
+<h1>Vamp::PluginBase Class Reference</h1><!-- doxytag: class="Vamp::PluginBase" --><code>#include &lt;<a class="el" href="vamp-sdk_2PluginBase_8h-source.html">PluginBase.h</a>&gt;</code>
 <p>
 <div class="dynheader">
 Inheritance diagram for Vamp::PluginBase:</div>
 <div class="dynsection">
 <p><center><img src="classVamp_1_1PluginBase__inherit__graph.png" border="0" usemap="#Vamp_1_1PluginBase__inherit__map" alt="Inheritance graph"></center>
 <map name="Vamp_1_1PluginBase__inherit__map">
-<area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="181,150,280,174"><area shape="rect" href="classAmplitudeFollower.html" title="Example plugin implementing the SuperCollider amplitude follower function." alt="" coords="381,6,509,30"><area shape="rect" href="classPercussionOnsetDetector.html" title="Example plugin that detects percussive events." alt="" coords="360,54,531,78"><area shape="rect" href="classSpectralCentroid.html" title="Example plugin that calculates the centre of gravity of the frequency domain representation..." alt="" coords="387,102,504,126"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html" title="Vamp::HostExt::PluginRateExtractor" alt="" coords="329,150,561,174"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="345,198,545,222"><area shape="rect" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C&#45;language..." alt="" coords="360,246,531,270"><area shape="rect" href="classZeroCrossing.html" title="Example plugin that calculates the positions and density of zero&#45;crossing points..." alt="" coords="396,294,495,318"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="684,126,935,150"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="687,174,932,198"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="673,222,945,246"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html" title="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter" alt="" coords="612,270,1007,294"></map>
+<area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="181,183,280,209"><area shape="rect" href="classAmplitudeFollower.html" title="Example plugin implementing the SuperCollider amplitude follower function." alt="" coords="365,5,493,32"><area shape="rect" href="classFixedTempoEstimator.html" title="Example plugin that estimates the tempo of a short fixed&#45;tempo sample." alt="" coords="356,56,503,83"><area shape="rect" href="classPercussionOnsetDetector.html" title="Example plugin that detects percussive events." alt="" coords="344,107,515,133"><area shape="rect" href="classPowerSpectrum.html" title="Example plugin that returns a power spectrum calculated (trivially) from the frequency..." alt="" coords="373,157,485,184"><area shape="rect" href="classSpectralCentroid.html" title="Example plugin that calculates the centre of gravity of the frequency domain representation..." alt="" coords="371,208,488,235"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="329,259,529,285"><area shape="rect" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C&#45;language..." alt="" coords="344,309,515,336"><area shape="rect" href="classZeroCrossing.html" title="Example plugin that calculates the positions and density of zero&#45;crossing points..." alt="" coords="380,360,479,387"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="592,183,840,209"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="593,233,839,260"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="580,284,852,311"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods..." alt="" coords="579,335,853,361"></map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
 
 <p>
 <a href="classVamp_1_1PluginBase-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
 A base class for plugins with optional configurable parameters, programs, etc. 
 <p>
-The <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> is derived from this, and individual <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 should derive from that.<p>
-This class does not provide the necessary interfaces to instantiate or run a plugin. It only specifies an interface for retrieving those controls that the host may wish to show to the user for editing. It could meaningfully be subclassed by real-time plugins or other sorts of plugin as well as <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. 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00059">59</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+The <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> is derived from this, and individual <a class="el" href="namespaceVamp.html">Vamp</a> plugins should derive from that.<p>
+This class does not provide the necessary interfaces to instantiate or run a plugin. It only specifies an interface for retrieving those controls that the host may wish to show to the user for editing. It could meaningfully be subclassed by real-time plugins or other sorts of plugin as well as <a class="el" href="namespaceVamp.html">Vamp</a> plugins. 
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00064">64</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
@@ -56,7 +56,7 @@
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">getVampApiVersion</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <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 compatibility level of the plugin.  <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.  <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">getIdentifier</a> () const =0</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#d1c6dfc77aa03d937a885b7f08258f4a"></a><br></td></tr>
@@ -114,7 +114,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00195">195</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -131,7 +131,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00217">217</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -145,7 +145,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline, virtual]</code></td>
+          <td><code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -153,7 +153,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00062">62</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00067">67</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -167,21 +167,21 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual]</code></td>
+          <td> const<code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the <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 compatibility level of the plugin. 
+Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. 
 <p>
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00067">67</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00072">72</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00080">Vamp::HostExt::PluginWrapper::getVampApiVersion()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
 
 </div>
 </div><p>
@@ -194,7 +194,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual]</code></td>
+          <td> const<code> [pure virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -206,9 +206,9 @@
 This should be reasonably short and contain no whitespace or punctuation characters. It may only contain the characters [a-zA-Z0-9_-]. This is the authoritative way for a program to identify a plugin within a given library.<p>
 This text may be visible to the user, but it should not be the main text used to identify a plugin to the user (that will be the name, below).<p>
 Example: "zero_crossings" 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#b27423a656f878d97d2ad2eba4e76c7a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#fe7576af95c8fcc7f5bad42eec9f9f29">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#267c83a7533146c127e2c3be310e0154">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#1b2c4c8440c024c4c635fcef5697949f">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#b27423a656f878d97d2ad2eba4e76c7a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#fe7576af95c8fcc7f5bad42eec9f9f29">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#b818edcf1555177d10260e197e3a5e7a">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#267c83a7533146c127e2c3be310e0154">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#9e9d8349461cbb88d7565a5e8c51b64e">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#1b2c4c8440c024c4c635fcef5697949f">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00086">Vamp::HostExt::PluginWrapper::getIdentifier()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -221,7 +221,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual]</code></td>
+          <td> const<code> [pure virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -232,9 +232,9 @@
 <p>
 This should be brief and self-contained, as it may be used to identify the plugin to the user in isolation (i.e. without also showing the plugin's "identifier").<p>
 Example: "Zero Crossings" 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#45f1d0377e233eeddd1b7cefb48be62a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#7cfed00bc9d96ba6c709b69ab6a40594">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#a98f1ad061a11af98c054011a8844e6f">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#b7e6a620fea568af431be3cfd9dd5a41">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#45f1d0377e233eeddd1b7cefb48be62a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#7cfed00bc9d96ba6c709b69ab6a40594">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#f9eb6fa8a98aa66b55e64e1795f9405f">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#a98f1ad061a11af98c054011a8844e6f">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#c9214f9cafeeed3fca549c90aef57623">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#b7e6a620fea568af431be3cfd9dd5a41">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00092">Vamp::HostExt::PluginWrapper::getName()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00577">printPluginCategoryList()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00778">printPluginCategoryList()</a>.</p>
 
 </div>
 </div><p>
@@ -247,7 +247,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual]</code></td>
+          <td> const<code> [pure virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -258,9 +258,9 @@
 <p>
 May be empty if the name has said it all already.<p>
 Example: "Detect and count zero crossing points" 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#5eaafcef030e81b90a3e77cf16cf8ae1">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#6f0f2fea1fdb4b51e688edfe859d5062">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#9061d189705802a48973a7ccab6360db">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#8fbb74a46283057d9a0b0e4718ee943c">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#710bb0b013157adaeef2a9e6867b4478">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#5eaafcef030e81b90a3e77cf16cf8ae1">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#6f0f2fea1fdb4b51e688edfe859d5062">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#06b00853f00c2e78d490697fcd7d1920">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#9061d189705802a48973a7ccab6360db">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#7b48d56dc954f3af344f7e4dcd8993e5">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#8fbb74a46283057d9a0b0e4718ee943c">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#710bb0b013157adaeef2a9e6867b4478">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00098">Vamp::HostExt::PluginWrapper::getDescription()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00577">printPluginCategoryList()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00778">printPluginCategoryList()</a>.</p>
 
 </div>
 </div><p>
@@ -273,7 +273,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual]</code></td>
+          <td> const<code> [pure virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -283,9 +283,9 @@
 Get the name of the author or vendor of the plugin in human-readable form. 
 <p>
 This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f572be0b175f5661559006a380a0f3db">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#44fc43838f203f58bc2ce6e3cb2b03dd">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#63d63f2cb7ea8d8b09d58cc13b541375">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f572be0b175f5661559006a380a0f3db">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#44fc43838f203f58bc2ce6e3cb2b03dd">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#e910d1b9250b11097fd6b51cd8285b68">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#63d63f2cb7ea8d8b09d58cc13b541375">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#9f3e3f759e2b67c771a41f1c276984b2">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00104">Vamp::HostExt::PluginWrapper::getMaker()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00577">printPluginCategoryList()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00778">printPluginCategoryList()</a>.</p>
 
 </div>
 </div><p>
@@ -298,7 +298,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual]</code></td>
+          <td> const<code> [pure virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -308,9 +308,9 @@
 Get the copyright statement or licensing summary for the plugin. 
 <p>
 This can be an informative text, without the same presentation constraints as mentioned for getMaker above. 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#c73c9d6baad04369beee695e99584815">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#0c197fc90f30d91cb4403115c83c9134">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#1a22ece271330c94cc08798a77416351">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#f9c41b92aa8ff8bddaebf75569ff789c">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#c73c9d6baad04369beee695e99584815">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#0c197fc90f30d91cb4403115c83c9134">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#50c6b64530c84c0707ba3936c5022a48">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#1a22ece271330c94cc08798a77416351">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#708b4d335c57643d5ef2b2e1caf43bd9">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#f9c41b92aa8ff8bddaebf75569ff789c">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00116">Vamp::HostExt::PluginWrapper::getCopyright()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
 
 </div>
 </div><p>
@@ -323,7 +323,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual]</code></td>
+          <td> const<code> [pure virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -333,9 +333,9 @@
 Get the version number of the plugin. 
 <p>
 
-<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#6fbd94781867ca46a20368c2a3593c77">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#8a5d7a834eb996d517c51f84b2a72250">AmplitudeFollower</a>, <a class="el" href="classPercussionOnsetDetector.html#d6b818dbd81867ce7be71c99cae861be">PercussionOnsetDetector</a>, <a class="el" href="classSpectralCentroid.html#f64622e66bf678ac2b0b58aa832ca2b3">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb">ZeroCrossing</a>.</p>
+<p>Implemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#6fbd94781867ca46a20368c2a3593c77">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#8a5d7a834eb996d517c51f84b2a72250">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#d002fddb3735c2dd7e31e6a9def9949f">FixedTempoEstimator</a>, <a class="el" href="classPercussionOnsetDetector.html#d6b818dbd81867ce7be71c99cae861be">PercussionOnsetDetector</a>, <a class="el" href="classPowerSpectrum.html#d23d27e4e82f10404a37b933f6a72c33">PowerSpectrum</a>, <a class="el" href="classSpectralCentroid.html#f64622e66bf678ac2b0b58aa832ca2b3">SpectralCentroid</a>, and <a class="el" href="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb">ZeroCrossing</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00110">Vamp::HostExt::PluginWrapper::getPluginVersion()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
 
 </div>
 </div><p>
@@ -348,7 +348,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual]</code></td>
+          <td> const<code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -358,11 +358,11 @@
 Get the controllable parameters of this plugin. 
 <p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#bfa93b20d9b5651a32042a9bb7c8df13">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">AmplitudeFollower</a>, and <a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#602faa0bfaae83e2ca53b36292271a76">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#e157465a4e07d180bab05b5c3a4d8987">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00200">200</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00208">208</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00122">Vamp::HostExt::PluginWrapper::getParameterDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
 
 </div>
 </div><p>
@@ -376,7 +376,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual]</code></td>
+          <td> const<code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -386,11 +386,9 @@
 Get the value of a named parameter. 
 <p>
 The argument is the identifier field from that parameter's descriptor. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">AmplitudeFollower</a>, and <a class="el" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#2030b05fb1228b30ace16200780c9152">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00208">208</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00128">Vamp::HostExt::PluginWrapper::getParameter()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00216">216</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -413,7 +411,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td>
+          <td></td><td></td><td><code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -423,11 +421,9 @@
 Set a named parameter. 
 <p>
 The first argument is the identifier field from that parameter's descriptor. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">AmplitudeFollower</a>, and <a class="el" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7a979b20c169d37adbd7b7d8b8a077b3">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#8a5a413025384cf451c64d2c2ce13a75">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00214">214</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00134">Vamp::HostExt::PluginWrapper::setParameter()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00222">222</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -440,7 +436,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual]</code></td>
+          <td> const<code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -451,11 +447,9 @@
 <p>
 A program is a named shorthand for a set of parameter values; changing the program may cause the plugin to alter the values of its published parameters (and/or non-public internal processing parameters). The host should re-read the plugin's parameter values after setting a new program.<p>
 The programs must have unique names. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#7ac5681dcfe08b7b8a796bffc0aff3e3">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">Vamp::HostExt::PluginWrapper</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#e0cde5cd625418c1bc470b91f75daafc">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00229">229</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00140">Vamp::HostExt::PluginWrapper::getPrograms()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00237">237</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -468,7 +462,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual]</code></td>
+          <td> const<code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -480,9 +474,7 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00234">234</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00146">Vamp::HostExt::PluginWrapper::getCurrentProgram()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00242">242</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -496,7 +488,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline, virtual]</code></td>
+          <td><code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -506,11 +498,9 @@
 Select a program. 
 <p>
 (If the given program name is not one of the available programs, do nothing.) 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00240">240</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00152">Vamp::HostExt::PluginWrapper::selectProgram()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00248">248</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -523,7 +513,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [pure virtual]</code></td>
+          <td> const<code> [pure virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -538,10 +528,10 @@
 </div>
 </div><p>
 <hr>The documentation for this class was generated from the following file:<ul>
-<li><a class="el" href="PluginBase_8h-source.html">PluginBase.h</a></ul>
+<li><a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1PluginBase__inherit__graph.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1PluginBase__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,12 +1,13 @@
-<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="181,150,280,174">
-<area shape="rect" href="$classAmplitudeFollower.html" title="Example plugin implementing the SuperCollider amplitude follower function." alt="" coords="381,6,509,30">
-<area shape="rect" href="$classPercussionOnsetDetector.html" title="Example plugin that detects percussive events." alt="" coords="360,54,531,78">
-<area shape="rect" href="$classSpectralCentroid.html" title="Example plugin that calculates the centre of gravity of the frequency domain representation..." alt="" coords="387,102,504,126">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginRateExtractor.html" title="Vamp::HostExt::PluginRateExtractor" alt="" coords="329,150,561,174">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="345,198,545,222">
-<area shape="rect" href="$classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C&#45;language..." alt="" coords="360,246,531,270">
-<area shape="rect" href="$classZeroCrossing.html" title="Example plugin that calculates the positions and density of zero&#45;crossing points..." alt="" coords="396,294,495,318">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="684,126,935,150">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="687,174,932,198">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="673,222,945,246">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html" title="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter" alt="" coords="612,270,1007,294">
+<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="181,183,280,209">
+<area shape="rect" href="$classAmplitudeFollower.html" title="Example plugin implementing the SuperCollider amplitude follower function." alt="" coords="365,5,493,32">
+<area shape="rect" href="$classFixedTempoEstimator.html" title="Example plugin that estimates the tempo of a short fixed&#45;tempo sample." alt="" coords="356,56,503,83">
+<area shape="rect" href="$classPercussionOnsetDetector.html" title="Example plugin that detects percussive events." alt="" coords="344,107,515,133">
+<area shape="rect" href="$classPowerSpectrum.html" title="Example plugin that returns a power spectrum calculated (trivially) from the frequency..." alt="" coords="373,157,485,184">
+<area shape="rect" href="$classSpectralCentroid.html" title="Example plugin that calculates the centre of gravity of the frequency domain representation..." alt="" coords="371,208,488,235">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="329,259,529,285">
+<area shape="rect" href="$classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C&#45;language..." alt="" coords="344,309,515,336">
+<area shape="rect" href="$classZeroCrossing.html" title="Example plugin that calculates the positions and density of zero&#45;crossing points..." alt="" coords="380,360,479,387">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="592,183,840,209">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="593,233,839,260">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="580,284,852,311">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods..." alt="" coords="579,335,853,361">
--- a/code-doc/classVamp_1_1PluginBase__inherit__graph.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1PluginBase__inherit__graph.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-cfc919bcad1dd2c75ebd302bda37e09b
\ No newline at end of file
+153f6f058020bef4629083f4dce6eaf1
\ No newline at end of file
Binary file code-doc/classVamp_1_1PluginBase__inherit__graph.png has changed
--- a/code-doc/classVamp_1_1PluginHostAdapter-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1PluginHostAdapter-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -33,20 +33,20 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">getCurrentProgram</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#5eaafcef030e81b90a3e77cf16cf8ae1">getDescription</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#b27423a656f878d97d2ad2eba4e76c7a">getIdentifier</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#9c5239a4da67f1a426cd059e1a2856eb">getInputDomain</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#8e9d25673367c741631a60cbb36e91d2">getInputDomain</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#f572be0b175f5661559006a380a0f3db">getMaker</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0">getMaxChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d">getMinChannelCount</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#45f1d0377e233eeddd1b7cefb48be62a">getName</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#e02670cca9d25cdc4100cbe7a12e3e68">getOutputDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#9649a113da0252fe8bd9fc731b047ae0">getOutputDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">getParameter</a>(std::string) const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#bfa93b20d9b5651a32042a9bb7c8df13">getParameterDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#08d7ed3a11bf4a3c30fa0f9b41a0fed6">getPluginPath</a>()</td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#602faa0bfaae83e2ca53b36292271a76">getParameterDescriptors</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#09cbfb7903d28f10d6d556c6cb81c5f6">getPluginPath</a>()</td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [static]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#6fbd94781867ca46a20368c2a3593c77">getPluginVersion</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">getPreferredBlockSize</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">getPreferredStepSize</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#7ac5681dcfe08b7b8a796bffc0aff3e3">getPrograms</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#d3f5f16a89a821da2ec1186fd2062e83">getRemainingFeatures</a>()</td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#e0cde5cd625418c1bc470b91f75daafc">getPrograms</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#984a4c11f3fbdcfd90e4837b1619a5ab">getRemainingFeatures</a>()</td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a>() const </td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">getVampApiVersion</a>() const </td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
@@ -58,7 +58,7 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</a>(float inputSampleRate)</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#6535abd551acfbbaab381bbe1268cd49">PluginHostAdapter</a>(const VampPluginDescriptor *descriptor, float inputSampleRate)</td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684">process</a>(const float *const *inputBuffers, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd">process</a>(const float *const *inputBuffers, RealTime timestamp)</td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> typedef</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#5d54c5bbd76bc27b7a243827148afeaa">reset</a>()</td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">selectProgram</a>(std::string)</td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
@@ -66,10 +66,10 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a> enum value</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">~Plugin</a>()</td><td><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#b0f354cb332852ab1892488f6b8e8c0e">~PluginHostAdapter</a>()</td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#ed66c091340aa668d3be89c4b4c24474">~PluginHostAdapter</a>()</td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [virtual]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1PluginHostAdapter.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1PluginHostAdapter.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,23 +26,23 @@
   </div>
 </div>
 <div class="contents">
-<h1>Vamp::PluginHostAdapter Class Reference</h1><!-- doxytag: class="Vamp::PluginHostAdapter" --><!-- doxytag: inherits="Vamp::Plugin" --><code>#include &lt;<a class="el" href="PluginHostAdapter_8h-source.html">vamp-sdk/PluginHostAdapter.h</a>&gt;</code>
+<h1>Vamp::PluginHostAdapter Class Reference</h1><!-- doxytag: class="Vamp::PluginHostAdapter" --><!-- doxytag: inherits="Vamp::Plugin" --><code>#include &lt;<a class="el" href="PluginHostAdapter_8h-source.html">vamp-hostsdk/PluginHostAdapter.h</a>&gt;</code>
 <p>
 <div class="dynheader">
 Inheritance diagram for Vamp::PluginHostAdapter:</div>
 <div class="dynsection">
 <p><center><img src="classVamp_1_1PluginHostAdapter__inherit__graph.png" border="0" usemap="#Vamp_1_1PluginHostAdapter__inherit__map" alt="Inheritance graph"></center>
 <map name="Vamp_1_1PluginHostAdapter__inherit__map">
-<area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="41,82,140,106"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="27,7,155,31"></map>
+<area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="41,80,140,107"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="27,6,155,32"></map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
 
 <p>
 <a href="classVamp_1_1PluginHostAdapter-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-<a class="el" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">PluginHostAdapter</a> is a wrapper class 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> host can use to make the C-language VampPluginDescriptor object appear as a C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> object. 
+<a class="el" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">PluginHostAdapter</a> is a wrapper class that a <a class="el" href="namespaceVamp.html">Vamp</a> host can use to make the C-language VampPluginDescriptor object appear as a C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> object. 
 <p>
-The <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 is defined in <a class="el" href="vamp_8h.html">vamp/vamp.h</a> as a C API. The C++ objects used for convenience by plugins and hosts actually communicate using the C low-level API, but the details of this communication are handled seamlessly by the <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> SDK implementation provided the plugin and host use the proper C++ wrapper objects.<p>
+The <a class="el" href="namespaceVamp.html">Vamp</a> API is defined in <a class="el" href="vamp_8h.html">vamp/vamp.h</a> as a C API. The C++ objects used for convenience by plugins and hosts actually communicate using the C low-level API, but the details of this communication are handled seamlessly by the <a class="el" href="namespaceVamp.html">Vamp</a> SDK implementation provided the plugin and host use the proper C++ wrapper objects.<p>
 See also <a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a>, the plugin-side wrapper that makes a C++ plugin object available using the C query API. 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8h-source.html#l00064">64</a> of file <a class="el" href="PluginHostAdapter_8h-source.html">PluginHostAdapter.h</a>.</p>
+<p>Definition at line <a class="el" href="PluginHostAdapter_8h-source.html#l00068">68</a> of file <a class="el" href="PluginHostAdapter_8h-source.html">PluginHostAdapter.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
@@ -66,7 +66,7 @@
 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#6535abd551acfbbaab381bbe1268cd49">PluginHostAdapter</a> (const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *descriptor, float inputSampleRate)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#b0f354cb332852ab1892488f6b8e8c0e">~PluginHostAdapter</a> ()</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#ed66c091340aa668d3be89c4b4c24474">~PluginHostAdapter</a> ()</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
 
@@ -74,12 +74,12 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#5d54c5bbd76bc27b7a243827148afeaa">reset</a> ()</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the plugin after use, to prepare it for another clean run.  <a href="#5d54c5bbd76bc27b7a243827148afeaa"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#9c5239a4da67f1a426cd059e1a2856eb">getInputDomain</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#8e9d25673367c741631a60cbb36e91d2">getInputDomain</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#9c5239a4da67f1a426cd059e1a2856eb"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#8e9d25673367c741631a60cbb36e91d2"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">getVampApiVersion</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <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 compatibility level of the plugin.  <a href="#98aadddc8403eb46c9d8c5a9d1fdd19e"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.  <a href="#98aadddc8403eb46c9d8c5a9d1fdd19e"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#b27423a656f878d97d2ad2eba4e76c7a">getIdentifier</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#b27423a656f878d97d2ad2eba4e76c7a"></a><br></td></tr>
@@ -98,18 +98,18 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#c73c9d6baad04369beee695e99584815">getCopyright</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the copyright statement or licensing summary for the plugin.  <a href="#c73c9d6baad04369beee695e99584815"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#bfa93b20d9b5651a32042a9bb7c8df13">getParameterDescriptors</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#602faa0bfaae83e2ca53b36292271a76">getParameterDescriptors</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#bfa93b20d9b5651a32042a9bb7c8df13"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#602faa0bfaae83e2ca53b36292271a76"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">getParameter</a> (std::string) const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of a named parameter.  <a href="#f0c46d4f67ca93be7c76f3ea2e6c8efb"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">setParameter</a> (std::string, float)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter.  <a href="#29f75395aa75b9de0228aa11edf9c6d6"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#7ac5681dcfe08b7b8a796bffc0aff3e3">getPrograms</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#e0cde5cd625418c1bc470b91f75daafc">getPrograms</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#7ac5681dcfe08b7b8a796bffc0aff3e3"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#e0cde5cd625418c1bc470b91f75daafc"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">getCurrentProgram</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current program.  <a href="#34859eff8ca8d862af39be9636ec1867"></a><br></td></tr>
@@ -118,30 +118,30 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select a program.  <a href="#8f5515ab34cc13d9403ccc6b4b788683"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">getPreferredStepSize</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684" title="Process a single block of input data.">process()</a> function) for the plugin.  <a href="#859ad5d59402691daed3cf1af1899ebe"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> function) for the plugin.  <a href="#859ad5d59402691daed3cf1af1899ebe"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">getPreferredBlockSize</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684" title="Process a single block of input data.">process()</a> function).  <a href="#d5e0ea8042bdec4dd18428991117e07a"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> function).  <a href="#d5e0ea8042bdec4dd18428991117e07a"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d">getMinChannelCount</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum supported number of input channels.  <a href="#67d1198c0e58d3f0076d0eda599ff28d"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0">getMaxChannelCount</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum supported number of input channels.  <a href="#25091905e97e39d515d8ffc1a9f2b9e0"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#e02670cca9d25cdc4100cbe7a12e3e68">getOutputDescriptors</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#9649a113da0252fe8bd9fc731b047ae0">getOutputDescriptors</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#e02670cca9d25cdc4100cbe7a12e3e68"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#9649a113da0252fe8bd9fc731b047ae0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#82c29a512c0587ea0121eee4b0c2a684"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#d3f5f16a89a821da2ec1186fd2062e83">getRemainingFeatures</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#38fe1080b343ba10e5d8a4b30c87cbdd"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#984a4c11f3fbdcfd90e4837b1619a5ab">getRemainingFeatures</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input.  <a href="#d3f5f16a89a821da2ec1186fd2062e83"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input.  <a href="#984a4c11f3fbdcfd90e4837b1619a5ab"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">getType</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.  <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
 <tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#08d7ed3a11bf4a3c30fa0f9b41a0fed6">getPluginPath</a> ()</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#09cbfb7903d28f10d6d556c6cb81c5f6">getPluginPath</a> ()</td></tr>
 
 <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#ee417a4c9ba9dbb63777c963d5f9452a">convertFeatures</a> (<a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> *, <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> &amp;)</td></tr>
@@ -168,7 +168,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00309">309</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00322">322</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -185,7 +185,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00347">347</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00380">380</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -202,7 +202,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00348">348</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00382">382</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -219,7 +219,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00195">195</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -236,7 +236,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00217">217</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -262,7 +262,7 @@
 </table>
 </dl>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00149">149</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">152</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -286,7 +286,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -294,22 +294,18 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00043">43</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="struct__VampPluginDescriptor.html#19c4ce36fdeb88eeedb539efc544b8ee">_VampPluginDescriptor::instantiate</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, and <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="b0f354cb332852ab1892488f6b8e8c0e"></a><!-- doxytag: member="Vamp::PluginHostAdapter::~PluginHostAdapter" ref="b0f354cb332852ab1892488f6b8e8c0e" args="()" -->
+<a class="anchor" name="ed66c091340aa668d3be89c4b4c24474"></a><!-- doxytag: member="Vamp::PluginHostAdapter::~PluginHostAdapter" ref="ed66c091340aa668d3be89c4b4c24474" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">Vamp::PluginHostAdapter::~PluginHostAdapter           </td>
+          <td class="memname">virtual Vamp::PluginHostAdapter::~PluginHostAdapter           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -317,23 +313,19 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00055">55</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="struct__VampPluginDescriptor.html#0e4522c33e59c3c518b9262f2477bc27">_VampPluginDescriptor::cleanup</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, and <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>.</p>
-
 </div>
 </div><p>
 <hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="08d7ed3a11bf4a3c30fa0f9b41a0fed6"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPluginPath" ref="08d7ed3a11bf4a3c30fa0f9b41a0fed6" args="()" -->
+<a class="anchor" name="09cbfb7903d28f10d6d556c6cb81c5f6"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPluginPath" ref="09cbfb7903d28f10d6d556c6cb81c5f6" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt; std::string &gt; Vamp::PluginHostAdapter::getPluginPath           </td>
+          <td class="memname">static std::vector&lt;std::string&gt; Vamp::PluginHostAdapter::getPluginPath           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static]</code></td>
+          <td><code> [static]</code></td>
         </tr>
       </table>
 </div>
@@ -341,12 +333,6 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00062">62</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginHostAdapter_8cpp.html#a7a9ce1e832e4f26cd5197ed38d4a58d">DEFAULT_VAMP_PATH</a>, and <a class="el" href="PluginHostAdapter_8cpp.html#256a5721249aa3309437212cc21a9fe4">PATH_SEPARATOR</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00226">Vamp::HostExt::PluginLoader::Impl::enumeratePlugins()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00422">Vamp::HostExt::PluginLoader::Impl::generateTaxonomy()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="dd6a2f1ee7e47bd97fa599cead14b738"></a><!-- doxytag: member="Vamp::PluginHostAdapter::initialise" ref="dd6a2f1ee7e47bd97fa599cead14b738" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
@@ -374,7 +360,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -387,10 +373,6 @@
 Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00118">118</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="struct__VampPluginDescriptor.html#d0978f17a5e568079470a1978a9aad22">_VampPluginDescriptor::initialise</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, and <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="5d54c5bbd76bc27b7a243827148afeaa"></a><!-- doxytag: member="Vamp::PluginHostAdapter::reset" ref="5d54c5bbd76bc27b7a243827148afeaa" args="()" -->
@@ -402,7 +384,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -414,22 +396,18 @@
 Not called for the first initialisation (i.e. initialise must also do a reset). 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00128">128</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>, and <a class="el" href="struct__VampPluginDescriptor.html#12267f6b506aeda3792ff7c982b02336">_VampPluginDescriptor::reset</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="9c5239a4da67f1a426cd059e1a2856eb"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getInputDomain" ref="9c5239a4da67f1a426cd059e1a2856eb" args="() const " -->
+<a class="anchor" name="8e9d25673367c741631a60cbb36e91d2"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getInputDomain" ref="8e9d25673367c741631a60cbb36e91d2" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">PluginHostAdapter::InputDomain</a> Vamp::PluginHostAdapter::getInputDomain           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> Vamp::PluginHostAdapter::getInputDomain           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -438,13 +416,9 @@
 <p>
 Get the plugin's required input domain. 
 <p>
-If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
+If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin. If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a>. The plugin does not get to choose the window type -- the host will either let the user do so, or will use a Hanning window. 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00135">135</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="Plugin_8h-source.html#l00149">Vamp::Plugin::FrequencyDomain</a>, <a class="el" href="vamp_8h-source.html#l00242">_VampPluginDescriptor::inputDomain</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, <a class="el" href="Plugin_8h-source.html#l00149">Vamp::Plugin::TimeDomain</a>, and <a class="el" href="vamp_8h-source.html#l00200">vampFrequencyDomain</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="98aadddc8403eb46c9d8c5a9d1fdd19e"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getVampApiVersion" ref="98aadddc8403eb46c9d8c5a9d1fdd19e" args="() const " -->
@@ -456,22 +430,18 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the <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 compatibility level of the plugin. 
+Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. 
 <p>
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00145">145</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, and <a class="el" href="vamp_8h-source.html#l00209">_VampPluginDescriptor::vampApiVersion</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="b27423a656f878d97d2ad2eba4e76c7a"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getIdentifier" ref="b27423a656f878d97d2ad2eba4e76c7a" args="() const " -->
@@ -483,7 +453,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -497,10 +467,6 @@
 Example: "zero_crossings" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00151">151</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="vamp_8h-source.html#l00212">_VampPluginDescriptor::identifier</a>, and <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="45f1d0377e233eeddd1b7cefb48be62a"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getName" ref="45f1d0377e233eeddd1b7cefb48be62a" args="() const " -->
@@ -512,7 +478,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -525,10 +491,6 @@
 Example: "Zero Crossings" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00157">157</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, and <a class="el" href="vamp_8h-source.html#l00215">_VampPluginDescriptor::name</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="5eaafcef030e81b90a3e77cf16cf8ae1"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getDescription" ref="5eaafcef030e81b90a3e77cf16cf8ae1" args="() const " -->
@@ -540,7 +502,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -553,10 +515,6 @@
 Example: "Detect and count zero crossing points" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00163">163</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="vamp_8h-source.html#l00218">_VampPluginDescriptor::description</a>, and <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="f572be0b175f5661559006a380a0f3db"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getMaker" ref="f572be0b175f5661559006a380a0f3db" args="() const " -->
@@ -568,7 +526,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -580,10 +538,6 @@
 This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00169">169</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, and <a class="el" href="vamp_8h-source.html#l00221">_VampPluginDescriptor::maker</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="6fbd94781867ca46a20368c2a3593c77"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPluginVersion" ref="6fbd94781867ca46a20368c2a3593c77" args="() const " -->
@@ -595,7 +549,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -607,10 +561,6 @@
 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00175">175</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, and <a class="el" href="vamp_8h-source.html#l00224">_VampPluginDescriptor::pluginVersion</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="c73c9d6baad04369beee695e99584815"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getCopyright" ref="c73c9d6baad04369beee695e99584815" args="() const " -->
@@ -622,7 +572,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -634,22 +584,18 @@
 This can be an informative text, without the same presentation constraints as mentioned for getMaker above. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00181">181</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="vamp_8h-source.html#l00227">_VampPluginDescriptor::copyright</a>, and <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="bfa93b20d9b5651a32042a9bb7c8df13"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getParameterDescriptors" ref="bfa93b20d9b5651a32042a9bb7c8df13" args="() const " -->
+<a class="anchor" name="602faa0bfaae83e2ca53b36292271a76"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getParameterDescriptors" ref="602faa0bfaae83e2ca53b36292271a76" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">PluginHostAdapter::ParameterList</a> Vamp::PluginHostAdapter::getParameterDescriptors           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> Vamp::PluginHostAdapter::getParameterDescriptors           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -661,10 +607,6 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">187</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="vamp_8h-source.html#l00092">_VampParameterDescriptor::defaultValue</a>, <a class="el" href="PluginBase_8h-source.html#l00166">Vamp::PluginBase::ParameterDescriptor::defaultValue</a>, <a class="el" href="vamp_8h-source.html#l00080">_VampParameterDescriptor::description</a>, <a class="el" href="PluginBase_8h-source.html#l00143">Vamp::PluginBase::ParameterDescriptor::description</a>, <a class="el" href="vamp_8h-source.html#l00074">_VampParameterDescriptor::identifier</a>, <a class="el" href="PluginBase_8h-source.html#l00132">Vamp::PluginBase::ParameterDescriptor::identifier</a>, <a class="el" href="vamp_8h-source.html#l00095">_VampParameterDescriptor::isQuantized</a>, <a class="el" href="PluginBase_8h-source.html#l00172">Vamp::PluginBase::ParameterDescriptor::isQuantized</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, <a class="el" href="vamp_8h-source.html#l00089">_VampParameterDescriptor::maxValue</a>, <a class="el" href="PluginBase_8h-source.html#l00158">Vamp::PluginBase::ParameterDescriptor::maxValue</a>, <a class="el" href="vamp_8h-source.html#l00086">_VampParameterDescriptor::minValue</a>, <a class="el" href="PluginBase_8h-source.html#l00153">Vamp::PluginBase::ParameterDescriptor::minValue</a>, <a class="el" href="vamp_8h-source.html#l00077">_VampParameterDescriptor::name</a>, <a class="el" href="PluginBase_8h-source.html#l00137">Vamp::PluginBase::ParameterDescriptor::name</a>, <a class="el" href="vamp_8h-source.html#l00230">_VampPluginDescriptor::parameterCount</a>, <a class="el" href="vamp_8h-source.html#l00233">_VampPluginDescriptor::parameters</a>, <a class="el" href="vamp_8h-source.html#l00098">_VampParameterDescriptor::quantizeStep</a>, <a class="el" href="PluginBase_8h-source.html#l00179">Vamp::PluginBase::ParameterDescriptor::quantizeStep</a>, <a class="el" href="vamp_8h-source.html#l00083">_VampParameterDescriptor::unit</a>, <a class="el" href="PluginBase_8h-source.html#l00148">Vamp::PluginBase::ParameterDescriptor::unit</a>, <a class="el" href="PluginBase_8h-source.html#l00192">Vamp::PluginBase::ParameterDescriptor::valueNames</a>, and <a class="el" href="vamp_8h-source.html#l00101">_VampParameterDescriptor::valueNames</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="f0c46d4f67ca93be7c76f3ea2e6c8efb"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getParameter" ref="f0c46d4f67ca93be7c76f3ea2e6c8efb" args="(std::string) const " -->
@@ -677,7 +619,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -689,10 +631,6 @@
 The argument is the identifier field from that parameter's descriptor. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00213">213</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="struct__VampPluginDescriptor.html#07174981875b55ee2ec7521a7f4fc395">_VampPluginDescriptor::getParameter</a>, <a class="el" href="vamp_8h-source.html#l00074">_VampParameterDescriptor::identifier</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>, <a class="el" href="vamp_8h-source.html#l00230">_VampPluginDescriptor::parameterCount</a>, and <a class="el" href="vamp_8h-source.html#l00233">_VampPluginDescriptor::parameters</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="29f75395aa75b9de0228aa11edf9c6d6"></a><!-- doxytag: member="Vamp::PluginHostAdapter::setParameter" ref="29f75395aa75b9de0228aa11edf9c6d6" args="(std::string, float)" -->
@@ -714,7 +652,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -726,22 +664,18 @@
 The first argument is the identifier field from that parameter's descriptor. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00227">227</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="vamp_8h-source.html#l00074">_VampParameterDescriptor::identifier</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>, <a class="el" href="vamp_8h-source.html#l00230">_VampPluginDescriptor::parameterCount</a>, <a class="el" href="vamp_8h-source.html#l00233">_VampPluginDescriptor::parameters</a>, and <a class="el" href="struct__VampPluginDescriptor.html#ad3cfc7a3b432df40bd9db13eee6a481">_VampPluginDescriptor::setParameter</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="7ac5681dcfe08b7b8a796bffc0aff3e3"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPrograms" ref="7ac5681dcfe08b7b8a796bffc0aff3e3" args="() const " -->
+<a class="anchor" name="e0cde5cd625418c1bc470b91f75daafc"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPrograms" ref="e0cde5cd625418c1bc470b91f75daafc" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">PluginHostAdapter::ProgramList</a> Vamp::PluginHostAdapter::getPrograms           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> Vamp::PluginHostAdapter::getPrograms           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -754,10 +688,6 @@
 The programs must have unique names. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00241">241</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, <a class="el" href="vamp_8h-source.html#l00236">_VampPluginDescriptor::programCount</a>, and <a class="el" href="vamp_8h-source.html#l00239">_VampPluginDescriptor::programs</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="34859eff8ca8d862af39be9636ec1867"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getCurrentProgram" ref="34859eff8ca8d862af39be9636ec1867" args="() const " -->
@@ -769,7 +699,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -781,10 +711,6 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00253">253</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="struct__VampPluginDescriptor.html#861a77525a95d424cb846820b018af53">_VampPluginDescriptor::getCurrentProgram</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>, and <a class="el" href="vamp_8h-source.html#l00239">_VampPluginDescriptor::programs</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="8f5515ab34cc13d9403ccc6b4b788683"></a><!-- doxytag: member="Vamp::PluginHostAdapter::selectProgram" ref="8f5515ab34cc13d9403ccc6b4b788683" args="(std::string)" -->
@@ -797,7 +723,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -809,10 +735,6 @@
 (If the given program name is not one of the available programs, do nothing.) 
 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00262">262</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>, <a class="el" href="vamp_8h-source.html#l00236">_VampPluginDescriptor::programCount</a>, <a class="el" href="vamp_8h-source.html#l00239">_VampPluginDescriptor::programs</a>, and <a class="el" href="struct__VampPluginDescriptor.html#d9af40cb165ca187e49250964af5f5cf">_VampPluginDescriptor::selectProgram</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="859ad5d59402691daed3cf1af1899ebe"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPreferredStepSize" ref="859ad5d59402691daed3cf1af1899ebe" args="() const " -->
@@ -824,23 +746,19 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684" title="Process a single block of input data.">process()</a> function) for the plugin. 
+Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> function) for the plugin. 
 <p>
 This should be called before <a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00275">275</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="struct__VampPluginDescriptor.html#2beddf2ce156c05dd24477ac663adcbb">_VampPluginDescriptor::getPreferredStepSize</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, and <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="d5e0ea8042bdec4dd18428991117e07a"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPreferredBlockSize" ref="d5e0ea8042bdec4dd18428991117e07a" args="() const " -->
@@ -852,23 +770,19 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684" title="Process a single block of input data.">process()</a> function). 
+Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> function). 
 <p>
 This should be called before <a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00282">282</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="struct__VampPluginDescriptor.html#c626e42554ab1532c8d8b5132a0faee8">_VampPluginDescriptor::getPreferredBlockSize</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, and <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="67d1198c0e58d3f0076d0eda599ff28d"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getMinChannelCount" ref="67d1198c0e58d3f0076d0eda599ff28d" args="() const " -->
@@ -880,7 +794,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -892,10 +806,6 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00289">289</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="struct__VampPluginDescriptor.html#f175ca17716db5a7545b61b01caabd92">_VampPluginDescriptor::getMinChannelCount</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, and <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="25091905e97e39d515d8ffc1a9f2b9e0"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getMaxChannelCount" ref="25091905e97e39d515d8ffc1a9f2b9e0" args="() const " -->
@@ -907,7 +817,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -919,22 +829,18 @@
 
 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00296">296</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="struct__VampPluginDescriptor.html#d1600203418d9646332f5b917284261b">_VampPluginDescriptor::getMaxChannelCount</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, and <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="e02670cca9d25cdc4100cbe7a12e3e68"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getOutputDescriptors" ref="e02670cca9d25cdc4100cbe7a12e3e68" args="() const " -->
+<a class="anchor" name="9649a113da0252fe8bd9fc731b047ae0"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getOutputDescriptors" ref="9649a113da0252fe8bd9fc731b047ae0" args="() const " -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">PluginHostAdapter::OutputList</a> Vamp::PluginHostAdapter::getOutputDescriptors           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> Vamp::PluginHostAdapter::getOutputDescriptors           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -943,21 +849,17 @@
 <p>
 Get the outputs of this plugin. 
 <p>
-An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684" title="Process a single block of input data.">process()</a> call. 
+An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> call. 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">303</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="vamp_8h-source.html#l00136">_VampOutputDescriptor::binCount</a>, <a class="el" href="Plugin_8h-source.html#l00239">Vamp::Plugin::OutputDescriptor::binCount</a>, <a class="el" href="vamp_8h-source.html#l00139">_VampOutputDescriptor::binNames</a>, <a class="el" href="Plugin_8h-source.html#l00245">Vamp::Plugin::OutputDescriptor::binNames</a>, <a class="el" href="vamp_8h-source.html#l00127">_VampOutputDescriptor::description</a>, <a class="el" href="Plugin_8h-source.html#l00219">Vamp::Plugin::OutputDescriptor::description</a>, <a class="el" href="Plugin_8h-source.html#l00285">Vamp::Plugin::OutputDescriptor::FixedSampleRate</a>, <a class="el" href="struct__VampPluginDescriptor.html#a8fc88da704e24b2b5f674821dd380c1">_VampPluginDescriptor::getOutputCount</a>, <a class="el" href="struct__VampPluginDescriptor.html#92c58b8ff99ad0c23a42333aa55c144d">_VampPluginDescriptor::getOutputDescriptor</a>, <a class="el" href="vamp_8h-source.html#l00133">_VampOutputDescriptor::hasFixedBinCount</a>, <a class="el" href="Plugin_8h-source.html#l00231">Vamp::Plugin::OutputDescriptor::hasFixedBinCount</a>, <a class="el" href="vamp_8h-source.html#l00142">_VampOutputDescriptor::hasKnownExtents</a>, <a class="el" href="Plugin_8h-source.html#l00252">Vamp::Plugin::OutputDescriptor::hasKnownExtents</a>, <a class="el" href="vamp_8h-source.html#l00121">_VampOutputDescriptor::identifier</a>, <a class="el" href="Plugin_8h-source.html#l00206">Vamp::Plugin::OutputDescriptor::identifier</a>, <a class="el" href="vamp_8h-source.html#l00151">_VampOutputDescriptor::isQuantized</a>, <a class="el" href="Plugin_8h-source.html#l00270">Vamp::Plugin::OutputDescriptor::isQuantized</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>, <a class="el" href="vamp_8h-source.html#l00148">_VampOutputDescriptor::maxValue</a>, <a class="el" href="Plugin_8h-source.html#l00264">Vamp::Plugin::OutputDescriptor::maxValue</a>, <a class="el" href="vamp_8h-source.html#l00145">_VampOutputDescriptor::minValue</a>, <a class="el" href="Plugin_8h-source.html#l00258">Vamp::Plugin::OutputDescriptor::minValue</a>, <a class="el" href="vamp_8h-source.html#l00124">_VampOutputDescriptor::name</a>, <a class="el" href="Plugin_8h-source.html#l00212">Vamp::Plugin::OutputDescriptor::name</a>, <a class="el" href="Plugin_8h-source.html#l00282">Vamp::Plugin::OutputDescriptor::OneSamplePerStep</a>, <a class="el" href="vamp_8h-source.html#l00154">_VampOutputDescriptor::quantizeStep</a>, <a class="el" href="Plugin_8h-source.html#l00277">Vamp::Plugin::OutputDescriptor::quantizeStep</a>, <a class="el" href="struct__VampPluginDescriptor.html#8cc38edc921616e67e551aa03397ec79">_VampPluginDescriptor::releaseOutputDescriptor</a>, <a class="el" href="vamp_8h-source.html#l00161">_VampOutputDescriptor::sampleRate</a>, <a class="el" href="Plugin_8h-source.html#l00306">Vamp::Plugin::OutputDescriptor::sampleRate</a>, <a class="el" href="Plugin_8h-source.html#l00294">Vamp::Plugin::OutputDescriptor::sampleType</a>, <a class="el" href="vamp_8h-source.html#l00157">_VampOutputDescriptor::sampleType</a>, <a class="el" href="vamp_8h-source.html#l00130">_VampOutputDescriptor::unit</a>, <a class="el" href="Plugin_8h-source.html#l00224">Vamp::Plugin::OutputDescriptor::unit</a>, <a class="el" href="vamp_8h-source.html#l00111">vampFixedSampleRate</a>, <a class="el" href="vamp_8h-source.html#l00108">vampOneSamplePerStep</a>, <a class="el" href="vamp_8h-source.html#l00114">vampVariableSampleRate</a>, and <a class="el" href="Plugin_8h-source.html#l00288">Vamp::Plugin::OutputDescriptor::VariableSampleRate</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="82c29a512c0587ea0121eee4b0c2a684"></a><!-- doxytag: member="Vamp::PluginHostAdapter::process" ref="82c29a512c0587ea0121eee4b0c2a684" args="(const float *const *inputBuffers, RealTime timestamp)" -->
+<a class="anchor" name="38fe1080b343ba10e5d8a4b30c87cbdd"></a><!-- doxytag: member="Vamp::PluginHostAdapter::process" ref="38fe1080b343ba10e5d8a4b30c87cbdd" args="(const float *const *inputBuffers, RealTime timestamp)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginHostAdapter::FeatureSet</a> Vamp::PluginHostAdapter::process           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::PluginHostAdapter::process           </td>
           <td>(</td>
           <td class="paramtype">const float *const *&nbsp;</td>
           <td class="paramname"> <em>inputBuffers</em>, </td>
@@ -971,7 +873,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -980,27 +882,23 @@
 <p>
 Process a single block of input data. 
 <p>
-If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp will be the real time in seconds of the start of the supplied block of samples.<p>
+If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.<p>
 If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
 Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00353">353</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">convertFeatures()</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>, <a class="el" href="RealTime_8h-source.html#l00066">Vamp::RealTime::nsec</a>, <a class="el" href="struct__VampPluginDescriptor.html#c5a0a75b6e68b22fed536765d1f2f254">_VampPluginDescriptor::process</a>, <a class="el" href="struct__VampPluginDescriptor.html#c4bafe8ad2734d21a433d745b18e7d63">_VampPluginDescriptor::releaseFeatureSet</a>, and <a class="el" href="RealTime_8h-source.html#l00065">Vamp::RealTime::sec</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="d3f5f16a89a821da2ec1186fd2062e83"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getRemainingFeatures" ref="d3f5f16a89a821da2ec1186fd2062e83" args="()" -->
+<a class="anchor" name="984a4c11f3fbdcfd90e4837b1619a5ab"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getRemainingFeatures" ref="984a4c11f3fbdcfd90e4837b1619a5ab" args="()" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PluginHostAdapter::FeatureSet</a> Vamp::PluginHostAdapter::getRemainingFeatures           </td>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::PluginHostAdapter::getRemainingFeatures           </td>
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -1012,10 +910,6 @@
 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00372">372</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">convertFeatures()</a>, <a class="el" href="struct__VampPluginDescriptor.html#d22c666188aadab83c354a0edb18fcf0">_VampPluginDescriptor::getRemainingFeatures</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>, and <a class="el" href="struct__VampPluginDescriptor.html#c4bafe8ad2734d21a433d745b18e7d63">_VampPluginDescriptor::releaseFeatureSet</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="ee417a4c9ba9dbb63777c963d5f9452a"></a><!-- doxytag: member="Vamp::PluginHostAdapter::convertFeatures" ref="ee417a4c9ba9dbb63777c963d5f9452a" args="(VampFeatureList *, FeatureSet &amp;)" -->
@@ -1026,18 +920,18 @@
           <td class="memname">void Vamp::PluginHostAdapter::convertFeatures           </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> *&nbsp;</td>
-          <td class="paramname"> <em>features</em>, </td>
+          <td class="paramname">, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> &amp;&nbsp;</td>
-          <td class="paramname"> <em>fs</em></td><td>&nbsp;</td>
+          <td class="paramname"></td><td>&nbsp;</td>
         </tr>
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [protected]</code></td>
+          <td></td><td></td><td><code> [protected]</code></td>
         </tr>
       </table>
 </div>
@@ -1045,12 +939,6 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">385</a> of file <a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a>.</p>
-
-<p>References <a class="el" href="vamp_8h-source.html#l00190">_VampFeatureList::featureCount</a>, <a class="el" href="vamp_8h-source.html#l00193">_VampFeatureList::features</a>, <a class="el" href="struct__VampPluginDescriptor.html#a8fc88da704e24b2b5f674821dd380c1">_VampPluginDescriptor::getOutputCount</a>, <a class="el" href="vamp_8h-source.html#l00168">_VampFeature::hasTimestamp</a>, <a class="el" href="Plugin_8h-source.html#l00325">Vamp::Plugin::Feature::hasTimestamp</a>, <a class="el" href="Plugin_8h-source.html#l00344">Vamp::Plugin::Feature::label</a>, <a class="el" href="vamp_8h-source.html#l00183">_VampFeature::label</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00109">m_descriptor</a>, <a class="el" href="PluginHostAdapter_8h-source.html#l00110">m_handle</a>, <a class="el" href="vamp_8h-source.html#l00174">_VampFeature::nsec</a>, <a class="el" href="vamp_8h-source.html#l00171">_VampFeature::sec</a>, <a class="el" href="Plugin_8h-source.html#l00332">Vamp::Plugin::Feature::timestamp</a>, <a class="el" href="vamp_8h-source.html#l00177">_VampFeature::valueCount</a>, <a class="el" href="vamp_8h-source.html#l00180">_VampFeature::values</a>, and <a class="el" href="Plugin_8h-source.html#l00339">Vamp::Plugin::Feature::values</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00372">getRemainingFeatures()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00353">process()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="be13b3997a69fbcc09e2213faa352f91"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getType" ref="be13b3997a69fbcc09e2213faa352f91" args="() const " -->
@@ -1062,7 +950,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -1074,7 +962,7 @@
 Do not reimplement this function in your subclass. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00391">391</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00425">425</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -1092,9 +980,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8h-source.html#l00109">109</a> of file <a class="el" href="PluginHostAdapter_8h-source.html">PluginHostAdapter.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">convertFeatures()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00181">getCopyright()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00253">getCurrentProgram()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00163">getDescription()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00151">getIdentifier()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00135">getInputDomain()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00169">getMaker()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00296">getMaxChannelCount()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00289">getMinChannelCount()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00157">getName()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">getOutputDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00213">getParameter()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">getParameterDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00175">getPluginVersion()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00282">getPreferredBlockSize()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00275">getPreferredStepSize()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00241">getPrograms()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00372">getRemainingFeatures()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00145">getVampApiVersion()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00118">initialise()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00043">PluginHostAdapter()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00353">process()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00128">reset()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00262">selectProgram()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00227">setParameter()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00055">~PluginHostAdapter()</a>.</p>
+<p>Definition at line <a class="el" href="PluginHostAdapter_8h-source.html#l00113">113</a> of file <a class="el" href="PluginHostAdapter_8h-source.html">PluginHostAdapter.h</a>.</p>
 
 </div>
 </div><p>
@@ -1111,9 +997,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginHostAdapter_8h-source.html#l00110">110</a> of file <a class="el" href="PluginHostAdapter_8h-source.html">PluginHostAdapter.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">convertFeatures()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00253">getCurrentProgram()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00296">getMaxChannelCount()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00289">getMinChannelCount()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">getOutputDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00213">getParameter()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00282">getPreferredBlockSize()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00275">getPreferredStepSize()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00372">getRemainingFeatures()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00118">initialise()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00043">PluginHostAdapter()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00353">process()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00128">reset()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00262">selectProgram()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00227">setParameter()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00055">~PluginHostAdapter()</a>.</p>
+<p>Definition at line <a class="el" href="PluginHostAdapter_8h-source.html#l00114">114</a> of file <a class="el" href="PluginHostAdapter_8h-source.html">PluginHostAdapter.h</a>.</p>
 
 </div>
 </div><p>
@@ -1130,17 +1014,17 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00397">397</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">431</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00047">Vamp::HostExt::PluginRateExtractor::getRate()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00238">Vamp::HostExt::PluginBufferingAdapter::PluginBufferingAdapter()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00113">Vamp::HostExt::PluginInputDomainAdapter::PluginInputDomainAdapter()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
 
 </div>
 </div><p>
-<hr>The documentation for this class was generated from the following files:<ul>
-<li><a class="el" href="PluginHostAdapter_8h-source.html">PluginHostAdapter.h</a><li><a class="el" href="PluginHostAdapter_8cpp-source.html">PluginHostAdapter.cpp</a></ul>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="PluginHostAdapter_8h-source.html">PluginHostAdapter.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classVamp_1_1PluginHostAdapter__inherit__graph.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1PluginHostAdapter__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,2 +1,2 @@
-<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="41,82,140,106">
-<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="27,7,155,31">
+<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="41,80,140,107">
+<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="27,6,155,32">
Binary file code-doc/classVamp_1_1PluginHostAdapter__inherit__graph.png has changed
--- a/code-doc/classVamp_1_1Plugin__inherit__graph.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1Plugin__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,12 +1,13 @@
-<area shape="rect" href="$classAmplitudeFollower.html" title="Example plugin implementing the SuperCollider amplitude follower function." alt="" coords="381,6,509,30">
-<area shape="rect" href="$classPercussionOnsetDetector.html" title="Example plugin that detects percussive events." alt="" coords="360,54,531,78">
-<area shape="rect" href="$classSpectralCentroid.html" title="Example plugin that calculates the centre of gravity of the frequency domain representation..." alt="" coords="387,102,504,126">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginRateExtractor.html" title="Vamp::HostExt::PluginRateExtractor" alt="" coords="329,150,561,174">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="345,198,545,222">
-<area shape="rect" href="$classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C&#45;language..." alt="" coords="360,246,531,270">
-<area shape="rect" href="$classZeroCrossing.html" title="Example plugin that calculates the positions and density of zero&#45;crossing points..." alt="" coords="396,294,495,318">
-<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,150,133,174">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="684,126,935,150">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="687,174,932,198">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="673,222,945,246">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html" title="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter" alt="" coords="612,270,1007,294">
+<area shape="rect" href="$classAmplitudeFollower.html" title="Example plugin implementing the SuperCollider amplitude follower function." alt="" coords="365,5,493,32">
+<area shape="rect" href="$classFixedTempoEstimator.html" title="Example plugin that estimates the tempo of a short fixed&#45;tempo sample." alt="" coords="356,56,503,83">
+<area shape="rect" href="$classPercussionOnsetDetector.html" title="Example plugin that detects percussive events." alt="" coords="344,107,515,133">
+<area shape="rect" href="$classPowerSpectrum.html" title="Example plugin that returns a power spectrum calculated (trivially) from the frequency..." alt="" coords="373,157,485,184">
+<area shape="rect" href="$classSpectralCentroid.html" title="Example plugin that calculates the centre of gravity of the frequency domain representation..." alt="" coords="371,208,488,235">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="329,259,529,285">
+<area shape="rect" href="$classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C&#45;language..." alt="" coords="344,309,515,336">
+<area shape="rect" href="$classZeroCrossing.html" title="Example plugin that calculates the positions and density of zero&#45;crossing points..." alt="" coords="380,360,479,387">
+<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,183,133,209">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="592,183,840,209">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="593,233,839,260">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="580,284,852,311">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods..." alt="" coords="579,335,853,361">
--- a/code-doc/classVamp_1_1Plugin__inherit__graph.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1Plugin__inherit__graph.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-1fdc0d123de21caf38692f762b282897
\ No newline at end of file
+31b985e17164f0e43b6f86bac750d6d6
\ No newline at end of file
Binary file code-doc/classVamp_1_1Plugin__inherit__graph.png has changed
--- a/code-doc/classVamp_1_1RealTime-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classVamp_1_1RealTime-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -25,10 +25,10 @@
 </div>
 <div class="contents">
 <h1>Vamp::RealTime Member List</h1>This is the complete list of members for <a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#3a5ecc8888b559aad3b7d96911786b3a">frame2RealTime</a>(long frame, unsigned int sampleRate)</td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#512ca91f967c1d7923456f426926a9f6">fromMilliseconds</a>(int msec)</td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#754901a59483036097d8111b8c02f4f3">fromSeconds</a>(double sec)</td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#ffdd22eee09b38335d3133c0e9a8f7b3">fromTimeval</a>(const struct timeval &amp;)</td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#939b4b1d1ca190db69a418883f16ce8a">frame2RealTime</a>(long frame, unsigned int sampleRate)</td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#6992d9959fc4f19c11a98f17506f4905">fromMilliseconds</a>(int msec)</td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#e29ae57d19c66f256839988a0959c6bb">fromSeconds</a>(double sec)</td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#7f1e1e35ca5196283b2086e3d9cd9d3b">fromTimeval</a>(const struct timeval &amp;)</td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [static]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#76e22815db51ae180c38021110da9947">msec</a>() const </td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a></td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#e9b0ea7c217163d5327b1a2a0662a90b">operator!=</a>(const RealTime &amp;r) const </td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [inline]</code></td></tr>
@@ -46,15 +46,15 @@
   <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">RealTime</a>()</td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#75b2f0af2f9c49e649f8d30b452b049d">RealTime</a>(int s, int n)</td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#8f4dbd8ef24a0ec6a77dce67fff5434e">RealTime</a>(const RealTime &amp;r)</td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#1c32b50b1511cdca17cd6c1c3c05d9b5">realTime2Frame</a>(const RealTime &amp;r, unsigned int sampleRate)</td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [static]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#c046c73d88da6715e55b12e10534bb5c">realTime2Frame</a>(const RealTime &amp;r, unsigned int sampleRate)</td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [static]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a></td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#d44476618183bd736996a87292d03c07">toString</a>() const </td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#d75b927afadfa422ae512d169ccda0aa">toText</a>(bool fixedDp=false) const </td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#ace9e2c60af62273e45ccd98d623914c">usec</a>() const </td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#be453371597710148b0fd19bb452f8a9">zeroTime</a></td><td><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td><td><code> [static]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classZeroCrossing-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classZeroCrossing-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -66,8 +66,8 @@
   <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a>()</td><td><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classZeroCrossing.html#f1de0da862e6e2443581e4e16044675b">~ZeroCrossing</a>()</td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</a></td><td><code> [virtual]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:08 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classZeroCrossing.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classZeroCrossing.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -31,7 +31,7 @@
 <div class="dynsection">
 <p><center><img src="classZeroCrossing__inherit__graph.png" border="0" usemap="#ZeroCrossing__inherit__map" alt="Inheritance graph"></center>
 <map name="ZeroCrossing__inherit__map">
-<area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="20,82,119,106"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,7,133,31"></map>
+<area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="20,80,119,107"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,6,133,32"></map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
 
 <p>
@@ -116,7 +116,7 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>.  <a href="#be13b3997a69fbcc09e2213faa352f91"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">getVampApiVersion</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <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 compatibility level of the plugin.  <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.  <a href="#8fd2c48291c64b790f0efb8948508dcf"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">getParameterDescriptors</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#ac3e49b3b66cacfbb768dfdf07444f21"></a><br></td></tr>
@@ -157,7 +157,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00309">309</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00322">322</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -174,7 +174,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00347">347</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00380">380</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -191,7 +191,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00348">348</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00382">382</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -208,7 +208,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00195">195</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -225,7 +225,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00217">217</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -251,7 +251,7 @@
 </table>
 </dl>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00149">149</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">152</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -266,7 +266,7 @@
           <td class="paramtype">float&nbsp;</td>
           <td class="paramname"> <em>inputSampleRate</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -274,7 +274,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00045">45</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00046">46</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -287,7 +287,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -295,7 +295,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00052">52</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00053">53</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -325,7 +325,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -338,9 +338,9 @@
 Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00093">93</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">94</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
 
-<p>References <a class="el" href="Plugin_8h-source.html#l00196">Vamp::Plugin::getMaxChannelCount()</a>, <a class="el" href="Plugin_8h-source.html#l00191">Vamp::Plugin::getMinChannelCount()</a>, and <a class="el" href="ZeroCrossing_8h-source.html#l00073">m_stepSize</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">Vamp::Plugin::getMaxChannelCount()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">Vamp::Plugin::getMinChannelCount()</a>, and <a class="el" href="ZeroCrossing_8h-source.html#l00073">m_stepSize</a>.</p>
 
 </div>
 </div><p>
@@ -353,7 +353,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -365,7 +365,7 @@
 Not called for the first initialisation (i.e. initialise must also do a reset). 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00104">104</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00105">105</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
 
 <p>References <a class="el" href="ZeroCrossing_8h-source.html#l00074">m_previousSample</a>.</p>
 
@@ -380,7 +380,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual]</code></td>
+          <td> const<code> [inline, virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -394,7 +394,7 @@
 
 <p>Definition at line <a class="el" href="ZeroCrossing_8h-source.html#l00056">56</a> of file <a class="el" href="ZeroCrossing_8h-source.html">ZeroCrossing.h</a>.</p>
 
-<p>References <a class="el" href="Plugin_8h-source.html#l00149">Vamp::Plugin::TimeDomain</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">Vamp::Plugin::TimeDomain</a>.</p>
 
 </div>
 </div><p>
@@ -407,7 +407,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -421,7 +421,7 @@
 Example: "zero_crossings" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00057">57</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00058">58</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -434,7 +434,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -447,7 +447,7 @@
 Example: "Zero Crossings" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00063">63</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00064">64</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -460,7 +460,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -473,7 +473,7 @@
 Example: "Detect and count zero crossing points" 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00069">69</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00070">70</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -486,7 +486,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -498,7 +498,7 @@
 This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00075">75</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00076">76</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -511,7 +511,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -523,7 +523,7 @@
 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00081">81</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00082">82</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -536,7 +536,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -548,7 +548,7 @@
 This can be an informative text, without the same presentation constraints as mentioned for getMaker above. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00087">87</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00088">88</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -561,7 +561,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [virtual]</code></td>
+          <td> const<code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -573,9 +573,9 @@
 An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da" title="Process a single block of input data.">process()</a> call. 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">110</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">111</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
 
-<p>References <a class="el" href="Plugin_8h-source.html#l00239">Vamp::Plugin::OutputDescriptor::binCount</a>, <a class="el" href="Plugin_8h-source.html#l00219">Vamp::Plugin::OutputDescriptor::description</a>, <a class="el" href="Plugin_8h-source.html#l00231">Vamp::Plugin::OutputDescriptor::hasFixedBinCount</a>, <a class="el" href="Plugin_8h-source.html#l00252">Vamp::Plugin::OutputDescriptor::hasKnownExtents</a>, <a class="el" href="Plugin_8h-source.html#l00206">Vamp::Plugin::OutputDescriptor::identifier</a>, <a class="el" href="Plugin_8h-source.html#l00270">Vamp::Plugin::OutputDescriptor::isQuantized</a>, <a class="el" href="Plugin_8h-source.html#l00397">Vamp::Plugin::m_inputSampleRate</a>, <a class="el" href="Plugin_8h-source.html#l00212">Vamp::Plugin::OutputDescriptor::name</a>, <a class="el" href="Plugin_8h-source.html#l00282">Vamp::Plugin::OutputDescriptor::OneSamplePerStep</a>, <a class="el" href="Plugin_8h-source.html#l00277">Vamp::Plugin::OutputDescriptor::quantizeStep</a>, <a class="el" href="Plugin_8h-source.html#l00306">Vamp::Plugin::OutputDescriptor::sampleRate</a>, <a class="el" href="Plugin_8h-source.html#l00294">Vamp::Plugin::OutputDescriptor::sampleType</a>, <a class="el" href="Plugin_8h-source.html#l00224">Vamp::Plugin::OutputDescriptor::unit</a>, and <a class="el" href="Plugin_8h-source.html#l00288">Vamp::Plugin::OutputDescriptor::VariableSampleRate</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00242">Vamp::Plugin::OutputDescriptor::binCount</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00222">Vamp::Plugin::OutputDescriptor::description</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00234">Vamp::Plugin::OutputDescriptor::hasFixedBinCount</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00255">Vamp::Plugin::OutputDescriptor::hasKnownExtents</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00209">Vamp::Plugin::OutputDescriptor::identifier</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00273">Vamp::Plugin::OutputDescriptor::isQuantized</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">Vamp::Plugin::m_inputSampleRate</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00215">Vamp::Plugin::OutputDescriptor::name</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00285">Vamp::Plugin::OutputDescriptor::OneSamplePerStep</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00280">Vamp::Plugin::OutputDescriptor::quantizeStep</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00309">Vamp::Plugin::OutputDescriptor::sampleRate</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00297">Vamp::Plugin::OutputDescriptor::sampleType</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00227">Vamp::Plugin::OutputDescriptor::unit</a>, and <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00291">Vamp::Plugin::OutputDescriptor::VariableSampleRate</a>.</p>
 
 </div>
 </div><p>
@@ -598,7 +598,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
+          <td></td><td></td><td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -607,14 +607,14 @@
 <p>
 Process a single block of input data. 
 <p>
-If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp will be the real time in seconds of the start of the supplied block of samples.<p>
+If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.<p>
 If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).<p>
 Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">141</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">142</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
 
-<p>References <a class="el" href="RealTime_8cpp-source.html#l00232">Vamp::RealTime::frame2RealTime()</a>, <a class="el" href="Plugin_8h-source.html#l00325">Vamp::Plugin::Feature::hasTimestamp</a>, <a class="el" href="Plugin_8h-source.html#l00397">Vamp::Plugin::m_inputSampleRate</a>, <a class="el" href="ZeroCrossing_8h-source.html#l00074">m_previousSample</a>, <a class="el" href="ZeroCrossing_8h-source.html#l00073">m_stepSize</a>, <a class="el" href="Plugin_8h-source.html#l00332">Vamp::Plugin::Feature::timestamp</a>, and <a class="el" href="Plugin_8h-source.html#l00339">Vamp::Plugin::Feature::values</a>.</p>
+<p>References <a class="el" href="structVamp_1_1RealTime.html#939b4b1d1ca190db69a418883f16ce8a">Vamp::RealTime::frame2RealTime()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00339">Vamp::Plugin::Feature::hasTimestamp</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">Vamp::Plugin::m_inputSampleRate</a>, <a class="el" href="ZeroCrossing_8h-source.html#l00074">m_previousSample</a>, <a class="el" href="ZeroCrossing_8h-source.html#l00073">m_stepSize</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00347">Vamp::Plugin::Feature::timestamp</a>, and <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00369">Vamp::Plugin::Feature::values</a>.</p>
 
 </div>
 </div><p>
@@ -627,7 +627,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [virtual]</code></td>
+          <td><code> [virtual]</code></td>
         </tr>
       </table>
 </div>
@@ -639,7 +639,7 @@
 
 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>.</p>
 
-<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00190">190</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+<p>Definition at line <a class="el" href="ZeroCrossing_8cpp-source.html#l00191">191</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -652,7 +652,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -663,11 +663,11 @@
 <p>
 This should be called before <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>, and <a class="el" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#21e45180b19873f9ab69fe7a4e184a03">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classFixedTempoEstimator.html#68b8569b71504a0478caf990dbe30683">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00171">171</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00174">174</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00164">Vamp::HostExt::PluginWrapper::getPreferredBlockSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00283">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredBlockSize()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">Vamp::HostExt::PluginBufferingAdapter::Impl::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -680,7 +680,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -691,11 +691,11 @@
 <p>
 This should be called before <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p>
 A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>, and <a class="el" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classFixedTempoEstimator.html#d450bb7e7df559ae3d68dfbfb085676f">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00186">186</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00189">189</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00158">Vamp::HostExt::PluginWrapper::getPreferredStepSize()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00271">Vamp::HostExt::PluginInputDomainAdapter::Impl::getPreferredStepSize()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00314">Vamp::HostExt::PluginBufferingAdapter::Impl::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -708,7 +708,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -720,9 +720,9 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00191">191</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">194</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00170">Vamp::HostExt::PluginWrapper::getMinChannelCount()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00093">initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00095">SpectralCentroid::initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">Vamp::HostExt::PluginChannelAdapter::Impl::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">SpectralCentroid::initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">PowerSpectrum::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">FixedTempoEstimator::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -735,7 +735,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -747,9 +747,9 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00196">196</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">199</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00175">Vamp::HostExt::PluginWrapper::getMaxChannelCount()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00093">initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00095">SpectralCentroid::initialise()</a>, <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00119">Vamp::HostExt::PluginChannelAdapter::Impl::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">initialise()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00099">SpectralCentroid::initialise()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00092">PowerSpectrum::initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">PercussionOnsetDetector::initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00676">FixedTempoEstimator::initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -762,7 +762,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -774,7 +774,7 @@
 Do not reimplement this function in your subclass. 
 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00391">391</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00425">425</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -787,21 +787,21 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
 <p>
-Get the <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 compatibility level of the plugin. 
+Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. 
 <p>
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00067">67</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00072">72</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00080">Vamp::HostExt::PluginWrapper::getVampApiVersion()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
 
 </div>
 </div><p>
@@ -814,7 +814,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -824,11 +824,11 @@
 Get the controllable parameters of this plugin. 
 <p>
 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#bfa93b20d9b5651a32042a9bb7c8df13">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">AmplitudeFollower</a>, and <a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#602faa0bfaae83e2ca53b36292271a76">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#e157465a4e07d180bab05b5c3a4d8987">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00200">200</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00208">208</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00122">Vamp::HostExt::PluginWrapper::getParameterDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>.</p>
 
 </div>
 </div><p>
@@ -842,7 +842,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -852,11 +852,9 @@
 Get the value of a named parameter. 
 <p>
 The argument is the identifier field from that parameter's descriptor. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">AmplitudeFollower</a>, and <a class="el" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#2030b05fb1228b30ace16200780c9152">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00208">208</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00128">Vamp::HostExt::PluginWrapper::getParameter()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00216">216</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -879,7 +877,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [inline, virtual, inherited]</code></td>
+          <td></td><td></td><td><code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -889,11 +887,9 @@
 Set a named parameter. 
 <p>
 The first argument is the identifier field from that parameter's descriptor. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">AmplitudeFollower</a>, and <a class="el" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">PercussionOnsetDetector</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7a979b20c169d37adbd7b7d8b8a077b3">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">Vamp::PluginHostAdapter</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">Vamp::HostExt::PluginWrapper</a>, <a class="el" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">AmplitudeFollower</a>, <a class="el" href="classFixedTempoEstimator.html#8a5a413025384cf451c64d2c2ce13a75">FixedTempoEstimator</a>, and <a class="el" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">PercussionOnsetDetector</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00214">214</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00134">Vamp::HostExt::PluginWrapper::setParameter()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00222">222</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -906,7 +902,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -917,11 +913,9 @@
 <p>
 A program is a named shorthand for a set of parameter values; changing the program may cause the plugin to alter the values of its published parameters (and/or non-public internal processing parameters). The host should re-read the plugin's parameter values after setting a new program.<p>
 The programs must have unique names. 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#7ac5681dcfe08b7b8a796bffc0aff3e3">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">Vamp::HostExt::PluginWrapper</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#e0cde5cd625418c1bc470b91f75daafc">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00229">229</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginWrapper_8cpp-source.html#l00140">Vamp::HostExt::PluginWrapper::getPrograms()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00237">237</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -934,7 +928,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline, virtual, inherited]</code></td>
+          <td> const<code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -946,9 +940,7 @@
 
 <p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00234">234</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00146">Vamp::HostExt::PluginWrapper::getCurrentProgram()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00242">242</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -962,7 +954,7 @@
           <td class="paramtype">std::string&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline, virtual, inherited]</code></td>
+          <td><code> [inline, virtual, inherited]</code></td>
         </tr>
       </table>
 </div>
@@ -972,11 +964,9 @@
 Select a program. 
 <p>
 (If the given program name is not one of the available programs, do nothing.) 
-<p>Reimplemented in <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
+<p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>, <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>.</p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00240">240</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginWrapper_8cpp-source.html#l00152">Vamp::HostExt::PluginWrapper::selectProgram()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00248">248</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -996,7 +986,7 @@
 
 <p>Definition at line <a class="el" href="ZeroCrossing_8h-source.html#l00073">73</a> of file <a class="el" href="ZeroCrossing_8h-source.html">ZeroCrossing.h</a>.</p>
 
-<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00093">initialise()</a>, and <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">process()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00094">initialise()</a>, and <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">process()</a>.</p>
 
 </div>
 </div><p>
@@ -1015,7 +1005,7 @@
 
 <p>Definition at line <a class="el" href="ZeroCrossing_8h-source.html#l00074">74</a> of file <a class="el" href="ZeroCrossing_8h-source.html">ZeroCrossing.h</a>.</p>
 
-<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">process()</a>, and <a class="el" href="ZeroCrossing_8cpp-source.html#l00104">reset()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">process()</a>, and <a class="el" href="ZeroCrossing_8cpp-source.html#l00105">reset()</a>.</p>
 
 </div>
 </div><p>
@@ -1032,17 +1022,17 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00397">397</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00431">431</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="PluginWrapper_8cpp-source.html#l00047">Vamp::HostExt::PluginRateExtractor::getRate()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00238">Vamp::HostExt::PluginBufferingAdapter::PluginBufferingAdapter()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00113">Vamp::HostExt::PluginInputDomainAdapter::PluginInputDomainAdapter()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
 
 </div>
 </div><p>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="ZeroCrossing_8h-source.html">ZeroCrossing.h</a><li><a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:08 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/classZeroCrossing__inherit__graph.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/classZeroCrossing__inherit__graph.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,2 +1,2 @@
-<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="20,82,119,106">
-<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,7,133,31">
+<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="20,80,119,107">
+<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,6,133,32">
Binary file code-doc/classZeroCrossing__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/dir_2d75386d541e768dd0382c2de0bcb161.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,44 @@
+<!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: src/ Directory 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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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><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_2d75386d541e768dd0382c2de0bcb161.html">src</a>
+  </div>
+</div>
+<div class="contents">
+<h1>src Directory Reference</h1>
+<p>
+
+<p>
+<div class="dynheader">
+</div>
+<div class="dynsection">
+<p><center><img src="dir_2d75386d541e768dd0382c2de0bcb161_dep.png" border="0" usemap="#dir_2d75386d541e768dd0382c2de0bcb161_dep_map" alt="src/"></center>
+<map name="dir_2d75386d541e768dd0382c2de0bcb161_dep_map">
+<area shape="rect" href="dir_2d75386d541e768dd0382c2de0bcb161.html" title="src" alt="" coords="5,6,77,54"></map>
+</div>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Files</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="doc-overview.html">doc-overview</a> <a href="doc-overview-source.html">[code]</a></td></tr>
+
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/dir_2d75386d541e768dd0382c2de0bcb161_dep.map	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,1 @@
+<area shape="rect" href="dir_2d75386d541e768dd0382c2de0bcb161.html" title="src" alt="" coords="5,6,77,54">
Binary file code-doc/dir_2d75386d541e768dd0382c2de0bcb161_dep.png has changed
--- a/code-doc/dir_35887283b966ca996e4ff77f459c38ce.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/dir_35887283b966ca996e4ff77f459c38ce.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,12 +37,20 @@
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="AmplitudeFollower_8h.html">AmplitudeFollower.h</a> <a href="AmplitudeFollower_8h-source.html">[code]</a></td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="FixedTempoEstimator_8cpp.html">FixedTempoEstimator.cpp</a> <a href="FixedTempoEstimator_8cpp-source.html">[code]</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="FixedTempoEstimator_8h.html">FixedTempoEstimator.h</a> <a href="FixedTempoEstimator_8h-source.html">[code]</a></td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PercussionOnsetDetector_8cpp.html">PercussionOnsetDetector.cpp</a> <a href="PercussionOnsetDetector_8cpp-source.html">[code]</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PercussionOnsetDetector_8h.html">PercussionOnsetDetector.h</a> <a href="PercussionOnsetDetector_8h-source.html">[code]</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugins_8cpp.html">plugins.cpp</a> <a href="plugins_8cpp-source.html">[code]</a></td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PowerSpectrum_8cpp.html">PowerSpectrum.cpp</a> <a href="PowerSpectrum_8cpp-source.html">[code]</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PowerSpectrum_8h.html">PowerSpectrum.h</a> <a href="PowerSpectrum_8h-source.html">[code]</a></td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SpectralCentroid_8cpp.html">SpectralCentroid.cpp</a> <a href="SpectralCentroid_8cpp-source.html">[code]</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SpectralCentroid_8h.html">SpectralCentroid.h</a> <a href="SpectralCentroid_8h-source.html">[code]</a></td></tr>
@@ -53,8 +61,8 @@
 
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
Binary file code-doc/dir_35887283b966ca996e4ff77f459c38ce_dep.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/dir_4571ebff077265f6d30f5427df02fcd6.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,66 @@
+<!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-hostsdk/ Directory 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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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><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_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-hostsdk Directory Reference</h1>
+<p>
+
+<p>
+<div class="dynheader">
+</div>
+<div class="dynsection">
+<p><center><img src="dir_4571ebff077265f6d30f5427df02fcd6_dep.png" border="0" usemap="#dir_4571ebff077265f6d30f5427df02fcd6_dep_map" alt="vamp-hostsdk/"></center>
+<map name="dir_4571ebff077265f6d30f5427df02fcd6_dep_map">
+<area shape="rect" href="dir_4571ebff077265f6d30f5427df02fcd6.html" title="vamp&#45;hostsdk" alt="" coords="5,6,109,54"></map>
+</div>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Files</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hostguard_8h.html">hostguard.h</a> <a href="hostguard_8h-source.html">[code]</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-hostsdk_2Plugin_8h.html">vamp-hostsdk/Plugin.h</a> <a href="vamp-hostsdk_2Plugin_8h-source.html">[code]</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-hostsdk_2PluginBase_8h.html">vamp-hostsdk/PluginBase.h</a> <a href="vamp-hostsdk_2PluginBase_8h-source.html">[code]</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginBufferingAdapter_8h.html">PluginBufferingAdapter.h</a> <a href="PluginBufferingAdapter_8h-source.html">[code]</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginChannelAdapter_8h.html">PluginChannelAdapter.h</a> <a href="PluginChannelAdapter_8h-source.html">[code]</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginHostAdapter_8h.html">PluginHostAdapter.h</a> <a href="PluginHostAdapter_8h-source.html">[code]</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginInputDomainAdapter_8h.html">PluginInputDomainAdapter.h</a> <a href="PluginInputDomainAdapter_8h-source.html">[code]</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginLoader_8h.html">PluginLoader.h</a> <a href="PluginLoader_8h-source.html">[code]</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginSummarisingAdapter_8h.html">PluginSummarisingAdapter.h</a> <a href="PluginSummarisingAdapter_8h-source.html">[code]</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginWrapper_8h.html">PluginWrapper.h</a> <a href="PluginWrapper_8h-source.html">[code]</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-hostsdk_2RealTime_8h.html">vamp-hostsdk/RealTime.h</a> <a href="vamp-hostsdk_2RealTime_8h-source.html">[code]</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-hostsdk_8h.html">vamp-hostsdk.h</a> <a href="vamp-hostsdk_8h-source.html">[code]</a></td></tr>
+
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/dir_4571ebff077265f6d30f5427df02fcd6_dep.map	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,1 @@
+<area shape="rect" href="dir_4571ebff077265f6d30f5427df02fcd6.html" title="vamp&#45;hostsdk" alt="" coords="5,6,109,54">
Binary file code-doc/dir_4571ebff077265f6d30f5427df02fcd6_dep.png has changed
--- a/code-doc/dir_5b77fce4b90561041d958141b45c7c55.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/dir_5b77fce4b90561041d958141b45c7c55.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -28,36 +28,27 @@
 <div class="dynsection">
 <p><center><img src="dir_5b77fce4b90561041d958141b45c7c55_dep.png" border="0" usemap="#dir_5b77fce4b90561041d958141b45c7c55_dep_map" alt="vamp-sdk/"></center>
 <map name="dir_5b77fce4b90561041d958141b45c7c55_dep_map">
-<area shape="rect" href="dir_fa454903fff8cd477733ebe28a3468c0.html" title="hostext" alt="" coords="27,38,99,86"><area shape="rect" href="dir_5b77fce4b90561041d958141b45c7c55.html" alt="" coords="16,16,211,96"></map>
+<area shape="rect" href="dir_5b77fce4b90561041d958141b45c7c55.html" title="vamp&#45;sdk" alt="" coords="5,6,83,54"></map>
 </div>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Directories</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a></td></tr>
+<tr><td colspan="2"><br><h2>Files</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugguard_8h.html">plugguard.h</a> <a href="plugguard_8h-source.html">[code]</a></td></tr>
 
-<tr><td colspan="2"><br><h2>Files</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="doc-overview.html">doc-overview</a> <a href="doc-overview-source.html">[code]</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="Plugin_8h.html">Plugin.h</a> <a href="Plugin_8h-source.html">[code]</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginAdapter_8cpp.html">PluginAdapter.cpp</a> <a href="PluginAdapter_8cpp-source.html">[code]</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-sdk_2Plugin_8h.html">vamp-sdk/Plugin.h</a> <a href="vamp-sdk_2Plugin_8h-source.html">[code]</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginAdapter_8h.html">PluginAdapter.h</a> <a href="PluginAdapter_8h-source.html">[code]</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginBase_8h.html">PluginBase.h</a> <a href="PluginBase_8h-source.html">[code]</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-sdk_2PluginBase_8h.html">vamp-sdk/PluginBase.h</a> <a href="vamp-sdk_2PluginBase_8h-source.html">[code]</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginHostAdapter_8cpp.html">PluginHostAdapter.cpp</a> <a href="PluginHostAdapter_8cpp-source.html">[code]</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-sdk_2RealTime_8h.html">vamp-sdk/RealTime.h</a> <a href="vamp-sdk_2RealTime_8h-source.html">[code]</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginHostAdapter_8h.html">PluginHostAdapter.h</a> <a href="PluginHostAdapter_8h-source.html">[code]</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="RealTime_8cpp.html">RealTime.cpp</a> <a href="RealTime_8cpp-source.html">[code]</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="RealTime_8h.html">RealTime.h</a> <a href="RealTime_8h-source.html">[code]</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-sdk_8h.html">vamp-sdk.h</a> <a href="vamp-sdk_8h-source.html">[code]</a></td></tr>
 
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/dir_5b77fce4b90561041d958141b45c7c55_dep.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/dir_5b77fce4b90561041d958141b45c7c55_dep.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,2 +1,1 @@
-<area shape="rect" href="dir_fa454903fff8cd477733ebe28a3468c0.html" title="hostext" alt="" coords="27,38,99,86">
-<area shape="rect" href="dir_5b77fce4b90561041d958141b45c7c55.html" alt="" coords="16,16,211,96">
+<area shape="rect" href="dir_5b77fce4b90561041d958141b45c7c55.html" title="vamp&#45;sdk" alt="" coords="5,6,83,54">
Binary file code-doc/dir_5b77fce4b90561041d958141b45c7c55_dep.png has changed
--- a/code-doc/dir_b086eb10f854304ab96fb3af468374a7.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/dir_b086eb10f854304ab96fb3af468374a7.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,8 +37,8 @@
 
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
Binary file code-doc/dir_b086eb10f854304ab96fb3af468374a7_dep.png has changed
--- a/code-doc/dir_dc0199af6955c245f7b5a687135670df.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/dir_dc0199af6955c245f7b5a687135670df.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -39,8 +39,8 @@
 
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
Binary file code-doc/dir_dc0199af6955c245f7b5a687135670df_dep.png has changed
--- a/code-doc/dir_fa454903fff8cd477733ebe28a3468c0.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-<!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-sdk/hostext/ Directory 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&nbsp;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><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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
-  </div>
-</div>
-<div class="contents">
-<h1>hostext Directory Reference</h1>
-<p>
-
-<p>
-<div class="dynheader">
-</div>
-<div class="dynsection">
-<p><center><img src="dir_fa454903fff8cd477733ebe28a3468c0_dep.png" border="0" usemap="#dir_fa454903fff8cd477733ebe28a3468c0_dep_map" alt="vamp-sdk/hostext/"></center>
-<map name="dir_fa454903fff8cd477733ebe28a3468c0_dep_map">
-<area shape="rect" href="dir_fa454903fff8cd477733ebe28a3468c0.html" title="hostext" alt="" coords="27,52,99,100"><area shape="rect" href="dir_5b77fce4b90561041d958141b45c7c55.html" title="vamp&#45;sdk" alt="" coords="16,16,109,110"></map>
-</div>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Files</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginBufferingAdapter_8cpp.html">PluginBufferingAdapter.cpp</a> <a href="PluginBufferingAdapter_8cpp-source.html">[code]</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginBufferingAdapter_8h.html">PluginBufferingAdapter.h</a> <a href="PluginBufferingAdapter_8h-source.html">[code]</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginChannelAdapter_8cpp.html">PluginChannelAdapter.cpp</a> <a href="PluginChannelAdapter_8cpp-source.html">[code]</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginChannelAdapter_8h.html">PluginChannelAdapter.h</a> <a href="PluginChannelAdapter_8h-source.html">[code]</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginInputDomainAdapter_8cpp.html">PluginInputDomainAdapter.cpp</a> <a href="PluginInputDomainAdapter_8cpp-source.html">[code]</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginInputDomainAdapter_8h.html">PluginInputDomainAdapter.h</a> <a href="PluginInputDomainAdapter_8h-source.html">[code]</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginLoader_8cpp.html">PluginLoader.cpp</a> <a href="PluginLoader_8cpp-source.html">[code]</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginLoader_8h.html">PluginLoader.h</a> <a href="PluginLoader_8h-source.html">[code]</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginWrapper_8cpp.html">PluginWrapper.cpp</a> <a href="PluginWrapper_8cpp-source.html">[code]</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="PluginWrapper_8h.html">PluginWrapper.h</a> <a href="PluginWrapper_8h-source.html">[code]</a></td></tr>
-
-</table>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/dir_fa454903fff8cd477733ebe28a3468c0_dep.map	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<area shape="rect" href="dir_fa454903fff8cd477733ebe28a3468c0.html" title="hostext" alt="" coords="27,52,99,100">
-<area shape="rect" href="dir_5b77fce4b90561041d958141b45c7c55.html" title="vamp&#45;sdk" alt="" coords="16,16,109,110">
Binary file code-doc/dir_fa454903fff8cd477733ebe28a3468c0_dep.png has changed
--- a/code-doc/dirs.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/dirs.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -20,15 +20,14 @@
 <h1>Directories</h1>This directory hierarchy is sorted roughly, but not completely, alphabetically:<ul>
 <li><a class="el" href="dir_35887283b966ca996e4ff77f459c38ce.html">examples</a>
 <li><a class="el" href="dir_dc0199af6955c245f7b5a687135670df.html">host</a>
+<li><a class="el" href="dir_2d75386d541e768dd0382c2de0bcb161.html">src</a>
 <li><a class="el" href="dir_b086eb10f854304ab96fb3af468374a7.html">vamp</a>
+<li><a class="el" href="dir_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
 <li><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
-<ul>
-<li><a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
-</ul>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/doc-overview-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/doc-overview-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -15,14 +15,14 @@
       <li><a href="dirs.html"><span>Directories</span></a></li>
     </ul>
   </div>
-  <div class="navpath"><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
+  <div class="navpath"><a class="el" href="dir_2d75386d541e768dd0382c2de0bcb161.html">src</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>doc-overview</h1><a href="doc-overview.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/doc-overview.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/doc-overview.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -15,7 +15,7 @@
       <li><a href="dirs.html"><span>Directories</span></a></li>
     </ul>
   </div>
-  <div class="navpath"><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
+  <div class="navpath"><a class="el" href="dir_2d75386d541e768dd0382c2de0bcb161.html">src</a>
   </div>
 </div>
 <div class="contents">
@@ -27,8 +27,8 @@
 <tr><td></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/doxygen.css	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/doxygen.css	Tue Dec 09 11:02:57 2008 +0000
@@ -407,6 +407,7 @@
 	font-family: sans-serif;
 	margin:0.5em;
 }
+/* these are for tree view when used as main index */
 .directory { 
 	font-size: 9pt; 
 	font-weight: bold; 
@@ -416,6 +417,21 @@
 	margin-top: 1em; 
 	font-size: 11pt; 
 }
+
+/* The following two styles can be used to replace the root node title */
+/* with an image of your choice.  Simply uncomment the next two styles, */
+/* specify the name of your image and be sure to set 'height' to the */
+/* proper pixel height of your image. */
+
+/* .directory h3.swap { */
+/* 	height: 61px; */
+/* 	background-repeat: no-repeat; */
+/* 	background-image: url("yourimage.gif"); */
+/* } */
+/* .directory h3.swap span { */
+/* 	display: none; */
+/* } */
+
 .directory > h3 { 
 	margin-top: 0; 
 }
@@ -430,4 +446,28 @@
 .directory img { 
 	vertical-align: -30%; 
 }
+/* these are for tree view when not used as main index */
+.directory-alt { 
+	font-size: 100%; 
+	font-weight: bold; 
+}
+.directory-alt h3 { 
+	margin: 0px; 
+	margin-top: 1em; 
+	font-size: 11pt; 
+}
+.directory-alt > h3 { 
+	margin-top: 0; 
+}
+.directory-alt p { 
+	margin: 0px; 
+	white-space: nowrap; 
+}
+.directory-alt div { 
+	display: none; 
+	margin: 0px; 
+}
+.directory-alt img { 
+	vertical-align: -30%; 
+}
 
--- a/code-doc/files.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/files.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -27,38 +27,42 @@
   <tr><td class="indexkey"><a class="el" href="AmplitudeFollower_8cpp.html">AmplitudeFollower.cpp</a> <a href="AmplitudeFollower_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="AmplitudeFollower_8h.html">AmplitudeFollower.h</a> <a href="AmplitudeFollower_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="doc-overview.html">doc-overview</a> <a href="doc-overview-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="FixedTempoEstimator_8cpp.html">FixedTempoEstimator.cpp</a> <a href="FixedTempoEstimator_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="FixedTempoEstimator_8h.html">FixedTempoEstimator.h</a> <a href="FixedTempoEstimator_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="hostguard_8h.html">hostguard.h</a> <a href="hostguard_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="PercussionOnsetDetector_8cpp.html">PercussionOnsetDetector.cpp</a> <a href="PercussionOnsetDetector_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="PercussionOnsetDetector_8h.html">PercussionOnsetDetector.h</a> <a href="PercussionOnsetDetector_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="Plugin_8h.html">Plugin.h</a> <a href="Plugin_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="PluginAdapter_8cpp.html">PluginAdapter.cpp</a> <a href="PluginAdapter_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="plugguard_8h.html">plugguard.h</a> <a href="plugguard_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="vamp-sdk_2Plugin_8h.html">vamp-sdk/Plugin.h</a> <a href="vamp-sdk_2Plugin_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="vamp-hostsdk_2Plugin_8h.html">vamp-hostsdk/Plugin.h</a> <a href="vamp-hostsdk_2Plugin_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="PluginAdapter_8h.html">PluginAdapter.h</a> <a href="PluginAdapter_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="PluginBase_8h.html">PluginBase.h</a> <a href="PluginBase_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="PluginBufferingAdapter_8cpp.html">PluginBufferingAdapter.cpp</a> <a href="PluginBufferingAdapter_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="vamp-sdk_2PluginBase_8h.html">vamp-sdk/PluginBase.h</a> <a href="vamp-sdk_2PluginBase_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="vamp-hostsdk_2PluginBase_8h.html">vamp-hostsdk/PluginBase.h</a> <a href="vamp-hostsdk_2PluginBase_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="PluginBufferingAdapter_8h.html">PluginBufferingAdapter.h</a> <a href="PluginBufferingAdapter_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="PluginChannelAdapter_8cpp.html">PluginChannelAdapter.cpp</a> <a href="PluginChannelAdapter_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="PluginChannelAdapter_8h.html">PluginChannelAdapter.h</a> <a href="PluginChannelAdapter_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="PluginHostAdapter_8cpp.html">PluginHostAdapter.cpp</a> <a href="PluginHostAdapter_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="PluginHostAdapter_8h.html">PluginHostAdapter.h</a> <a href="PluginHostAdapter_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="PluginInputDomainAdapter_8cpp.html">PluginInputDomainAdapter.cpp</a> <a href="PluginInputDomainAdapter_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="PluginInputDomainAdapter_8h.html">PluginInputDomainAdapter.h</a> <a href="PluginInputDomainAdapter_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="PluginLoader_8cpp.html">PluginLoader.cpp</a> <a href="PluginLoader_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="PluginLoader_8h.html">PluginLoader.h</a> <a href="PluginLoader_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="plugins_8cpp.html">plugins.cpp</a> <a href="plugins_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="PluginWrapper_8cpp.html">PluginWrapper.cpp</a> <a href="PluginWrapper_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="PluginSummarisingAdapter_8h.html">PluginSummarisingAdapter.h</a> <a href="PluginSummarisingAdapter_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="PluginWrapper_8h.html">PluginWrapper.h</a> <a href="PluginWrapper_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="RealTime_8cpp.html">RealTime.cpp</a> <a href="RealTime_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
-  <tr><td class="indexkey"><a class="el" href="RealTime_8h.html">RealTime.h</a> <a href="RealTime_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="PowerSpectrum_8cpp.html">PowerSpectrum.cpp</a> <a href="PowerSpectrum_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="PowerSpectrum_8h.html">PowerSpectrum.h</a> <a href="PowerSpectrum_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="vamp-sdk_2RealTime_8h.html">vamp-sdk/RealTime.h</a> <a href="vamp-sdk_2RealTime_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="vamp-hostsdk_2RealTime_8h.html">vamp-hostsdk/RealTime.h</a> <a href="vamp-hostsdk_2RealTime_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="SpectralCentroid_8cpp.html">SpectralCentroid.cpp</a> <a href="SpectralCentroid_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="SpectralCentroid_8h.html">SpectralCentroid.h</a> <a href="SpectralCentroid_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="system_8h.html">system.h</a> <a href="system_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="vamp-hostsdk_8h.html">vamp-hostsdk.h</a> <a href="vamp-hostsdk_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><a class="el" href="vamp-sdk_8h.html">vamp-sdk.h</a> <a href="vamp-sdk_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="vamp-simple-host_8cpp.html">vamp-simple-host.cpp</a> <a href="vamp-simple-host_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="vamp_8h.html">vamp.h</a> <a href="vamp_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="ZeroCrossing_8cpp.html">ZeroCrossing.cpp</a> <a href="ZeroCrossing_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="ZeroCrossing_8h.html">ZeroCrossing.h</a> <a href="ZeroCrossing_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,13 +53,10 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
@@ -78,14 +74,16 @@
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494763a9a0caf512d9671b90c05c2808a09">Vamp::HostExt::PluginLoader</a>
 <li>AdapterFlags
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494">Vamp::HostExt::PluginLoader</a>
-<li>AdapterMap
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#6c8f2c8fce370d586785353c939601d5">Vamp::PluginAdapterBase::Impl</a>
 <li>AmplitudeFollower()
 : <a class="el" href="classAmplitudeFollower.html#29eaeffc353da2614ae508abcd0ab63f">AmplitudeFollower</a>
+<li>assembleFeatures()
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#20389ba1515f6ce4181d3f41e5c4f347">FixedTempoEstimator::D</a>
+<li>AveragingMethod
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">Vamp::HostExt::PluginSummarisingAdapter</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x62.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x62.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li class="current"><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,13 +53,10 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
@@ -74,8 +70,8 @@
 , <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#31d9b79e2d8241344f551a22fcb5c8c7">Vamp::Plugin::OutputDescriptor</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x63.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x63.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li class="current"><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,38 +53,36 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_c">- c -</a></h3><ul>
-<li>checkOutputMap()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8274f19566392f843cbf5f745308fd2c">Vamp::PluginAdapterBase::Impl</a>
+<li>calculate()
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#4f2cbc11fba5bc8af3fd2a0078156091">FixedTempoEstimator::D</a>
 <li>cleanup
 : <a class="el" href="struct__VampPluginDescriptor.html#0e4522c33e59c3c518b9262f2477bc27">_VampPluginDescriptor</a>
-, <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b4199ab4a8ba40098aac387032c52aa4">Vamp::PluginAdapterBase::Impl</a>
 <li>composePluginKey()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c84fafd9b12d44f8756628571b57d7ea">Vamp::HostExt::PluginLoader::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#cc6865d27825c100d7b6f9ed6ecf5207">Vamp::HostExt::PluginLoader</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#cc6865d27825c100d7b6f9ed6ecf5207">Vamp::HostExt::PluginLoader</a>
+<li>ContinuousTimeAverage
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac766af6316c12e29bdbdff90c5fec764baa">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>convertFeatures()
 : <a class="el" href="classVamp_1_1PluginHostAdapter.html#ee417a4c9ba9dbb63777c963d5f9452a">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#550b4522bfbf1ad23297be28c51a4d72">Vamp::PluginAdapterBase::Impl</a>
 <li>copyright
 : <a class="el" href="struct__VampPluginDescriptor.html#e704bba384af0de056a26da1b13ee521">_VampPluginDescriptor</a>
+<li>Count
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717052395772fa2e74b3f617e20c76d579ad6">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>createPlugin()
-: <a class="el" href="classVamp_1_1PluginAdapter.html#3f387e7e37409e00d32477903b5b13d3">Vamp::PluginAdapter&lt; P &gt;</a>
-, <a class="el" href="classVamp_1_1PluginAdapterBase.html#9116adb9b7a426f4f0ded15e45a5531b">Vamp::PluginAdapterBase</a>
+: <a class="el" href="classVamp_1_1PluginAdapterBase.html#9116adb9b7a426f4f0ded15e45a5531b">Vamp::PluginAdapterBase</a>
+, <a class="el" href="classVamp_1_1PluginAdapter.html#3f387e7e37409e00d32477903b5b13d3">Vamp::PluginAdapter&lt; P &gt;</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x64.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x64.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li class="current"><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,33 +53,36 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_d">- d -</a></h3><ul>
-<li>decomposePluginKey()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b06d720c0d53f908426ce244294d38ed">Vamp::HostExt::PluginLoader::Impl</a>
+<li>D()
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#104a9b64d47eca678844584f69ca0b9d">FixedTempoEstimator::D</a>
 <li>defaultValue
 : <a class="el" href="struct__VampParameterDescriptor.html#3d37f986ee152ab55feb9902b35f7aca">_VampParameterDescriptor</a>
 , <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc">Vamp::PluginBase::ParameterDescriptor</a>
 <li>description
-: <a class="el" href="struct__VampPluginDescriptor.html#9ff8050f92f1a04a68bb34a9d368295e">_VampPluginDescriptor</a>
+: <a class="el" href="struct__VampParameterDescriptor.html#95489272d6cf5a5b487e949da8e4fac6">_VampParameterDescriptor</a>
+, <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#780ddad41e433d85c82f9ea4d959cbaf">Vamp::PluginBase::ParameterDescriptor</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1">Vamp::Plugin::OutputDescriptor</a>
 , <a class="el" href="struct__VampOutputDescriptor.html#bfa911b138cfb80cf63e8f2e0fa0fb89">_VampOutputDescriptor</a>
-, <a class="el" href="struct__VampParameterDescriptor.html#95489272d6cf5a5b487e949da8e4fac6">_VampParameterDescriptor</a>
-, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1">Vamp::Plugin::OutputDescriptor</a>
-, <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#780ddad41e433d85c82f9ea4d959cbaf">Vamp::PluginBase::ParameterDescriptor</a>
+, <a class="el" href="struct__VampPluginDescriptor.html#9ff8050f92f1a04a68bb34a9d368295e">_VampPluginDescriptor</a>
+<li>duration
+: <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#f687c0a7fe041757e922ec296862b115">Vamp::Plugin::Feature</a>
+<li>durationNsec
+: <a class="el" href="struct__VampFeatureV2.html#f71693d907f69048d602d28edbce679e">_VampFeatureV2</a>
+<li>durationSec
+: <a class="el" href="struct__VampFeatureV2.html#bc95aac3a2efdef6ef0b17e7b6bd3daf">_VampFeatureV2</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x65.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-<!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: Class Members</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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-  <div class="tabs">
-    <ul>
-      <li class="current"><a href="functions.html"><span>All</span></a></li>
-      <li><a href="functions_func.html"><span>Functions</span></a></li>
-      <li><a href="functions_vars.html"><span>Variables</span></a></li>
-      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
-      <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
-      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
-    </ul>
-  </div>
-  <div class="tabs">
-    <ul>
-      <li><a href="functions.html#index_a"><span>a</span></a></li>
-      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
-      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
-      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li class="current"><a href="functions_0x65.html#index_e"><span>e</span></a></li>
-      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
-      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
-      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
-      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
-      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
-      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
-      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
-      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
-      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
-      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
-      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
-      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
-      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
-      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
-      <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
-      <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
-    </ul>
-  </div>
-
-<p>
-</div>
-<div class="contents">
-Here is a list of all class members with links to the classes they belong to:
-<p>
-<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
-<li>enumeratePlugins()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6fb71e4d0b4ff367ffef141c5e62763d">Vamp::HostExt::PluginLoader::Impl</a>
-</ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/functions_0x66.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x66.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li class="current"><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,44 +53,43 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_f">- f -</a></h3><ul>
+<li>Feature()
+: <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#cd4b4cd0d2c31512f4a5df50f8f7a7b8">Vamp::Plugin::Feature</a>
 <li>featureCount
 : <a class="el" href="struct__VampFeatureList.html#01db33a31ae5e04a4bd097f4b6aa75f1">_VampFeatureList</a>
 <li>FeatureList
 : <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">Vamp::Plugin</a>
 <li>features
-: <a class="el" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f">_VampFeatureList</a>
+: <a class="el" href="struct__VampFeatureList.html#103c817094643ac5ff4410768f4f92a7">_VampFeatureList</a>
 <li>FeatureSet
 : <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Vamp::Plugin</a>
-<li>fft()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#7ea985ca8cdc45dd156e8d50293c3085">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
 <li>FixedSampleRate
 : <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c4c74bd2fc96dfe2815623f94b40e5629">Vamp::Plugin::OutputDescriptor</a>
+<li>FixedTempoEstimator()
+: <a class="el" href="classFixedTempoEstimator.html#3967c189f054f864639837c2519bd64d">FixedTempoEstimator</a>
 <li>frame2RealTime()
-: <a class="el" href="structVamp_1_1RealTime.html#3a5ecc8888b559aad3b7d96911786b3a">Vamp::RealTime</a>
+: <a class="el" href="structVamp_1_1RealTime.html#939b4b1d1ca190db69a418883f16ce8a">Vamp::RealTime</a>
 <li>FrequencyDomain
 : <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">Vamp::Plugin</a>
 <li>fromMilliseconds()
-: <a class="el" href="structVamp_1_1RealTime.html#512ca91f967c1d7923456f426926a9f6">Vamp::RealTime</a>
+: <a class="el" href="structVamp_1_1RealTime.html#6992d9959fc4f19c11a98f17506f4905">Vamp::RealTime</a>
 <li>fromSeconds()
-: <a class="el" href="structVamp_1_1RealTime.html#754901a59483036097d8111b8c02f4f3">Vamp::RealTime</a>
+: <a class="el" href="structVamp_1_1RealTime.html#e29ae57d19c66f256839988a0959c6bb">Vamp::RealTime</a>
 <li>fromTimeval()
-: <a class="el" href="structVamp_1_1RealTime.html#ffdd22eee09b38335d3133c0e9a8f7b3">Vamp::RealTime</a>
+: <a class="el" href="structVamp_1_1RealTime.html#7f1e1e35ca5196283b2086e3d9cd9d3b">Vamp::RealTime</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x67.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x67.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li class="current"><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,72 +53,77 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_g">- g -</a></h3><ul>
-<li>generateTaxonomy()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#923d9ace30548d8f3cce58b4037ec9e4">Vamp::HostExt::PluginLoader::Impl</a>
+<li>getActualStepAndBlockSizes()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a065985fd864f6869d1bc7fea6fa2ece">Vamp::HostExt::PluginBufferingAdapter</a>
 <li>getCopyright()
 : <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classPowerSpectrum.html#708b4d335c57643d5ef2b2e1caf43bd9">PowerSpectrum</a>
+, <a class="el" href="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980">SpectralCentroid</a>
+, <a class="el" href="classAmplitudeFollower.html#0c197fc90f30d91cb4403115c83c9134">AmplitudeFollower</a>
 , <a class="el" href="classZeroCrossing.html#f9c41b92aa8ff8bddaebf75569ff789c">ZeroCrossing</a>
-, <a class="el" href="classAmplitudeFollower.html#0c197fc90f30d91cb4403115c83c9134">AmplitudeFollower</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#c73c9d6baad04369beee695e99584815">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classFixedTempoEstimator.html#50c6b64530c84c0707ba3936c5022a48">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#1a22ece271330c94cc08798a77416351">PercussionOnsetDetector</a>
-, <a class="el" href="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980">SpectralCentroid</a>
 <li>getCurrentProgram
 : <a class="el" href="struct__VampPluginDescriptor.html#861a77525a95d424cb846820b018af53">_VampPluginDescriptor</a>
 , <a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">Vamp::PluginBase</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">Vamp::HostExt::PluginWrapper</a>
 <li>getDescription()
-: <a class="el" href="classAmplitudeFollower.html#6f0f2fea1fdb4b51e688edfe859d5062">AmplitudeFollower</a>
+: <a class="el" href="classVamp_1_1PluginHostAdapter.html#5eaafcef030e81b90a3e77cf16cf8ae1">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classAmplitudeFollower.html#6f0f2fea1fdb4b51e688edfe859d5062">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator.html#06b00853f00c2e78d490697fcd7d1920">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#9061d189705802a48973a7ccab6360db">PercussionOnsetDetector</a>
+, <a class="el" href="classPowerSpectrum.html#7b48d56dc954f3af344f7e4dcd8993e5">PowerSpectrum</a>
 , <a class="el" href="classSpectralCentroid.html#8fbb74a46283057d9a0b0e4718ee943c">SpectralCentroid</a>
 , <a class="el" href="classZeroCrossing.html#710bb0b013157adaeef2a9e6867b4478">ZeroCrossing</a>
 , <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#5eaafcef030e81b90a3e77cf16cf8ae1">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">Vamp::HostExt::PluginWrapper</a>
 <li>getDescriptor()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#31d6c53c6ef9851782674f3e14bf891d">Vamp::PluginAdapterBase::Impl</a>
-, <a class="el" href="classVamp_1_1PluginAdapterBase.html#7ff5c9374a8dc43f977c3707d1da45b5">Vamp::PluginAdapterBase</a>
+: <a class="el" href="classVamp_1_1PluginAdapterBase.html#d24595002512f9f00e8e45216d6f5dfb">Vamp::PluginAdapterBase</a>
 <li>getIdentifier()
-: <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>
+: <a class="el" href="classSpectralCentroid.html#1b2c4c8440c024c4c635fcef5697949f">SpectralCentroid</a>
+, <a class="el" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a">ZeroCrossing</a>
+, <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#b27423a656f878d97d2ad2eba4e76c7a">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classAmplitudeFollower.html#fe7576af95c8fcc7f5bad42eec9f9f29">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator.html#b818edcf1555177d10260e197e3a5e7a">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#267c83a7533146c127e2c3be310e0154">PercussionOnsetDetector</a>
-, <a class="el" href="classSpectralCentroid.html#1b2c4c8440c024c4c635fcef5697949f">SpectralCentroid</a>
-, <a class="el" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a">ZeroCrossing</a>
+, <a class="el" href="classPowerSpectrum.html#9e9d8349461cbb88d7565a5e8c51b64e">PowerSpectrum</a>
 <li>getInputDomain()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870">Vamp::HostExt::PluginWrapper</a>
+: <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#8e9d25673367c741631a60cbb36e91d2">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#47ff1ed72889f323da63f8abc9ea581a">Vamp::HostExt::PluginInputDomainAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e203faf8384c9e1fddc381409aa8a214">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classAmplitudeFollower.html#fc07a389b5f922b944b0350fd232d2eb">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator.html#055689c9b41b0945e8d3cdbc3b8c3a2e">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#4f6954267696ee5bfa7dd1c4a6cfa92a">PercussionOnsetDetector</a>
+, <a class="el" href="classPowerSpectrum.html#e04e0e34847a93f3444d04c802ee56ef">PowerSpectrum</a>
 , <a class="el" href="classSpectralCentroid.html#0ec2cb74c1c5f6e57d0bd9dcf7c8f469">SpectralCentroid</a>
 , <a class="el" href="classZeroCrossing.html#afe2ce6ebd353a14c40db7e8e60f4051">ZeroCrossing</a>
-, <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#9c5239a4da67f1a426cd059e1a2856eb">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#376fa97a1c721255541fe35d71368976">Vamp::HostExt::PluginInputDomainAdapter</a>
 <li>getInstance()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#dbb5c8855697a24be890e4f107e26b0e">Vamp::HostExt::PluginLoader</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#1d77fa1d58ee4fee2985b5af02380326">Vamp::HostExt::PluginLoader</a>
 <li>getLibraryPathForPlugin()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#aac3ed8bf770f0675e624d411dab3efb">Vamp::HostExt::PluginLoader::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#592d6b4c6edaa369407e833f56e4a4de">Vamp::HostExt::PluginLoader</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#4bbcb7873e617bbc9f79eade1f90f7ad">Vamp::HostExt::PluginLoader</a>
 <li>getMaker()
 : <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#f572be0b175f5661559006a380a0f3db">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classAmplitudeFollower.html#44fc43838f203f58bc2ce6e3cb2b03dd">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator.html#e910d1b9250b11097fd6b51cd8285b68">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#63d63f2cb7ea8d8b09d58cc13b541375">PercussionOnsetDetector</a>
+, <a class="el" href="classPowerSpectrum.html#9f3e3f759e2b67c771a41f1c276984b2">PowerSpectrum</a>
 , <a class="el" href="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8">SpectralCentroid</a>
 , <a class="el" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a">ZeroCrossing</a>
 <li>getMaxChannelCount
@@ -133,107 +137,123 @@
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">Vamp::HostExt::PluginWrapper</a>
 <li>getName()
-: <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#45f1d0377e233eeddd1b7cefb48be62a">Vamp::PluginHostAdapter</a>
+: <a class="el" href="classVamp_1_1PluginHostAdapter.html#45f1d0377e233eeddd1b7cefb48be62a">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classAmplitudeFollower.html#7cfed00bc9d96ba6c709b69ab6a40594">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator.html#f9eb6fa8a98aa66b55e64e1795f9405f">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#a98f1ad061a11af98c054011a8844e6f">PercussionOnsetDetector</a>
+, <a class="el" href="classPowerSpectrum.html#c9214f9cafeeed3fca549c90aef57623">PowerSpectrum</a>
 , <a class="el" href="classSpectralCentroid.html#b7e6a620fea568af431be3cfd9dd5a41">SpectralCentroid</a>
 , <a class="el" href="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498">ZeroCrossing</a>
+, <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>
 <li>getOutputCount
 : <a class="el" href="struct__VampPluginDescriptor.html#a8fc88da704e24b2b5f674821dd380c1">_VampPluginDescriptor</a>
-, <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#17af6e67c075bfb9b5069c51c7861e64">Vamp::PluginAdapterBase::Impl</a>
 <li>getOutputDescriptor
 : <a class="el" href="struct__VampPluginDescriptor.html#92c58b8ff99ad0c23a42333aa55c144d">_VampPluginDescriptor</a>
-, <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#088345ac72041e44e18b7bf5edd32f44">Vamp::PluginAdapterBase::Impl</a>
 <li>getOutputDescriptors()
-: <a class="el" href="classAmplitudeFollower.html#043e3c3db77d76267cd8069e1485bf26">AmplitudeFollower</a>
-, <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#e02670cca9d25cdc4100cbe7a12e3e68">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4e8dcacfca3f1b82ac7d70c9d3ddddaf">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#85a027f5859efb31d315205e234e94c0">Vamp::HostExt::PluginBufferingAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace">Vamp::HostExt::PluginWrapper</a>
+: <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#f8cc914897a284433de220f1153f3845">Vamp::HostExt::PluginBufferingAdapter</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#9649a113da0252fe8bd9fc731b047ae0">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#5a9411305f713b4c9827844b89acd270">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classAmplitudeFollower.html#043e3c3db77d76267cd8069e1485bf26">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#7ce98af800f36045a0dae4b1dbed943f">FixedTempoEstimator::D</a>
+, <a class="el" href="classFixedTempoEstimator.html#83121c205a723fe6297e2bf8870622a4">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#a4537aa0eb58a67d6e824d46924cf782">PercussionOnsetDetector</a>
+, <a class="el" href="classPowerSpectrum.html#6aac5f93e3a8c033026d739fed427242">PowerSpectrum</a>
 , <a class="el" href="classSpectralCentroid.html#894ca9740927102bb80b56b5e9e95877">SpectralCentroid</a>
 , <a class="el" href="classZeroCrossing.html#c9d590a6feb1fc9a37d7892aefe2b688">ZeroCrossing</a>
 <li>getParameter()
-: <a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">Vamp::PluginBase</a>
+: <a class="el" href="classFixedTempoEstimator.html#2030b05fb1228b30ace16200780c9152">FixedTempoEstimator</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">Vamp::PluginHostAdapter</a>
+, <a class="el" href="struct__VampPluginDescriptor.html#07174981875b55ee2ec7521a7f4fc395">_VampPluginDescriptor</a>
+, <a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">Vamp::PluginBase</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#968ef2e555c81e4a3bde89d19fafb31a">FixedTempoEstimator::D</a>
 , <a class="el" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">PercussionOnsetDetector</a>
-, <a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">AmplitudeFollower</a>
-, <a class="el" href="struct__VampPluginDescriptor.html#07174981875b55ee2ec7521a7f4fc395">_VampPluginDescriptor</a>
 <li>getParameterDescriptors()
 : <a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">Vamp::PluginBase</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#bfa93b20d9b5651a32042a9bb7c8df13">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#602faa0bfaae83e2ca53b36292271a76">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#06fcf80a9a22c4b90abbc88eb592621a">FixedTempoEstimator::D</a>
+, <a class="el" href="classFixedTempoEstimator.html#e157465a4e07d180bab05b5c3a4d8987">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">PercussionOnsetDetector</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">Vamp::HostExt::PluginWrapper</a>
 <li>getPluginCategory()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#de4a5a8acbd85537c99440c4ac974be4">Vamp::HostExt::PluginLoader::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d5c594142ff058bd70e66247d45cd86e">Vamp::HostExt::PluginLoader</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#52746ea66339ad981b868a031a3b382d">Vamp::HostExt::PluginLoader</a>
 <li>getPluginPath()
-: <a class="el" href="classVamp_1_1PluginHostAdapter.html#08d7ed3a11bf4a3c30fa0f9b41a0fed6">Vamp::PluginHostAdapter</a>
+: <a class="el" href="classVamp_1_1PluginHostAdapter.html#09cbfb7903d28f10d6d556c6cb81c5f6">Vamp::PluginHostAdapter</a>
+<li>getPluginPreferredBlockSize()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7045be875de9dd226d2e2a222e957de0">Vamp::HostExt::PluginBufferingAdapter</a>
+<li>getPluginPreferredStepSize()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#d7fad500331808b5cdf90f5a45019b02">Vamp::HostExt::PluginBufferingAdapter</a>
 <li>getPluginVersion()
-: <a class="el" href="classAmplitudeFollower.html#8a5d7a834eb996d517c51f84b2a72250">AmplitudeFollower</a>
+: <a class="el" href="classPowerSpectrum.html#d23d27e4e82f10404a37b933f6a72c33">PowerSpectrum</a>
 , <a class="el" href="classSpectralCentroid.html#f64622e66bf678ac2b0b58aa832ca2b3">SpectralCentroid</a>
+, <a class="el" href="classFixedTempoEstimator.html#d002fddb3735c2dd7e31e6a9def9949f">FixedTempoEstimator</a>
+, <a class="el" href="classAmplitudeFollower.html#8a5d7a834eb996d517c51f84b2a72250">AmplitudeFollower</a>
+, <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#6fbd94781867ca46a20368c2a3593c77">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb">ZeroCrossing</a>
 , <a class="el" href="classPercussionOnsetDetector.html#d6b818dbd81867ce7be71c99cae861be">PercussionOnsetDetector</a>
-, <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#6fbd94781867ca46a20368c2a3593c77">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">Vamp::HostExt::PluginWrapper</a>
-, <a class="el" href="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb">ZeroCrossing</a>
 <li>getPreferredBlockSize()
-: <a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#b530681a774b29db3fd059149f4c1bf9">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-, <a class="el" href="struct__VampPluginDescriptor.html#c626e42554ab1532c8d8b5132a0faee8">_VampPluginDescriptor</a>
-, <a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">Vamp::Plugin</a>
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#c02826f981736fc2aa5d835fa14e174d">FixedTempoEstimator::D</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>
 , <a class="el" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">PercussionOnsetDetector</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#21e45180b19873f9ab69fe7a4e184a03">Vamp::HostExt::PluginBufferingAdapter</a>
+, <a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">Vamp::Plugin</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">Vamp::PluginHostAdapter</a>
+, <a class="el" href="struct__VampPluginDescriptor.html#c626e42554ab1532c8d8b5132a0faee8">_VampPluginDescriptor</a>
+, <a class="el" href="classFixedTempoEstimator.html#68b8569b71504a0478caf990dbe30683">FixedTempoEstimator</a>
 <li>getPreferredStepSize()
-: <a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#dd749be18355ab1ae5c1ccbacfd2e192">FixedTempoEstimator::D</a>
+, <a class="el" href="classFixedTempoEstimator.html#d450bb7e7df559ae3d68dfbfb085676f">FixedTempoEstimator</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">Vamp::Plugin</a>
+, <a class="el" href="struct__VampPluginDescriptor.html#2beddf2ce156c05dd24477ac663adcbb">_VampPluginDescriptor</a>
 , <a class="el" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">PercussionOnsetDetector</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>
-, <a class="el" href="struct__VampPluginDescriptor.html#2beddf2ce156c05dd24477ac663adcbb">_VampPluginDescriptor</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4380af577605306d2edab51042c71681">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>
 <li>getPrograms()
-: <a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">Vamp::PluginBase</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">Vamp::HostExt::PluginWrapper</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#7ac5681dcfe08b7b8a796bffc0aff3e3">Vamp::PluginHostAdapter</a>
-<li>getRate()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html#d6f14e142d960be479b291291cf8d735">Vamp::HostExt::PluginRateExtractor</a>
-<li>getReadSpace()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#830be6afbe2b46f0c9cd6071cf287cf8">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+: <a class="el" href="classVamp_1_1PluginHostAdapter.html#e0cde5cd625418c1bc470b91f75daafc">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">Vamp::PluginBase</a>
 <li>getRemainingFeatures()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe">Vamp::HostExt::PluginWrapper</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2bc8c0992e64f06991fb7cf89f99857e">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classSpectralCentroid.html#83ba39f0870a2f86837605a958dfab1a">SpectralCentroid</a>
+, <a class="el" href="classFixedTempoEstimator.html#4965cf99be77fc4d1de51e11d83936b0">FixedTempoEstimator</a>
+, <a class="el" href="classPercussionOnsetDetector.html#d3d6767ed137783e84f842b4d4732ffa">PercussionOnsetDetector</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#984a4c11f3fbdcfd90e4837b1619a5ab">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#28423951b2eda1a1fc371485434f417b">Vamp::HostExt::PluginBufferingAdapter</a>
+, <a class="el" href="classZeroCrossing.html#70996d1b7166e303903daf92a9a37ad8">ZeroCrossing</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#7f9c3603bb3374d6936885010dbdd82b">FixedTempoEstimator::D</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#e9dcbd1ba8197ff90b4fc6bf7ade7688">Vamp::HostExt::PluginSummarisingAdapter</a>
+, <a class="el" href="classPowerSpectrum.html#c8a9661a785d38f4c5ce8ca2d53e69f9">PowerSpectrum</a>
+, <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>
 , <a class="el" href="struct__VampPluginDescriptor.html#d22c666188aadab83c354a0edb18fcf0">_VampPluginDescriptor</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#d3f5f16a89a821da2ec1186fd2062e83">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#242913f6f438bef150e270cbeeacf711">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-, <a class="el" href="classZeroCrossing.html#70996d1b7166e303903daf92a9a37ad8">ZeroCrossing</a>
-, <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9fe7df06eb951c259763d56c49544676">Vamp::PluginAdapterBase::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#8771cba75552aaa1340b68de9bf1659c">Vamp::HostExt::PluginBufferingAdapter</a>
 , <a class="el" href="classAmplitudeFollower.html#368606f643b88e0df0823d85e36f030c">AmplitudeFollower</a>
-, <a class="el" href="classSpectralCentroid.html#83ba39f0870a2f86837605a958dfab1a">SpectralCentroid</a>
-, <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>
-, <a class="el" href="classPercussionOnsetDetector.html#d3d6767ed137783e84f842b4d4732ffa">PercussionOnsetDetector</a>
-<li>getSize()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#205516271035fef2e94bb1af17b6c47d">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+<li>getSummaryForAllOutputs()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#c3f93d9ca2d25c9fdc80d0ba10eaaa6b">Vamp::HostExt::PluginSummarisingAdapter</a>
+<li>getSummaryForOutput()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#be13faa68d3244b962dbd362671e23f9">Vamp::HostExt::PluginSummarisingAdapter</a>
+<li>getTimestampAdjustment()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#c1ab6af0fcda0a4c3f050c54b2db4769">Vamp::HostExt::PluginInputDomainAdapter</a>
 <li>getType()
 : <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>
 , <a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">Vamp::Plugin</a>
 <li>getVampApiVersion()
-: <a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">Vamp::PluginHostAdapter</a>
+: <a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">Vamp::PluginBase</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">Vamp::HostExt::PluginWrapper</a>
-, <a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">Vamp::PluginBase</a>
-<li>getWriteSpace()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f9edfe7748168802019429af240bcc74">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+<li>getWrapper()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3">Vamp::HostExt::PluginWrapper</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x68.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x68.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li class="current"><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,31 +53,33 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_h">- h -</a></h3><ul>
+<li>hasDuration
+: <a class="el" href="struct__VampOutputDescriptor.html#f792a96dbf292ec966b9b68250febd99">_VampOutputDescriptor</a>
+, <a class="el" href="struct__VampFeatureV2.html#44d9c57f1ae197d3fec1a48c650cce81">_VampFeatureV2</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#33686757bd4481c72494122e9bfb9fba">Vamp::Plugin::Feature</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b0d7cc6ab19e53b5bd12ee234f549ea3">Vamp::Plugin::OutputDescriptor</a>
 <li>hasFixedBinCount
 : <a class="el" href="struct__VampOutputDescriptor.html#e8571f5a2bc740738af0cb7dda0c4749">_VampOutputDescriptor</a>
 , <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d">Vamp::Plugin::OutputDescriptor</a>
 <li>hasKnownExtents
-: <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31">Vamp::Plugin::OutputDescriptor</a>
-, <a class="el" href="struct__VampOutputDescriptor.html#f6b512d772023b4e852216689c1c4465">_VampOutputDescriptor</a>
+: <a class="el" href="struct__VampOutputDescriptor.html#f6b512d772023b4e852216689c1c4465">_VampOutputDescriptor</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31">Vamp::Plugin::OutputDescriptor</a>
 <li>hasTimestamp
 : <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b">Vamp::Plugin::Feature</a>
 , <a class="el" href="struct__VampFeature.html#be6aa7a08185beeb9deca2d08d99859f">_VampFeature</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x69.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x69.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,13 +53,10 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
@@ -72,44 +68,37 @@
 , <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b">Vamp::Plugin::OutputDescriptor</a>
 , <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#116fd9f0dc94c2bc4bbc60b5443c598c">Vamp::PluginBase::ParameterDescriptor</a>
 , <a class="el" href="struct__VampPluginDescriptor.html#4915ec8276749cb505c01d25a6d02219">_VampPluginDescriptor</a>
-<li>Impl()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#dff6fc53236f067148f82da1adca7876">Vamp::HostExt::PluginChannelAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dffa09cc6be98d87cb33c1e92310c9fc">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ddac537272c2eb69973cbb942dc11deb">Vamp::HostExt::PluginLoader::Impl</a>
-, <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9b5cff59377109e63b3894920205be9a">Vamp::PluginAdapterBase::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#97990c497a954220254172f2554e608e">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
 <li>initialise()
-: <a class="el" href="classSpectralCentroid.html#ab1ae16f5c68e2b319668f447908cedb">SpectralCentroid</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8">Vamp::HostExt::PluginBufferingAdapter</a>
+, <a class="el" href="classFixedTempoEstimator.html#a7500a4ffbc4653baaf5101defdb37f5">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#349c528260622308f3850bcda8a448ab">PercussionOnsetDetector</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#bf47235b455880c94ec15bb71122afc8">Vamp::HostExt::PluginChannelAdapter::Impl</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#de0473c8fc54636431967cbf41649c1c">Vamp::HostExt::PluginChannelAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#58c9bcbddcb7c3a1a3791b2a04e7372e">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
+, <a class="el" href="classPowerSpectrum.html#e2d046334c4bede5be72a0d97e4dfb29">PowerSpectrum</a>
+, <a class="el" href="classSpectralCentroid.html#ab1ae16f5c68e2b319668f447908cedb">SpectralCentroid</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classZeroCrossing.html#f21bbcc87a6eb7875dfab7d86222dccc">ZeroCrossing</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#f0fcad4493650728babb7e341963c91d">FixedTempoEstimator::D</a>
+, <a class="el" href="classAmplitudeFollower.html#eb727e44ee8ad1aceb90964d20f8d90d">AmplitudeFollower</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c">Vamp::HostExt::PluginInputDomainAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">Vamp::HostExt::PluginWrapper</a>
-, <a class="el" href="classAmplitudeFollower.html#eb727e44ee8ad1aceb90964d20f8d90d">AmplitudeFollower</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8">Vamp::HostExt::PluginBufferingAdapter</a>
 , <a class="el" href="struct__VampPluginDescriptor.html#d0978f17a5e568079470a1978a9aad22">_VampPluginDescriptor</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#1e994576d43efe103bf8f83b69716745">Vamp::HostExt::PluginSummarisingAdapter</a>
 , <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin</a>
-, <a class="el" href="classZeroCrossing.html#f21bbcc87a6eb7875dfab7d86222dccc">ZeroCrossing</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4b2bbe763ec728b5494145abcebca2e2">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
 <li>inputDomain
 : <a class="el" href="struct__VampPluginDescriptor.html#ffc4d1796da7ced2c0cbb2cc2c4a22f4">_VampPluginDescriptor</a>
 <li>InputDomain
 : <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Vamp::Plugin</a>
-<li>InstanceCleaner()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#94ae2e994b87be62dd401852fb8d49fd">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a>
 <li>instantiate
 : <a class="el" href="struct__VampPluginDescriptor.html#19c4ce36fdeb88eeedb539efc544b8ee">_VampPluginDescriptor</a>
 <li>isQuantized
 : <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#7c556d58d552f737ee5a34efdf7f9425">Vamp::PluginBase::ParameterDescriptor</a>
 , <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1b4858928d23bfd7d5bc557c82a83fb4">Vamp::Plugin::OutputDescriptor</a>
+, <a class="el" href="struct__VampParameterDescriptor.html#3f41e3b6b69c7a95ff0ce8625794f83a">_VampParameterDescriptor</a>
 , <a class="el" href="struct__VampOutputDescriptor.html#b56cf0bbb17136819024574d5cc65e30">_VampOutputDescriptor</a>
-, <a class="el" href="struct__VampParameterDescriptor.html#3f41e3b6b69c7a95ff0ce8625794f83a">_VampParameterDescriptor</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x6c.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x6c.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,13 +53,10 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
@@ -69,24 +65,16 @@
 <li>label
 : <a class="el" href="struct__VampFeature.html#6662b7489a7890cae713bf4e8f6d52cd">_VampFeature</a>
 , <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036">Vamp::Plugin::Feature</a>
-<li>listFiles()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2dd3964e84bca56390cd31b079fbc01f">Vamp::HostExt::PluginLoader::Impl</a>
+<li>lag2tempo()
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#0a7cb0705938097ab23a6f9187e6bae5">FixedTempoEstimator::D</a>
 <li>listPlugins()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#398ccb508176f5550b2b2ca05f1fa3eb">Vamp::HostExt::PluginLoader::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ec450c2928b1ae5318d45972722dd16b">Vamp::HostExt::PluginLoader</a>
-<li>loadLibrary()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c0618149e415b7fd8ad782f434070752">Vamp::HostExt::PluginLoader::Impl</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff51b52bb68aa2934ccf26ad1d284f28">Vamp::HostExt::PluginLoader</a>
 <li>loadPlugin()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#3f6c4872459007b13722818cbdac409c">Vamp::HostExt::PluginLoader::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#2154970381343edef629482bdafea7e2">Vamp::HostExt::PluginLoader</a>
-<li>lookupAdapter()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">Vamp::PluginAdapterBase::Impl</a>
-<li>lookupInLibrary()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ec71088ca89ba77f357bde8b37b807f8">Vamp::HostExt::PluginLoader::Impl</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f">Vamp::HostExt::PluginLoader</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x6d.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x6d.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,165 +53,115 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_m">- m -</a></h3><ul>
-<li>m_adapterMap
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">Vamp::PluginAdapterBase::Impl</a>
-<li>m_allPluginsEnumerated
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#d7b867e5cf9c29ad7254f567849f9913">Vamp::HostExt::PluginLoader::Impl</a>
-<li>m_base
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#c0372df58956b4bf99a9ec070b11dea4">Vamp::PluginAdapterBase::Impl</a>
 <li>m_blockSize
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#0b9bf37e600f0564b9f305f73a9517c8">FixedTempoEstimator::D</a>
+, <a class="el" href="classPercussionOnsetDetector.html#920de543dbcf70a2edd80b5b31313285">PercussionOnsetDetector</a>
 , <a class="el" href="classSpectralCentroid.html#262f583d71b442bb2d80023e7c85aa4e">SpectralCentroid</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#be7b76040411a4544a9a8b0808737626">Vamp::HostExt::PluginChannelAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#efcb8c5e8d65003eaf96d2bfefc83fe5">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-, <a class="el" href="classPercussionOnsetDetector.html#920de543dbcf70a2edd80b5b31313285">PercussionOnsetDetector</a>
-<li>m_buffer
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#4cdf77619ee8e8650b1c71da3ba9b758">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">Vamp::HostExt::PluginChannelAdapter::Impl</a>
-<li>m_buffers
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d0b81884ecf1f01e8272667e59cce02e">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li>m_channels
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#3b8801196c981a9953f6f1fbf5a8aabd">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
+, <a class="el" href="classPowerSpectrum.html#399e997c033f26b07edb7cc83cd5a6d8">PowerSpectrum</a>
 <li>m_clampcoef
 : <a class="el" href="classAmplitudeFollower.html#1cb205b08cfe2ce94a4af05b18f72876">AmplitudeFollower</a>
-<li>m_cleaner
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#5d03696d9093949f627bd684c8db44c2">Vamp::HostExt::PluginLoader::Impl</a>
+<li>m_d
+: <a class="el" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">FixedTempoEstimator</a>
 <li>m_descriptor
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">Vamp::PluginAdapterBase::Impl</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">Vamp::PluginHostAdapter</a>
+: <a class="el" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">Vamp::PluginHostAdapter</a>
+<li>m_df
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#8e2312120e87ad9a48fedeebbaefa396">FixedTempoEstimator::D</a>
 <li>m_dfMinus1
 : <a class="el" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">PercussionOnsetDetector</a>
 <li>m_dfMinus2
 : <a class="el" href="classPercussionOnsetDetector.html#6ad7d8353cc681ff42a63b127cca5779">PercussionOnsetDetector</a>
-<li>m_forwardPtrs
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#882147731ba96cf5da446265dbce11bd">Vamp::HostExt::PluginChannelAdapter::Impl</a>
-<li>m_frame
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#26fe691e7c9ddf55bb55b3d4eb80d8a7">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li>m_freqbuf
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-<li>m_fs
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">Vamp::PluginAdapterBase::Impl</a>
-<li>m_fsizes
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">Vamp::PluginAdapterBase::Impl</a>
-<li>m_fvsizes
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#166ff8e5df4fcd27f74bc7179e14c33e">Vamp::PluginAdapterBase::Impl</a>
+<li>m_dfsize
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#e739e006f2d10ef2b13677770b23e663">FixedTempoEstimator::D</a>
+<li>m_fr
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">FixedTempoEstimator::D</a>
 <li>m_handle
 : <a class="el" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">Vamp::PluginHostAdapter</a>
 <li>m_impl
-: <a class="el" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">Vamp::PluginAdapterBase</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">Vamp::HostExt::PluginBufferingAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">Vamp::HostExt::PluginChannelAdapter</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">Vamp::HostExt::PluginChannelAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">Vamp::HostExt::PluginInputDomainAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">Vamp::HostExt::PluginLoader</a>
-<li>m_inputBlockSize
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#2a8d125110b2ee19407d10b4e21a865f">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li>m_inputChannels
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">Vamp::HostExt::PluginChannelAdapter::Impl</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f131140817d9f131650af98b6b8d7a94">Vamp::HostExt::PluginSummarisingAdapter</a>
+, <a class="el" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">Vamp::PluginAdapterBase</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">Vamp::HostExt::PluginBufferingAdapter</a>
 <li>m_inputSampleRate
 : <a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">Vamp::Plugin</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#cc747b4e448a316346f9f59e2c85dcfc">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#bafd656a3bf6d74d6dd38def0c73cc57">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-<li>m_inputStepSize
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#6140f55c9120314194d3e73a54b25139">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">FixedTempoEstimator::D</a>
 <li>m_instance
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#2b6d3d267fe1754ea3dca7bb6d48fc70">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#aa4eae58ddbadf6537a95dbb6e957187">Vamp::HostExt::PluginLoader</a>
-<li>m_io
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4d73b85b9ba00c10b55be4febc56dfc4">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-<li>m_loader
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#1fb8473ea9ad73b1b6a00b92345d8397">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter</a>
-<li>m_outputs
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#e65848a6788b5c984635d252fbc8365c">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li>m_parameters
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">Vamp::PluginAdapterBase::Impl</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#f89caf5f838a586b117c417260b7a116">Vamp::HostExt::PluginLoader</a>
+<li>m_lasttime
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#bacd5ff19c301020efb99c03136b849a">FixedTempoEstimator::D</a>
+<li>m_maxbpm
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#33e8d045b222addc6173b50df2553ba8">FixedTempoEstimator::D</a>
+<li>m_maxdflen
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#ca506973452865d436e07462eabdebad">FixedTempoEstimator::D</a>
+<li>m_minbpm
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#768fdbb62e4b21a39897963fdbd486ed">FixedTempoEstimator::D</a>
+<li>m_n
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">FixedTempoEstimator::D</a>
 <li>m_plugin
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">Vamp::HostExt::PluginWrapper</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#9c9acb7f9bf51b7406c15d2e60fd4ce2">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ff31c1cf3a0fb18ddab7e3ab213c3c07">Vamp::HostExt::PluginChannelAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-<li>m_pluginChannels
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">Vamp::HostExt::PluginChannelAdapter::Impl</a>
-<li>m_pluginLibraryHandleMap
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1c3cee03d20e669c8b9379247a222600">Vamp::HostExt::PluginLoader::Impl</a>
-<li>m_pluginLibraryNameMap
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">Vamp::HostExt::PluginLoader::Impl</a>
-<li>m_pluginOutputs
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">Vamp::PluginAdapterBase::Impl</a>
-<li>m_populated
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#93384198b121720dfa627dafe77839a6">Vamp::PluginAdapterBase::Impl</a>
 <li>m_previn
 : <a class="el" href="classAmplitudeFollower.html#c95e8d2f334821c6c92c706bae29695a">AmplitudeFollower</a>
 <li>m_previousSample
 : <a class="el" href="classZeroCrossing.html#0f2d9f2cab0a8a30344e1f2c0ebb8ee8">ZeroCrossing</a>
 <li>m_priorMagnitudes
 : <a class="el" href="classPercussionOnsetDetector.html#30daa717267251a9d49afe57c328e989">PercussionOnsetDetector</a>
-<li>m_programs
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#79666690394693c9e293a4e74960b444">Vamp::PluginAdapterBase::Impl</a>
-<li>m_queue
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li>m_reader
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#1775ce5ba3d60520c3634cb2ac8a1dc9">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#a59cf1cb5640a910c70884579e5d99ad">FixedTempoEstimator::D</a>
+<li>m_r
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">FixedTempoEstimator::D</a>
 <li>m_relaxcoef
 : <a class="el" href="classAmplitudeFollower.html#ceecd3b3879f32eb4a2e597c32c41cfc">AmplitudeFollower</a>
-<li>m_rewriteOutputTimes
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#c3055f44b2a62c1a7aa915e180ed054b">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li>m_ri
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-<li>m_ro
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#6407b3c17dc96ba7036f2161b1aa30cb">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
 <li>m_sensitivity
 : <a class="el" href="classPercussionOnsetDetector.html#4e9770f246ba3bc75e7fc2cb8f9010af">PercussionOnsetDetector</a>
-<li>m_size
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+<li>m_start
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#3a3a0b4a4c259087f02d0046241674d0">FixedTempoEstimator::D</a>
 <li>m_stepSize
-: <a class="el" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">ZeroCrossing</a>
+: <a class="el" href="classAmplitudeFollower.html#959c2647fd3c5feea2591e3618774027">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">FixedTempoEstimator::D</a>
 , <a class="el" href="classSpectralCentroid.html#49805a090ba58477da4adbefea4392a7">SpectralCentroid</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
+, <a class="el" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">ZeroCrossing</a>
 , <a class="el" href="classPercussionOnsetDetector.html#abac0cf7e961482b075777e5f0686e6c">PercussionOnsetDetector</a>
-, <a class="el" href="classAmplitudeFollower.html#959c2647fd3c5feea2591e3618774027">AmplitudeFollower</a>
-<li>m_taxonomy
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2ba901c7e59ece349b715d4a3fec7b04">Vamp::HostExt::PluginLoader::Impl</a>
+<li>m_t
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">FixedTempoEstimator::D</a>
 <li>m_threshold
 : <a class="el" href="classPercussionOnsetDetector.html#b04119adad56d87f2e633de289aab507">PercussionOnsetDetector</a>
-<li>m_unrun
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#fa825144d91babf38fb27aa7c287dc1e">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li>m_window
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a43f6ea4727b9bb29d6d66869886d15e">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-<li>m_writer
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3798697f4cf46c5e9a5433e1bf160b2c">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
-<li>makeBlockSizeAcceptable()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#76073669d78c0681a3b3a9e71da86ae6">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
 <li>maker
 : <a class="el" href="struct__VampPluginDescriptor.html#4dca3d57331802964716edfa80580c9b">_VampPluginDescriptor</a>
+<li>Maximum
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705defff4e5073aa298a96d99b92025b7f9">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>maxValue
-: <a class="el" href="struct__VampParameterDescriptor.html#6e7646babdb265c4abfc107ba4350d80">_VampParameterDescriptor</a>
+: <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4">Vamp::PluginBase::ParameterDescriptor</a>
+, <a class="el" href="struct__VampParameterDescriptor.html#6e7646babdb265c4abfc107ba4350d80">_VampParameterDescriptor</a>
 , <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#907b4e8fbb48a46ac5a05f880d72719f">Vamp::Plugin::OutputDescriptor</a>
-, <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4">Vamp::PluginBase::ParameterDescriptor</a>
 , <a class="el" href="struct__VampOutputDescriptor.html#4cbe540a247df60f85b00b2aa16461ee">_VampOutputDescriptor</a>
+<li>Mean
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705e8a03f013397d08c85734e47524f5a75">Vamp::HostExt::PluginSummarisingAdapter</a>
+<li>Median
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705adde1f9a5a6557f25223279433699195">Vamp::HostExt::PluginSummarisingAdapter</a>
+<li>Minimum
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705320b8a4cd0c3d492aeb17f7fc4ed930c">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>minValue
-: <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#c9f5924c0be7571bba8e7ae7e7a921f4">Vamp::Plugin::OutputDescriptor</a>
-, <a class="el" href="struct__VampParameterDescriptor.html#b59c84f0bbe0d4d0c578d893c087b0db">_VampParameterDescriptor</a>
+: <a class="el" href="struct__VampParameterDescriptor.html#b59c84f0bbe0d4d0c578d893c087b0db">_VampParameterDescriptor</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#c9f5924c0be7571bba8e7ae7e7a921f4">Vamp::Plugin::OutputDescriptor</a>
+, <a class="el" href="struct__VampOutputDescriptor.html#9a28180989e3d028c12a98517479dc46">_VampOutputDescriptor</a>
 , <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8">Vamp::PluginBase::ParameterDescriptor</a>
-, <a class="el" href="struct__VampOutputDescriptor.html#9a28180989e3d028c12a98517479dc46">_VampOutputDescriptor</a>
+<li>Mode
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717051688d03811a2268daa062220f5be0614">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>msec()
 : <a class="el" href="structVamp_1_1RealTime.html#76e22815db51ae180c38021110da9947">Vamp::RealTime</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x6e.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x6e.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,13 +53,10 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
@@ -77,8 +73,8 @@
 , <a class="el" href="struct__VampFeature.html#8874cb23600c6b10ca6e8a40920d999e">_VampFeature</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x6f.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x6f.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,13 +53,10 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
@@ -82,21 +78,20 @@
 : <a class="el" href="structVamp_1_1RealTime.html#cf4278eec678c558d62bbda6bc1da44e">Vamp::RealTime</a>
 <li>operator=()
 : <a class="el" href="structVamp_1_1RealTime.html#db82f838804a9a3ad49988de5944d090">Vamp::RealTime</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#7166d8a3f7312064f9b2bb1e874ca8ef">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
 <li>operator==()
 : <a class="el" href="structVamp_1_1RealTime.html#bc5f06b5b9973012cb7453192df3ea5e">Vamp::RealTime</a>
 <li>operator&gt;()
 : <a class="el" href="structVamp_1_1RealTime.html#6f0aced679e2f97133ed63c688b335e4">Vamp::RealTime</a>
 <li>operator&gt;=()
 : <a class="el" href="structVamp_1_1RealTime.html#5cb785a410e3a91ed3092b7bba22afc3">Vamp::RealTime</a>
+<li>OutputDescriptor()
+: <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1ebf91cc3f60e4cbba818c10591cd344">Vamp::Plugin::OutputDescriptor</a>
 <li>OutputList
 : <a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Vamp::Plugin</a>
-<li>OutputMap
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#fd448b66d5973d8e14ec592dabcbbd2d">Vamp::PluginAdapterBase::Impl</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x70.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x70.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,13 +53,10 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
@@ -68,12 +64,12 @@
 <h3><a class="anchor" name="index_p">- p -</a></h3><ul>
 <li>parameterCount
 : <a class="el" href="struct__VampPluginDescriptor.html#e6271dc3ea0cea959c84a64185492cab">_VampPluginDescriptor</a>
+<li>ParameterDescriptor()
+: <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#5b793130e9746b2302317b3c9a9c1395">Vamp::PluginBase::ParameterDescriptor</a>
 <li>ParameterList
 : <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">Vamp::PluginBase</a>
 <li>parameters
 : <a class="el" href="struct__VampPluginDescriptor.html#64d614862604c31d6b84c49005f51913">_VampPluginDescriptor</a>
-<li>peek()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#c68e9b2b24e1ac17f017c80ade70b355">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
 <li>PercussionOnsetDetector()
 : <a class="el" href="classPercussionOnsetDetector.html#9f700579805ee5105758d847baab3511">PercussionOnsetDetector</a>
 <li>Plugin()
@@ -88,10 +84,6 @@
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364">Vamp::HostExt::PluginLoader</a>
 <li>PluginChannelAdapter()
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#2cda2b672708264f9a33c43bad3acdd8">Vamp::HostExt::PluginChannelAdapter</a>
-<li>pluginDeleted()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#e0a6e1bf07a62eb6a34a1393bc3da26c">Vamp::HostExt::PluginLoader::Impl</a>
-<li>PluginDeletionNotifyAdapter()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#80196e30ed72a4f45b4152a3991d7777">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter</a>
 <li>PluginHostAdapter()
 : <a class="el" href="classVamp_1_1PluginHostAdapter.html#6535abd551acfbbaab381bbe1268cd49">Vamp::PluginHostAdapter</a>
 <li>PluginInputDomainAdapter()
@@ -102,30 +94,32 @@
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#0d48b76e4f995110f53e0feeb23f733a">Vamp::HostExt::PluginLoader</a>
 <li>PluginLoader()
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#5ab9e0281244bef7976c6c0ce1a55c24">Vamp::HostExt::PluginLoader</a>
-<li>PluginRateExtractor()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html#2ca2ad6683e73737a7c9b0f9b1a35f00">Vamp::HostExt::PluginRateExtractor</a>
+<li>PluginSummarisingAdapter()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#31b41f54560a2ae6c3ec1a945f3f1d68">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>pluginVersion
 : <a class="el" href="struct__VampPluginDescriptor.html#04427c420d9252c7796c0bf5101345ae">_VampPluginDescriptor</a>
 <li>PluginWrapper()
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#35cc2d42f8322f5022e89859a79c97be">Vamp::HostExt::PluginWrapper</a>
+<li>PowerSpectrum()
+: <a class="el" href="classPowerSpectrum.html#a2550486513a4abcf7b52869002947e7">PowerSpectrum</a>
 <li>process()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07">Vamp::HostExt::PluginInputDomainAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#03718981c892400287483cc8501adfeb">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#55058a20c1f8bffc0dc927350df778a0">Vamp::HostExt::PluginBufferingAdapter</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#7fac74fc9fc54f436408705d1e125e20">FixedTempoEstimator::D</a>
+, <a class="el" href="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614">PercussionOnsetDetector</a>
+, <a class="el" href="classPowerSpectrum.html#a5664ffc2b37a16db471fae791c1f55f">PowerSpectrum</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da">ZeroCrossing</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7">Vamp::HostExt::PluginWrapper</a>
-, <a class="el" href="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614">PercussionOnsetDetector</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#294e663b4d9ec885791faa1b440571ed">Vamp::HostExt::PluginChannelAdapter</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classSpectralCentroid.html#ca96c70e7e75c9e4a7db38485018914c">SpectralCentroid</a>
-, <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0eca18a4ae046e4ac1ebd25bb3ac5a08">Vamp::PluginAdapterBase::Impl</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#6ff37bf754ff8711dbcb2f020fa3902c">Vamp::HostExt::PluginChannelAdapter</a>
+, <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</a>
+, <a class="el" href="classFixedTempoEstimator.html#1cf76b0e55cf4ed3da095cffcdeaec3c">FixedTempoEstimator</a>
+, <a class="el" href="struct__VampPluginDescriptor.html#c5a0a75b6e68b22fed536765d1f2f254">_VampPluginDescriptor</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231">Vamp::HostExt::PluginInputDomainAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#3314b456a4780601c021dac25b478846">Vamp::HostExt::PluginSummarisingAdapter</a>
 , <a class="el" href="classAmplitudeFollower.html#48d0f95cac31ffd190cff89b50a2a5bd">AmplitudeFollower</a>
-, <a class="el" href="struct__VampPluginDescriptor.html#c5a0a75b6e68b22fed536765d1f2f254">_VampPluginDescriptor</a>
-, <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#262206b978d9de28ee4bb35f437e915e">Vamp::HostExt::PluginBufferingAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ce73f776af09556fa6dc000c8bfdbe06">Vamp::HostExt::PluginChannelAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#1bd8c3ca5ce5d8254d2d4af910cc31f0">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-<li>processBlock()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#65f718273e06cb3d2e0ef09ca173aa54">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
+<li>processInterleaved()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#5c94c3eb1dbc8899fe58527bbb7bb61f">Vamp::HostExt::PluginChannelAdapter</a>
 <li>programCount
 : <a class="el" href="struct__VampPluginDescriptor.html#1962666aa173e7a9a2c30dc82e4b2e00">_VampPluginDescriptor</a>
 <li>ProgramList
@@ -134,8 +128,8 @@
 : <a class="el" href="struct__VampPluginDescriptor.html#d488470c582d8472d86455889d71c5ec">_VampPluginDescriptor</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x71.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x71.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,13 +53,10 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
@@ -73,8 +69,8 @@
 , <a class="el" href="struct__VampOutputDescriptor.html#71aa40222dda4321030cccd0bb655fe3">_VampOutputDescriptor</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x72.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x72.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,13 +53,10 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
@@ -69,35 +65,28 @@
 <li>RealTime()
 : <a class="el" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">Vamp::RealTime</a>
 <li>realTime2Frame()
-: <a class="el" href="structVamp_1_1RealTime.html#1c32b50b1511cdca17cd6c1c3c05d9b5">Vamp::RealTime</a>
+: <a class="el" href="structVamp_1_1RealTime.html#c046c73d88da6715e55b12e10534bb5c">Vamp::RealTime</a>
 <li>releaseFeatureSet
 : <a class="el" href="struct__VampPluginDescriptor.html#c4bafe8ad2734d21a433d745b18e7d63">_VampPluginDescriptor</a>
 <li>releaseOutputDescriptor
 : <a class="el" href="struct__VampPluginDescriptor.html#8cc38edc921616e67e551aa03397ec79">_VampPluginDescriptor</a>
 <li>reset()
-: <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin</a>
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#f5ac8147bfe79371d00aba8a19c2f8fd">FixedTempoEstimator::D</a>
+, <a class="el" href="classAmplitudeFollower.html#cebd835e80e84669df078fbd7591d8f7">AmplitudeFollower</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#5d54c5bbd76bc27b7a243827148afeaa">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a">Vamp::HostExt::PluginBufferingAdapter</a>
+, <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin</a>
+, <a class="el" href="struct__VampPluginDescriptor.html#12267f6b506aeda3792ff7c982b02336">_VampPluginDescriptor</a>
 , <a class="el" href="classSpectralCentroid.html#9b5f5581691ff8f46bb7674d8d74395c">SpectralCentroid</a>
+, <a class="el" href="classPowerSpectrum.html#091ba21e1697ea4208f42e8295c389d9">PowerSpectrum</a>
+, <a class="el" href="classZeroCrossing.html#9ae6c4a31ea027dceb1e97ead807e228">ZeroCrossing</a>
+, <a class="el" href="classFixedTempoEstimator.html#c41708397255400c6682fee6c1b3d45f">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#9b1075e992cd9599764ef3881fb91d1a">PercussionOnsetDetector</a>
-, <a class="el" href="classAmplitudeFollower.html#cebd835e80e84669df078fbd7591d8f7">AmplitudeFollower</a>
-, <a class="el" href="classZeroCrossing.html#9ae6c4a31ea027dceb1e97ead807e228">ZeroCrossing</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#5d54c5bbd76bc27b7a243827148afeaa">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#102263ad3dc229a1292792d73da2f0a1">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#c3eba9efa4b5bdb4bfa9907ad9203fe1">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a">Vamp::HostExt::PluginBufferingAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">Vamp::HostExt::PluginWrapper</a>
-, <a class="el" href="struct__VampPluginDescriptor.html#12267f6b506aeda3792ff7c982b02336">_VampPluginDescriptor</a>
-<li>resizeFL()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f5fcc5331f2dfa4c650eee636af72403">Vamp::PluginAdapterBase::Impl</a>
-<li>resizeFS()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#429c029c0068230d1afa97426b04ce0d">Vamp::PluginAdapterBase::Impl</a>
-<li>resizeFV()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9b0791b97e91f8b8c3d18f3ed3bed861">Vamp::PluginAdapterBase::Impl</a>
-<li>RingBuffer()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3ee5e4cfee66645629063b1db5cffa96">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x73.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x73.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,18 +53,17 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_s">- s -</a></h3><ul>
+<li>SampleAverage
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76e8833d866dec593d29f1f4e3cd1e6e36">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>sampleRate
 : <a class="el" href="struct__VampOutputDescriptor.html#1ccf193317b2b9c2eb0dbd8dcf61d26e">_VampOutputDescriptor</a>
 , <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#dd0cbbdfa9c91764037c39365b1d42af">Vamp::Plugin::OutputDescriptor</a>
@@ -75,34 +73,44 @@
 <li>SampleType
 : <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c">Vamp::Plugin::OutputDescriptor</a>
 <li>sec
-: <a class="el" href="struct__VampFeature.html#31f0b57050e33d082692536097953d9c">_VampFeature</a>
-, <a class="el" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">Vamp::RealTime</a>
+: <a class="el" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">Vamp::RealTime</a>
+, <a class="el" href="struct__VampFeature.html#31f0b57050e33d082692536097953d9c">_VampFeature</a>
+<li>SegmentBoundaries
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#74e7f93c745802a2409185b63922466b">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>selectProgram
 : <a class="el" href="struct__VampPluginDescriptor.html#d9af40cb165ca187e49250964af5f5cf">_VampPluginDescriptor</a>
 , <a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">Vamp::PluginBase</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>
-<li>setInstance()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#11edf3783377088dd757b46d9b2c9101">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a>
-<li>setInstanceToClean()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b7147ecb2186a715b0f7e83ba70f0946">Vamp::HostExt::PluginLoader::Impl</a>
 <li>setParameter()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">Vamp::HostExt::PluginWrapper</a>
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#6cafa64d4cc8aa3556bc0ce6b0c49bc4">FixedTempoEstimator::D</a>
+, <a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">Vamp::PluginBase</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7a979b20c169d37adbd7b7d8b8a077b3">Vamp::HostExt::PluginBufferingAdapter</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classFixedTempoEstimator.html#8a5a413025384cf451c64d2c2ce13a75">FixedTempoEstimator</a>
 , <a class="el" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">AmplitudeFollower</a>
+, <a class="el" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">PercussionOnsetDetector</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="struct__VampPluginDescriptor.html#ad3cfc7a3b432df40bd9db13eee6a481">_VampPluginDescriptor</a>
-, <a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">Vamp::PluginBase</a>
-, <a class="el" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">PercussionOnsetDetector</a>
-<li>skip()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#62e7a7a8fd76bf3f04add2a7b6932211">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+<li>setPluginBlockSize()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a80ae1bff6f95e805811df2c3770a98c">Vamp::HostExt::PluginBufferingAdapter</a>
+<li>setPluginStepSize()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#c99898d78a01a7fad4def4d6c5fd3a7e">Vamp::HostExt::PluginBufferingAdapter</a>
+<li>setSummarySegmentBoundaries()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#1a659500ca1290a228c0b9b91f6ac0b7">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>SpectralCentroid()
 : <a class="el" href="classSpectralCentroid.html#2cd801ad72f262eceb95ab0d22e7dbcd">SpectralCentroid</a>
-<li>splicePath()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#eb7a794c0a2410a81a382a08e8a0143c">Vamp::HostExt::PluginLoader::Impl</a>
+<li>StandardDeviation
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717059342cd2209e20b93843cd389d9511ec7">Vamp::HostExt::PluginSummarisingAdapter</a>
+<li>Sum
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717059496664a605b3aa706f909070d73060b">Vamp::HostExt::PluginSummarisingAdapter</a>
+<li>SummaryType
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">Vamp::HostExt::PluginSummarisingAdapter</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x74.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x74.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,18 +53,17 @@
       <li class="current"><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_t">- t -</a></h3><ul>
+<li>tempo2lag()
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#c6a75212293fc855de6ed0c6581a0fb9">FixedTempoEstimator::D</a>
 <li>TimeDomain
 : <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">Vamp::Plugin</a>
 <li>timestamp
@@ -76,8 +74,8 @@
 : <a class="el" href="structVamp_1_1RealTime.html#d75b927afadfa422ae512d169ccda0aa">Vamp::RealTime</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x75.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x75.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,13 +53,10 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li class="current"><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
@@ -71,14 +67,14 @@
 , <a class="el" href="struct__VampOutputDescriptor.html#d038caa8e596dfd037035637202f1d63">_VampOutputDescriptor</a>
 , <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#3bc3df322e4c02e17e96bc6d44982d7b">Vamp::PluginBase::ParameterDescriptor</a>
 , <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4">Vamp::Plugin::OutputDescriptor</a>
-<li>unloadLibrary()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6a93367036f896d505f553b616e1e7aa">Vamp::HostExt::PluginLoader::Impl</a>
+<li>UnknownSummaryType
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705eed3a16d665eb789053b82fdd386ee7c">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>usec()
 : <a class="el" href="structVamp_1_1RealTime.html#ace9e2c60af62273e45ccd98d623914c">Vamp::RealTime</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x76.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x76.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,70 +53,37 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li class="current"><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_v">- v -</a></h3><ul>
+<li>v1
+: <a class="el" href="union__VampFeatureUnion.html#4a32a2ce141ec3cd36b8be54cd9c3369">_VampFeatureUnion</a>
+<li>v2
+: <a class="el" href="union__VampFeatureUnion.html#87e508e37e02cce11c3c4ddf087a627a">_VampFeatureUnion</a>
 <li>valueCount
 : <a class="el" href="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd">_VampFeature</a>
 <li>valueNames
 : <a class="el" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d">_VampParameterDescriptor</a>
 , <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#94df96f53835980b4739965007ff222b">Vamp::PluginBase::ParameterDescriptor</a>
 <li>values
-: <a class="el" href="struct__VampFeature.html#e4030f941ddb2bab8bc147b88e1f1c15">_VampFeature</a>
-, <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71">Vamp::Plugin::Feature</a>
+: <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71">Vamp::Plugin::Feature</a>
+, <a class="el" href="struct__VampFeature.html#e4030f941ddb2bab8bc147b88e1f1c15">_VampFeature</a>
 <li>vampApiVersion
 : <a class="el" href="struct__VampPluginDescriptor.html#b6c87760e87ddaa9ac3491bccaaa28c2">_VampPluginDescriptor</a>
-<li>vampCleanup()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#198dddb40f4fedc71f8ec45088d22d93">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetCurrentProgram()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#62824538d09f38a060bcc593f79ca8a1">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetMaxChannelCount()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#16bfdb3fc7b683a170b01bf92a49dee2">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetMinChannelCount()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9825e946f36f8838ec3d4cb838c00220">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetOutputCount()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#debb9f604929cde924e783997e9efda3">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetOutputDescriptor()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#5118f9af094598b9f8c8a295a5e2290c">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetParameter()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#e3791f409c626f856133d1ed473dbcdd">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetPreferredBlockSize()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#46d39ad29bb4c689e21379e1eb387ace">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetPreferredStepSize()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a6e7c06690fed8d7af284be34a590b4b">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetRemainingFeatures()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f6af04fcb927463cfe1f85e936935767">Vamp::PluginAdapterBase::Impl</a>
-<li>vampInitialise()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#210cd61fc3fd8f66eda087a6d726cd2b">Vamp::PluginAdapterBase::Impl</a>
-<li>vampInstantiate()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8cf9e01074559a6b23064d920629dd55">Vamp::PluginAdapterBase::Impl</a>
-<li>vampProcess()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#bc8f37b80648a0a7108a6e0ebaf45525">Vamp::PluginAdapterBase::Impl</a>
-<li>vampReleaseFeatureSet()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b0bc48dbdb1396410690d1b190522a95">Vamp::PluginAdapterBase::Impl</a>
-<li>vampReleaseOutputDescriptor()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#ff063ab7b4dfb0d13883e7ce19cf93a3">Vamp::PluginAdapterBase::Impl</a>
-<li>vampReset()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9dc6a2cc51118525c50583e2f7ac339a">Vamp::PluginAdapterBase::Impl</a>
-<li>vampSelectProgram()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#124b1ee65cbb733004ae96f4fa001246">Vamp::PluginAdapterBase::Impl</a>
-<li>vampSetParameter()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#96a4f1c8359479d41e9b9c3438b561a6">Vamp::PluginAdapterBase::Impl</a>
 <li>VariableSampleRate
 : <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e">Vamp::Plugin::OutputDescriptor</a>
+<li>Variance
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705e965a9e5381745e6e3a75342d7c8e075">Vamp::HostExt::PluginSummarisingAdapter</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x77.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-<!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: Class Members</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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-  <div class="tabs">
-    <ul>
-      <li class="current"><a href="functions.html"><span>All</span></a></li>
-      <li><a href="functions_func.html"><span>Functions</span></a></li>
-      <li><a href="functions_vars.html"><span>Variables</span></a></li>
-      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
-      <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
-      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
-    </ul>
-  </div>
-  <div class="tabs">
-    <ul>
-      <li><a href="functions.html#index_a"><span>a</span></a></li>
-      <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
-      <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
-      <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
-      <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
-      <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
-      <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
-      <li><a href="functions_0x69.html#index_i"><span>i</span></a></li>
-      <li><a href="functions_0x6c.html#index_l"><span>l</span></a></li>
-      <li><a href="functions_0x6d.html#index_m"><span>m</span></a></li>
-      <li><a href="functions_0x6e.html#index_n"><span>n</span></a></li>
-      <li><a href="functions_0x6f.html#index_o"><span>o</span></a></li>
-      <li><a href="functions_0x70.html#index_p"><span>p</span></a></li>
-      <li><a href="functions_0x71.html#index_q"><span>q</span></a></li>
-      <li><a href="functions_0x72.html#index_r"><span>r</span></a></li>
-      <li><a href="functions_0x73.html#index_s"><span>s</span></a></li>
-      <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
-      <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li class="current"><a href="functions_0x77.html#index_w"><span>w</span></a></li>
-      <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
-      <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
-    </ul>
-  </div>
-
-<p>
-</div>
-<div class="contents">
-Here is a list of all class members with links to the classes they belong to:
-<p>
-<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
-<li>write()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#8e5b1d24ec4534563c48439980368135">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
-</ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/functions_0x7a.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x7a.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,28 +53,23 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li class="current"><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_z">- z -</a></h3><ul>
-<li>zero()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f9d1d2df1f27bd2399b81c82ee9af6df">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
 <li>ZeroCrossing()
 : <a class="el" href="classZeroCrossing.html#9855153a54bdc9ba75cc1a705a149473">ZeroCrossing</a>
 <li>zeroTime
 : <a class="el" href="structVamp_1_1RealTime.html#be453371597710148b0fd19bb452f8a9">Vamp::RealTime</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_0x7e.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_0x7e.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -38,7 +38,6 @@
       <li><a href="functions_0x62.html#index_b"><span>b</span></a></li>
       <li><a href="functions_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_0x68.html#index_h"><span>h</span></a></li>
@@ -54,13 +53,10 @@
       <li><a href="functions_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_0x75.html#index_u"><span>u</span></a></li>
       <li><a href="functions_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_0x7a.html#index_z"><span>z</span></a></li>
       <li class="current"><a href="functions_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all class members with links to the classes they belong to:
@@ -68,14 +64,10 @@
 <h3><a class="anchor" name="index_~">- ~ -</a></h3><ul>
 <li>~AmplitudeFollower()
 : <a class="el" href="classAmplitudeFollower.html#a78f98539ad3a1b08691a99b32035b2d">AmplitudeFollower</a>
-<li>~Impl()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#75b00d5c8012db240fc410d18fd1235a">Vamp::PluginAdapterBase::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#2f93eb032a41a52967e1c47a2901fa33">Vamp::HostExt::PluginChannelAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#2c75fc9191782ee69185c60f9b68cb90">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#772d000b68dde932323ed39ab65e1a9a">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1e28874a14fafaf015404694da5fcfc8">Vamp::HostExt::PluginLoader::Impl</a>
-<li>~InstanceCleaner()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#246ddea5df77287755b1aaef734538bf">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a>
+<li>~D()
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#78a63ac8bbf342cb0405747871adf4cc">FixedTempoEstimator::D</a>
+<li>~FixedTempoEstimator()
+: <a class="el" href="classFixedTempoEstimator.html#0302c4bfdc163a3d34478cde93c96a53">FixedTempoEstimator</a>
 <li>~PercussionOnsetDetector()
 : <a class="el" href="classPercussionOnsetDetector.html#99f833667cf8185e879d735216c7642b">PercussionOnsetDetector</a>
 <li>~Plugin()
@@ -83,33 +75,33 @@
 <li>~PluginAdapter()
 : <a class="el" href="classVamp_1_1PluginAdapter.html#9612c9df7d4844959a36921d43d4bd50">Vamp::PluginAdapter&lt; P &gt;</a>
 <li>~PluginAdapterBase()
-: <a class="el" href="classVamp_1_1PluginAdapterBase.html#e39492abdca4b588a582962fdeab819d">Vamp::PluginAdapterBase</a>
+: <a class="el" href="classVamp_1_1PluginAdapterBase.html#aa8afd318b6c3da108e1cbcc7e46603d">Vamp::PluginAdapterBase</a>
 <li>~PluginBase()
 : <a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">Vamp::PluginBase</a>
 <li>~PluginBufferingAdapter()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#539423b54a4ede511476125f4a97d977">Vamp::HostExt::PluginBufferingAdapter</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#96263f7b0910a10eeae86f20db007e55">Vamp::HostExt::PluginBufferingAdapter</a>
 <li>~PluginChannelAdapter()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#7bd79ac5febc8d3c499e7339476c07b4">Vamp::HostExt::PluginChannelAdapter</a>
-<li>~PluginDeletionNotifyAdapter()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#bb85c0134c354c0854f3868a60d0193f">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#cb9a20fefd130e323b1eb2ced43e521c">Vamp::HostExt::PluginChannelAdapter</a>
 <li>~PluginHostAdapter()
-: <a class="el" href="classVamp_1_1PluginHostAdapter.html#b0f354cb332852ab1892488f6b8e8c0e">Vamp::PluginHostAdapter</a>
+: <a class="el" href="classVamp_1_1PluginHostAdapter.html#ed66c091340aa668d3be89c4b4c24474">Vamp::PluginHostAdapter</a>
 <li>~PluginInputDomainAdapter()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ec457c952155adf516dd8e3dc7739321">Vamp::HostExt::PluginInputDomainAdapter</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ba2cbfa650d8a7c9181dbdb49b10aad0">Vamp::HostExt::PluginInputDomainAdapter</a>
 <li>~PluginLoader()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#9e092d864efdc0f16c032bfb25e76dea">Vamp::HostExt::PluginLoader</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d74ab52bc6aa2514b3a6b3f679fc492c">Vamp::HostExt::PluginLoader</a>
+<li>~PluginSummarisingAdapter()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#47846e7cc0ef4a29335e08b9645316d0">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>~PluginWrapper()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7449a364d524de75352a4719fec2e1f5">Vamp::HostExt::PluginWrapper</a>
-<li>~RingBuffer()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f1e12002a506cc1433793e7b93e73b80">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c4fb6cfd7c0d3b2c8576a4e9dc61f518">Vamp::HostExt::PluginWrapper</a>
+<li>~PowerSpectrum()
+: <a class="el" href="classPowerSpectrum.html#e7081e159ad1da5da1721b3048075306">PowerSpectrum</a>
 <li>~SpectralCentroid()
 : <a class="el" href="classSpectralCentroid.html#483e0d6757bc3dcf61e8066f764f45c6">SpectralCentroid</a>
 <li>~ZeroCrossing()
 : <a class="el" href="classZeroCrossing.html#f1de0da862e6e2443581e4e16044675b">ZeroCrossing</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_enum.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_enum.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -39,14 +39,18 @@
 <ul>
 <li>AdapterFlags
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494">Vamp::HostExt::PluginLoader</a>
+<li>AveragingMethod
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>InputDomain
 : <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Vamp::Plugin</a>
 <li>SampleType
 : <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c">Vamp::Plugin::OutputDescriptor</a>
+<li>SummaryType
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">Vamp::HostExt::PluginSummarisingAdapter</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_eval.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_eval.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -47,20 +47,44 @@
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe349454c43b85382d78e8ea8da192bce3a139">Vamp::HostExt::PluginLoader</a>
 <li>ADAPT_INPUT_DOMAIN
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494763a9a0caf512d9671b90c05c2808a09">Vamp::HostExt::PluginLoader</a>
+<li>ContinuousTimeAverage
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac766af6316c12e29bdbdff90c5fec764baa">Vamp::HostExt::PluginSummarisingAdapter</a>
+<li>Count
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717052395772fa2e74b3f617e20c76d579ad6">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>FixedSampleRate
 : <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c4c74bd2fc96dfe2815623f94b40e5629">Vamp::Plugin::OutputDescriptor</a>
 <li>FrequencyDomain
 : <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">Vamp::Plugin</a>
+<li>Maximum
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705defff4e5073aa298a96d99b92025b7f9">Vamp::HostExt::PluginSummarisingAdapter</a>
+<li>Mean
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705e8a03f013397d08c85734e47524f5a75">Vamp::HostExt::PluginSummarisingAdapter</a>
+<li>Median
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705adde1f9a5a6557f25223279433699195">Vamp::HostExt::PluginSummarisingAdapter</a>
+<li>Minimum
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705320b8a4cd0c3d492aeb17f7fc4ed930c">Vamp::HostExt::PluginSummarisingAdapter</a>
+<li>Mode
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717051688d03811a2268daa062220f5be0614">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>OneSamplePerStep
 : <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca">Vamp::Plugin::OutputDescriptor</a>
+<li>SampleAverage
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76e8833d866dec593d29f1f4e3cd1e6e36">Vamp::HostExt::PluginSummarisingAdapter</a>
+<li>StandardDeviation
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717059342cd2209e20b93843cd389d9511ec7">Vamp::HostExt::PluginSummarisingAdapter</a>
+<li>Sum
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717059496664a605b3aa706f909070d73060b">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>TimeDomain
 : <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">Vamp::Plugin</a>
+<li>UnknownSummaryType
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705eed3a16d665eb789053b82fdd386ee7c">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>VariableSampleRate
 : <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e">Vamp::Plugin::OutputDescriptor</a>
+<li>Variance
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705e965a9e5381745e6e3a75342d7c8e075">Vamp::HostExt::PluginSummarisingAdapter</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li class="current"><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,14 +48,10 @@
       <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
@@ -64,10 +59,12 @@
 <h3><a class="anchor" name="index_a">- a -</a></h3><ul>
 <li>AmplitudeFollower()
 : <a class="el" href="classAmplitudeFollower.html#29eaeffc353da2614ae508abcd0ab63f">AmplitudeFollower</a>
+<li>assembleFeatures()
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#20389ba1515f6ce4181d3f41e5c4f347">FixedTempoEstimator::D</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func_0x63.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func_0x63.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li class="current"><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,36 +48,28 @@
       <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
 <p>
 <h3><a class="anchor" name="index_c">- c -</a></h3><ul>
-<li>checkOutputMap()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8274f19566392f843cbf5f745308fd2c">Vamp::PluginAdapterBase::Impl</a>
-<li>cleanup()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b4199ab4a8ba40098aac387032c52aa4">Vamp::PluginAdapterBase::Impl</a>
+<li>calculate()
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#4f2cbc11fba5bc8af3fd2a0078156091">FixedTempoEstimator::D</a>
 <li>composePluginKey()
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#cc6865d27825c100d7b6f9ed6ecf5207">Vamp::HostExt::PluginLoader</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c84fafd9b12d44f8756628571b57d7ea">Vamp::HostExt::PluginLoader::Impl</a>
 <li>convertFeatures()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#550b4522bfbf1ad23297be28c51a4d72">Vamp::PluginAdapterBase::Impl</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#ee417a4c9ba9dbb63777c963d5f9452a">Vamp::PluginHostAdapter</a>
+: <a class="el" href="classVamp_1_1PluginHostAdapter.html#ee417a4c9ba9dbb63777c963d5f9452a">Vamp::PluginHostAdapter</a>
 <li>createPlugin()
-: <a class="el" href="classVamp_1_1PluginAdapter.html#3f387e7e37409e00d32477903b5b13d3">Vamp::PluginAdapter&lt; P &gt;</a>
-, <a class="el" href="classVamp_1_1PluginAdapterBase.html#9116adb9b7a426f4f0ded15e45a5531b">Vamp::PluginAdapterBase</a>
+: <a class="el" href="classVamp_1_1PluginAdapterBase.html#9116adb9b7a426f4f0ded15e45a5531b">Vamp::PluginAdapterBase</a>
+, <a class="el" href="classVamp_1_1PluginAdapter.html#3f387e7e37409e00d32477903b5b13d3">Vamp::PluginAdapter&lt; P &gt;</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func_0x64.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func_0x64.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li class="current"><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,25 +48,21 @@
       <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
 <p>
 <h3><a class="anchor" name="index_d">- d -</a></h3><ul>
-<li>decomposePluginKey()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b06d720c0d53f908426ce244294d38ed">Vamp::HostExt::PluginLoader::Impl</a>
+<li>D()
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#104a9b64d47eca678844584f69ca0b9d">FixedTempoEstimator::D</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func_0x65.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-<!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: Class Members - Functions</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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-  <div class="tabs">
-    <ul>
-      <li><a href="functions.html"><span>All</span></a></li>
-      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
-      <li><a href="functions_vars.html"><span>Variables</span></a></li>
-      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
-      <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
-      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
-    </ul>
-  </div>
-  <div class="tabs">
-    <ul>
-      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
-      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
-      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li class="current"><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
-      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
-      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
-      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
-      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
-      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
-      <li><a href="functions_func_0x6f.html#index_o"><span>o</span></a></li>
-      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
-      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
-      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
-      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
-      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
-      <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
-      <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
-    </ul>
-  </div>
-
-<p>
-</div>
-<div class="contents">
-&nbsp;
-<p>
-<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
-<li>enumeratePlugins()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6fb71e4d0b4ff367ffef141c5e62763d">Vamp::HostExt::PluginLoader::Impl</a>
-</ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/functions_func_0x66.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func_0x66.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li class="current"><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,33 +48,31 @@
       <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
 <p>
 <h3><a class="anchor" name="index_f">- f -</a></h3><ul>
-<li>fft()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#7ea985ca8cdc45dd156e8d50293c3085">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
+<li>Feature()
+: <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#cd4b4cd0d2c31512f4a5df50f8f7a7b8">Vamp::Plugin::Feature</a>
+<li>FixedTempoEstimator()
+: <a class="el" href="classFixedTempoEstimator.html#3967c189f054f864639837c2519bd64d">FixedTempoEstimator</a>
 <li>frame2RealTime()
-: <a class="el" href="structVamp_1_1RealTime.html#3a5ecc8888b559aad3b7d96911786b3a">Vamp::RealTime</a>
+: <a class="el" href="structVamp_1_1RealTime.html#939b4b1d1ca190db69a418883f16ce8a">Vamp::RealTime</a>
 <li>fromMilliseconds()
-: <a class="el" href="structVamp_1_1RealTime.html#512ca91f967c1d7923456f426926a9f6">Vamp::RealTime</a>
+: <a class="el" href="structVamp_1_1RealTime.html#6992d9959fc4f19c11a98f17506f4905">Vamp::RealTime</a>
 <li>fromSeconds()
-: <a class="el" href="structVamp_1_1RealTime.html#754901a59483036097d8111b8c02f4f3">Vamp::RealTime</a>
+: <a class="el" href="structVamp_1_1RealTime.html#e29ae57d19c66f256839988a0959c6bb">Vamp::RealTime</a>
 <li>fromTimeval()
-: <a class="el" href="structVamp_1_1RealTime.html#ffdd22eee09b38335d3133c0e9a8f7b3">Vamp::RealTime</a>
+: <a class="el" href="structVamp_1_1RealTime.html#7f1e1e35ca5196283b2086e3d9cd9d3b">Vamp::RealTime</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func_0x67.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func_0x67.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li class="current"><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,72 +48,76 @@
       <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
 <p>
 <h3><a class="anchor" name="index_g">- g -</a></h3><ul>
-<li>generateTaxonomy()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#923d9ace30548d8f3cce58b4037ec9e4">Vamp::HostExt::PluginLoader::Impl</a>
+<li>getActualStepAndBlockSizes()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a065985fd864f6869d1bc7fea6fa2ece">Vamp::HostExt::PluginBufferingAdapter</a>
 <li>getCopyright()
 : <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e14f6ecb78be909c4cd5f0cdaed3c566">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classPowerSpectrum.html#708b4d335c57643d5ef2b2e1caf43bd9">PowerSpectrum</a>
+, <a class="el" href="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980">SpectralCentroid</a>
+, <a class="el" href="classAmplitudeFollower.html#0c197fc90f30d91cb4403115c83c9134">AmplitudeFollower</a>
 , <a class="el" href="classZeroCrossing.html#f9c41b92aa8ff8bddaebf75569ff789c">ZeroCrossing</a>
-, <a class="el" href="classAmplitudeFollower.html#0c197fc90f30d91cb4403115c83c9134">AmplitudeFollower</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#c73c9d6baad04369beee695e99584815">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classFixedTempoEstimator.html#50c6b64530c84c0707ba3936c5022a48">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#1a22ece271330c94cc08798a77416351">PercussionOnsetDetector</a>
-, <a class="el" href="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980">SpectralCentroid</a>
 <li>getCurrentProgram()
 : <a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">Vamp::PluginBase</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7a312dd42d161064b70afd7ff24c0651">Vamp::HostExt::PluginWrapper</a>
 <li>getDescription()
-: <a class="el" href="classPercussionOnsetDetector.html#9061d189705802a48973a7ccab6360db">PercussionOnsetDetector</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classAmplitudeFollower.html#6f0f2fea1fdb4b51e688edfe859d5062">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator.html#06b00853f00c2e78d490697fcd7d1920">FixedTempoEstimator</a>
+, <a class="el" href="classPercussionOnsetDetector.html#9061d189705802a48973a7ccab6360db">PercussionOnsetDetector</a>
+, <a class="el" href="classPowerSpectrum.html#7b48d56dc954f3af344f7e4dcd8993e5">PowerSpectrum</a>
 , <a class="el" href="classSpectralCentroid.html#8fbb74a46283057d9a0b0e4718ee943c">SpectralCentroid</a>
 , <a class="el" href="classZeroCrossing.html#710bb0b013157adaeef2a9e6867b4478">ZeroCrossing</a>
 , <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#5eaafcef030e81b90a3e77cf16cf8ae1">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c334f699c0996055942785410d8a065c">Vamp::HostExt::PluginWrapper</a>
-, <a class="el" href="classAmplitudeFollower.html#6f0f2fea1fdb4b51e688edfe859d5062">AmplitudeFollower</a>
 <li>getDescriptor()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#31d6c53c6ef9851782674f3e14bf891d">Vamp::PluginAdapterBase::Impl</a>
-, <a class="el" href="classVamp_1_1PluginAdapterBase.html#7ff5c9374a8dc43f977c3707d1da45b5">Vamp::PluginAdapterBase</a>
+: <a class="el" href="classVamp_1_1PluginAdapterBase.html#d24595002512f9f00e8e45216d6f5dfb">Vamp::PluginAdapterBase</a>
 <li>getIdentifier()
-: <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>
+: <a class="el" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a">ZeroCrossing</a>
+, <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#b27423a656f878d97d2ad2eba4e76c7a">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#4baa9e48f717c2b3e7f92496aa39d904">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classAmplitudeFollower.html#fe7576af95c8fcc7f5bad42eec9f9f29">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator.html#b818edcf1555177d10260e197e3a5e7a">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#267c83a7533146c127e2c3be310e0154">PercussionOnsetDetector</a>
+, <a class="el" href="classPowerSpectrum.html#9e9d8349461cbb88d7565a5e8c51b64e">PowerSpectrum</a>
 , <a class="el" href="classSpectralCentroid.html#1b2c4c8440c024c4c635fcef5697949f">SpectralCentroid</a>
-, <a class="el" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a">ZeroCrossing</a>
 <li>getInputDomain()
-: <a class="el" href="classAmplitudeFollower.html#fc07a389b5f922b944b0350fd232d2eb">AmplitudeFollower</a>
+: <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#8e9d25673367c741631a60cbb36e91d2">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#47ff1ed72889f323da63f8abc9ea581a">Vamp::HostExt::PluginInputDomainAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e203faf8384c9e1fddc381409aa8a214">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classAmplitudeFollower.html#fc07a389b5f922b944b0350fd232d2eb">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator.html#055689c9b41b0945e8d3cdbc3b8c3a2e">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#4f6954267696ee5bfa7dd1c4a6cfa92a">PercussionOnsetDetector</a>
+, <a class="el" href="classPowerSpectrum.html#e04e0e34847a93f3444d04c802ee56ef">PowerSpectrum</a>
 , <a class="el" href="classSpectralCentroid.html#0ec2cb74c1c5f6e57d0bd9dcf7c8f469">SpectralCentroid</a>
 , <a class="el" href="classZeroCrossing.html#afe2ce6ebd353a14c40db7e8e60f4051">ZeroCrossing</a>
-, <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#9c5239a4da67f1a426cd059e1a2856eb">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#376fa97a1c721255541fe35d71368976">Vamp::HostExt::PluginInputDomainAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#031aa818fd48fd0f4b5e1bf80c032870">Vamp::HostExt::PluginWrapper</a>
 <li>getInstance()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#dbb5c8855697a24be890e4f107e26b0e">Vamp::HostExt::PluginLoader</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#1d77fa1d58ee4fee2985b5af02380326">Vamp::HostExt::PluginLoader</a>
 <li>getLibraryPathForPlugin()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#aac3ed8bf770f0675e624d411dab3efb">Vamp::HostExt::PluginLoader::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#592d6b4c6edaa369407e833f56e4a4de">Vamp::HostExt::PluginLoader</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#4bbcb7873e617bbc9f79eade1f90f7ad">Vamp::HostExt::PluginLoader</a>
 <li>getMaker()
 : <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#f572be0b175f5661559006a380a0f3db">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#59d5a2298951b317995675e664b1c7bb">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classAmplitudeFollower.html#44fc43838f203f58bc2ce6e3cb2b03dd">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator.html#e910d1b9250b11097fd6b51cd8285b68">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#63d63f2cb7ea8d8b09d58cc13b541375">PercussionOnsetDetector</a>
+, <a class="el" href="classPowerSpectrum.html#9f3e3f759e2b67c771a41f1c276984b2">PowerSpectrum</a>
 , <a class="el" href="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8">SpectralCentroid</a>
 , <a class="el" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a">ZeroCrossing</a>
 <li>getMaxChannelCount()
@@ -126,101 +129,115 @@
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2b28f1cf37d46a514f1e1411a6037bf8">Vamp::HostExt::PluginWrapper</a>
 <li>getName()
-: <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>
+: <a class="el" href="classFixedTempoEstimator.html#f9eb6fa8a98aa66b55e64e1795f9405f">FixedTempoEstimator</a>
+, <a class="el" href="classPercussionOnsetDetector.html#a98f1ad061a11af98c054011a8844e6f">PercussionOnsetDetector</a>
+, <a class="el" href="classPowerSpectrum.html#c9214f9cafeeed3fca549c90aef57623">PowerSpectrum</a>
+, <a class="el" href="classSpectralCentroid.html#b7e6a620fea568af431be3cfd9dd5a41">SpectralCentroid</a>
+, <a class="el" href="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498">ZeroCrossing</a>
+, <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#45f1d0377e233eeddd1b7cefb48be62a">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c70a3265bb25aeb03f6dd8f8a0442088">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classAmplitudeFollower.html#7cfed00bc9d96ba6c709b69ab6a40594">AmplitudeFollower</a>
-, <a class="el" href="classPercussionOnsetDetector.html#a98f1ad061a11af98c054011a8844e6f">PercussionOnsetDetector</a>
-, <a class="el" href="classSpectralCentroid.html#b7e6a620fea568af431be3cfd9dd5a41">SpectralCentroid</a>
-, <a class="el" href="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498">ZeroCrossing</a>
-<li>getOutputCount()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#17af6e67c075bfb9b5069c51c7861e64">Vamp::PluginAdapterBase::Impl</a>
-<li>getOutputDescriptor()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#088345ac72041e44e18b7bf5edd32f44">Vamp::PluginAdapterBase::Impl</a>
 <li>getOutputDescriptors()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#85a027f5859efb31d315205e234e94c0">Vamp::HostExt::PluginBufferingAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#02c8c01972affeea58b091335e791ace">Vamp::HostExt::PluginWrapper</a>
+: <a class="el" href="classZeroCrossing.html#c9d590a6feb1fc9a37d7892aefe2b688">ZeroCrossing</a>
+, <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#f8cc914897a284433de220f1153f3845">Vamp::HostExt::PluginBufferingAdapter</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#9649a113da0252fe8bd9fc731b047ae0">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#5a9411305f713b4c9827844b89acd270">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classAmplitudeFollower.html#043e3c3db77d76267cd8069e1485bf26">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#7ce98af800f36045a0dae4b1dbed943f">FixedTempoEstimator::D</a>
+, <a class="el" href="classFixedTempoEstimator.html#83121c205a723fe6297e2bf8870622a4">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#a4537aa0eb58a67d6e824d46924cf782">PercussionOnsetDetector</a>
+, <a class="el" href="classPowerSpectrum.html#6aac5f93e3a8c033026d739fed427242">PowerSpectrum</a>
 , <a class="el" href="classSpectralCentroid.html#894ca9740927102bb80b56b5e9e95877">SpectralCentroid</a>
-, <a class="el" href="classZeroCrossing.html#c9d590a6feb1fc9a37d7892aefe2b688">ZeroCrossing</a>
-, <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#e02670cca9d25cdc4100cbe7a12e3e68">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4e8dcacfca3f1b82ac7d70c9d3ddddaf">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
 <li>getParameter()
 : <a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">Vamp::PluginBase</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#968ef2e555c81e4a3bde89d19fafb31a">FixedTempoEstimator::D</a>
+, <a class="el" href="classFixedTempoEstimator.html#2030b05fb1228b30ace16200780c9152">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">PercussionOnsetDetector</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">Vamp::PluginHostAdapter</a>
 <li>getParameterDescriptors()
-: <a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">PercussionOnsetDetector</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#bfa93b20d9b5651a32042a9bb7c8df13">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#3b075b8f950b344503f0d27ac0fe332e">Vamp::HostExt::PluginWrapper</a>
+: <a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">Vamp::PluginBase</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#602faa0bfaae83e2ca53b36292271a76">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">AmplitudeFollower</a>
-, <a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">Vamp::PluginBase</a>
+, <a class="el" href="classFixedTempoEstimator.html#e157465a4e07d180bab05b5c3a4d8987">FixedTempoEstimator</a>
+, <a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">PercussionOnsetDetector</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#06fcf80a9a22c4b90abbc88eb592621a">FixedTempoEstimator::D</a>
 <li>getPluginCategory()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#de4a5a8acbd85537c99440c4ac974be4">Vamp::HostExt::PluginLoader::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d5c594142ff058bd70e66247d45cd86e">Vamp::HostExt::PluginLoader</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#52746ea66339ad981b868a031a3b382d">Vamp::HostExt::PluginLoader</a>
 <li>getPluginPath()
-: <a class="el" href="classVamp_1_1PluginHostAdapter.html#08d7ed3a11bf4a3c30fa0f9b41a0fed6">Vamp::PluginHostAdapter</a>
+: <a class="el" href="classVamp_1_1PluginHostAdapter.html#09cbfb7903d28f10d6d556c6cb81c5f6">Vamp::PluginHostAdapter</a>
+<li>getPluginPreferredBlockSize()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7045be875de9dd226d2e2a222e957de0">Vamp::HostExt::PluginBufferingAdapter</a>
+<li>getPluginPreferredStepSize()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#d7fad500331808b5cdf90f5a45019b02">Vamp::HostExt::PluginBufferingAdapter</a>
 <li>getPluginVersion()
-: <a class="el" href="classPercussionOnsetDetector.html#d6b818dbd81867ce7be71c99cae861be">PercussionOnsetDetector</a>
+: <a class="el" href="classAmplitudeFollower.html#8a5d7a834eb996d517c51f84b2a72250">AmplitudeFollower</a>
+, <a class="el" href="classPercussionOnsetDetector.html#d6b818dbd81867ce7be71c99cae861be">PercussionOnsetDetector</a>
+, <a class="el" href="classFixedTempoEstimator.html#d002fddb3735c2dd7e31e6a9def9949f">FixedTempoEstimator</a>
 , <a class="el" href="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb">ZeroCrossing</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#6fbd94781867ca46a20368c2a3593c77">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#47e1acf1696813008324a915c9ba59c5">Vamp::HostExt::PluginWrapper</a>
-, <a class="el" href="classAmplitudeFollower.html#8a5d7a834eb996d517c51f84b2a72250">AmplitudeFollower</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#6fbd94781867ca46a20368c2a3593c77">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classSpectralCentroid.html#f64622e66bf678ac2b0b58aa832ca2b3">SpectralCentroid</a>
-, <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>
+, <a class="el" href="classPowerSpectrum.html#d23d27e4e82f10404a37b933f6a72c33">PowerSpectrum</a>
 <li>getPreferredBlockSize()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#b530681a774b29db3fd059149f4c1bf9">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">Vamp::Plugin</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#21e45180b19873f9ab69fe7a4e184a03">Vamp::HostExt::PluginBufferingAdapter</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#c02826f981736fc2aa5d835fa14e174d">FixedTempoEstimator::D</a>
+, <a class="el" href="classFixedTempoEstimator.html#68b8569b71504a0478caf990dbe30683">FixedTempoEstimator</a>
 , <a class="el" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">PercussionOnsetDetector</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</a>
 <li>getPreferredStepSize()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>
+: <a class="el" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">Vamp::Plugin</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">Vamp::Plugin</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#d979af9f1cbf2eeb16f4eaedb4a4f565">Vamp::HostExt::PluginInputDomainAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#0137d93d7019bacc31104836fb4d352e">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">PercussionOnsetDetector</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4380af577605306d2edab51042c71681">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
+, <a class="el" href="classFixedTempoEstimator.html#d450bb7e7df559ae3d68dfbfb085676f">FixedTempoEstimator</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#2e66d009df69c951001e5d2786973d60">Vamp::HostExt::PluginBufferingAdapter</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#dd749be18355ab1ae5c1ccbacfd2e192">FixedTempoEstimator::D</a>
 <li>getPrograms()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#f3abaf717dc4b00cad5770ed6dfa01e1">Vamp::HostExt::PluginWrapper</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#7ac5681dcfe08b7b8a796bffc0aff3e3">Vamp::PluginHostAdapter</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#e0cde5cd625418c1bc470b91f75daafc">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">Vamp::PluginBase</a>
-<li>getRate()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html#d6f14e142d960be479b291291cf8d735">Vamp::HostExt::PluginRateExtractor</a>
-<li>getReadSpace()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#830be6afbe2b46f0c9cd6071cf287cf8">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
 <li>getRemainingFeatures()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#8771cba75552aaa1340b68de9bf1659c">Vamp::HostExt::PluginBufferingAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#242913f6f438bef150e270cbeeacf711">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2bc8c0992e64f06991fb7cf89f99857e">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#7f9c3603bb3374d6936885010dbdd82b">FixedTempoEstimator::D</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#28423951b2eda1a1fc371485434f417b">Vamp::HostExt::PluginBufferingAdapter</a>
+, <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>
+, <a class="el" href="classPowerSpectrum.html#c8a9661a785d38f4c5ce8ca2d53e69f9">PowerSpectrum</a>
+, <a class="el" href="classFixedTempoEstimator.html#4965cf99be77fc4d1de51e11d83936b0">FixedTempoEstimator</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#984a4c11f3fbdcfd90e4837b1619a5ab">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classSpectralCentroid.html#83ba39f0870a2f86837605a958dfab1a">SpectralCentroid</a>
+, <a class="el" href="classAmplitudeFollower.html#368606f643b88e0df0823d85e36f030c">AmplitudeFollower</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#e9dcbd1ba8197ff90b4fc6bf7ade7688">Vamp::HostExt::PluginSummarisingAdapter</a>
+, <a class="el" href="classZeroCrossing.html#70996d1b7166e303903daf92a9a37ad8">ZeroCrossing</a>
 , <a class="el" href="classPercussionOnsetDetector.html#d3d6767ed137783e84f842b4d4732ffa">PercussionOnsetDetector</a>
-, <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>
-, <a class="el" href="classZeroCrossing.html#70996d1b7166e303903daf92a9a37ad8">ZeroCrossing</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe">Vamp::HostExt::PluginWrapper</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#d3f5f16a89a821da2ec1186fd2062e83">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classSpectralCentroid.html#83ba39f0870a2f86837605a958dfab1a">SpectralCentroid</a>
-, <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9fe7df06eb951c259763d56c49544676">Vamp::PluginAdapterBase::Impl</a>
-, <a class="el" href="classAmplitudeFollower.html#368606f643b88e0df0823d85e36f030c">AmplitudeFollower</a>
-<li>getSize()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#205516271035fef2e94bb1af17b6c47d">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+<li>getSummaryForAllOutputs()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#c3f93d9ca2d25c9fdc80d0ba10eaaa6b">Vamp::HostExt::PluginSummarisingAdapter</a>
+<li>getSummaryForOutput()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#be13faa68d3244b962dbd362671e23f9">Vamp::HostExt::PluginSummarisingAdapter</a>
+<li>getTimestampAdjustment()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#c1ab6af0fcda0a4c3f050c54b2db4769">Vamp::HostExt::PluginInputDomainAdapter</a>
 <li>getType()
-: <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>
-, <a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">Vamp::Plugin</a>
+: <a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">Vamp::Plugin</a>
+, <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>
 <li>getVampApiVersion()
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">Vamp::PluginBase</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">Vamp::PluginBase</a>
-<li>getWriteSpace()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f9edfe7748168802019429af240bcc74">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+<li>getWrapper()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3">Vamp::HostExt::PluginWrapper</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func_0x69.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func_0x69.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li class="current"><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,45 +48,34 @@
       <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
 <p>
 <h3><a class="anchor" name="index_i">- i -</a></h3><ul>
-<li>Impl()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9b5cff59377109e63b3894920205be9a">Vamp::PluginAdapterBase::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#97990c497a954220254172f2554e608e">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dffa09cc6be98d87cb33c1e92310c9fc">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ddac537272c2eb69973cbb942dc11deb">Vamp::HostExt::PluginLoader::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#dff6fc53236f067148f82da1adca7876">Vamp::HostExt::PluginChannelAdapter::Impl</a>
 <li>initialise()
-: <a class="el" href="classAmplitudeFollower.html#eb727e44ee8ad1aceb90964d20f8d90d">AmplitudeFollower</a>
+: <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin</a>
+, <a class="el" href="classZeroCrossing.html#f21bbcc87a6eb7875dfab7d86222dccc">ZeroCrossing</a>
+, <a class="el" href="classSpectralCentroid.html#ab1ae16f5c68e2b319668f447908cedb">SpectralCentroid</a>
+, <a class="el" href="classPowerSpectrum.html#e2d046334c4bede5be72a0d97e4dfb29">PowerSpectrum</a>
+, <a class="el" href="classPercussionOnsetDetector.html#349c528260622308f3850bcda8a448ab">PercussionOnsetDetector</a>
+, <a class="el" href="classFixedTempoEstimator.html#a7500a4ffbc4653baaf5101defdb37f5">FixedTempoEstimator</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#f0fcad4493650728babb7e341963c91d">FixedTempoEstimator::D</a>
+, <a class="el" href="classAmplitudeFollower.html#eb727e44ee8ad1aceb90964d20f8d90d">AmplitudeFollower</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#1e994576d43efe103bf8f83b69716745">Vamp::HostExt::PluginSummarisingAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#72d201eca10ec73bf16e07984f58f94c">Vamp::HostExt::PluginInputDomainAdapter</a>
-, <a class="el" href="classSpectralCentroid.html#ab1ae16f5c68e2b319668f447908cedb">SpectralCentroid</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#de0473c8fc54636431967cbf41649c1c">Vamp::HostExt::PluginChannelAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#bf47235b455880c94ec15bb71122afc8">Vamp::HostExt::PluginChannelAdapter::Impl</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#9e7798ba4d7870db46502ab541ab37a8">Vamp::HostExt::PluginBufferingAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#4b2bbe763ec728b5494145abcebca2e2">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#58c9bcbddcb7c3a1a3791b2a04e7372e">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-, <a class="el" href="classZeroCrossing.html#f21bbcc87a6eb7875dfab7d86222dccc">ZeroCrossing</a>
-, <a class="el" href="classPercussionOnsetDetector.html#349c528260622308f3850bcda8a448ab">PercussionOnsetDetector</a>
-, <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin</a>
-<li>InstanceCleaner()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#94ae2e994b87be62dd401852fb8d49fd">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func_0x6c.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func_0x6c.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,37 +48,25 @@
       <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
 <p>
 <h3><a class="anchor" name="index_l">- l -</a></h3><ul>
-<li>listFiles()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2dd3964e84bca56390cd31b079fbc01f">Vamp::HostExt::PluginLoader::Impl</a>
+<li>lag2tempo()
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#0a7cb0705938097ab23a6f9187e6bae5">FixedTempoEstimator::D</a>
 <li>listPlugins()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#398ccb508176f5550b2b2ca05f1fa3eb">Vamp::HostExt::PluginLoader::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ec450c2928b1ae5318d45972722dd16b">Vamp::HostExt::PluginLoader</a>
-<li>loadLibrary()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#c0618149e415b7fd8ad782f434070752">Vamp::HostExt::PluginLoader::Impl</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff51b52bb68aa2934ccf26ad1d284f28">Vamp::HostExt::PluginLoader</a>
 <li>loadPlugin()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#3f6c4872459007b13722818cbdac409c">Vamp::HostExt::PluginLoader::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#2154970381343edef629482bdafea7e2">Vamp::HostExt::PluginLoader</a>
-<li>lookupAdapter()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#186446e143fb2bb237c952a14db6ceff">Vamp::PluginAdapterBase::Impl</a>
-<li>lookupInLibrary()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#ec71088ca89ba77f357bde8b37b807f8">Vamp::HostExt::PluginLoader::Impl</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f">Vamp::HostExt::PluginLoader</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func_0x6d.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func_0x6d.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,27 +48,21 @@
       <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
 <p>
 <h3><a class="anchor" name="index_m">- m -</a></h3><ul>
-<li>makeBlockSizeAcceptable()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#76073669d78c0681a3b3a9e71da86ae6">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
 <li>msec()
 : <a class="el" href="structVamp_1_1RealTime.html#76e22815db51ae180c38021110da9947">Vamp::RealTime</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func_0x6f.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func_0x6f.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,14 +48,10 @@
       <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
@@ -76,17 +71,18 @@
 : <a class="el" href="structVamp_1_1RealTime.html#cf4278eec678c558d62bbda6bc1da44e">Vamp::RealTime</a>
 <li>operator=()
 : <a class="el" href="structVamp_1_1RealTime.html#db82f838804a9a3ad49988de5944d090">Vamp::RealTime</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#7166d8a3f7312064f9b2bb1e874ca8ef">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
 <li>operator==()
 : <a class="el" href="structVamp_1_1RealTime.html#bc5f06b5b9973012cb7453192df3ea5e">Vamp::RealTime</a>
 <li>operator&gt;()
 : <a class="el" href="structVamp_1_1RealTime.html#6f0aced679e2f97133ed63c688b335e4">Vamp::RealTime</a>
 <li>operator&gt;=()
 : <a class="el" href="structVamp_1_1RealTime.html#5cb785a410e3a91ed3092b7bba22afc3">Vamp::RealTime</a>
+<li>OutputDescriptor()
+: <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1ebf91cc3f60e4cbba818c10591cd344">Vamp::Plugin::OutputDescriptor</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func_0x70.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func_0x70.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,21 +48,17 @@
       <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
 <p>
 <h3><a class="anchor" name="index_p">- p -</a></h3><ul>
-<li>peek()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#c68e9b2b24e1ac17f017c80ade70b355">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+<li>ParameterDescriptor()
+: <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#5b793130e9746b2302317b3c9a9c1395">Vamp::PluginBase::ParameterDescriptor</a>
 <li>PercussionOnsetDetector()
 : <a class="el" href="classPercussionOnsetDetector.html#9f700579805ee5105758d847baab3511">PercussionOnsetDetector</a>
 <li>Plugin()
@@ -76,41 +71,39 @@
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#1276bcfcbe1414b33eeefbd7b2b702fe">Vamp::HostExt::PluginBufferingAdapter</a>
 <li>PluginChannelAdapter()
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#2cda2b672708264f9a33c43bad3acdd8">Vamp::HostExt::PluginChannelAdapter</a>
-<li>pluginDeleted()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#e0a6e1bf07a62eb6a34a1393bc3da26c">Vamp::HostExt::PluginLoader::Impl</a>
-<li>PluginDeletionNotifyAdapter()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#80196e30ed72a4f45b4152a3991d7777">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter</a>
 <li>PluginHostAdapter()
 : <a class="el" href="classVamp_1_1PluginHostAdapter.html#6535abd551acfbbaab381bbe1268cd49">Vamp::PluginHostAdapter</a>
 <li>PluginInputDomainAdapter()
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#878e7275acdb77efc7a802944305039d">Vamp::HostExt::PluginInputDomainAdapter</a>
 <li>PluginLoader()
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#5ab9e0281244bef7976c6c0ce1a55c24">Vamp::HostExt::PluginLoader</a>
-<li>PluginRateExtractor()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html#2ca2ad6683e73737a7c9b0f9b1a35f00">Vamp::HostExt::PluginRateExtractor</a>
+<li>PluginSummarisingAdapter()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#31b41f54560a2ae6c3ec1a945f3f1d68">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>PluginWrapper()
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#35cc2d42f8322f5022e89859a79c97be">Vamp::HostExt::PluginWrapper</a>
+<li>PowerSpectrum()
+: <a class="el" href="classPowerSpectrum.html#a2550486513a4abcf7b52869002947e7">PowerSpectrum</a>
 <li>process()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ce73f776af09556fa6dc000c8bfdbe06">Vamp::HostExt::PluginChannelAdapter::Impl</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#3314b456a4780601c021dac25b478846">Vamp::HostExt::PluginSummarisingAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#55058a20c1f8bffc0dc927350df778a0">Vamp::HostExt::PluginBufferingAdapter</a>
 , <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</a>
+, <a class="el" href="classFixedTempoEstimator.html#1cf76b0e55cf4ed3da095cffcdeaec3c">FixedTempoEstimator</a>
+, <a class="el" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da">ZeroCrossing</a>
 , <a class="el" href="classAmplitudeFollower.html#48d0f95cac31ffd190cff89b50a2a5bd">AmplitudeFollower</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#fca78043c2843c1d45019983515e23f7">Vamp::HostExt::PluginWrapper</a>
-, <a class="el" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da">ZeroCrossing</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#1bd8c3ca5ce5d8254d2d4af910cc31f0">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
 , <a class="el" href="classSpectralCentroid.html#ca96c70e7e75c9e4a7db38485018914c">SpectralCentroid</a>
+, <a class="el" href="classPowerSpectrum.html#a5664ffc2b37a16db471fae791c1f55f">PowerSpectrum</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#7fac74fc9fc54f436408705d1e125e20">FixedTempoEstimator::D</a>
 , <a class="el" href="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614">PercussionOnsetDetector</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#0867737693c16801d40a6adbde07ec07">Vamp::HostExt::PluginInputDomainAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#03718981c892400287483cc8501adfeb">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#262206b978d9de28ee4bb35f437e915e">Vamp::HostExt::PluginBufferingAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#294e663b4d9ec885791faa1b440571ed">Vamp::HostExt::PluginChannelAdapter</a>
-, <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0eca18a4ae046e4ac1ebd25bb3ac5a08">Vamp::PluginAdapterBase::Impl</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684">Vamp::PluginHostAdapter</a>
-<li>processBlock()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#65f718273e06cb3d2e0ef09ca173aa54">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#b36a81ac9a0ded8d83c6b855263c0231">Vamp::HostExt::PluginInputDomainAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#6ff37bf754ff8711dbcb2f020fa3902c">Vamp::HostExt::PluginChannelAdapter</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd">Vamp::PluginHostAdapter</a>
+<li>processInterleaved()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#5c94c3eb1dbc8899fe58527bbb7bb61f">Vamp::HostExt::PluginChannelAdapter</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func_0x72.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func_0x72.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,14 +48,10 @@
       <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
@@ -65,30 +60,23 @@
 <li>RealTime()
 : <a class="el" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">Vamp::RealTime</a>
 <li>realTime2Frame()
-: <a class="el" href="structVamp_1_1RealTime.html#1c32b50b1511cdca17cd6c1c3c05d9b5">Vamp::RealTime</a>
+: <a class="el" href="structVamp_1_1RealTime.html#c046c73d88da6715e55b12e10534bb5c">Vamp::RealTime</a>
 <li>reset()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#c3eba9efa4b5bdb4bfa9907ad9203fe1">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+: <a class="el" href="classPercussionOnsetDetector.html#9b1075e992cd9599764ef3881fb91d1a">PercussionOnsetDetector</a>
+, <a class="el" href="classFixedTempoEstimator.html#c41708397255400c6682fee6c1b3d45f">FixedTempoEstimator</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#f5ac8147bfe79371d00aba8a19c2f8fd">FixedTempoEstimator::D</a>
+, <a class="el" href="classAmplitudeFollower.html#cebd835e80e84669df078fbd7591d8f7">AmplitudeFollower</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#5d54c5bbd76bc27b7a243827148afeaa">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a">Vamp::HostExt::PluginBufferingAdapter</a>
+, <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin</a>
 , <a class="el" href="classZeroCrossing.html#9ae6c4a31ea027dceb1e97ead807e228">ZeroCrossing</a>
 , <a class="el" href="classSpectralCentroid.html#9b5f5581691ff8f46bb7674d8d74395c">SpectralCentroid</a>
-, <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">Vamp::HostExt::PluginWrapper</a>
-, <a class="el" href="classAmplitudeFollower.html#cebd835e80e84669df078fbd7591d8f7">AmplitudeFollower</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#5d54c5bbd76bc27b7a243827148afeaa">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classPercussionOnsetDetector.html#9b1075e992cd9599764ef3881fb91d1a">PercussionOnsetDetector</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#102263ad3dc229a1292792d73da2f0a1">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li>resizeFL()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f5fcc5331f2dfa4c650eee636af72403">Vamp::PluginAdapterBase::Impl</a>
-<li>resizeFS()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#429c029c0068230d1afa97426b04ce0d">Vamp::PluginAdapterBase::Impl</a>
-<li>resizeFV()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9b0791b97e91f8b8c3d18f3ed3bed861">Vamp::PluginAdapterBase::Impl</a>
-<li>RingBuffer()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3d312133554f60780872939b187b46ee">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+, <a class="el" href="classPowerSpectrum.html#091ba21e1697ea4208f42e8295c389d9">PowerSpectrum</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func_0x73.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func_0x73.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,14 +48,10 @@
       <li class="current"><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
@@ -64,28 +59,30 @@
 <h3><a class="anchor" name="index_s">- s -</a></h3><ul>
 <li>selectProgram()
 : <a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">Vamp::PluginBase</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">Vamp::PluginHostAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#074978333a74fdcf336a8a1d8ea20abf">Vamp::HostExt::PluginWrapper</a>
-<li>setInstance()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#11edf3783377088dd757b46d9b2c9101">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a>
-<li>setInstanceToClean()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#b7147ecb2186a715b0f7e83ba70f0946">Vamp::HostExt::PluginLoader::Impl</a>
 <li>setParameter()
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#651b15a5dc4c27942ac0c87c6092bfe5">Vamp::HostExt::PluginWrapper</a>
 , <a class="el" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">AmplitudeFollower</a>
+, <a class="el" href="classFixedTempoEstimator.html#8a5a413025384cf451c64d2c2ce13a75">FixedTempoEstimator</a>
+, <a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">Vamp::PluginBase</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#6cafa64d4cc8aa3556bc0ce6b0c49bc4">FixedTempoEstimator::D</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7a979b20c169d37adbd7b7d8b8a077b3">Vamp::HostExt::PluginBufferingAdapter</a>
 , <a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">Vamp::PluginHostAdapter</a>
 , <a class="el" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">PercussionOnsetDetector</a>
-, <a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">Vamp::PluginBase</a>
-<li>skip()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#62e7a7a8fd76bf3f04add2a7b6932211">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+<li>setPluginBlockSize()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#a80ae1bff6f95e805811df2c3770a98c">Vamp::HostExt::PluginBufferingAdapter</a>
+<li>setPluginStepSize()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#c99898d78a01a7fad4def4d6c5fd3a7e">Vamp::HostExt::PluginBufferingAdapter</a>
+<li>setSummarySegmentBoundaries()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#1a659500ca1290a228c0b9b91f6ac0b7">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>SpectralCentroid()
 : <a class="el" href="classSpectralCentroid.html#2cd801ad72f262eceb95ab0d22e7dbcd">SpectralCentroid</a>
-<li>splicePath()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#eb7a794c0a2410a81a382a08e8a0143c">Vamp::HostExt::PluginLoader::Impl</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func_0x74.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func_0x74.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,27 +48,25 @@
       <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li class="current"><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
 <p>
 <h3><a class="anchor" name="index_t">- t -</a></h3><ul>
+<li>tempo2lag()
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#c6a75212293fc855de6ed0c6581a0fb9">FixedTempoEstimator::D</a>
 <li>toString()
 : <a class="el" href="structVamp_1_1RealTime.html#d44476618183bd736996a87292d03c07">Vamp::RealTime</a>
 <li>toText()
 : <a class="el" href="structVamp_1_1RealTime.html#d75b927afadfa422ae512d169ccda0aa">Vamp::RealTime</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func_0x75.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func_0x75.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,27 +48,21 @@
       <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li class="current"><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
 <p>
 <h3><a class="anchor" name="index_u">- u -</a></h3><ul>
-<li>unloadLibrary()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#6a93367036f896d505f553b616e1e7aa">Vamp::HostExt::PluginLoader::Impl</a>
 <li>usec()
 : <a class="el" href="structVamp_1_1RealTime.html#ace9e2c60af62273e45ccd98d623914c">Vamp::RealTime</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func_0x76.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-<!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: Class Members - Functions</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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-  <div class="tabs">
-    <ul>
-      <li><a href="functions.html"><span>All</span></a></li>
-      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
-      <li><a href="functions_vars.html"><span>Variables</span></a></li>
-      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
-      <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
-      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
-    </ul>
-  </div>
-  <div class="tabs">
-    <ul>
-      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
-      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
-      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
-      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
-      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
-      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
-      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
-      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
-      <li><a href="functions_func_0x6f.html#index_o"><span>o</span></a></li>
-      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
-      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
-      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
-      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
-      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li class="current"><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
-      <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
-      <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
-    </ul>
-  </div>
-
-<p>
-</div>
-<div class="contents">
-&nbsp;
-<p>
-<h3><a class="anchor" name="index_v">- v -</a></h3><ul>
-<li>vampCleanup()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#198dddb40f4fedc71f8ec45088d22d93">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetCurrentProgram()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#62824538d09f38a060bcc593f79ca8a1">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetMaxChannelCount()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#16bfdb3fc7b683a170b01bf92a49dee2">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetMinChannelCount()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9825e946f36f8838ec3d4cb838c00220">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetOutputCount()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#debb9f604929cde924e783997e9efda3">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetOutputDescriptor()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#5118f9af094598b9f8c8a295a5e2290c">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetParameter()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#e3791f409c626f856133d1ed473dbcdd">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetPreferredBlockSize()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#46d39ad29bb4c689e21379e1eb387ace">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetPreferredStepSize()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a6e7c06690fed8d7af284be34a590b4b">Vamp::PluginAdapterBase::Impl</a>
-<li>vampGetRemainingFeatures()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#f6af04fcb927463cfe1f85e936935767">Vamp::PluginAdapterBase::Impl</a>
-<li>vampInitialise()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#210cd61fc3fd8f66eda087a6d726cd2b">Vamp::PluginAdapterBase::Impl</a>
-<li>vampInstantiate()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#8cf9e01074559a6b23064d920629dd55">Vamp::PluginAdapterBase::Impl</a>
-<li>vampProcess()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#bc8f37b80648a0a7108a6e0ebaf45525">Vamp::PluginAdapterBase::Impl</a>
-<li>vampReleaseFeatureSet()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#b0bc48dbdb1396410690d1b190522a95">Vamp::PluginAdapterBase::Impl</a>
-<li>vampReleaseOutputDescriptor()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#ff063ab7b4dfb0d13883e7ce19cf93a3">Vamp::PluginAdapterBase::Impl</a>
-<li>vampReset()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#9dc6a2cc51118525c50583e2f7ac339a">Vamp::PluginAdapterBase::Impl</a>
-<li>vampSelectProgram()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#124b1ee65cbb733004ae96f4fa001246">Vamp::PluginAdapterBase::Impl</a>
-<li>vampSetParameter()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#96a4f1c8359479d41e9b9c3438b561a6">Vamp::PluginAdapterBase::Impl</a>
-</ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/functions_func_0x77.html	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-<!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: Class Members - Functions</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&nbsp;Page</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
-      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
-      <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
-    </ul>
-  </div>
-  <div class="tabs">
-    <ul>
-      <li><a href="functions.html"><span>All</span></a></li>
-      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
-      <li><a href="functions_vars.html"><span>Variables</span></a></li>
-      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
-      <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
-      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
-    </ul>
-  </div>
-  <div class="tabs">
-    <ul>
-      <li><a href="functions_func.html#index_a"><span>a</span></a></li>
-      <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
-      <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
-      <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
-      <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
-      <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
-      <li><a href="functions_func_0x6c.html#index_l"><span>l</span></a></li>
-      <li><a href="functions_func_0x6d.html#index_m"><span>m</span></a></li>
-      <li><a href="functions_func_0x6f.html#index_o"><span>o</span></a></li>
-      <li><a href="functions_func_0x70.html#index_p"><span>p</span></a></li>
-      <li><a href="functions_func_0x72.html#index_r"><span>r</span></a></li>
-      <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
-      <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
-      <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li class="current"><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
-      <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
-      <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
-    </ul>
-  </div>
-
-<p>
-</div>
-<div class="contents">
-&nbsp;
-<p>
-<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
-<li>write()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#8e5b1d24ec4534563c48439980368135">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
-</ul>
-</div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
-<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>
--- a/code-doc/functions_func_0x7a.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func_0x7a.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,27 +48,21 @@
       <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li class="current"><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
 <p>
 <h3><a class="anchor" name="index_z">- z -</a></h3><ul>
-<li>zero()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f9d1d2df1f27bd2399b81c82ee9af6df">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
 <li>ZeroCrossing()
 : <a class="el" href="classZeroCrossing.html#9855153a54bdc9ba75cc1a705a149473">ZeroCrossing</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_func_0x7e.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_func_0x7e.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,7 +37,6 @@
       <li><a href="functions_func.html#index_a"><span>a</span></a></li>
       <li><a href="functions_func_0x63.html#index_c"><span>c</span></a></li>
       <li><a href="functions_func_0x64.html#index_d"><span>d</span></a></li>
-      <li><a href="functions_func_0x65.html#index_e"><span>e</span></a></li>
       <li><a href="functions_func_0x66.html#index_f"><span>f</span></a></li>
       <li><a href="functions_func_0x67.html#index_g"><span>g</span></a></li>
       <li><a href="functions_func_0x69.html#index_i"><span>i</span></a></li>
@@ -49,14 +48,10 @@
       <li><a href="functions_func_0x73.html#index_s"><span>s</span></a></li>
       <li><a href="functions_func_0x74.html#index_t"><span>t</span></a></li>
       <li><a href="functions_func_0x75.html#index_u"><span>u</span></a></li>
-      <li><a href="functions_func_0x76.html#index_v"><span>v</span></a></li>
-      <li><a href="functions_func_0x77.html#index_w"><span>w</span></a></li>
       <li><a href="functions_func_0x7a.html#index_z"><span>z</span></a></li>
       <li class="current"><a href="functions_func_0x7e.html#index_~"><span>~</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
@@ -64,14 +59,10 @@
 <h3><a class="anchor" name="index_~">- ~ -</a></h3><ul>
 <li>~AmplitudeFollower()
 : <a class="el" href="classAmplitudeFollower.html#a78f98539ad3a1b08691a99b32035b2d">AmplitudeFollower</a>
-<li>~Impl()
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#75b00d5c8012db240fc410d18fd1235a">Vamp::PluginAdapterBase::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#2f93eb032a41a52967e1c47a2901fa33">Vamp::HostExt::PluginChannelAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#2c75fc9191782ee69185c60f9b68cb90">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#772d000b68dde932323ed39ab65e1a9a">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1e28874a14fafaf015404694da5fcfc8">Vamp::HostExt::PluginLoader::Impl</a>
-<li>~InstanceCleaner()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#246ddea5df77287755b1aaef734538bf">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a>
+<li>~D()
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#78a63ac8bbf342cb0405747871adf4cc">FixedTempoEstimator::D</a>
+<li>~FixedTempoEstimator()
+: <a class="el" href="classFixedTempoEstimator.html#0302c4bfdc163a3d34478cde93c96a53">FixedTempoEstimator</a>
 <li>~PercussionOnsetDetector()
 : <a class="el" href="classPercussionOnsetDetector.html#99f833667cf8185e879d735216c7642b">PercussionOnsetDetector</a>
 <li>~Plugin()
@@ -79,33 +70,33 @@
 <li>~PluginAdapter()
 : <a class="el" href="classVamp_1_1PluginAdapter.html#9612c9df7d4844959a36921d43d4bd50">Vamp::PluginAdapter&lt; P &gt;</a>
 <li>~PluginAdapterBase()
-: <a class="el" href="classVamp_1_1PluginAdapterBase.html#e39492abdca4b588a582962fdeab819d">Vamp::PluginAdapterBase</a>
+: <a class="el" href="classVamp_1_1PluginAdapterBase.html#aa8afd318b6c3da108e1cbcc7e46603d">Vamp::PluginAdapterBase</a>
 <li>~PluginBase()
 : <a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">Vamp::PluginBase</a>
 <li>~PluginBufferingAdapter()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#539423b54a4ede511476125f4a97d977">Vamp::HostExt::PluginBufferingAdapter</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#96263f7b0910a10eeae86f20db007e55">Vamp::HostExt::PluginBufferingAdapter</a>
 <li>~PluginChannelAdapter()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#7bd79ac5febc8d3c499e7339476c07b4">Vamp::HostExt::PluginChannelAdapter</a>
-<li>~PluginDeletionNotifyAdapter()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#bb85c0134c354c0854f3868a60d0193f">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#cb9a20fefd130e323b1eb2ced43e521c">Vamp::HostExt::PluginChannelAdapter</a>
 <li>~PluginHostAdapter()
-: <a class="el" href="classVamp_1_1PluginHostAdapter.html#b0f354cb332852ab1892488f6b8e8c0e">Vamp::PluginHostAdapter</a>
+: <a class="el" href="classVamp_1_1PluginHostAdapter.html#ed66c091340aa668d3be89c4b4c24474">Vamp::PluginHostAdapter</a>
 <li>~PluginInputDomainAdapter()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ec457c952155adf516dd8e3dc7739321">Vamp::HostExt::PluginInputDomainAdapter</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ba2cbfa650d8a7c9181dbdb49b10aad0">Vamp::HostExt::PluginInputDomainAdapter</a>
 <li>~PluginLoader()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#9e092d864efdc0f16c032bfb25e76dea">Vamp::HostExt::PluginLoader</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d74ab52bc6aa2514b3a6b3f679fc492c">Vamp::HostExt::PluginLoader</a>
+<li>~PluginSummarisingAdapter()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#47846e7cc0ef4a29335e08b9645316d0">Vamp::HostExt::PluginSummarisingAdapter</a>
 <li>~PluginWrapper()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#7449a364d524de75352a4719fec2e1f5">Vamp::HostExt::PluginWrapper</a>
-<li>~RingBuffer()
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#f1e12002a506cc1433793e7b93e73b80">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#c4fb6cfd7c0d3b2c8576a4e9dc61f518">Vamp::HostExt::PluginWrapper</a>
+<li>~PowerSpectrum()
+: <a class="el" href="classPowerSpectrum.html#e7081e159ad1da5da1721b3048075306">PowerSpectrum</a>
 <li>~SpectralCentroid()
 : <a class="el" href="classSpectralCentroid.html#483e0d6757bc3dcf61e8066f764f45c6">SpectralCentroid</a>
 <li>~ZeroCrossing()
 : <a class="el" href="classZeroCrossing.html#f1de0da862e6e2443581e4e16044675b">ZeroCrossing</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_type.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_type.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,16 +37,12 @@
 &nbsp;
 <p>
 <ul>
-<li>AdapterMap
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#6c8f2c8fce370d586785353c939601d5">Vamp::PluginAdapterBase::Impl</a>
 <li>FeatureList
 : <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">Vamp::Plugin</a>
 <li>FeatureSet
 : <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">Vamp::Plugin</a>
 <li>OutputList
 : <a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">Vamp::Plugin</a>
-<li>OutputMap
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#fd448b66d5973d8e14ec592dabcbbd2d">Vamp::PluginAdapterBase::Impl</a>
 <li>ParameterList
 : <a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">Vamp::PluginBase</a>
 <li>PluginCategoryHierarchy
@@ -57,10 +53,12 @@
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#0d48b76e4f995110f53e0feeb23f733a">Vamp::HostExt::PluginLoader</a>
 <li>ProgramList
 : <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">Vamp::PluginBase</a>
+<li>SegmentBoundaries
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#74e7f93c745802a2409185b63922466b">Vamp::HostExt::PluginSummarisingAdapter</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/functions_vars.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/functions_vars.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -54,8 +54,6 @@
       <li><a href="#index_z"><span>z</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 &nbsp;
@@ -79,17 +77,23 @@
 : <a class="el" href="struct__VampParameterDescriptor.html#3d37f986ee152ab55feb9902b35f7aca">_VampParameterDescriptor</a>
 , <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc">Vamp::PluginBase::ParameterDescriptor</a>
 <li>description
-: <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1">Vamp::Plugin::OutputDescriptor</a>
+: <a class="el" href="struct__VampOutputDescriptor.html#bfa911b138cfb80cf63e8f2e0fa0fb89">_VampOutputDescriptor</a>
 , <a class="el" href="struct__VampPluginDescriptor.html#9ff8050f92f1a04a68bb34a9d368295e">_VampPluginDescriptor</a>
-, <a class="el" href="struct__VampOutputDescriptor.html#bfa911b138cfb80cf63e8f2e0fa0fb89">_VampOutputDescriptor</a>
+, <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#780ddad41e433d85c82f9ea4d959cbaf">Vamp::PluginBase::ParameterDescriptor</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1">Vamp::Plugin::OutputDescriptor</a>
 , <a class="el" href="struct__VampParameterDescriptor.html#95489272d6cf5a5b487e949da8e4fac6">_VampParameterDescriptor</a>
-, <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#780ddad41e433d85c82f9ea4d959cbaf">Vamp::PluginBase::ParameterDescriptor</a>
+<li>duration
+: <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#f687c0a7fe041757e922ec296862b115">Vamp::Plugin::Feature</a>
+<li>durationNsec
+: <a class="el" href="struct__VampFeatureV2.html#f71693d907f69048d602d28edbce679e">_VampFeatureV2</a>
+<li>durationSec
+: <a class="el" href="struct__VampFeatureV2.html#bc95aac3a2efdef6ef0b17e7b6bd3daf">_VampFeatureV2</a>
 </ul>
 <h3><a class="anchor" name="index_f">- f -</a></h3><ul>
 <li>featureCount
 : <a class="el" href="struct__VampFeatureList.html#01db33a31ae5e04a4bd097f4b6aa75f1">_VampFeatureList</a>
 <li>features
-: <a class="el" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f">_VampFeatureList</a>
+: <a class="el" href="struct__VampFeatureList.html#103c817094643ac5ff4410768f4f92a7">_VampFeatureList</a>
 </ul>
 <h3><a class="anchor" name="index_g">- g -</a></h3><ul>
 <li>getCurrentProgram
@@ -112,12 +116,17 @@
 : <a class="el" href="struct__VampPluginDescriptor.html#d22c666188aadab83c354a0edb18fcf0">_VampPluginDescriptor</a>
 </ul>
 <h3><a class="anchor" name="index_h">- h -</a></h3><ul>
+<li>hasDuration
+: <a class="el" href="struct__VampOutputDescriptor.html#f792a96dbf292ec966b9b68250febd99">_VampOutputDescriptor</a>
+, <a class="el" href="struct__VampFeatureV2.html#44d9c57f1ae197d3fec1a48c650cce81">_VampFeatureV2</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#33686757bd4481c72494122e9bfb9fba">Vamp::Plugin::Feature</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b0d7cc6ab19e53b5bd12ee234f549ea3">Vamp::Plugin::OutputDescriptor</a>
 <li>hasFixedBinCount
 : <a class="el" href="struct__VampOutputDescriptor.html#e8571f5a2bc740738af0cb7dda0c4749">_VampOutputDescriptor</a>
 , <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d">Vamp::Plugin::OutputDescriptor</a>
 <li>hasKnownExtents
-: <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31">Vamp::Plugin::OutputDescriptor</a>
-, <a class="el" href="struct__VampOutputDescriptor.html#f6b512d772023b4e852216689c1c4465">_VampOutputDescriptor</a>
+: <a class="el" href="struct__VampOutputDescriptor.html#f6b512d772023b4e852216689c1c4465">_VampOutputDescriptor</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31">Vamp::Plugin::OutputDescriptor</a>
 <li>hasTimestamp
 : <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b">Vamp::Plugin::Feature</a>
 , <a class="el" href="struct__VampFeature.html#be6aa7a08185beeb9deca2d08d99859f">_VampFeature</a>
@@ -147,139 +156,84 @@
 , <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036">Vamp::Plugin::Feature</a>
 </ul>
 <h3><a class="anchor" name="index_m">- m -</a></h3><ul>
-<li>m_adapterMap
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#3526d127572dd900de260ac90433d062">Vamp::PluginAdapterBase::Impl</a>
-<li>m_allPluginsEnumerated
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#d7b867e5cf9c29ad7254f567849f9913">Vamp::HostExt::PluginLoader::Impl</a>
-<li>m_base
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#c0372df58956b4bf99a9ec070b11dea4">Vamp::PluginAdapterBase::Impl</a>
 <li>m_blockSize
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#7f5f42ff4da0046f38579e9d0f384144">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#0b9bf37e600f0564b9f305f73a9517c8">FixedTempoEstimator::D</a>
+, <a class="el" href="classPercussionOnsetDetector.html#920de543dbcf70a2edd80b5b31313285">PercussionOnsetDetector</a>
 , <a class="el" href="classSpectralCentroid.html#262f583d71b442bb2d80023e7c85aa4e">SpectralCentroid</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#be7b76040411a4544a9a8b0808737626">Vamp::HostExt::PluginChannelAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#efcb8c5e8d65003eaf96d2bfefc83fe5">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-, <a class="el" href="classPercussionOnsetDetector.html#920de543dbcf70a2edd80b5b31313285">PercussionOnsetDetector</a>
-<li>m_buffer
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#4cdf77619ee8e8650b1c71da3ba9b758">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#0494a5293836baeb822405ec4ce0c553">Vamp::HostExt::PluginChannelAdapter::Impl</a>
-<li>m_buffers
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d0b81884ecf1f01e8272667e59cce02e">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li>m_channels
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#3b8801196c981a9953f6f1fbf5a8aabd">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#dc38e78c7bf4375516c1d2466bc349e9">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
+, <a class="el" href="classPowerSpectrum.html#399e997c033f26b07edb7cc83cd5a6d8">PowerSpectrum</a>
 <li>m_clampcoef
 : <a class="el" href="classAmplitudeFollower.html#1cb205b08cfe2ce94a4af05b18f72876">AmplitudeFollower</a>
-<li>m_cleaner
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#5d03696d9093949f627bd684c8db44c2">Vamp::HostExt::PluginLoader::Impl</a>
+<li>m_d
+: <a class="el" href="classFixedTempoEstimator.html#5e1c9abaf33e9f48eb7d3b48f8af3308">FixedTempoEstimator</a>
 <li>m_descriptor
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#eeea6028dbc6b4b96f4351a5cb79abac">Vamp::PluginAdapterBase::Impl</a>
-, <a class="el" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">Vamp::PluginHostAdapter</a>
+: <a class="el" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">Vamp::PluginHostAdapter</a>
+<li>m_df
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#8e2312120e87ad9a48fedeebbaefa396">FixedTempoEstimator::D</a>
 <li>m_dfMinus1
 : <a class="el" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">PercussionOnsetDetector</a>
 <li>m_dfMinus2
 : <a class="el" href="classPercussionOnsetDetector.html#6ad7d8353cc681ff42a63b127cca5779">PercussionOnsetDetector</a>
-<li>m_forwardPtrs
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#882147731ba96cf5da446265dbce11bd">Vamp::HostExt::PluginChannelAdapter::Impl</a>
-<li>m_frame
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#26fe691e7c9ddf55bb55b3d4eb80d8a7">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li>m_freqbuf
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#24b96bba51fec82383a5413c63f27a57">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-<li>m_fs
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#4d3b0d23ae969d2895f13448d294455a">Vamp::PluginAdapterBase::Impl</a>
-<li>m_fsizes
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#a9fa862a49d49fae2dc4b45bc23f5281">Vamp::PluginAdapterBase::Impl</a>
-<li>m_fvsizes
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#166ff8e5df4fcd27f74bc7179e14c33e">Vamp::PluginAdapterBase::Impl</a>
+<li>m_dfsize
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#e739e006f2d10ef2b13677770b23e663">FixedTempoEstimator::D</a>
+<li>m_fr
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#b255006072672653e645fc315eea6167">FixedTempoEstimator::D</a>
 <li>m_handle
 : <a class="el" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">Vamp::PluginHostAdapter</a>
 <li>m_impl
-: <a class="el" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">Vamp::PluginAdapterBase</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">Vamp::HostExt::PluginBufferingAdapter</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">Vamp::HostExt::PluginChannelAdapter</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#e3a74a2e6c4cd33dce9f4248e73c6701">Vamp::HostExt::PluginChannelAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#9fa8a6b8a4e41b6e3f2fabc0d23678cc">Vamp::HostExt::PluginInputDomainAdapter</a>
 , <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#c12254d823f6d63cb8ce82a07bdcb072">Vamp::HostExt::PluginLoader</a>
-<li>m_inputBlockSize
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#2a8d125110b2ee19407d10b4e21a865f">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li>m_inputChannels
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#6e32d1564be175506a4d43dbfb8e3ace">Vamp::HostExt::PluginChannelAdapter::Impl</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f131140817d9f131650af98b6b8d7a94">Vamp::HostExt::PluginSummarisingAdapter</a>
+, <a class="el" href="classVamp_1_1PluginAdapterBase.html#0e3594c54884efd5a7ef38030645745b">Vamp::PluginAdapterBase</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#51e10c9c63c0349fd74c6d604de5554e">Vamp::HostExt::PluginBufferingAdapter</a>
 <li>m_inputSampleRate
 : <a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">Vamp::Plugin</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#cc747b4e448a316346f9f59e2c85dcfc">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#bafd656a3bf6d74d6dd38def0c73cc57">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-<li>m_inputStepSize
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#6140f55c9120314194d3e73a54b25139">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#072a0fc30b3912a54858eefdd47f4d4f">FixedTempoEstimator::D</a>
 <li>m_instance
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html#2b6d3d267fe1754ea3dca7bb6d48fc70">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#aa4eae58ddbadf6537a95dbb6e957187">Vamp::HostExt::PluginLoader</a>
-<li>m_io
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#4d73b85b9ba00c10b55be4febc56dfc4">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-<li>m_loader
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html#1fb8473ea9ad73b1b6a00b92345d8397">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter</a>
-<li>m_outputs
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#e65848a6788b5c984635d252fbc8365c">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li>m_parameters
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#0edebff94969c59cc651b4517bcc6bb9">Vamp::PluginAdapterBase::Impl</a>
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#f89caf5f838a586b117c417260b7a116">Vamp::HostExt::PluginLoader</a>
+<li>m_lasttime
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#bacd5ff19c301020efb99c03136b849a">FixedTempoEstimator::D</a>
+<li>m_maxbpm
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#33e8d045b222addc6173b50df2553ba8">FixedTempoEstimator::D</a>
+<li>m_maxdflen
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#ca506973452865d436e07462eabdebad">FixedTempoEstimator::D</a>
+<li>m_minbpm
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#768fdbb62e4b21a39897963fdbd486ed">FixedTempoEstimator::D</a>
+<li>m_n
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#b73af7f1943b76388de04cbb4696a983">FixedTempoEstimator::D</a>
 <li>m_plugin
 : <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#b4e40ecd98b445e1a2aa9e7baa280ea2">Vamp::HostExt::PluginWrapper</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#9c9acb7f9bf51b7406c15d2e60fd4ce2">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#ff31c1cf3a0fb18ddab7e3ab213c3c07">Vamp::HostExt::PluginChannelAdapter::Impl</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a85961dc001c031beb0382a883f0738c">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-<li>m_pluginChannels
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html#94268d42f93bd26608fab34d5b4ad680">Vamp::HostExt::PluginChannelAdapter::Impl</a>
-<li>m_pluginLibraryHandleMap
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#1c3cee03d20e669c8b9379247a222600">Vamp::HostExt::PluginLoader::Impl</a>
-<li>m_pluginLibraryNameMap
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#59f6310a3bb71f761b635d06408713f3">Vamp::HostExt::PluginLoader::Impl</a>
-<li>m_pluginOutputs
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#193241eba6e9bcd3d4482c5f646d3822">Vamp::PluginAdapterBase::Impl</a>
-<li>m_populated
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#93384198b121720dfa627dafe77839a6">Vamp::PluginAdapterBase::Impl</a>
 <li>m_previn
 : <a class="el" href="classAmplitudeFollower.html#c95e8d2f334821c6c92c706bae29695a">AmplitudeFollower</a>
 <li>m_previousSample
 : <a class="el" href="classZeroCrossing.html#0f2d9f2cab0a8a30344e1f2c0ebb8ee8">ZeroCrossing</a>
 <li>m_priorMagnitudes
-: <a class="el" href="classPercussionOnsetDetector.html#30daa717267251a9d49afe57c328e989">PercussionOnsetDetector</a>
-<li>m_programs
-: <a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html#79666690394693c9e293a4e74960b444">Vamp::PluginAdapterBase::Impl</a>
-<li>m_queue
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#d7bc92f4e299bab75d91fbaa08d7c683">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li>m_reader
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#1775ce5ba3d60520c3634cb2ac8a1dc9">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#a59cf1cb5640a910c70884579e5d99ad">FixedTempoEstimator::D</a>
+, <a class="el" href="classPercussionOnsetDetector.html#30daa717267251a9d49afe57c328e989">PercussionOnsetDetector</a>
+<li>m_r
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#7a8c8658ecfeec98962078df89fcd538">FixedTempoEstimator::D</a>
 <li>m_relaxcoef
 : <a class="el" href="classAmplitudeFollower.html#ceecd3b3879f32eb4a2e597c32c41cfc">AmplitudeFollower</a>
-<li>m_rewriteOutputTimes
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#c3055f44b2a62c1a7aa915e180ed054b">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li>m_ri
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#0c379b5bf280b6db1cf8fe782c1a94bb">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-<li>m_ro
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#6407b3c17dc96ba7036f2161b1aa30cb">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
 <li>m_sensitivity
 : <a class="el" href="classPercussionOnsetDetector.html#4e9770f246ba3bc75e7fc2cb8f9010af">PercussionOnsetDetector</a>
-<li>m_size
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#fe3fe238440e3afe3aa1a8d3b6270e3a">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
+<li>m_start
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#3a3a0b4a4c259087f02d0046241674d0">FixedTempoEstimator::D</a>
 <li>m_stepSize
 : <a class="el" href="classPercussionOnsetDetector.html#abac0cf7e961482b075777e5f0686e6c">PercussionOnsetDetector</a>
+, <a class="el" href="classFixedTempoEstimator_1_1D.html#837da9722c63fe3c66c738255990c45f">FixedTempoEstimator::D</a>
+, <a class="el" href="classAmplitudeFollower.html#959c2647fd3c5feea2591e3618774027">AmplitudeFollower</a>
 , <a class="el" href="classSpectralCentroid.html#49805a090ba58477da4adbefea4392a7">SpectralCentroid</a>
 , <a class="el" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">ZeroCrossing</a>
-, <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#23535474c13c9ed9c2a3dfdcb0943050">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-, <a class="el" href="classAmplitudeFollower.html#959c2647fd3c5feea2591e3618774027">AmplitudeFollower</a>
-<li>m_taxonomy
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html#2ba901c7e59ece349b715d4a3fec7b04">Vamp::HostExt::PluginLoader::Impl</a>
+<li>m_t
+: <a class="el" href="classFixedTempoEstimator_1_1D.html#698446aad2c0f737732a392fb86a612c">FixedTempoEstimator::D</a>
 <li>m_threshold
 : <a class="el" href="classPercussionOnsetDetector.html#b04119adad56d87f2e633de289aab507">PercussionOnsetDetector</a>
-<li>m_unrun
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html#fa825144d91babf38fb27aa7c287dc1e">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li>m_window
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html#a43f6ea4727b9bb29d6d66869886d15e">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
-<li>m_writer
-: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html#3798697f4cf46c5e9a5433e1bf160b2c">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
 <li>maker
 : <a class="el" href="struct__VampPluginDescriptor.html#4dca3d57331802964716edfa80580c9b">_VampPluginDescriptor</a>
 <li>maxValue
-: <a class="el" href="struct__VampParameterDescriptor.html#6e7646babdb265c4abfc107ba4350d80">_VampParameterDescriptor</a>
-, <a class="el" href="struct__VampOutputDescriptor.html#4cbe540a247df60f85b00b2aa16461ee">_VampOutputDescriptor</a>
+: <a class="el" href="struct__VampOutputDescriptor.html#4cbe540a247df60f85b00b2aa16461ee">_VampOutputDescriptor</a>
 , <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#907b4e8fbb48a46ac5a05f880d72719f">Vamp::Plugin::OutputDescriptor</a>
+, <a class="el" href="struct__VampParameterDescriptor.html#6e7646babdb265c4abfc107ba4350d80">_VampParameterDescriptor</a>
 , <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4">Vamp::PluginBase::ParameterDescriptor</a>
 <li>minValue
 : <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8">Vamp::PluginBase::ParameterDescriptor</a>
@@ -354,6 +308,10 @@
 , <a class="el" href="struct__VampOutputDescriptor.html#d038caa8e596dfd037035637202f1d63">_VampOutputDescriptor</a>
 </ul>
 <h3><a class="anchor" name="index_v">- v -</a></h3><ul>
+<li>v1
+: <a class="el" href="union__VampFeatureUnion.html#4a32a2ce141ec3cd36b8be54cd9c3369">_VampFeatureUnion</a>
+<li>v2
+: <a class="el" href="union__VampFeatureUnion.html#87e508e37e02cce11c3c4ddf087a627a">_VampFeatureUnion</a>
 <li>valueCount
 : <a class="el" href="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd">_VampFeature</a>
 <li>valueNames
@@ -370,8 +328,8 @@
 : <a class="el" href="structVamp_1_1RealTime.html#be453371597710148b0fd19bb452f8a9">Vamp::RealTime</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/globals.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/globals.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -34,14 +34,15 @@
   </div>
   <div class="tabs">
     <ul>
+      <li><a href="#index__"><span>_</span></a></li>
       <li><a href="#index_a"><span>a</span></a></li>
+      <li><a href="#index_c"><span>c</span></a></li>
       <li><a href="#index_d"><span>d</span></a></li>
       <li><a href="#index_e"><span>e</span></a></li>
       <li><a href="#index_f"><span>f</span></a></li>
       <li><a href="#index_h"><span>h</span></a></li>
       <li><a href="#index_l"><span>l</span></a></li>
       <li><a href="#index_m"><span>m</span></a></li>
-      <li><a href="#index_o"><span>o</span></a></li>
       <li><a href="#index_p"><span>p</span></a></li>
       <li><a href="#index_r"><span>r</span></a></li>
       <li><a href="#index_s"><span>s</span></a></li>
@@ -51,19 +52,39 @@
       <li><a href="#index_z"><span>z</span></a></li>
     </ul>
   </div>
-
-<p>
 </div>
 <div class="contents">
 Here is a list of all file members with links to the files they belong to:
 <p>
+<h3><a class="anchor" name="index__">- _ -</a></h3><ul>
+<li>_VAMP_IN_HOSTSDK
+: <a class="el" href="hostguard_8h.html#1b285975a7781cd1d1cdc19b0256380f">hostguard.h</a>
+<li>_VAMP_IN_PLUGINSDK
+: <a class="el" href="plugguard_8h.html#3bf4e97f131677e5e1505a7a9582d68a">plugguard.h</a>
+<li>_VAMP_SDK_HOSTSPACE_BEGIN
+: <a class="el" href="hostguard_8h.html#ef42eae5f1b0b897d8dac58cd54afbcd">hostguard.h</a>
+<li>_VAMP_SDK_HOSTSPACE_END
+: <a class="el" href="hostguard_8h.html#0e6efdc2909bdb0cfab70e087d91b171">hostguard.h</a>
+<li>_VAMP_SDK_PLUGSPACE_BEGIN
+: <a class="el" href="plugguard_8h.html#1a2724ea453971288d3218e4eab3072c">plugguard.h</a>
+, <a class="el" href="hostguard_8h.html#1a2724ea453971288d3218e4eab3072c">hostguard.h</a>
+<li>_VAMP_SDK_PLUGSPACE_END
+: <a class="el" href="hostguard_8h.html#c879bb1077ecc6132ea3581ef9033753">hostguard.h</a>
+, <a class="el" href="plugguard_8h.html#c879bb1077ecc6132ea3581ef9033753">plugguard.h</a>
+</ul>
 <h3><a class="anchor" name="index_a">- a -</a></h3><ul>
+<li>ACFOutput
+: <a class="el" href="FixedTempoEstimator_8cpp.html#382c1fe740ac8911c6078cfbceffc870">FixedTempoEstimator.cpp</a>
 <li>amplitudeAdapter
 : <a class="el" href="plugins_8cpp.html#4e60bb6a99451da5deb18b969e6b16cd">plugins.cpp</a>
 </ul>
+<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
+<li>CandidatesOutput
+: <a class="el" href="FixedTempoEstimator_8cpp.html#554b16c6b7516530e52c65318bfe08eb">FixedTempoEstimator.cpp</a>
+</ul>
 <h3><a class="anchor" name="index_d">- d -</a></h3><ul>
-<li>DEFAULT_VAMP_PATH
-: <a class="el" href="PluginHostAdapter_8cpp.html#a7a9ce1e832e4f26cd5197ed38d4a58d">PluginHostAdapter.cpp</a>
+<li>DFOutput
+: <a class="el" href="FixedTempoEstimator_8cpp.html#caa4524f29afce03c812a88ff31159c1">FixedTempoEstimator.cpp</a>
 <li>DLCLOSE
 : <a class="el" href="system_8h.html#1defcae089d0d937682cc78981a0ef99">system.h</a>
 <li>DLERROR
@@ -80,10 +101,16 @@
 <h3><a class="anchor" name="index_f">- f -</a></h3><ul>
 <li>fft()
 : <a class="el" href="vamp-simple-host_8cpp.html#b40a86a032d0cf473d15fed3616ccc57">vamp-simple-host.cpp</a>
+<li>FilteredACFOutput
+: <a class="el" href="FixedTempoEstimator_8cpp.html#5b284021783d79785d46b043b458368d">FixedTempoEstimator.cpp</a>
+<li>fixedTempoAdapter
+: <a class="el" href="plugins_8cpp.html#937de36d22633261716032570064a4be">plugins.cpp</a>
 </ul>
 <h3><a class="anchor" name="index_h">- h -</a></h3><ul>
 <li>HAVE_OPENDIR
 : <a class="el" href="system_8h.html#7cbcd5e9e882451e8c93a78b06f563c4">system.h</a>
+<li>header()
+: <a class="el" href="vamp-simple-host_8cpp.html#713775f2037987c0851ff3672339a82c">vamp-simple-host.cpp</a>
 <li>HOST_VERSION
 : <a class="el" href="vamp-simple-host_8cpp.html#a8bc193818940a8954ef0e0e5a8e16d6">vamp-simple-host.cpp</a>
 </ul>
@@ -92,29 +119,24 @@
 : <a class="el" href="vamp-simple-host_8cpp.html#4d02c3d9ebe7bedb3a4c3a116479e334">vamp-simple-host.cpp</a>
 </ul>
 <h3><a class="anchor" name="index_m">- m -</a></h3><ul>
-<li>M_PI
-: <a class="el" href="PluginInputDomainAdapter_8cpp.html#e71449b1cc6e6250b91f539153a7a0d3">PluginInputDomainAdapter.cpp</a>
 <li>main()
 : <a class="el" href="vamp-simple-host_8cpp.html#3c04138a5bfe5d72780bb7e82a18e627">vamp-simple-host.cpp</a>
 </ul>
-<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
-<li>ONE_BILLION
-: <a class="el" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">RealTime.cpp</a>
-</ul>
 <h3><a class="anchor" name="index_p">- p -</a></h3><ul>
-<li>PATH_SEPARATOR
-: <a class="el" href="PluginHostAdapter_8cpp.html#256a5721249aa3309437212cc21a9fe4">PluginHostAdapter.cpp</a>
 <li>percussionOnsetAdapter
 : <a class="el" href="plugins_8cpp.html#cee3823cb6a43281a2ecf923b69613dd">plugins.cpp</a>
 <li>PLUGIN_SUFFIX
 : <a class="el" href="system_8h.html#1efbc9bb9a9f2837d3f7386af8607abf">system.h</a>
-, <a class="el" href="PluginLoader_8cpp.html#1efbc9bb9a9f2837d3f7386af8607abf">PluginLoader.cpp</a>
 <li>PluginIds
 : <a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3134cf6a0dfdb6864356feab9d9ca230d16">vamp-simple-host.cpp</a>
 <li>PluginInformation
 : <a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">vamp-simple-host.cpp</a>
+<li>PluginInformationDetailed
+: <a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3132624ce417628b6d40ce0973ba381c1e6">vamp-simple-host.cpp</a>
 <li>PluginOutputIds
 : <a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e">vamp-simple-host.cpp</a>
+<li>powerSpectrum
+: <a class="el" href="plugins_8cpp.html#77810f485caaae4a8b2303496046d3d7">plugins.cpp</a>
 <li>printFeatures()
 : <a class="el" href="vamp-simple-host_8cpp.html#81f8bc89ed9194159bfb1f2b4d7a7ac4">vamp-simple-host.cpp</a>
 <li>printPluginCategoryList()
@@ -129,10 +151,10 @@
 <h3><a class="anchor" name="index_s">- s -</a></h3><ul>
 <li>spectralCentroidAdapter
 : <a class="el" href="plugins_8cpp.html#c96bdfb6356a153341b29b43c4961cd5">plugins.cpp</a>
-<li>stringstream
-: <a class="el" href="RealTime_8cpp.html#f265757a67f4d68101c17dbc0ce1294e">RealTime.cpp</a>
 </ul>
 <h3><a class="anchor" name="index_t">- t -</a></h3><ul>
+<li>TempoOutput
+: <a class="el" href="FixedTempoEstimator_8cpp.html#7a8511e62dffb5334ad3b70d57b2fcee">FixedTempoEstimator.cpp</a>
 <li>transformInput()
 : <a class="el" href="vamp-simple-host_8cpp.html#e610372882497afdeaf180a7e53eb00b">vamp-simple-host.cpp</a>
 </ul>
@@ -143,19 +165,27 @@
 <h3><a class="anchor" name="index_v">- v -</a></h3><ul>
 <li>VAMP_API_VERSION
 : <a class="el" href="vamp_8h.html#6d6c8c755dbabf161f72712e0e2143c7">vamp.h</a>
+<li>VAMP_SDK_MAJOR_VERSION
+: <a class="el" href="vamp-sdk_2PluginBase_8h.html#b5f7da6acf45065a6c7b7cd38a0bf588">vamp-sdk/PluginBase.h</a>
+<li>VAMP_SDK_MINOR_VERSION
+: <a class="el" href="vamp-sdk_2PluginBase_8h.html#d5eef1e2154b42769cd642d2a1d42257">vamp-sdk/PluginBase.h</a>
 <li>VAMP_SDK_VERSION
-: <a class="el" href="PluginBase_8h.html#9b7a8e1ac1c91366bec5f2f33c137a2f">PluginBase.h</a>
+: <a class="el" href="vamp-sdk_2PluginBase_8h.html#9b7a8e1ac1c91366bec5f2f33c137a2f">vamp-sdk/PluginBase.h</a>
 <li>VampFeature
 : <a class="el" href="vamp_8h.html#8d04355c13e5ff7a146abcb168cb919f">vamp.h</a>
 <li>VampFeatureList
 : <a class="el" href="vamp_8h.html#5f257e3f8b5ca1ca4c159d486e219078">vamp.h</a>
+<li>VampFeatureUnion
+: <a class="el" href="vamp_8h.html#2517349f1c97e0c59faab6085e092fcd">vamp.h</a>
+<li>VampFeatureV2
+: <a class="el" href="vamp_8h.html#41cb3518127d0971b1d2c8edfbbe2763">vamp.h</a>
 <li>vampFixedSampleRate
 : <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821afc8a05f722bc83ecce227e12e838cf8">vamp.h</a>
 <li>vampFrequencyDomain
 : <a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d">vamp.h</a>
 <li>vampGetPluginDescriptor()
-: <a class="el" href="plugins_8cpp.html#bb0fd6db76ddd39698bc370e0fd0ea78">plugins.cpp</a>
-, <a class="el" href="vamp_8h.html#50cf6f17d0718f02093be6c7f63fcf30">vamp.h</a>
+: <a class="el" href="vamp_8h.html#50cf6f17d0718f02093be6c7f63fcf30">vamp.h</a>
+, <a class="el" href="plugins_8cpp.html#bb0fd6db76ddd39698bc370e0fd0ea78">plugins.cpp</a>
 <li>VampGetPluginDescriptorFunction
 : <a class="el" href="vamp_8h.html#551bb7e0d8c970c2202be5f881817478">vamp.h</a>
 <li>VampInputDomain
@@ -184,8 +214,8 @@
 : <a class="el" href="plugins_8cpp.html#01871ad1ab2bb64e2c53fe5cce19b780">plugins.cpp</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/globals_defs.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/globals_defs.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,8 +37,20 @@
 &nbsp;
 <p>
 <ul>
-<li>DEFAULT_VAMP_PATH
-: <a class="el" href="PluginHostAdapter_8cpp.html#a7a9ce1e832e4f26cd5197ed38d4a58d">PluginHostAdapter.cpp</a>
+<li>_VAMP_IN_HOSTSDK
+: <a class="el" href="hostguard_8h.html#1b285975a7781cd1d1cdc19b0256380f">hostguard.h</a>
+<li>_VAMP_IN_PLUGINSDK
+: <a class="el" href="plugguard_8h.html#3bf4e97f131677e5e1505a7a9582d68a">plugguard.h</a>
+<li>_VAMP_SDK_HOSTSPACE_BEGIN
+: <a class="el" href="hostguard_8h.html#ef42eae5f1b0b897d8dac58cd54afbcd">hostguard.h</a>
+<li>_VAMP_SDK_HOSTSPACE_END
+: <a class="el" href="hostguard_8h.html#0e6efdc2909bdb0cfab70e087d91b171">hostguard.h</a>
+<li>_VAMP_SDK_PLUGSPACE_BEGIN
+: <a class="el" href="plugguard_8h.html#1a2724ea453971288d3218e4eab3072c">plugguard.h</a>
+, <a class="el" href="hostguard_8h.html#1a2724ea453971288d3218e4eab3072c">hostguard.h</a>
+<li>_VAMP_SDK_PLUGSPACE_END
+: <a class="el" href="hostguard_8h.html#c879bb1077ecc6132ea3581ef9033753">hostguard.h</a>
+, <a class="el" href="plugguard_8h.html#c879bb1077ecc6132ea3581ef9033753">plugguard.h</a>
 <li>DLCLOSE
 : <a class="el" href="system_8h.html#1defcae089d0d937682cc78981a0ef99">system.h</a>
 <li>DLERROR
@@ -51,25 +63,20 @@
 : <a class="el" href="system_8h.html#7cbcd5e9e882451e8c93a78b06f563c4">system.h</a>
 <li>HOST_VERSION
 : <a class="el" href="vamp-simple-host_8cpp.html#a8bc193818940a8954ef0e0e5a8e16d6">vamp-simple-host.cpp</a>
-<li>M_PI
-: <a class="el" href="PluginInputDomainAdapter_8cpp.html#e71449b1cc6e6250b91f539153a7a0d3">PluginInputDomainAdapter.cpp</a>
-<li>ONE_BILLION
-: <a class="el" href="RealTime_8cpp.html#f05eba65a3d4d0547dba7e69e440db2c">RealTime.cpp</a>
-<li>PATH_SEPARATOR
-: <a class="el" href="PluginHostAdapter_8cpp.html#256a5721249aa3309437212cc21a9fe4">PluginHostAdapter.cpp</a>
 <li>PLUGIN_SUFFIX
 : <a class="el" href="system_8h.html#1efbc9bb9a9f2837d3f7386af8607abf">system.h</a>
-, <a class="el" href="PluginLoader_8cpp.html#1efbc9bb9a9f2837d3f7386af8607abf">PluginLoader.cpp</a>
-<li>stringstream
-: <a class="el" href="RealTime_8cpp.html#f265757a67f4d68101c17dbc0ce1294e">RealTime.cpp</a>
 <li>VAMP_API_VERSION
 : <a class="el" href="vamp_8h.html#6d6c8c755dbabf161f72712e0e2143c7">vamp.h</a>
+<li>VAMP_SDK_MAJOR_VERSION
+: <a class="el" href="vamp-sdk_2PluginBase_8h.html#b5f7da6acf45065a6c7b7cd38a0bf588">vamp-sdk/PluginBase.h</a>
+<li>VAMP_SDK_MINOR_VERSION
+: <a class="el" href="vamp-sdk_2PluginBase_8h.html#d5eef1e2154b42769cd642d2a1d42257">vamp-sdk/PluginBase.h</a>
 <li>VAMP_SDK_VERSION
-: <a class="el" href="PluginBase_8h.html#9b7a8e1ac1c91366bec5f2f33c137a2f">PluginBase.h</a>
+: <a class="el" href="vamp-sdk_2PluginBase_8h.html#9b7a8e1ac1c91366bec5f2f33c137a2f">vamp-sdk/PluginBase.h</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/globals_enum.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/globals_enum.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -45,8 +45,8 @@
 : <a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b313">vamp-simple-host.cpp</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/globals_eval.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/globals_eval.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -41,6 +41,8 @@
 : <a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3134cf6a0dfdb6864356feab9d9ca230d16">vamp-simple-host.cpp</a>
 <li>PluginInformation
 : <a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">vamp-simple-host.cpp</a>
+<li>PluginInformationDetailed
+: <a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3132624ce417628b6d40ce0973ba381c1e6">vamp-simple-host.cpp</a>
 <li>PluginOutputIds
 : <a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e">vamp-simple-host.cpp</a>
 <li>vampFixedSampleRate
@@ -55,8 +57,8 @@
 : <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821bae8a21a9e30eb73e16d6abc6c7415e8">vamp.h</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/globals_func.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/globals_func.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -41,6 +41,8 @@
 : <a class="el" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">vamp-simple-host.cpp</a>
 <li>fft()
 : <a class="el" href="vamp-simple-host_8cpp.html#b40a86a032d0cf473d15fed3616ccc57">vamp-simple-host.cpp</a>
+<li>header()
+: <a class="el" href="vamp-simple-host_8cpp.html#713775f2037987c0851ff3672339a82c">vamp-simple-host.cpp</a>
 <li>listPluginsInLibrary()
 : <a class="el" href="vamp-simple-host_8cpp.html#4d02c3d9ebe7bedb3a4c3a116479e334">vamp-simple-host.cpp</a>
 <li>main()
@@ -62,8 +64,8 @@
 , <a class="el" href="plugins_8cpp.html#bb0fd6db76ddd39698bc370e0fd0ea78">plugins.cpp</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/globals_type.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/globals_type.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -41,6 +41,10 @@
 : <a class="el" href="vamp_8h.html#8d04355c13e5ff7a146abcb168cb919f">vamp.h</a>
 <li>VampFeatureList
 : <a class="el" href="vamp_8h.html#5f257e3f8b5ca1ca4c159d486e219078">vamp.h</a>
+<li>VampFeatureUnion
+: <a class="el" href="vamp_8h.html#2517349f1c97e0c59faab6085e092fcd">vamp.h</a>
+<li>VampFeatureV2
+: <a class="el" href="vamp_8h.html#41cb3518127d0971b1d2c8edfbbe2763">vamp.h</a>
 <li>VampGetPluginDescriptorFunction
 : <a class="el" href="vamp_8h.html#551bb7e0d8c970c2202be5f881817478">vamp.h</a>
 <li>VampOutputDescriptor
@@ -53,8 +57,8 @@
 : <a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">vamp.h</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/globals_vars.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/globals_vars.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -37,18 +37,32 @@
 &nbsp;
 <p>
 <ul>
+<li>ACFOutput
+: <a class="el" href="FixedTempoEstimator_8cpp.html#382c1fe740ac8911c6078cfbceffc870">FixedTempoEstimator.cpp</a>
 <li>amplitudeAdapter
 : <a class="el" href="plugins_8cpp.html#4e60bb6a99451da5deb18b969e6b16cd">plugins.cpp</a>
+<li>CandidatesOutput
+: <a class="el" href="FixedTempoEstimator_8cpp.html#554b16c6b7516530e52c65318bfe08eb">FixedTempoEstimator.cpp</a>
+<li>DFOutput
+: <a class="el" href="FixedTempoEstimator_8cpp.html#caa4524f29afce03c812a88ff31159c1">FixedTempoEstimator.cpp</a>
+<li>FilteredACFOutput
+: <a class="el" href="FixedTempoEstimator_8cpp.html#5b284021783d79785d46b043b458368d">FixedTempoEstimator.cpp</a>
+<li>fixedTempoAdapter
+: <a class="el" href="plugins_8cpp.html#937de36d22633261716032570064a4be">plugins.cpp</a>
 <li>percussionOnsetAdapter
 : <a class="el" href="plugins_8cpp.html#cee3823cb6a43281a2ecf923b69613dd">plugins.cpp</a>
+<li>powerSpectrum
+: <a class="el" href="plugins_8cpp.html#77810f485caaae4a8b2303496046d3d7">plugins.cpp</a>
 <li>spectralCentroidAdapter
 : <a class="el" href="plugins_8cpp.html#c96bdfb6356a153341b29b43c4961cd5">plugins.cpp</a>
+<li>TempoOutput
+: <a class="el" href="FixedTempoEstimator_8cpp.html#7a8511e62dffb5334ad3b70d57b2fcee">FixedTempoEstimator.cpp</a>
 <li>zeroCrossingAdapter
 : <a class="el" href="plugins_8cpp.html#01871ad1ab2bb64e2c53fe5cce19b780">plugins.cpp</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/graph_legend.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/graph_legend.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -80,8 +80,8 @@
 A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
Binary file code-doc/graph_legend.png has changed
--- a/code-doc/hierarchy.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/hierarchy.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -29,48 +29,45 @@
 This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
 <li><a class="el" href="struct__VampFeature.html">_VampFeature</a>
 <li><a class="el" href="struct__VampFeatureList.html">_VampFeatureList</a>
+<li><a class="el" href="union__VampFeatureUnion.html">_VampFeatureUnion</a>
+<li><a class="el" href="struct__VampFeatureV2.html">_VampFeatureV2</a>
 <li><a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a>
 <li><a class="el" href="struct__VampParameterDescriptor.html">_VampParameterDescriptor</a>
 <li><a class="el" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a>
+<li><a class="el" href="classFixedTempoEstimator_1_1D.html">FixedTempoEstimator::D</a>
 <li><a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Vamp::Plugin::Feature</a>
 <li><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a>
 <li><a class="el" href="classVamp_1_1PluginAdapterBase.html">Vamp::PluginAdapterBase</a>
 <ul>
 <li><a class="el" href="classVamp_1_1PluginAdapter.html">Vamp::PluginAdapter&lt; P &gt;</a>
 </ul>
-<li><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html">Vamp::PluginAdapterBase::Impl</a>
 <li><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a>
 <ul>
 <li><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a>
 <ul>
 <li><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</a>
+<li><a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a>
 <li><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a>
+<li><a class="el" href="classPowerSpectrum.html">PowerSpectrum</a>
 <li><a class="el" href="classSpectralCentroid.html">SpectralCentroid</a>
-<li><a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html">Vamp::HostExt::PluginRateExtractor</a>
 <li><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</a>
 <ul>
 <li><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</a>
 <li><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">Vamp::HostExt::PluginChannelAdapter</a>
 <li><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</a>
-<li><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter</a>
+<li><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">Vamp::HostExt::PluginSummarisingAdapter</a>
 </ul>
 <li><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a>
 <li><a class="el" href="classZeroCrossing.html">ZeroCrossing</a>
 </ul>
 </ul>
 <li><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">Vamp::PluginBase::ParameterDescriptor</a>
-<li><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html">Vamp::HostExt::PluginBufferingAdapter::Impl</a>
-<li><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a>
-<li><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html">Vamp::HostExt::PluginChannelAdapter::Impl</a>
-<li><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html">Vamp::HostExt::PluginInputDomainAdapter::Impl</a>
 <li><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a>
-<li><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html">Vamp::HostExt::PluginLoader::Impl</a>
-<li><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a>
 <li><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/hostguard_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,96 @@
+<!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: hostguard.h Source File</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>hostguard.h</h1><a href="hostguard_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/*</span>
+<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
+<a name="l00005"></a>00005 <span class="comment"></span>
+<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_HOSTSDK_HOSTGUARD_H_</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_HOSTSDK_HOSTGUARD_H_</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#ifdef _VAMP_IN_PLUGINSDK</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#error You have included headers from both vamp-sdk and vamp-hostsdk in the same source file. Please include only vamp-sdk headers in plugin code, and only vamp-hostsdk headers in host code.</span>
+<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00043"></a>00043 <span class="preprocessor"></span>
+<a name="l00044"></a><a class="code" href="hostguard_8h.html#1b285975a7781cd1d1cdc19b0256380f">00044</a> <span class="preprocessor">#define _VAMP_IN_HOSTSDK</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span>
+<a name="l00046"></a>00046 <span class="preprocessor">#ifdef _VAMP_NO_HOST_NAMESPACE</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_SDK_HOSTSPACE_BEGIN(h)</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_SDK_HOSTSPACE_END(h)</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_SDK_PLUGSPACE_BEGIN(h)</span>
+<a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_SDK_PLUGSPACE_END(h)</span>
+<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00052"></a><a class="code" href="hostguard_8h.html#ef42eae5f1b0b897d8dac58cd54afbcd">00052</a> <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_SDK_HOSTSPACE_BEGIN(h) \</span>
+<a name="l00053"></a>00053 <span class="preprocessor">        namespace _VampHost {</span>
+<a name="l00054"></a>00054 <span class="preprocessor"></span>
+<a name="l00055"></a><a class="code" href="hostguard_8h.html#0e6efdc2909bdb0cfab70e087d91b171">00055</a> <span class="preprocessor">#define _VAMP_SDK_HOSTSPACE_END(h) \</span>
+<a name="l00056"></a>00056 <span class="preprocessor">        } \</span>
+<a name="l00057"></a>00057 <span class="preprocessor">        using namespace _VampHost;</span>
+<a name="l00058"></a><a class="code" href="hostguard_8h.html#1a2724ea453971288d3218e4eab3072c">00058</a> <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_SDK_PLUGSPACE_BEGIN(h) \</span>
+<a name="l00059"></a>00059 <span class="preprocessor">        namespace _VampHost {</span>
+<a name="l00060"></a>00060 <span class="preprocessor"></span>
+<a name="l00061"></a><a class="code" href="hostguard_8h.html#c879bb1077ecc6132ea3581ef9033753">00061</a> <span class="preprocessor">#define _VAMP_SDK_PLUGSPACE_END(h) \</span>
+<a name="l00062"></a>00062 <span class="preprocessor">        } \</span>
+<a name="l00063"></a>00063 <span class="preprocessor">        using namespace _VampHost;</span>
+<a name="l00064"></a>00064 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00065"></a>00065 <span class="preprocessor"></span>
+<a name="l00066"></a>00066 <span class="preprocessor">#endif</span>
+<a name="l00067"></a>00067 <span class="preprocessor"></span>
+<a name="l00068"></a>00068 <span class="preprocessor">#endif</span>
+<a name="l00069"></a>00069 <span class="preprocessor"></span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/hostguard_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,155 @@
+<!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: hostguard.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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>hostguard.h File Reference</h1>
+<p>
+
+<p>
+<a href="hostguard_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>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hostguard_8h.html#1b285975a7781cd1d1cdc19b0256380f">_VAMP_IN_HOSTSDK</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hostguard_8h.html#ef42eae5f1b0b897d8dac58cd54afbcd">_VAMP_SDK_HOSTSPACE_BEGIN</a>(h)&nbsp;&nbsp;&nbsp;namespace _VampHost {</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hostguard_8h.html#0e6efdc2909bdb0cfab70e087d91b171">_VAMP_SDK_HOSTSPACE_END</a>(h)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hostguard_8h.html#1a2724ea453971288d3218e4eab3072c">_VAMP_SDK_PLUGSPACE_BEGIN</a>(h)&nbsp;&nbsp;&nbsp;namespace _VampHost {</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hostguard_8h.html#c879bb1077ecc6132ea3581ef9033753">_VAMP_SDK_PLUGSPACE_END</a>(h)</td></tr>
+
+</table>
+<hr><h2>Define Documentation</h2>
+<a class="anchor" name="1b285975a7781cd1d1cdc19b0256380f"></a><!-- doxytag: member="hostguard.h::_VAMP_IN_HOSTSDK" ref="1b285975a7781cd1d1cdc19b0256380f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define _VAMP_IN_HOSTSDK          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="hostguard_8h-source.html#l00044">44</a> of file <a class="el" href="hostguard_8h-source.html">hostguard.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="ef42eae5f1b0b897d8dac58cd54afbcd"></a><!-- doxytag: member="hostguard.h::_VAMP_SDK_HOSTSPACE_BEGIN" ref="ef42eae5f1b0b897d8dac58cd54afbcd" args="(h)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define _VAMP_SDK_HOSTSPACE_BEGIN          </td>
+          <td>(</td>
+          <td class="paramtype">h&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td>&nbsp;&nbsp;&nbsp;namespace _VampHost {</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="hostguard_8h-source.html#l00052">52</a> of file <a class="el" href="hostguard_8h-source.html">hostguard.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="0e6efdc2909bdb0cfab70e087d91b171"></a><!-- doxytag: member="hostguard.h::_VAMP_SDK_HOSTSPACE_END" ref="0e6efdc2909bdb0cfab70e087d91b171" args="(h)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define _VAMP_SDK_HOSTSPACE_END          </td>
+          <td>(</td>
+          <td class="paramtype">h&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<b>Value:</b><div class="fragment"><pre class="fragment">} \
+        <span class="keyword">using namespace </span>_VampHost;
+</pre></div>
+<p>Definition at line <a class="el" href="hostguard_8h-source.html#l00055">55</a> of file <a class="el" href="hostguard_8h-source.html">hostguard.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="1a2724ea453971288d3218e4eab3072c"></a><!-- doxytag: member="hostguard.h::_VAMP_SDK_PLUGSPACE_BEGIN" ref="1a2724ea453971288d3218e4eab3072c" args="(h)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define _VAMP_SDK_PLUGSPACE_BEGIN          </td>
+          <td>(</td>
+          <td class="paramtype">h&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td>&nbsp;&nbsp;&nbsp;namespace _VampHost {</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="hostguard_8h-source.html#l00058">58</a> of file <a class="el" href="hostguard_8h-source.html">hostguard.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c879bb1077ecc6132ea3581ef9033753"></a><!-- doxytag: member="hostguard.h::_VAMP_SDK_PLUGSPACE_END" ref="c879bb1077ecc6132ea3581ef9033753" args="(h)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define _VAMP_SDK_PLUGSPACE_END          </td>
+          <td>(</td>
+          <td class="paramtype">h&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<b>Value:</b><div class="fragment"><pre class="fragment">} \
+        <span class="keyword">using namespace </span>_VampHost;
+</pre></div>
+<p>Definition at line <a class="el" href="hostguard_8h-source.html#l00061">61</a> of file <a class="el" href="hostguard_8h-source.html">hostguard.h</a>.</p>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- a/code-doc/inherit__graph__0.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__0.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-<area shape="rect" href="$struct__VampFeature.html" title="_VampFeature" alt="" coords="7,6,111,30">
+<area shape="rect" href="$struct__VampFeature.html" title="_VampFeature" alt="" coords="7,5,111,32">
Binary file code-doc/inherit__graph__0.png has changed
--- a/code-doc/inherit__graph__1.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__1.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-<area shape="rect" href="$struct__VampFeatureList.html" title="_VampFeatureList" alt="" coords="7,6,132,30">
+<area shape="rect" href="$struct__VampFeatureList.html" title="_VampFeatureList" alt="" coords="7,5,132,32">
Binary file code-doc/inherit__graph__1.png has changed
--- a/code-doc/inherit__graph__10.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__10.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html" title="Vamp::HostExt::PluginLoader::Impl" alt="" coords="7,6,231,30">
+<area shape="rect" href="$structVamp_1_1Plugin_1_1OutputDescriptor.html" title="Vamp::Plugin::OutputDescriptor" alt="" coords="7,5,209,32">
--- a/code-doc/inherit__graph__10.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__10.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-e33d78024195a4f8c17cb6f382727045
\ No newline at end of file
+eb3a049e7a539dc7ea3b996e01f6d8ae
\ No newline at end of file
Binary file code-doc/inherit__graph__10.png has changed
--- a/code-doc/inherit__graph__11.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__11.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,2 @@
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html" title="Vamp::HostExt::PluginLoader::Impl::InstanceCleaner" alt="" coords="5,6,333,30">
+<area shape="rect" href="$classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library..." alt="" coords="5,5,179,32">
+<area shape="rect" href="$classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular..." alt="" coords="227,5,403,32">
--- a/code-doc/inherit__graph__11.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__11.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-57293355388bbbe792c359d868a44685
\ No newline at end of file
+696eb0c07198d925f443051ca5b2ff62
\ No newline at end of file
Binary file code-doc/inherit__graph__11.png has changed
--- a/code-doc/inherit__graph__12.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__12.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,14 @@
-<area shape="rect" href="$structVamp_1_1Plugin_1_1Feature.html" title="Vamp::Plugin::Feature" alt="" coords="7,6,156,30">
+<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,183,133,209">
+<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="181,183,280,209">
+<area shape="rect" href="$classAmplitudeFollower.html" title="Example plugin implementing the SuperCollider amplitude follower function." alt="" coords="365,5,493,32">
+<area shape="rect" href="$classFixedTempoEstimator.html" title="Example plugin that estimates the tempo of a short fixed&#45;tempo sample." alt="" coords="356,56,503,83">
+<area shape="rect" href="$classPercussionOnsetDetector.html" title="Example plugin that detects percussive events." alt="" coords="344,107,515,133">
+<area shape="rect" href="$classPowerSpectrum.html" title="Example plugin that returns a power spectrum calculated (trivially) from the frequency..." alt="" coords="373,157,485,184">
+<area shape="rect" href="$classSpectralCentroid.html" title="Example plugin that calculates the centre of gravity of the frequency domain representation..." alt="" coords="371,208,488,235">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="329,259,529,285">
+<area shape="rect" href="$classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C&#45;language..." alt="" coords="344,309,515,336">
+<area shape="rect" href="$classZeroCrossing.html" title="Example plugin that calculates the positions and density of zero&#45;crossing points..." alt="" coords="380,360,479,387">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="592,183,840,209">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="593,233,839,260">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="580,284,852,311">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods..." alt="" coords="579,335,853,361">
--- a/code-doc/inherit__graph__12.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__12.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-3803f2e0307a3fa94bc7d3a7cfa004d3
\ No newline at end of file
+980a74d9888f63b94f1c0b6816c23225
\ No newline at end of file
Binary file code-doc/inherit__graph__12.png has changed
--- a/code-doc/inherit__graph__13.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__13.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-<area shape="rect" href="$structVamp_1_1Plugin_1_1OutputDescriptor.html" title="Vamp::Plugin::OutputDescriptor" alt="" coords="7,6,209,30">
+<area shape="rect" href="$structVamp_1_1PluginBase_1_1ParameterDescriptor.html" title="Vamp::PluginBase::ParameterDescriptor" alt="" coords="5,5,261,32">
--- a/code-doc/inherit__graph__13.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__13.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-eb3a049e7a539dc7ea3b996e01f6d8ae
\ No newline at end of file
+966ebb93521b0691dfed3cbbde42cb6b
\ No newline at end of file
Binary file code-doc/inherit__graph__13.png has changed
--- a/code-doc/inherit__graph__14.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__14.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,2 +1,1 @@
-<area shape="rect" href="$classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library..." alt="" coords="5,6,179,30">
-<area shape="rect" href="$classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular..." alt="" coords="227,6,403,30">
+<area shape="rect" href="$structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic..." alt="" coords="5,5,123,32">
--- a/code-doc/inherit__graph__14.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__14.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-696eb0c07198d925f443051ca5b2ff62
\ No newline at end of file
+bd8cff1d7ef507a3bf311c2fbb3028a2
\ No newline at end of file
Binary file code-doc/inherit__graph__14.png has changed
--- a/code-doc/inherit__graph__15.map	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-<area shape="rect" href="$classVamp_1_1PluginAdapterBase_1_1Impl.html" title="Vamp::PluginAdapterBase::Impl" alt="" coords="7,6,212,30">
--- a/code-doc/inherit__graph__15.md5	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-f39e919e0fedaaf36e423ebe6f61fd95
\ No newline at end of file
Binary file code-doc/inherit__graph__15.png has changed
--- a/code-doc/inherit__graph__16.map	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<area shape="rect" href="$classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,150,133,174">
-<area shape="rect" href="$classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="181,150,280,174">
-<area shape="rect" href="$classAmplitudeFollower.html" title="Example plugin implementing the SuperCollider amplitude follower function." alt="" coords="381,6,509,30">
-<area shape="rect" href="$classPercussionOnsetDetector.html" title="Example plugin that detects percussive events." alt="" coords="360,54,531,78">
-<area shape="rect" href="$classSpectralCentroid.html" title="Example plugin that calculates the centre of gravity of the frequency domain representation..." alt="" coords="387,102,504,126">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginRateExtractor.html" title="Vamp::HostExt::PluginRateExtractor" alt="" coords="329,150,561,174">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="345,198,545,222">
-<area shape="rect" href="$classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C&#45;language..." alt="" coords="360,246,531,270">
-<area shape="rect" href="$classZeroCrossing.html" title="Example plugin that calculates the positions and density of zero&#45;crossing points..." alt="" coords="396,294,495,318">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="684,126,935,150">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="687,174,932,198">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="673,222,945,246">
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html" title="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter" alt="" coords="612,270,1007,294">
--- a/code-doc/inherit__graph__16.md5	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-bb3c731313c6440e970313ccae33ca01
\ No newline at end of file
Binary file code-doc/inherit__graph__16.png has changed
--- a/code-doc/inherit__graph__17.map	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-<area shape="rect" href="$structVamp_1_1PluginBase_1_1ParameterDescriptor.html" title="Vamp::PluginBase::ParameterDescriptor" alt="" coords="5,6,261,30">
--- a/code-doc/inherit__graph__17.md5	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-966ebb93521b0691dfed3cbbde42cb6b
\ No newline at end of file
Binary file code-doc/inherit__graph__17.png has changed
--- a/code-doc/inherit__graph__18.map	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-<area shape="rect" href="$structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic..." alt="" coords="5,6,123,30">
--- a/code-doc/inherit__graph__18.md5	Mon Nov 24 15:17:08 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-bd8cff1d7ef507a3bf311c2fbb3028a2
\ No newline at end of file
Binary file code-doc/inherit__graph__18.png has changed
--- a/code-doc/inherit__graph__2.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__2.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-<area shape="rect" href="$struct__VampOutputDescriptor.html" title="_VampOutputDescriptor" alt="" coords="5,6,165,30">
+<area shape="rect" href="$union__VampFeatureUnion.html" title="_VampFeatureUnion" alt="" coords="5,5,144,32">
--- a/code-doc/inherit__graph__2.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__2.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-18e2f0ce1ec21536a7a5c89bd64fe390
\ No newline at end of file
+40dfac25b43afa7e0e1d443e8a8ed193
\ No newline at end of file
Binary file code-doc/inherit__graph__2.png has changed
--- a/code-doc/inherit__graph__3.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__3.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-<area shape="rect" href="$struct__VampParameterDescriptor.html" title="C language API for Vamp plugins." alt="" coords="7,6,185,30">
+<area shape="rect" href="$struct__VampFeatureV2.html" title="_VampFeatureV2" alt="" coords="7,5,127,32">
--- a/code-doc/inherit__graph__3.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__3.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-99c60365e6b2f3acc52dc0d242fd453e
\ No newline at end of file
+91f6611aed4f7d1385e5a929515f030d
\ No newline at end of file
Binary file code-doc/inherit__graph__3.png has changed
--- a/code-doc/inherit__graph__4.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__4.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-<area shape="rect" href="$struct__VampPluginDescriptor.html" title="_VampPluginDescriptor" alt="" coords="7,6,161,30">
+<area shape="rect" href="$struct__VampOutputDescriptor.html" title="_VampOutputDescriptor" alt="" coords="5,5,165,32">
--- a/code-doc/inherit__graph__4.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__4.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-fbf391a442cdb1baf1643f52bca101bf
\ No newline at end of file
+18e2f0ce1ec21536a7a5c89bd64fe390
\ No newline at end of file
Binary file code-doc/inherit__graph__4.png has changed
--- a/code-doc/inherit__graph__5.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__5.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html" title="Vamp::HostExt::PluginBufferingAdapter::Impl" alt="" coords="7,6,289,30">
+<area shape="rect" href="$struct__VampParameterDescriptor.html" title="C language API for Vamp plugins." alt="" coords="7,5,185,32">
--- a/code-doc/inherit__graph__5.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__5.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-700412a398f12875cc8ccda8aa272c1d
\ No newline at end of file
+99c60365e6b2f3acc52dc0d242fd453e
\ No newline at end of file
Binary file code-doc/inherit__graph__5.png has changed
--- a/code-doc/inherit__graph__6.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__6.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html" title="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer" alt="" coords="5,6,357,30">
+<area shape="rect" href="$struct__VampPluginDescriptor.html" title="_VampPluginDescriptor" alt="" coords="7,5,161,32">
--- a/code-doc/inherit__graph__6.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__6.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-d1a5008bc53b8f893523da9996cf72de
\ No newline at end of file
+fbf391a442cdb1baf1643f52bca101bf
\ No newline at end of file
Binary file code-doc/inherit__graph__6.png has changed
--- a/code-doc/inherit__graph__7.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__7.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html" title="Vamp::HostExt::PluginChannelAdapter::Impl" alt="" coords="7,6,284,30">
+<area shape="rect" href="$classFixedTempoEstimator_1_1D.html" title="FixedTempoEstimator::D" alt="" coords="5,5,171,32">
--- a/code-doc/inherit__graph__7.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__7.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-823d416e2800507992c030f5c27736f3
\ No newline at end of file
+90e846a2aaf5998b6401a3c6840126c0
\ No newline at end of file
Binary file code-doc/inherit__graph__7.png has changed
--- a/code-doc/inherit__graph__8.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__8.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html" title="Vamp::HostExt::PluginInputDomainAdapter::Impl" alt="" coords="5,6,309,30">
+<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp..." alt="" coords="5,5,197,32">
--- a/code-doc/inherit__graph__8.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__8.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-0b980fc49f7e69c188a21bb09802360f
\ No newline at end of file
+f827615905fd7114530104c342afbc77
\ No newline at end of file
Binary file code-doc/inherit__graph__8.png has changed
--- a/code-doc/inherit__graph__9.map	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__9.map	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-<area shape="rect" href="$classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp..." alt="" coords="5,6,197,30">
+<area shape="rect" href="$structVamp_1_1Plugin_1_1Feature.html" title="Vamp::Plugin::Feature" alt="" coords="7,5,156,32">
--- a/code-doc/inherit__graph__9.md5	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherit__graph__9.md5	Tue Dec 09 11:02:57 2008 +0000
@@ -1,1 +1,1 @@
-f827615905fd7114530104c342afbc77
\ No newline at end of file
+3803f2e0307a3fa94bc7d3a7cfa004d3
\ No newline at end of file
Binary file code-doc/inherit__graph__9.png has changed
--- a/code-doc/inherits.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/inherits.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -29,65 +29,53 @@
 <table border="0" cellspacing="10" cellpadding="0">
 <tr><td><img src="inherit__graph__0.png" border="0" alt="" usemap="#__VampFeature_map">
 <map name="__VampFeature_map">
-<area shape="rect" href="struct__VampFeature.html" title="_VampFeature" alt="" coords="7,6,111,30"></map></td></tr>
+<area shape="rect" href="struct__VampFeature.html" title="_VampFeature" alt="" coords="7,5,111,32"></map></td></tr>
 <tr><td><img src="inherit__graph__1.png" border="0" alt="" usemap="#__VampFeatureList_map">
 <map name="__VampFeatureList_map">
-<area shape="rect" href="struct__VampFeatureList.html" title="_VampFeatureList" alt="" coords="7,6,132,30"></map></td></tr>
-<tr><td><img src="inherit__graph__2.png" border="0" alt="" usemap="#__VampOutputDescriptor_map">
+<area shape="rect" href="struct__VampFeatureList.html" title="_VampFeatureList" alt="" coords="7,5,132,32"></map></td></tr>
+<tr><td><img src="inherit__graph__2.png" border="0" alt="" usemap="#__VampFeatureUnion_map">
+<map name="__VampFeatureUnion_map">
+<area shape="rect" href="union__VampFeatureUnion.html" title="_VampFeatureUnion" alt="" coords="5,5,144,32"></map></td></tr>
+<tr><td><img src="inherit__graph__3.png" border="0" alt="" usemap="#__VampFeatureV2_map">
+<map name="__VampFeatureV2_map">
+<area shape="rect" href="struct__VampFeatureV2.html" title="_VampFeatureV2" alt="" coords="7,5,127,32"></map></td></tr>
+<tr><td><img src="inherit__graph__4.png" border="0" alt="" usemap="#__VampOutputDescriptor_map">
 <map name="__VampOutputDescriptor_map">
-<area shape="rect" href="struct__VampOutputDescriptor.html" title="_VampOutputDescriptor" alt="" coords="5,6,165,30"></map></td></tr>
-<tr><td><img src="inherit__graph__3.png" border="0" alt="" usemap="#__VampParameterDescriptor_map">
+<area shape="rect" href="struct__VampOutputDescriptor.html" title="_VampOutputDescriptor" alt="" coords="5,5,165,32"></map></td></tr>
+<tr><td><img src="inherit__graph__5.png" border="0" alt="" usemap="#__VampParameterDescriptor_map">
 <map name="__VampParameterDescriptor_map">
-<area shape="rect" href="struct__VampParameterDescriptor.html" title="C language API for Vamp plugins." alt="" coords="7,6,185,30"></map></td></tr>
-<tr><td><img src="inherit__graph__4.png" border="0" alt="" usemap="#__VampPluginDescriptor_map">
+<area shape="rect" href="struct__VampParameterDescriptor.html" title="C language API for Vamp plugins." alt="" coords="7,5,185,32"></map></td></tr>
+<tr><td><img src="inherit__graph__6.png" border="0" alt="" usemap="#__VampPluginDescriptor_map">
 <map name="__VampPluginDescriptor_map">
-<area shape="rect" href="struct__VampPluginDescriptor.html" title="_VampPluginDescriptor" alt="" coords="7,6,161,30"></map></td></tr>
-<tr><td><img src="inherit__graph__5.png" border="0" alt="" usemap="#Vamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_map">
-<map name="Vamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_map">
-<area shape="rect" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html" title="Vamp::HostExt::PluginBufferingAdapter::Impl" alt="" coords="7,6,289,30"></map></td></tr>
-<tr><td><img src="inherit__graph__6.png" border="0" alt="" usemap="#Vamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer_map">
-<map name="Vamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer_map">
-<area shape="rect" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html" title="Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer" alt="" coords="5,6,357,30"></map></td></tr>
-<tr><td><img src="inherit__graph__7.png" border="0" alt="" usemap="#Vamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl_map">
-<map name="Vamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl_map">
-<area shape="rect" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html" title="Vamp::HostExt::PluginChannelAdapter::Impl" alt="" coords="7,6,284,30"></map></td></tr>
-<tr><td><img src="inherit__graph__8.png" border="0" alt="" usemap="#Vamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl_map">
-<map name="Vamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl_map">
-<area shape="rect" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html" title="Vamp::HostExt::PluginInputDomainAdapter::Impl" alt="" coords="5,6,309,30"></map></td></tr>
-<tr><td><img src="inherit__graph__9.png" border="0" alt="" usemap="#Vamp_1_1HostExt_1_1PluginLoader_map">
+<area shape="rect" href="struct__VampPluginDescriptor.html" title="_VampPluginDescriptor" alt="" coords="7,5,161,32"></map></td></tr>
+<tr><td><img src="inherit__graph__7.png" border="0" alt="" usemap="#FixedTempoEstimator_1_1D_map">
+<map name="FixedTempoEstimator_1_1D_map">
+<area shape="rect" href="classFixedTempoEstimator_1_1D.html" title="FixedTempoEstimator::D" alt="" coords="5,5,171,32"></map></td></tr>
+<tr><td><img src="inherit__graph__8.png" border="0" alt="" usemap="#Vamp_1_1HostExt_1_1PluginLoader_map">
 <map name="Vamp_1_1HostExt_1_1PluginLoader_map">
-<area shape="rect" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp..." alt="" coords="5,6,197,30"></map></td></tr>
-<tr><td><img src="inherit__graph__10.png" border="0" alt="" usemap="#Vamp_1_1HostExt_1_1PluginLoader_1_1Impl_map">
-<map name="Vamp_1_1HostExt_1_1PluginLoader_1_1Impl_map">
-<area shape="rect" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html" title="Vamp::HostExt::PluginLoader::Impl" alt="" coords="7,6,231,30"></map></td></tr>
-<tr><td><img src="inherit__graph__11.png" border="0" alt="" usemap="#Vamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner_map">
-<map name="Vamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner_map">
-<area shape="rect" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html" title="Vamp::HostExt::PluginLoader::Impl::InstanceCleaner" alt="" coords="5,6,333,30"></map></td></tr>
-<tr><td><img src="inherit__graph__12.png" border="0" alt="" usemap="#Vamp_1_1Plugin_1_1Feature_map">
+<area shape="rect" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp..." alt="" coords="5,5,197,32"></map></td></tr>
+<tr><td><img src="inherit__graph__9.png" border="0" alt="" usemap="#Vamp_1_1Plugin_1_1Feature_map">
 <map name="Vamp_1_1Plugin_1_1Feature_map">
-<area shape="rect" href="structVamp_1_1Plugin_1_1Feature.html" title="Vamp::Plugin::Feature" alt="" coords="7,6,156,30"></map></td></tr>
-<tr><td><img src="inherit__graph__13.png" border="0" alt="" usemap="#Vamp_1_1Plugin_1_1OutputDescriptor_map">
+<area shape="rect" href="structVamp_1_1Plugin_1_1Feature.html" title="Vamp::Plugin::Feature" alt="" coords="7,5,156,32"></map></td></tr>
+<tr><td><img src="inherit__graph__10.png" border="0" alt="" usemap="#Vamp_1_1Plugin_1_1OutputDescriptor_map">
 <map name="Vamp_1_1Plugin_1_1OutputDescriptor_map">
-<area shape="rect" href="structVamp_1_1Plugin_1_1OutputDescriptor.html" title="Vamp::Plugin::OutputDescriptor" alt="" coords="7,6,209,30"></map></td></tr>
-<tr><td><img src="inherit__graph__14.png" border="0" alt="" usemap="#Vamp_1_1PluginAdapterBase_map">
+<area shape="rect" href="structVamp_1_1Plugin_1_1OutputDescriptor.html" title="Vamp::Plugin::OutputDescriptor" alt="" coords="7,5,209,32"></map></td></tr>
+<tr><td><img src="inherit__graph__11.png" border="0" alt="" usemap="#Vamp_1_1PluginAdapterBase_map">
 <map name="Vamp_1_1PluginAdapterBase_map">
-<area shape="rect" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library..." alt="" coords="5,6,179,30"><area shape="rect" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular..." alt="" coords="227,6,403,30"></map></td></tr>
-<tr><td><img src="inherit__graph__15.png" border="0" alt="" usemap="#Vamp_1_1PluginAdapterBase_1_1Impl_map">
-<map name="Vamp_1_1PluginAdapterBase_1_1Impl_map">
-<area shape="rect" href="classVamp_1_1PluginAdapterBase_1_1Impl.html" title="Vamp::PluginAdapterBase::Impl" alt="" coords="7,6,212,30"></map></td></tr>
-<tr><td><img src="inherit__graph__16.png" border="0" alt="" usemap="#Vamp_1_1PluginBase_map">
+<area shape="rect" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library..." alt="" coords="5,5,179,32"><area shape="rect" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular..." alt="" coords="227,5,403,32"></map></td></tr>
+<tr><td><img src="inherit__graph__12.png" border="0" alt="" usemap="#Vamp_1_1PluginBase_map">
 <map name="Vamp_1_1PluginBase_map">
-<area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,150,133,174"><area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="181,150,280,174"><area shape="rect" href="classAmplitudeFollower.html" title="Example plugin implementing the SuperCollider amplitude follower function." alt="" coords="381,6,509,30"><area shape="rect" href="classPercussionOnsetDetector.html" title="Example plugin that detects percussive events." alt="" coords="360,54,531,78"><area shape="rect" href="classSpectralCentroid.html" title="Example plugin that calculates the centre of gravity of the frequency domain representation..." alt="" coords="387,102,504,126"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html" title="Vamp::HostExt::PluginRateExtractor" alt="" coords="329,150,561,174"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="345,198,545,222"><area shape="rect" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C&#45;language..." alt="" coords="360,246,531,270"><area shape="rect" href="classZeroCrossing.html" title="Example plugin that calculates the positions and density of zero&#45;crossing points..." alt="" coords="396,294,495,318"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="684,126,935,150"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="687,174,932,198"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="673,222,945,246"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html" title="Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter" alt="" coords="612,270,1007,294"></map></td></tr>
-<tr><td><img src="inherit__graph__17.png" border="0" alt="" usemap="#Vamp_1_1PluginBase_1_1ParameterDescriptor_map">
+<area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="5,183,133,209"><area shape="rect" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction..." alt="" coords="181,183,280,209"><area shape="rect" href="classAmplitudeFollower.html" title="Example plugin implementing the SuperCollider amplitude follower function." alt="" coords="365,5,493,32"><area shape="rect" href="classFixedTempoEstimator.html" title="Example plugin that estimates the tempo of a short fixed&#45;tempo sample." alt="" coords="356,56,503,83"><area shape="rect" href="classPercussionOnsetDetector.html" title="Example plugin that detects percussive events." alt="" coords="344,107,515,133"><area shape="rect" href="classPowerSpectrum.html" title="Example plugin that returns a power spectrum calculated (trivially) from the frequency..." alt="" coords="373,157,485,184"><area shape="rect" href="classSpectralCentroid.html" title="Example plugin that calculates the centre of gravity of the frequency domain representation..." alt="" coords="371,208,488,235"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="329,259,529,285"><area shape="rect" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C&#45;language..." alt="" coords="344,309,515,336"><area shape="rect" href="classZeroCrossing.html" title="Example plugin that calculates the positions and density of zero&#45;crossing points..." alt="" coords="380,360,479,387"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by..." alt="" coords="592,183,840,209"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management..." alt="" coords="593,233,839,260"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time&#45;domain input..." alt="" coords="580,284,852,311"><area shape="rect" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods..." alt="" coords="579,335,853,361"></map></td></tr>
+<tr><td><img src="inherit__graph__13.png" border="0" alt="" usemap="#Vamp_1_1PluginBase_1_1ParameterDescriptor_map">
 <map name="Vamp_1_1PluginBase_1_1ParameterDescriptor_map">
-<area shape="rect" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html" title="Vamp::PluginBase::ParameterDescriptor" alt="" coords="5,6,261,30"></map></td></tr>
-<tr><td><img src="inherit__graph__18.png" border="0" alt="" usemap="#Vamp_1_1RealTime_map">
+<area shape="rect" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html" title="Vamp::PluginBase::ParameterDescriptor" alt="" coords="5,5,261,32"></map></td></tr>
+<tr><td><img src="inherit__graph__14.png" border="0" alt="" usemap="#Vamp_1_1RealTime_map">
 <map name="Vamp_1_1RealTime_map">
-<area shape="rect" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic..." alt="" coords="5,6,123,30"></map></td></tr>
+<area shape="rect" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic..." alt="" coords="5,5,123,32"></map></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:09 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:20 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/main.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/main.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -19,14 +19,15 @@
 <div class="contents">
 <h1>Vamp Plugin SDK</h1>
 <p>
-<h3 align="center">1.2 </h3><h2><a class="anchor" name="about">
+<h3 align="center">2.0 </h3><h2><a class="anchor" name="about">
 About Vamp</a></h2>
-<a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> is an API for C and C++ plugins that process sampled audio data to produce descriptive output (measurements or semantic observations). Find more information at <a href="http://www.vamp-plugins.org/">http://www.vamp-plugins.org/</a> .<p>
-Although the official 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 is defined in C for maximum binary compatibility, we strongly recommend using the provided C++ classes in the SDK to implement your own plugins and hosts.<h2><a class="anchor" name="plugins">
+<a class="el" href="namespaceVamp.html">Vamp</a> is an API for C and C++ plugins that process sampled audio data to produce descriptive output (measurements or semantic observations). Find more information at <a href="http://www.vamp-plugins.org/">http://www.vamp-plugins.org/</a> .<p>
+Although the official API for <a class="el" href="namespaceVamp.html">Vamp</a> plugins is defined in C for maximum binary compatibility, we strongly recommend using the provided C++ classes in the SDK to implement your own plugins and hosts.<h2><a class="anchor" name="plugins">
 For Plugins</a></h2>
 Plugins should subclass <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a>, and then use a <a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">Vamp::PluginAdapter</a> to expose the correct C API for the plugin. Read the documentation for <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">Vamp::PluginBase</a> and <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> before starting.<p>
 Plugins should be compiled and linked into dynamic libraries using the usual convention for your platform, and should link (preferably statically) with -lvamp-sdk. Any number of plugins can reside in a single dynamic library. See <a class="el" href="plugins_8cpp.html">plugins.cpp</a> in the example plugins directory for the sort of code that will need to accompany your plugin class or classes, to make it possible for a host to look up your plugins properly.<p>
-The following example plugins are provided:<p>
+Please read the relevant README file for your platform found in the <a class="el" href="namespaceVamp.html">Vamp</a> SDK build/ directory, for details about how to ensure the resulting dynamic library exports the correct linker symbols.<p>
+The following example plugins are provided. You may legally reuse any amount of the code from these examples in any plugins you write, whether proprietary or open-source.<p>
 <ul>
 <li><a class="el" href="classZeroCrossing.html" title="Example plugin that calculates the positions and density of zero-crossing points...">ZeroCrossing</a> calculates the positions and density of zero-crossing points in an audio waveform.</li></ul>
 <p>
@@ -34,40 +35,49 @@
 <li><a class="el" href="classSpectralCentroid.html" title="Example plugin that calculates the centre of gravity of the frequency domain representation...">SpectralCentroid</a> calculates the centre of gravity of the frequency domain representation of each block of audio.</li></ul>
 <p>
 <ul>
-<li><a class="el" href="classAmplitudeFollower.html" title="Example plugin implementing the SuperCollider amplitude follower function.">AmplitudeFollower</a> is an implementation of SuperCollider's amplitude-follower algorithm as a simple <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.</li></ul>
+<li><a class="el" href="classPowerSpectrum.html" title="Example plugin that returns a power spectrum calculated (trivially) from the frequency...">PowerSpectrum</a> calculates a power spectrum from the input audio. Actually, it doesn't do any work except calculating power from a cartesian complex FFT output. The work of calculating this frequency domain output is done for it by the host or host SDK; the plugin just needs to declare that it wants frequency domain input. This is the simplest of the example plugins.</li></ul>
+<p>
+<ul>
+<li><a class="el" href="classAmplitudeFollower.html" title="Example plugin implementing the SuperCollider amplitude follower function.">AmplitudeFollower</a> is a simple implementation of SuperCollider's amplitude-follower algorithm.</li></ul>
 <p>
 <ul>
 <li><a class="el" href="classPercussionOnsetDetector.html" title="Example plugin that detects percussive events.">PercussionOnsetDetector</a> estimates the locations of percussive onsets using a simple method described in "Drum Source Separation using Percussive Feature Detection and Spectral Modulation" by Dan Barry, Derry Fitzgerald, Eugene Coyle and Bob Lawlor, ISSC 2005.</li></ul>
+<p>
+<ul>
+<li><a class="el" href="classFixedTempoEstimator.html" title="Example plugin that estimates the tempo of a short fixed-tempo sample.">FixedTempoEstimator</a> calculates a single beats-per-minute value which is an estimate of the tempo of a piece of music that is assumed to be of fixed tempo, using autocorrelation of a frequency domain energy rise metric. It has several outputs that return intermediate results used in the calculation, and may be a useful example of a plugin having several outputs with varying feature structures.</li></ul>
 <h2><a class="anchor" name="hosts">
 For Hosts</a></h2>
 Hosts will normally use a <a class="el" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">Vamp::PluginHostAdapter</a> to convert each plugin's exposed C API back into a useful <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> C++ object.<p>
-Starting with version 1.1 of the <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> SDK, there are several classes in the <a class="el" href="namespaceVamp_1_1HostExt.html">Vamp::HostExt</a> namespace that aim to make the host's life as easy as possible:<p>
+The <a class="el" href="namespaceVamp_1_1HostExt.html">Vamp::HostExt</a> namespace contains several additional C++ classes to do this work for them, and make the host's life easier:<p>
 <ul>
-<li><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">Vamp::HostExt::PluginLoader</a> provides a very simple interface for a host to discover, load, and find out category information about the available plugins. Most "casual" <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> hosts will probably want to use this class.</li></ul>
+<li><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">Vamp::HostExt::PluginLoader</a> provides a very easy interface for a host to discover, load, and find out category information about the available plugins. Most <a class="el" href="namespaceVamp.html">Vamp</a> hosts will probably want to use this class.</li></ul>
 <p>
 <ul>
-<li><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">Vamp::HostExt::PluginInputDomainAdapter</a> provides a simple means for hosts to handle plugins that expect frequency-domain input, without having to convert the input themselves.</li></ul>
+<li><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">Vamp::HostExt::PluginInputDomainAdapter</a> provides a simple means for hosts to handle plugins that want frequency-domain input, without having to convert the input themselves.</li></ul>
 <p>
 <ul>
 <li><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">Vamp::HostExt::PluginChannelAdapter</a> provides a simple means for hosts to use plugins that do not necessarily support the same number of audio channels as they have available, without having to apply a channel management / mixdown policy themselves.</li></ul>
 <p>
 <ul>
-<li><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">Vamp::HostExt::PluginBufferingAdapter</a> (new in version 1.2) provides a means for hosts to avoid having to negotiate the input step and block size, instead permitting the host to use any block size they desire (and a step size equal to it). This is particularly useful for "streaming" hosts that cannot seek backwards in the input audio stream and so would otherwise need to implement an additional buffer to support step sizes smaller than the block size.</li></ul>
+<li><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">Vamp::HostExt::PluginBufferingAdapter</a> provides a means for hosts to avoid having to negotiate the input step and block size, instead permitting the host to use any block size they desire (and a step size equal to it). This is particularly useful for "streaming" hosts that cannot seek backwards in the input audio stream and so would otherwise need to implement an additional buffer to support step sizes smaller than the block size.</li></ul>
 <p>
-The PluginLoader class can also use the input domain and channel adapters automatically to make the entire conversion process transparent to the host if required.<p>
+<ul>
+<li><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">Vamp::HostExt::PluginSummarisingAdapter</a> provides summarisation methods such as mean and median averages of output features, for use in any context where an available plugin produces individual values but the result that is actually needed is some sort of aggregate.</li></ul>
+<p>
+The PluginLoader class can also use the input domain, channel, and buffering adapters automatically to make these conversions transparent to the host if required.<p>
+Host authors should also refer to the example host code in the host directory of the SDK.<p>
 Hosts should link with -lvamp-hostsdk.<p>
 (The following notes in this section are mostly relevant for developers that are not using the HostExt classes, or that wish to know more about the policy they implement.)<p>
-The <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 does not officially specify how to load plugin libraries or where to find them. However, the SDK does include a function (<a class="el" href="classVamp_1_1PluginHostAdapter.html#08d7ed3a11bf4a3c30fa0f9b41a0fed6">Vamp::PluginHostAdapter::getPluginPath()</a>) that returns a recommended directory search path that hosts may use for plugin libraries.<p>
-Our suggestion for a host is to search each directory in this path for .DLL (on Windows), .so (on Linux, Solaris, BSD etc) or .dylib (on OS/X) files, then to load each one and perform a dynamic name lookup on the vampGetPluginDescriptor function to enumerate the plugins in the library. The example host has some code that may help, but this operation will necessarily be system-dependent.<p>
-<a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> also has an informal convention for sorting plugins into functional categories. In addition to the library file itself, a plugin library may install a category file with the same name as the library but .cat extension. The existence and format of this file are not specified by the <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, but by convention the file may contain lines of the format<p>
+The <a class="el" href="namespaceVamp.html">Vamp</a> API does not officially specify how to load plugin libraries or where to find them. However, the SDK does include a function (<a class="el" href="classVamp_1_1PluginHostAdapter.html#09cbfb7903d28f10d6d556c6cb81c5f6">Vamp::PluginHostAdapter::getPluginPath()</a>) that returns a recommended directory search path that hosts may use for plugin libraries, and a class (<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">Vamp::HostExt::PluginLoader</a>) that implements a sensible cross-platform lookup policy using this path. We recommend using this class in your host unless you have a good reason not to want to. This implementation also permits the user to set the environment variable VAMP_PATH to override the default path if desired.<p>
+The policy used by <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">Vamp::HostExt::PluginLoader</a> -- and our recommendation for any host -- is to search each directory in this path for .DLL (on Windows), .so (on Linux, Solaris, BSD etc) or .dylib (on OS/X) files, then to load each one and perform a dynamic name lookup on the vampGetPluginDescriptor function to enumerate the plugins in the library. The example host has some code that may help, but this operation will necessarily be system-dependent.<p>
+<a class="el" href="namespaceVamp.html">Vamp</a> also has an informal convention for sorting plugins into functional categories. In addition to the library file itself, a plugin library may install a category file with the same name as the library but .cat extension. The existence and format of this file are not specified by the <a class="el" href="namespaceVamp.html">Vamp</a> API, but by convention the file may contain lines of the format<p>
 <div class="fragment"><pre class="fragment">vamp:pluginlibrary:pluginname::General Category &gt; Specific Category
 </pre></div><p>
-which a host may read and use to assign plugins a location within a category tree for display to the user. The expectation is that advanced users may also choose to set up their own preferred category trees, which is why this information is not queried as part of the <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 itself.<p>
-There is an example host in the "host" directory from which code may be drawn.<h2><a class="anchor" name="license">
+which a host may read and use to assign plugins a location within a category tree for display to the user. The expectation is that advanced users may also choose to set up their own preferred category trees, which is why this information is not queried as part of the <a class="el" href="namespaceVamp.html">Vamp</a> plugin's API itself. The <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">Vamp::HostExt::PluginLoader</a> class also provides support for plugin category lookup using this scheme.<h2><a class="anchor" name="license">
 License</a></h2>
 This plugin SDK is freely redistributable under a "new-style BSD" licence. See the file COPYING for more details. In short, you may modify and redistribute the SDK and example plugins within any commercial or non-commercial, proprietary or open-source plugin or application under almost any conditions, with no obligation to provide source code, provided you retain the original copyright note. </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:06 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/namespaceVamp.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/namespaceVamp.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -23,13 +23,7 @@
   </div>
 </div>
 <div class="contents">
-<h1>Vamp Namespace Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
-If you want to compile using FFTW instead of the built-in FFT implementation for the PluginInputDomainAdapter, define HAVE_FFTW3 in the Makefile. 
-<p>
-Be aware that FFTW is licensed under the GPL -- unlike this SDK, which is provided under a more liberal BSD license in order to permit use in closed source applications. The use of FFTW would mean that your code would need to be licensed under the GPL as well. Do not define this symbol unless you understand and accept the implications of this.<p>
-Parties such as Linux distribution packagers who redistribute this SDK for use in other programs should _not_ define this symbol, as it would change the effective licensing terms under which the SDK was available to third party developers.<p>
-The default is not to use FFTW, and to use the built-in FFT instead.<p>
-Note: The FFTW code uses FFTW_MEASURE, and so will perform badly on its first invocation unless the host has saved and restored FFTW wisdom (see the FFTW documentation). 
+<h1>Vamp Namespace Reference</h1>
 <p>
 
 <p>
@@ -41,33 +35,33 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> is a base class for plugin instance classes that provide feature extraction from audio or related data.  <a href="classVamp_1_1Plugin.html#_details">More...</a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapterBase.html">PluginAdapterBase</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a> and <a class="el" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a> provide a wrapper class that a plugin library can use to make its C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> objects available through the <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> C API.  <a href="classVamp_1_1PluginAdapterBase.html#_details">More...</a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a> and <a class="el" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a> provide a wrapper class that a plugin library can use to make its C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> objects available through the <a class="el" href="namespaceVamp.html">Vamp</a> C API.  <a href="classVamp_1_1PluginAdapterBase.html#_details">More...</a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginAdapter.html">PluginAdapter</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a> turns a <a class="el" href="classVamp_1_1PluginAdapterBase.html" title="PluginAdapter and PluginAdapterBase provide a wrapper class that a plugin library...">PluginAdapterBase</a> into a specific wrapper for a particular plugin implementation.  <a href="classVamp_1_1PluginAdapter.html#_details">More...</a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html">PluginBase</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A base class for plugins with optional configurable parameters, programs, etc.  <a href="classVamp_1_1PluginBase.html#_details">More...</a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html">PluginHostAdapter</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">PluginHostAdapter</a> is a wrapper class 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> host can use to make the C-language VampPluginDescriptor object appear as a C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> object.  <a href="classVamp_1_1PluginHostAdapter.html#_details">More...</a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> represents time values to nanosecond precision with accurate arithmetic and frame-rate conversion functions.  <a href="structVamp_1_1RealTime.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html">PluginHostAdapter</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">PluginHostAdapter</a> is a wrapper class that a <a class="el" href="namespaceVamp.html">Vamp</a> host can use to make the C-language VampPluginDescriptor object appear as a C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> object.  <a href="classVamp_1_1PluginHostAdapter.html#_details">More...</a><br></td></tr>
 <tr><td colspan="2"><br><h2>Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp_1_1HostExt.html">HostExt</a></td></tr>
 
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">std::ostream &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html#84f347b339c111e035f4f0d6ed37f4e0">operator&lt;&lt;</a> (std::ostream &amp;out, const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;rt)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::ostream &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html#85842d554b6abf7bf9ff648b70f39fef">operator&lt;&lt;</a> (std::ostream &amp;out, const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;rt)</td></tr>
 
 </table>
 <hr><h2>Function Documentation</h2>
-<a class="anchor" name="84f347b339c111e035f4f0d6ed37f4e0"></a><!-- doxytag: member="Vamp::operator&lt;&lt;" ref="84f347b339c111e035f4f0d6ed37f4e0" args="(std::ostream &amp;out, const RealTime &amp;rt)" -->
+<a class="anchor" name="85842d554b6abf7bf9ff648b70f39fef"></a><!-- doxytag: member="Vamp::operator&lt;&lt;" ref="85842d554b6abf7bf9ff648b70f39fef" args="(std::ostream &amp;out, const RealTime &amp;rt)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::ostream &amp; Vamp::operator&lt;&lt;           </td>
+          <td class="memname">std::ostream&amp; Vamp::operator&lt;&lt;           </td>
           <td>(</td>
           <td class="paramtype">std::ostream &amp;&nbsp;</td>
           <td class="paramname"> <em>out</em>, </td>
@@ -81,7 +75,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -89,15 +83,11 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8cpp-source.html#l00110">110</a> of file <a class="el" href="RealTime_8cpp-source.html">RealTime.cpp</a>.</p>
-
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">Vamp::RealTime::nsec</a>, <a class="el" href="RealTime_8cpp-source.html#l00073">ONE_BILLION</a>, <a class="el" href="RealTime_8h-source.html#l00065">Vamp::RealTime::sec</a>, and <a class="el" href="RealTime_8h-source.html#l00155">Vamp::RealTime::zeroTime</a>.</p>
-
 </div>
 </div><p>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:09 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:20 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/namespaceVamp_1_1HostExt.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/namespaceVamp_1_1HostExt.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -34,25 +34,26 @@
 <tr><td colspan="2"><br><h2>Classes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">PluginBufferingAdapter</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a> is 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 adapter that allows plugins to be used by a host supplying an audio stream in non-overlapping buffers of arbitrary size.  <a href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#_details">More...</a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" title="PluginBufferingAdapter is a Vamp plugin adapter that allows plugins to be used by...">PluginBufferingAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that allows plugins to be used by a host supplying an audio stream in non-overlapping buffers of arbitrary size.  <a href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#_details">More...</a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">PluginChannelAdapter</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> is 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 adapter that implements a policy for management of plugins that expect a different number of input channels from the number actually available in the source audio data.  <a href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#_details">More...</a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" title="PluginChannelAdapter is a Vamp plugin adapter that implements a policy for management...">PluginChannelAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that implements a policy for management of plugins that expect a different number of input channels from the number actually available in the source audio data.  <a href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html#_details">More...</a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">PluginInputDomainAdapter</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a> is 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 adapter that converts time-domain input into frequency-domain input for plugins that need it.  <a href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#_details">More...</a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that converts time-domain input into frequency-domain input for plugins that need it.  <a href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#_details">More...</a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">PluginLoader</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">Vamp::HostExt::PluginLoader</a> is a convenience class for discovering and loading <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 using the typical plugin-path, library naming, and categorisation conventions described in the <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> SDK documentation.  <a href="classVamp_1_1HostExt_1_1PluginLoader.html#_details">More...</a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html">PluginRateExtractor</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">Vamp::HostExt::PluginLoader</a> is a convenience class for discovering and loading <a class="el" href="namespaceVamp.html">Vamp</a> plugins using the typical plugin-path, library naming, and categorisation conventions described in the <a class="el" href="namespaceVamp.html">Vamp</a> SDK documentation.  <a href="classVamp_1_1HostExt_1_1PluginLoader.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">PluginSummarisingAdapter</a></td></tr>
 
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that provides summarisation methods such as mean and median averages of output features, for use in any context where an available plugin produces individual values but the result that is actually needed is some sort of aggregate.  <a href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#_details">More...</a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">PluginWrapper</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a> is a simple base class for adapter plugins.  <a href="classVamp_1_1HostExt_1_1PluginWrapper.html#_details">More...</a><br></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/namespacemembers.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/namespacemembers.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -33,11 +33,11 @@
 <p>
 <ul>
 <li>operator&lt;&lt;()
-: <a class="el" href="namespaceVamp.html#84f347b339c111e035f4f0d6ed37f4e0">Vamp</a>
+: <a class="el" href="namespaceVamp.html#85842d554b6abf7bf9ff648b70f39fef">Vamp</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/namespacemembers_func.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/namespacemembers_func.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -33,11 +33,11 @@
 <p>
 <ul>
 <li>operator&lt;&lt;()
-: <a class="el" href="namespaceVamp.html#84f347b339c111e035f4f0d6ed37f4e0">Vamp</a>
+: <a class="el" href="namespaceVamp.html#85842d554b6abf7bf9ff648b70f39fef">Vamp</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:11 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:22 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/namespaces.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/namespaces.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -24,12 +24,12 @@
 </div>
 <div class="contents">
 <h1>Namespace List</h1>Here is a list of all namespaces with brief descriptions:<table>
-  <tr><td class="indexkey"><a class="el" href="namespaceVamp.html">Vamp</a></td><td class="indexvalue">If you want to compile using FFTW instead of the built-in FFT implementation for the PluginInputDomainAdapter, define HAVE_FFTW3 in the Makefile </td></tr>
+  <tr><td class="indexkey"><a class="el" href="namespaceVamp.html">Vamp</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="namespaceVamp_1_1HostExt.html">Vamp::HostExt</a></td><td class="indexvalue"></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:09 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:20 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/plugguard_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,95 @@
+<!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: plugguard.h Source File</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>plugguard.h</h1><a href="plugguard_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/*</span>
+<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
+<a name="l00005"></a>00005 <span class="comment"></span>
+<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_SDK_PLUGGUARD_H_</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_SDK_PLUGGUARD_H_</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00070"></a>00070 <span class="preprocessor">#ifndef _VAMP_IN_HOSTSDK</span>
+<a name="l00071"></a>00071 <span class="preprocessor"></span>
+<a name="l00072"></a><a class="code" href="plugguard_8h.html#3bf4e97f131677e5e1505a7a9582d68a">00072</a> <span class="preprocessor">#define _VAMP_IN_PLUGINSDK 1</span>
+<a name="l00073"></a>00073 <span class="preprocessor"></span>
+<a name="l00074"></a>00074 <span class="preprocessor">#ifdef _VAMP_NO_PLUGIN_NAMESPACE</span>
+<a name="l00075"></a><a class="code" href="plugguard_8h.html#1a2724ea453971288d3218e4eab3072c">00075</a> <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_SDK_PLUGSPACE_BEGIN(h)</span>
+<a name="l00076"></a><a class="code" href="plugguard_8h.html#c879bb1077ecc6132ea3581ef9033753">00076</a> <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_SDK_PLUGSPACE_END(h)</span>
+<a name="l00077"></a>00077 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00078"></a>00078 <span class="preprocessor"></span><span class="preprocessor">#ifdef _VAMP_PLUGIN_IN_HOST_NAMESPACE</span>
+<a name="l00079"></a>00079 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_SDK_PLUGSPACE_BEGIN(h) \</span>
+<a name="l00080"></a>00080 <span class="preprocessor">        namespace _VampHost {</span>
+<a name="l00081"></a>00081 <span class="preprocessor"></span>
+<a name="l00082"></a>00082 <span class="preprocessor">#define _VAMP_SDK_PLUGSPACE_END(h) \</span>
+<a name="l00083"></a>00083 <span class="preprocessor">        } \</span>
+<a name="l00084"></a>00084 <span class="preprocessor">        using namespace _VampHost;</span>
+<a name="l00085"></a>00085 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00086"></a>00086 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_SDK_PLUGSPACE_BEGIN(h) \</span>
+<a name="l00087"></a>00087 <span class="preprocessor">        namespace _VampPlugin {</span>
+<a name="l00088"></a>00088 <span class="preprocessor"></span>
+<a name="l00089"></a>00089 <span class="preprocessor">#define _VAMP_SDK_PLUGSPACE_END(h) \</span>
+<a name="l00090"></a>00090 <span class="preprocessor">        } \</span>
+<a name="l00091"></a>00091 <span class="preprocessor">        using namespace _VampPlugin;</span>
+<a name="l00092"></a>00092 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00093"></a>00093 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00094"></a>00094 <span class="preprocessor"></span>
+<a name="l00095"></a>00095 <span class="preprocessor">#endif</span>
+<a name="l00096"></a>00096 <span class="preprocessor"></span>
+<a name="l00097"></a>00097 <span class="preprocessor">#endif</span>
+<a name="l00098"></a>00098 <span class="preprocessor"></span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/plugguard_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,113 @@
+<!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: plugguard.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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>plugguard.h File Reference</h1>
+<p>
+
+<p>
+<a href="plugguard_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>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugguard_8h.html#3bf4e97f131677e5e1505a7a9582d68a">_VAMP_IN_PLUGINSDK</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Normal usage should be:.  <a href="#3bf4e97f131677e5e1505a7a9582d68a"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugguard_8h.html#1a2724ea453971288d3218e4eab3072c">_VAMP_SDK_PLUGSPACE_BEGIN</a>(h)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugguard_8h.html#c879bb1077ecc6132ea3581ef9033753">_VAMP_SDK_PLUGSPACE_END</a>(h)</td></tr>
+
+</table>
+<hr><h2>Define Documentation</h2>
+<a class="anchor" name="3bf4e97f131677e5e1505a7a9582d68a"></a><!-- doxytag: member="plugguard.h::_VAMP_IN_PLUGINSDK" ref="3bf4e97f131677e5e1505a7a9582d68a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define _VAMP_IN_PLUGINSDK&nbsp;&nbsp;&nbsp;1          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Normal usage should be:. 
+<p>
+<ul>
+<li>Plugins include <a class="el" href="vamp-sdk_2Plugin_8h.html">vamp-sdk/Plugin.h</a> or <a class="el" href="vamp-sdk_2PluginBase_8h.html">vamp-sdk/PluginBase.h</a>. These files include this header, which specifies an appropriate namespace for the plugin classes to avoid any risk of conflict with non-plugin class implementations in the host on load.</li></ul>
+<p>
+<ul>
+<li>Hosts include <a class="el" href="vamp-hostsdk_2Plugin_8h.html">vamp-hostsdk/Plugin.h</a>, <a class="el" href="vamp-hostsdk_2PluginBase_8h.html">vamp-hostsdk/PluginBase.h</a>, vamp-hostsdk/PluginHostAdapter, <a class="el" href="PluginLoader_8h.html">vamp-hostsdk/PluginLoader.h</a> etc. These files include <a class="el" href="hostguard_8h.html">vamp-hostsdk/hostguard.h</a>, which makes a note that we are in a host. A file such as <a class="el" href="vamp-hostsdk_2Plugin_8h.html">vamp-hostsdk/Plugin.h</a> then simply includes <a class="el" href="vamp-sdk_2Plugin_8h.html">vamp-sdk/Plugin.h</a>, and this guard header takes notice of the fact that it has been included from a host and leaves the plugin namespace unset.</li></ul>
+<p>
+Problems will occur when a host includes files directly from the vamp-sdk directory. There are two reasons this might happen: mistake, perhaps owing to ignorance of the fact that this isn't allowed (particularly since it was the normal mechanism in v1 of the SDK); and a wish to incorporate plugin code directly into the host rather than having to load it.<p>
+What if the host does include a vamp-sdk header by mistake? We can catch it if it's included before something from vamp-hostsdk. If it's included after something from vamp-hostsdk, it will work OK anyway. The remaining problem case is where nothing from vamp-hostsdk is included in the same file. We can't catch that. 
+<p>Definition at line <a class="el" href="plugguard_8h-source.html#l00072">72</a> of file <a class="el" href="plugguard_8h-source.html">plugguard.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="1a2724ea453971288d3218e4eab3072c"></a><!-- doxytag: member="plugguard.h::_VAMP_SDK_PLUGSPACE_BEGIN" ref="1a2724ea453971288d3218e4eab3072c" args="(h)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define _VAMP_SDK_PLUGSPACE_BEGIN          </td>
+          <td>(</td>
+          <td class="paramtype">h&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="plugguard_8h-source.html#l00075">75</a> of file <a class="el" href="plugguard_8h-source.html">plugguard.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c879bb1077ecc6132ea3581ef9033753"></a><!-- doxytag: member="plugguard.h::_VAMP_SDK_PLUGSPACE_END" ref="c879bb1077ecc6132ea3581ef9033753" args="(h)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define _VAMP_SDK_PLUGSPACE_END          </td>
+          <td>(</td>
+          <td class="paramtype">h&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="plugguard_8h-source.html#l00076">76</a> of file <a class="el" href="plugguard_8h-source.html">plugguard.h</a>.</p>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- a/code-doc/plugins_8cpp-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/plugins_8cpp-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -18,7 +18,7 @@
   <div class="navpath"><a class="el" href="dir_35887283b966ca996e4ff77f459c38ce.html">examples</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>plugins.cpp</h1><a href="plugins_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -61,30 +61,36 @@
 <a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="ZeroCrossing_8h.html">ZeroCrossing.h</a>"</span>
 <a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="SpectralCentroid_8h.html">SpectralCentroid.h</a>"</span>
 <a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="PercussionOnsetDetector_8h.html">PercussionOnsetDetector.h</a>"</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="AmplitudeFollower_8h.html">AmplitudeFollower.h</a>"</span>
-<a name="l00044"></a>00044 
-<a name="l00045"></a><a class="code" href="plugins_8cpp.html#01871ad1ab2bb64e2c53fe5cce19b780">00045</a> <span class="keyword">static</span> <a class="code" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">Vamp::PluginAdapter&lt;ZeroCrossing&gt;</a> <a class="code" href="plugins_8cpp.html#01871ad1ab2bb64e2c53fe5cce19b780">zeroCrossingAdapter</a>;
-<a name="l00046"></a><a class="code" href="plugins_8cpp.html#c96bdfb6356a153341b29b43c4961cd5">00046</a> <span class="keyword">static</span> <a class="code" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">Vamp::PluginAdapter&lt;SpectralCentroid&gt;</a> <a class="code" href="plugins_8cpp.html#c96bdfb6356a153341b29b43c4961cd5">spectralCentroidAdapter</a>;
-<a name="l00047"></a><a class="code" href="plugins_8cpp.html#cee3823cb6a43281a2ecf923b69613dd">00047</a> <span class="keyword">static</span> <a class="code" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">Vamp::PluginAdapter&lt;PercussionOnsetDetector&gt;</a> <a class="code" href="plugins_8cpp.html#cee3823cb6a43281a2ecf923b69613dd">percussionOnsetAdapter</a>;
-<a name="l00048"></a><a class="code" href="plugins_8cpp.html#4e60bb6a99451da5deb18b969e6b16cd">00048</a> <span class="keyword">static</span> <a class="code" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">Vamp::PluginAdapter&lt;AmplitudeFollower&gt;</a> <a class="code" href="plugins_8cpp.html#4e60bb6a99451da5deb18b969e6b16cd">amplitudeAdapter</a>;
-<a name="l00049"></a>00049 
-<a name="l00050"></a><a class="code" href="plugins_8cpp.html#bb0fd6db76ddd39698bc370e0fd0ea78">00050</a> <span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *<a class="code" href="vamp_8h.html#50cf6f17d0718f02093be6c7f63fcf30" title="Get the descriptor for a given plugin index in this library.">vampGetPluginDescriptor</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> version,
-<a name="l00051"></a>00051                                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index)
-<a name="l00052"></a>00052 {
-<a name="l00053"></a>00053     <span class="keywordflow">if</span> (version &lt; 1) <span class="keywordflow">return</span> 0;
-<a name="l00054"></a>00054 
-<a name="l00055"></a>00055     <span class="keywordflow">switch</span> (index) {
-<a name="l00056"></a>00056     <span class="keywordflow">case</span>  0: <span class="keywordflow">return</span> zeroCrossingAdapter.<a class="code" href="classVamp_1_1PluginAdapterBase.html#7ff5c9374a8dc43f977c3707d1da45b5" title="Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter...">getDescriptor</a>();
-<a name="l00057"></a>00057     <span class="keywordflow">case</span>  1: <span class="keywordflow">return</span> spectralCentroidAdapter.<a class="code" href="classVamp_1_1PluginAdapterBase.html#7ff5c9374a8dc43f977c3707d1da45b5" title="Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter...">getDescriptor</a>();
-<a name="l00058"></a>00058     <span class="keywordflow">case</span>  2: <span class="keywordflow">return</span> percussionOnsetAdapter.<a class="code" href="classVamp_1_1PluginAdapterBase.html#7ff5c9374a8dc43f977c3707d1da45b5" title="Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter...">getDescriptor</a>();
-<a name="l00059"></a>00059     <span class="keywordflow">case</span>  3: <span class="keywordflow">return</span> amplitudeAdapter.<a class="code" href="classVamp_1_1PluginAdapterBase.html#7ff5c9374a8dc43f977c3707d1da45b5" title="Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter...">getDescriptor</a>();
-<a name="l00060"></a>00060     <span class="keywordflow">default</span>: <span class="keywordflow">return</span> 0;
-<a name="l00061"></a>00061     }
-<a name="l00062"></a>00062 }
-<a name="l00063"></a>00063 
+<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="FixedTempoEstimator_8h.html">FixedTempoEstimator.h</a>"</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include "<a class="code" href="AmplitudeFollower_8h.html">AmplitudeFollower.h</a>"</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#include "<a class="code" href="PowerSpectrum_8h.html">PowerSpectrum.h</a>"</span>
+<a name="l00046"></a>00046 
+<a name="l00047"></a><a class="code" href="plugins_8cpp.html#01871ad1ab2bb64e2c53fe5cce19b780">00047</a> <span class="keyword">static</span> <a class="code" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">Vamp::PluginAdapter&lt;ZeroCrossing&gt;</a> <a class="code" href="plugins_8cpp.html#01871ad1ab2bb64e2c53fe5cce19b780">zeroCrossingAdapter</a>;
+<a name="l00048"></a><a class="code" href="plugins_8cpp.html#c96bdfb6356a153341b29b43c4961cd5">00048</a> <span class="keyword">static</span> <a class="code" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">Vamp::PluginAdapter&lt;SpectralCentroid&gt;</a> <a class="code" href="plugins_8cpp.html#c96bdfb6356a153341b29b43c4961cd5">spectralCentroidAdapter</a>;
+<a name="l00049"></a><a class="code" href="plugins_8cpp.html#cee3823cb6a43281a2ecf923b69613dd">00049</a> <span class="keyword">static</span> <a class="code" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">Vamp::PluginAdapter&lt;PercussionOnsetDetector&gt;</a> <a class="code" href="plugins_8cpp.html#cee3823cb6a43281a2ecf923b69613dd">percussionOnsetAdapter</a>;
+<a name="l00050"></a><a class="code" href="plugins_8cpp.html#937de36d22633261716032570064a4be">00050</a> <span class="keyword">static</span> <a class="code" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">Vamp::PluginAdapter&lt;FixedTempoEstimator&gt;</a> <a class="code" href="plugins_8cpp.html#937de36d22633261716032570064a4be">fixedTempoAdapter</a>;
+<a name="l00051"></a><a class="code" href="plugins_8cpp.html#4e60bb6a99451da5deb18b969e6b16cd">00051</a> <span class="keyword">static</span> <a class="code" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">Vamp::PluginAdapter&lt;AmplitudeFollower&gt;</a> <a class="code" href="plugins_8cpp.html#4e60bb6a99451da5deb18b969e6b16cd">amplitudeAdapter</a>;
+<a name="l00052"></a><a class="code" href="plugins_8cpp.html#77810f485caaae4a8b2303496046d3d7">00052</a> <span class="keyword">static</span> <a class="code" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">Vamp::PluginAdapter&lt;PowerSpectrum&gt;</a> <a class="code" href="plugins_8cpp.html#77810f485caaae4a8b2303496046d3d7">powerSpectrum</a>;
+<a name="l00053"></a>00053 
+<a name="l00054"></a><a class="code" href="plugins_8cpp.html#bb0fd6db76ddd39698bc370e0fd0ea78">00054</a> <span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *<a class="code" href="vamp_8h.html#50cf6f17d0718f02093be6c7f63fcf30" title="Get the descriptor for a given plugin index in this library.">vampGetPluginDescriptor</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> version,
+<a name="l00055"></a>00055                                                     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index)
+<a name="l00056"></a>00056 {
+<a name="l00057"></a>00057     <span class="keywordflow">if</span> (version &lt; 1) <span class="keywordflow">return</span> 0;
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059     <span class="keywordflow">switch</span> (index) {
+<a name="l00060"></a>00060     <span class="keywordflow">case</span>  0: <span class="keywordflow">return</span> zeroCrossingAdapter.<a class="code" href="classVamp_1_1PluginAdapterBase.html#d24595002512f9f00e8e45216d6f5dfb" title="Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter...">getDescriptor</a>();
+<a name="l00061"></a>00061     <span class="keywordflow">case</span>  1: <span class="keywordflow">return</span> spectralCentroidAdapter.<a class="code" href="classVamp_1_1PluginAdapterBase.html#d24595002512f9f00e8e45216d6f5dfb" title="Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter...">getDescriptor</a>();
+<a name="l00062"></a>00062     <span class="keywordflow">case</span>  2: <span class="keywordflow">return</span> percussionOnsetAdapter.<a class="code" href="classVamp_1_1PluginAdapterBase.html#d24595002512f9f00e8e45216d6f5dfb" title="Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter...">getDescriptor</a>();
+<a name="l00063"></a>00063     <span class="keywordflow">case</span>  3: <span class="keywordflow">return</span> amplitudeAdapter.<a class="code" href="classVamp_1_1PluginAdapterBase.html#d24595002512f9f00e8e45216d6f5dfb" title="Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter...">getDescriptor</a>();
+<a name="l00064"></a>00064     <span class="keywordflow">case</span>  4: <span class="keywordflow">return</span> fixedTempoAdapter.<a class="code" href="classVamp_1_1PluginAdapterBase.html#d24595002512f9f00e8e45216d6f5dfb" title="Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter...">getDescriptor</a>();
+<a name="l00065"></a>00065     <span class="keywordflow">case</span>  5: <span class="keywordflow">return</span> powerSpectrum.<a class="code" href="classVamp_1_1PluginAdapterBase.html#d24595002512f9f00e8e45216d6f5dfb" title="Return a VampPluginDescriptor describing the plugin that is wrapped by this adapter...">getDescriptor</a>();
+<a name="l00066"></a>00066     <span class="keywordflow">default</span>: <span class="keywordflow">return</span> 0;
+<a name="l00067"></a>00067     }
+<a name="l00068"></a>00068 }
+<a name="l00069"></a>00069 
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/plugins_8cpp.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/plugins_8cpp.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -40,8 +40,14 @@
 &lt; <a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugins_8cpp.html#cee3823cb6a43281a2ecf923b69613dd">percussionOnsetAdapter</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classVamp_1_1PluginAdapter.html">Vamp::PluginAdapter</a><br>
+&lt; <a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugins_8cpp.html#937de36d22633261716032570064a4be">fixedTempoAdapter</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classVamp_1_1PluginAdapter.html">Vamp::PluginAdapter</a><br>
 &lt; <a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugins_8cpp.html#4e60bb6a99451da5deb18b969e6b16cd">amplitudeAdapter</a></td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classVamp_1_1PluginAdapter.html">Vamp::PluginAdapter</a><br>
+&lt; <a class="el" href="classPowerSpectrum.html">PowerSpectrum</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugins_8cpp.html#77810f485caaae4a8b2303496046d3d7">powerSpectrum</a></td></tr>
+
 </table>
 <hr><h2>Function Documentation</h2>
 <a class="anchor" name="bb0fd6db76ddd39698bc370e0fd0ea78"></a><!-- doxytag: member="plugins.cpp::vampGetPluginDescriptor" ref="bb0fd6db76ddd39698bc370e0fd0ea78" args="(unsigned int version, unsigned int index)" -->
@@ -63,7 +69,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -73,11 +79,11 @@
 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>
+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="PluginAdapter_8cpp-source.html#l00138">Vamp::PluginAdapterBase::getDescriptor()</a>.</p>
+<p>References <a class="el" href="classVamp_1_1PluginAdapterBase.html#d24595002512f9f00e8e45216d6f5dfb">Vamp::PluginAdapterBase::getDescriptor()</a>.</p>
 
 </div>
 </div><p>
@@ -95,7 +101,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="plugins_8cpp-source.html#l00045">45</a> of file <a class="el" href="plugins_8cpp-source.html">plugins.cpp</a>.</p>
+<p>Definition at line <a class="el" href="plugins_8cpp-source.html#l00047">47</a> of file <a class="el" href="plugins_8cpp-source.html">plugins.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -112,7 +118,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="plugins_8cpp-source.html#l00046">46</a> of file <a class="el" href="plugins_8cpp-source.html">plugins.cpp</a>.</p>
+<p>Definition at line <a class="el" href="plugins_8cpp-source.html#l00048">48</a> of file <a class="el" href="plugins_8cpp-source.html">plugins.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -129,7 +135,24 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="plugins_8cpp-source.html#l00047">47</a> of file <a class="el" href="plugins_8cpp-source.html">plugins.cpp</a>.</p>
+<p>Definition at line <a class="el" href="plugins_8cpp-source.html#l00049">49</a> of file <a class="el" href="plugins_8cpp-source.html">plugins.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="937de36d22633261716032570064a4be"></a><!-- doxytag: member="plugins.cpp::fixedTempoAdapter" ref="937de36d22633261716032570064a4be" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginAdapter.html">Vamp::PluginAdapter</a>&lt;<a class="el" href="classFixedTempoEstimator.html">FixedTempoEstimator</a>&gt; <a class="el" href="plugins_8cpp.html#937de36d22633261716032570064a4be">fixedTempoAdapter</a><code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<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>
 
 </div>
 </div><p>
@@ -146,13 +169,30 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="plugins_8cpp-source.html#l00048">48</a> of file <a class="el" href="plugins_8cpp-source.html">plugins.cpp</a>.</p>
+<p>Definition at line <a class="el" href="plugins_8cpp-source.html#l00051">51</a> of file <a class="el" href="plugins_8cpp-source.html">plugins.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="77810f485caaae4a8b2303496046d3d7"></a><!-- doxytag: member="plugins.cpp::powerSpectrum" ref="77810f485caaae4a8b2303496046d3d7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginAdapter.html">Vamp::PluginAdapter</a>&lt;<a class="el" href="classPowerSpectrum.html">PowerSpectrum</a>&gt; <a class="el" href="plugins_8cpp.html#77810f485caaae4a8b2303496046d3d7">powerSpectrum</a><code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="plugins_8cpp-source.html#l00052">52</a> of file <a class="el" href="plugins_8cpp-source.html">plugins.cpp</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&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/structVamp_1_1PluginBase_1_1ParameterDescriptor-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/structVamp_1_1PluginBase_1_1ParameterDescriptor-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -32,12 +32,13 @@
   <tr class="memlist"><td><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4">maxValue</a></td><td><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">Vamp::PluginBase::ParameterDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8">minValue</a></td><td><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">Vamp::PluginBase::ParameterDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#0ecebb94fb4ada4aad2640e20aa57084">name</a></td><td><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">Vamp::PluginBase::ParameterDescriptor</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#5b793130e9746b2302317b3c9a9c1395">ParameterDescriptor</a>()</td><td><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">Vamp::PluginBase::ParameterDescriptor</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#01f8387e7c853d5e4e35d4e9a37353d7">quantizeStep</a></td><td><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">Vamp::PluginBase::ParameterDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#3bc3df322e4c02e17e96bc6d44982d7b">unit</a></td><td><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">Vamp::PluginBase::ParameterDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#94df96f53835980b4739965007ff222b">valueNames</a></td><td><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">Vamp::PluginBase::ParameterDescriptor</a></td><td></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/structVamp_1_1PluginBase_1_1ParameterDescriptor.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/structVamp_1_1PluginBase_1_1ParameterDescriptor.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,15 +26,18 @@
   </div>
 </div>
 <div class="contents">
-<h1>Vamp::PluginBase::ParameterDescriptor Struct Reference</h1><!-- doxytag: class="Vamp::PluginBase::ParameterDescriptor" --><code>#include &lt;<a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>&gt;</code>
+<h1>Vamp::PluginBase::ParameterDescriptor Struct Reference</h1><!-- doxytag: class="Vamp::PluginBase::ParameterDescriptor" --><code>#include &lt;<a class="el" href="vamp-sdk_2PluginBase_8h-source.html">PluginBase.h</a>&gt;</code>
 <p>
 
 <p>
 <a href="structVamp_1_1PluginBase_1_1ParameterDescriptor-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00125">125</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00130">130</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#5b793130e9746b2302317b3c9a9c1395">ParameterDescriptor</a> ()</td></tr>
+
 <tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#116fd9f0dc94c2bc4bbc60b5443c598c">identifier</a></td></tr>
 
@@ -67,6 +70,28 @@
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Names for the quantized values.  <a href="#94df96f53835980b4739965007ff222b"></a><br></td></tr>
 </table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="5b793130e9746b2302317b3c9a9c1395"></a><!-- doxytag: member="Vamp::PluginBase::ParameterDescriptor::ParameterDescriptor" ref="5b793130e9746b2302317b3c9a9c1395" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::PluginBase::ParameterDescriptor::ParameterDescriptor           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00199">199</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
 <hr><h2>Member Data Documentation</h2>
 <a class="anchor" name="116fd9f0dc94c2bc4bbc60b5443c598c"></a><!-- doxytag: member="Vamp::PluginBase::ParameterDescriptor::identifier" ref="116fd9f0dc94c2bc4bbc60b5443c598c" args="" -->
 <div class="memitem">
@@ -83,9 +108,9 @@
 The name of the parameter, in computer-usable form. 
 <p>
 Should be reasonably short, and may only contain the characters [a-zA-Z0-9_-]. 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00132">132</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00137">137</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00124">FixedTempoEstimator::D::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -104,9 +129,9 @@
 The human-readable name of the parameter. 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00137">137</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00142">142</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00124">FixedTempoEstimator::D::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -125,9 +150,9 @@
 A human-readable short text describing the parameter. 
 <p>
 May be empty if the name has said it all already. 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00143">143</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00148">148</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00124">FixedTempoEstimator::D::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -146,9 +171,9 @@
 The unit of the parameter, in human-readable form. 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00148">148</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00153">153</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00124">FixedTempoEstimator::D::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -167,9 +192,9 @@
 The minimum value of the parameter. 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00153">153</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00158">158</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00124">FixedTempoEstimator::D::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -188,9 +213,9 @@
 The maximum value of the parameter. 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00158">158</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00163">163</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00124">FixedTempoEstimator::D::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -209,9 +234,9 @@
 The default value of the parameter. 
 <p>
 The plugin should ensure that parameters have this value on initialisation (i.e. the host is not required to explicitly set parameters if it wants to use their default values). 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00166">166</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00171">171</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00124">FixedTempoEstimator::D::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -230,9 +255,9 @@
 True if the parameter values are quantized to a particular resolution. 
 <p>
 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00172">172</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00177">177</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00145">PercussionOnsetDetector::getParameterDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00124">FixedTempoEstimator::D::getParameterDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00148">AmplitudeFollower::getParameterDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -251,9 +276,7 @@
 Quantization resolution of the parameter values (e.g. 
 <p>
 1.0 if they are all integers). Undefined if isQuantized is false. 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00179">179</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00184">184</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
@@ -273,17 +296,15 @@
 <p>
 If isQuantized is true, this may either be empty or contain one string for each of the quantize steps from minValue up to maxValue inclusive. Undefined if isQuantized is false.<p>
 If these names are provided, they should be shown to the user in preference to the values themselves. The user may never see the actual numeric values unless they are also encoded in the names. 
-<p>Definition at line <a class="el" href="PluginBase_8h-source.html#l00192">192</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00197">197</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
 
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="PluginBase_8h-source.html">PluginBase.h</a></ul>
+<li><a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/structVamp_1_1Plugin_1_1Feature-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/structVamp_1_1Plugin_1_1Feature-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -25,13 +25,16 @@
 </div>
 <div class="contents">
 <h1>Vamp::Plugin::Feature Member List</h1>This is the complete list of members for <a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Vamp::Plugin::Feature</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1Feature.html#f687c0a7fe041757e922ec296862b115">duration</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Vamp::Plugin::Feature</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1Feature.html#cd4b4cd0d2c31512f4a5df50f8f7a7b8">Feature</a>()</td><td><a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Vamp::Plugin::Feature</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1Feature.html#33686757bd4481c72494122e9bfb9fba">hasDuration</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Vamp::Plugin::Feature</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b">hasTimestamp</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Vamp::Plugin::Feature</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036">label</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Vamp::Plugin::Feature</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7">timestamp</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Vamp::Plugin::Feature</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71">values</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Vamp::Plugin::Feature</a></td><td></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:09 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:20 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/structVamp_1_1Plugin_1_1Feature.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/structVamp_1_1Plugin_1_1Feature.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,15 +26,18 @@
   </div>
 </div>
 <div class="contents">
-<h1>Vamp::Plugin::Feature Struct Reference</h1><!-- doxytag: class="Vamp::Plugin::Feature" --><code>#include &lt;<a class="el" href="Plugin_8h-source.html">Plugin.h</a>&gt;</code>
+<h1>Vamp::Plugin::Feature Struct Reference</h1><!-- doxytag: class="Vamp::Plugin::Feature" --><code>#include &lt;<a class="el" href="vamp-sdk_2Plugin_8h-source.html">Plugin.h</a>&gt;</code>
 <p>
 
 <p>
 <a href="structVamp_1_1Plugin_1_1Feature-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00318">318</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00331">331</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1Feature.html#cd4b4cd0d2c31512f4a5df50f8f7a7b8">Feature</a> ()</td></tr>
+
 <tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b">hasTimestamp</a></td></tr>
 
@@ -42,6 +45,12 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7">timestamp</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Timestamp of the output feature.  <a href="#caa605f36839c07e76f4882f5e22d8d7"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1Feature.html#33686757bd4481c72494122e9bfb9fba">hasDuration</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True if an output feature has a specified duration.  <a href="#33686757bd4481c72494122e9bfb9fba"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1Feature.html#f687c0a7fe041757e922ec296862b115">duration</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Duration of the output feature.  <a href="#f687c0a7fe041757e922ec296862b115"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; float &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71">values</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Results for a single sample of this feature.  <a href="#60b9f3057386820dbcaec0eb1189ce71"></a><br></td></tr>
@@ -49,6 +58,28 @@
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Label for the sample of this feature.  <a href="#8eb1fb35f73b247ed13de9527c18f036"></a><br></td></tr>
 </table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="cd4b4cd0d2c31512f4a5df50f8f7a7b8"></a><!-- doxytag: member="Vamp::Plugin::Feature::Feature" ref="cd4b4cd0d2c31512f4a5df50f8f7a7b8" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::Plugin::Feature::Feature           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00376">376</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
 <hr><h2>Member Data Documentation</h2>
 <a class="anchor" name="98907091d0b6a589720ae35ae588a82b"></a><!-- doxytag: member="Vamp::Plugin::Feature::hasTimestamp" ref="98907091d0b6a589720ae35ae588a82b" args="" -->
 <div class="memitem">
@@ -64,10 +95,10 @@
 <p>
 True if an output feature has its own timestamp. 
 <p>
-This is mandatory if the output has VariableSampleRate, and is likely to be disregarded otherwise. 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00325">325</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+This is mandatory if the output has VariableSampleRate, optional if the output has FixedSampleRate, and unused if the output has OneSamplePerStep. 
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00339">339</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">Vamp::PluginHostAdapter::convertFeatures()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">SpectralCentroid::process()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00200">AmplitudeFollower::process()</a>.</p>
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">FixedTempoEstimator::D::assembleFeatures()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">SpectralCentroid::process()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00136">PowerSpectrum::process()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00200">AmplitudeFollower::process()</a>.</p>
 
 </div>
 </div><p>
@@ -85,10 +116,52 @@
 <p>
 Timestamp of the output feature. 
 <p>
-This is mandatory if the output has VariableSampleRate, and is likely to be disregarded otherwise. Undefined if hasTimestamp is false. 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00332">332</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+This is mandatory if the output has VariableSampleRate or if the output has FixedSampleRate and hasTimestamp is true, and unused otherwise. 
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00347">347</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">Vamp::PluginHostAdapter::convertFeatures()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">ZeroCrossing::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">FixedTempoEstimator::D::assembleFeatures()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="33686757bd4481c72494122e9bfb9fba"></a><!-- doxytag: member="Vamp::Plugin::Feature::hasDuration" ref="33686757bd4481c72494122e9bfb9fba" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#33686757bd4481c72494122e9bfb9fba">Vamp::Plugin::Feature::hasDuration</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+True if an output feature has a specified duration. 
+<p>
+This is optional if the output has VariableSampleRate or FixedSampleRate, and and unused if the output has OneSamplePerStep. 
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00355">355</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">FixedTempoEstimator::D::assembleFeatures()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="f687c0a7fe041757e922ec296862b115"></a><!-- doxytag: member="Vamp::Plugin::Feature::duration" ref="f687c0a7fe041757e922ec296862b115" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a> <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#f687c0a7fe041757e922ec296862b115">Vamp::Plugin::Feature::duration</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Duration of the output feature. 
+<p>
+This is mandatory if the output has VariableSampleRate or FixedSampleRate and hasDuration is true, and unused otherwise. 
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00362">362</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">FixedTempoEstimator::D::assembleFeatures()</a>.</p>
 
 </div>
 </div><p>
@@ -107,9 +180,9 @@
 Results for a single sample of this feature. 
 <p>
 If the output hasFixedBinCount, there must be the same number of values as the output's binCount count. 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00339">339</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00369">369</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">Vamp::PluginHostAdapter::convertFeatures()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00137">SpectralCentroid::process()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00200">AmplitudeFollower::process()</a>.</p>
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">FixedTempoEstimator::D::assembleFeatures()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00141">SpectralCentroid::process()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00136">PowerSpectrum::process()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00200">AmplitudeFollower::process()</a>.</p>
 
 </div>
 </div><p>
@@ -128,17 +201,17 @@
 Label for the sample of this feature. 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00344">344</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00374">374</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">Vamp::PluginHostAdapter::convertFeatures()</a>.</p>
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00480">FixedTempoEstimator::D::assembleFeatures()</a>.</p>
 
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="Plugin_8h-source.html">Plugin.h</a></ul>
+<li><a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:09 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:20 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/structVamp_1_1Plugin_1_1OutputDescriptor-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/structVamp_1_1Plugin_1_1OutputDescriptor-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -29,6 +29,7 @@
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#31d9b79e2d8241344f551a22fcb5c8c7">binNames</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1">description</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c4c74bd2fc96dfe2815623f94b40e5629">FixedSampleRate</a> enum value</td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b0d7cc6ab19e53b5bd12ee234f549ea3">hasDuration</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d">hasFixedBinCount</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31">hasKnownExtents</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b">identifier</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
@@ -37,15 +38,16 @@
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#c9f5924c0be7571bba8e7ae7e7a921f4">minValue</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87">name</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca">OneSamplePerStep</a> enum value</td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1ebf91cc3f60e4cbba818c10591cd344">OutputDescriptor</a>()</td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#3bed37153067b625b95acb40b60dbf0b">quantizeStep</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#dd0cbbdfa9c91764037c39365b1d42af">sampleRate</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d">sampleType</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c">SampleType</a> enum name</td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d">sampleType</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4">unit</a></td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e">VariableSampleRate</a> enum value</td><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td><td></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:09 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:20 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/structVamp_1_1Plugin_1_1OutputDescriptor.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/structVamp_1_1Plugin_1_1OutputDescriptor.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,13 +26,13 @@
   </div>
 </div>
 <div class="contents">
-<h1>Vamp::Plugin::OutputDescriptor Struct Reference</h1><!-- doxytag: class="Vamp::Plugin::OutputDescriptor" --><code>#include &lt;<a class="el" href="Plugin_8h-source.html">Plugin.h</a>&gt;</code>
+<h1>Vamp::Plugin::OutputDescriptor Struct Reference</h1><!-- doxytag: class="Vamp::Plugin::OutputDescriptor" --><code>#include &lt;<a class="el" href="vamp-sdk_2Plugin_8h-source.html">Plugin.h</a>&gt;</code>
 <p>
 
 <p>
 <a href="structVamp_1_1Plugin_1_1OutputDescriptor-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00198">198</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00201">201</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
@@ -41,6 +41,9 @@
 <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e">VariableSampleRate</a>
  }</td></tr>
 
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1ebf91cc3f60e4cbba818c10591cd344">OutputDescriptor</a> ()</td></tr>
+
 <tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b">identifier</a></td></tr>
 
@@ -84,6 +87,9 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#dd0cbbdfa9c91764037c39365b1d42af">sampleRate</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sample rate of the output results, as samples per second.  <a href="#dd0cbbdfa9c91764037c39365b1d42af"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b0d7cc6ab19e53b5bd12ee234f549ea3">hasDuration</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True if the returned results for this output are known to have a duration field.  <a href="#b0d7cc6ab19e53b5bd12ee234f549ea3"></a><br></td></tr>
 </table>
 <hr><h2>Member Enumeration Documentation</h2>
 <a class="anchor" name="bffa9ed50cd756df70fd51f0355f448c"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::SampleType" ref="bffa9ed50cd756df70fd51f0355f448c" args="" -->
@@ -109,7 +115,29 @@
 </table>
 </dl>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00279">279</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00282">282</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="1ebf91cc3f60e4cbba818c10591cd344"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::OutputDescriptor" ref="1ebf91cc3f60e4cbba818c10591cd344" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::Plugin::OutputDescriptor::OutputDescriptor           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [inline]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00317">317</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -129,9 +157,9 @@
 The name of the output, in computer-usable form. 
 <p>
 Should be reasonably short and without whitespace or punctuation, using the characters [a-zA-Z0-9_-] only. Example: "zero_crossing_count" 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00206">206</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00209">209</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00112">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00116">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00108">PowerSpectrum::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">FixedTempoEstimator::D::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -150,9 +178,9 @@
 The human-readable name of the output. 
 <p>
 Example: "Zero Crossing Counts" 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00212">212</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00215">215</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00112">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00116">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00108">PowerSpectrum::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">FixedTempoEstimator::D::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -171,9 +199,9 @@
 A human-readable short text describing the output. 
 <p>
 May be empty if the name has said it all already. Example: "The number of zero crossing points per processing block" 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00219">219</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00222">222</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00112">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00116">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00108">PowerSpectrum::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">FixedTempoEstimator::D::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -192,9 +220,9 @@
 The unit of the output, in human-readable form. 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00224">224</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00227">227</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00112">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00116">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00108">PowerSpectrum::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">FixedTempoEstimator::D::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -213,9 +241,9 @@
 True if the output has the same number of values per sample for every output sample. 
 <p>
 Outputs for which this is false are unlikely to be very useful in a general-purpose host. 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00231">231</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00234">234</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00112">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00116">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00108">PowerSpectrum::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">FixedTempoEstimator::D::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -234,9 +262,9 @@
 The number of values per result of the output. 
 <p>
 Undefined if hasFixedBinCount is false. If this is zero, the output is point data (i.e. only the time of each output is of interest, the value list will be empty). 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00239">239</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00242">242</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00112">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00116">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00108">PowerSpectrum::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">FixedTempoEstimator::D::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -255,9 +283,7 @@
 The (human-readable) names of each of the bins, if appropriate. 
 <p>
 This is always optional. 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00245">245</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00248">248</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
 </div>
 </div><p>
@@ -276,9 +302,9 @@
 True if the results in each output bin fall within a fixed numeric range (minimum and maximum values). 
 <p>
 Undefined if binCount is zero. 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00252">252</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00255">255</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00112">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00116">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00108">PowerSpectrum::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">FixedTempoEstimator::D::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -297,9 +323,9 @@
 Minimum value of the results in the output. 
 <p>
 Undefined if hasKnownExtents is false or binCount is zero. 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00258">258</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00261">261</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">FixedTempoEstimator::D::getOutputDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -318,9 +344,9 @@
 Maximum value of the results in the output. 
 <p>
 Undefined if hasKnownExtents is false or binCount is zero. 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00264">264</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00267">267</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">FixedTempoEstimator::D::getOutputDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -339,9 +365,9 @@
 True if the output values are quantized to a particular resolution. 
 <p>
 Undefined if binCount is zero. 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00270">270</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00273">273</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00112">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00116">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00108">PowerSpectrum::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">FixedTempoEstimator::D::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -360,9 +386,9 @@
 Quantization resolution of the output values (e.g. 
 <p>
 1.0 if they are all integers). Undefined if isQuantized is false or binCount is zero. 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00277">277</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00280">280</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">FixedTempoEstimator::D::getOutputDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -381,9 +407,9 @@
 Positioning in time of the output results. 
 <p>
 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00294">294</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00297">297</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00112">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00116">SpectralCentroid::getOutputDescriptors()</a>, <a class="el" href="PowerSpectrum_8cpp-source.html#l00108">PowerSpectrum::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">FixedTempoEstimator::D::getOutputDescriptors()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00128">AmplitudeFollower::getOutputDescriptors()</a>.</p>
 
 </div>
 </div><p>
@@ -403,17 +429,38 @@
 <p>
 Undefined if sampleType is OneSamplePerStep.<p>
 If sampleType is VariableSampleRate and this value is non-zero, then it may be used to calculate a resolution for the output (i.e. the "duration" of each sample, in time, will be 1/sampleRate seconds). It's recommended to set this to zero if that behaviour is not desired. 
-<p>Definition at line <a class="el" href="Plugin_8h-source.html#l00306">306</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00309">309</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00110">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, and <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">FixedTempoEstimator::D::getOutputDescriptors()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="b0d7cc6ab19e53b5bd12ee234f549ea3"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::hasDuration" ref="b0d7cc6ab19e53b5bd12ee234f549ea3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b0d7cc6ab19e53b5bd12ee234f549ea3">Vamp::Plugin::OutputDescriptor::hasDuration</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+True if the returned results for this output are known to have a duration field. 
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00315">315</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
+
+<p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp-source.html#l00189">FixedTempoEstimator::D::getOutputDescriptors()</a>.</p>
 
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="Plugin_8h-source.html">Plugin.h</a></ul>
+<li><a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:09 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:20 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/structVamp_1_1RealTime.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/structVamp_1_1RealTime.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,13 +26,13 @@
   </div>
 </div>
 <div class="contents">
-<h1>Vamp::RealTime Class Reference</h1><!-- doxytag: class="Vamp::RealTime" --><code>#include &lt;<a class="el" href="RealTime_8h-source.html">vamp-sdk/RealTime.h</a>&gt;</code>
+<h1>Vamp::RealTime Class Reference</h1><!-- doxytag: class="Vamp::RealTime" --><code>#include &lt;<a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>&gt;</code>
 <p>
 
 <p>
 <a href="classVamp_1_1RealTime-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
 <a class="el" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> represents time values to nanosecond precision with accurate arithmetic and frame-rate conversion functions. 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00063">63</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00066">66</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
@@ -78,18 +78,18 @@
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a user-readable string to the nearest millisecond in a form like HH:MM:SS.mmm.  <a href="#d75b927afadfa422ae512d169ccda0aa"></a><br></td></tr>
 <tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#754901a59483036097d8111b8c02f4f3">fromSeconds</a> (double <a class="el" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#e29ae57d19c66f256839988a0959c6bb">fromSeconds</a> (double <a class="el" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#512ca91f967c1d7923456f426926a9f6">fromMilliseconds</a> (int msec)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#6992d9959fc4f19c11a98f17506f4905">fromMilliseconds</a> (int msec)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#ffdd22eee09b38335d3133c0e9a8f7b3">fromTimeval</a> (const struct timeval &amp;)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#7f1e1e35ca5196283b2086e3d9cd9d3b">fromTimeval</a> (const struct timeval &amp;)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#1c32b50b1511cdca17cd6c1c3c05d9b5">realTime2Frame</a> (const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;r, unsigned int sampleRate)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#c046c73d88da6715e55b12e10534bb5c">realTime2Frame</a> (const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;r, unsigned int sampleRate)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a <a class="el" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> into a sample frame at the given sample rate.  <a href="#1c32b50b1511cdca17cd6c1c3c05d9b5"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#3a5ecc8888b559aad3b7d96911786b3a">frame2RealTime</a> (long frame, unsigned int sampleRate)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a <a class="el" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> into a sample frame at the given sample rate.  <a href="#c046c73d88da6715e55b12e10534bb5c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#939b4b1d1ca190db69a418883f16ce8a">frame2RealTime</a> (long frame, unsigned int sampleRate)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a sample frame at the given sample rate into a <a class="el" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>.  <a href="#3a5ecc8888b559aad3b7d96911786b3a"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a sample frame at the given sample rate into a <a class="el" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>.  <a href="#939b4b1d1ca190db69a418883f16ce8a"></a><br></td></tr>
 <tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a></td></tr>
 
@@ -109,7 +109,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline]</code></td>
+          <td><code> [inline]</code></td>
         </tr>
       </table>
 </div>
@@ -117,9 +117,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00071">71</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
-
-<p>Referenced by <a class="el" href="RealTime_8cpp-source.html#l00097">fromMilliseconds()</a>, <a class="el" href="RealTime_8cpp-source.html#l00091">fromSeconds()</a>, <a class="el" href="RealTime_8cpp-source.html#l00104">fromTimeval()</a>, <a class="el" href="RealTime_8h-source.html#l00088">operator+()</a>, <a class="el" href="RealTime_8h-source.html#l00091">operator-()</a>, and <a class="el" href="RealTime_8cpp-source.html#l00203">operator/()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00074">74</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
 </div>
 </div><p>
@@ -142,7 +140,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -150,10 +148,6 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8cpp-source.html#l00075">75</a> of file <a class="el" href="RealTime_8cpp-source.html">RealTime.cpp</a>.</p>
-
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>, <a class="el" href="RealTime_8cpp-source.html#l00073">ONE_BILLION</a>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="8f4dbd8ef24a0ec6a77dce67fff5434e"></a><!-- doxytag: member="Vamp::RealTime::RealTime" ref="8f4dbd8ef24a0ec6a77dce67fff5434e" args="(const RealTime &amp;r)" -->
@@ -166,7 +160,7 @@
           <td class="paramtype">const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;&nbsp;</td>
           <td class="paramname"> <em>r</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline]</code></td>
+          <td><code> [inline]</code></td>
         </tr>
       </table>
 </div>
@@ -174,7 +168,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00074">74</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00077">77</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
 </div>
 </div><p>
@@ -188,7 +182,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline]</code></td>
+          <td> const<code> [inline]</code></td>
         </tr>
       </table>
 </div>
@@ -196,9 +190,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00068">68</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
-
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00071">71</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
 </div>
 </div><p>
@@ -211,7 +203,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline]</code></td>
+          <td> const<code> [inline]</code></td>
         </tr>
       </table>
 </div>
@@ -219,25 +211,21 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00069">69</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
-
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>.</p>
-
-<p>Referenced by <a class="el" href="RealTime_8cpp-source.html#l00151">toText()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00072">72</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
 </div>
 </div><p>
-<a class="anchor" name="754901a59483036097d8111b8c02f4f3"></a><!-- doxytag: member="Vamp::RealTime::fromSeconds" ref="754901a59483036097d8111b8c02f4f3" args="(double sec)" -->
+<a class="anchor" name="e29ae57d19c66f256839988a0959c6bb"></a><!-- doxytag: member="Vamp::RealTime::fromSeconds" ref="e29ae57d19c66f256839988a0959c6bb" args="(double sec)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a> Vamp::RealTime::fromSeconds           </td>
+          <td class="memname">static <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> Vamp::RealTime::fromSeconds           </td>
           <td>(</td>
           <td class="paramtype">double&nbsp;</td>
           <td class="paramname"> <em>sec</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static]</code></td>
+          <td><code> [static]</code></td>
         </tr>
       </table>
 </div>
@@ -245,23 +233,19 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8cpp-source.html#l00091">91</a> of file <a class="el" href="RealTime_8cpp-source.html">RealTime.cpp</a>.</p>
-
-<p>References <a class="el" href="RealTime_8cpp-source.html#l00073">ONE_BILLION</a>, and <a class="el" href="RealTime_8h-source.html#l00071">RealTime()</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="512ca91f967c1d7923456f426926a9f6"></a><!-- doxytag: member="Vamp::RealTime::fromMilliseconds" ref="512ca91f967c1d7923456f426926a9f6" args="(int msec)" -->
+<a class="anchor" name="6992d9959fc4f19c11a98f17506f4905"></a><!-- doxytag: member="Vamp::RealTime::fromMilliseconds" ref="6992d9959fc4f19c11a98f17506f4905" args="(int msec)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a> Vamp::RealTime::fromMilliseconds           </td>
+          <td class="memname">static <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> Vamp::RealTime::fromMilliseconds           </td>
           <td>(</td>
           <td class="paramtype">int&nbsp;</td>
           <td class="paramname"> <em>msec</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static]</code></td>
+          <td><code> [static]</code></td>
         </tr>
       </table>
 </div>
@@ -269,23 +253,19 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8cpp-source.html#l00097">97</a> of file <a class="el" href="RealTime_8cpp-source.html">RealTime.cpp</a>.</p>
-
-<p>References <a class="el" href="RealTime_8h-source.html#l00071">RealTime()</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="ffdd22eee09b38335d3133c0e9a8f7b3"></a><!-- doxytag: member="Vamp::RealTime::fromTimeval" ref="ffdd22eee09b38335d3133c0e9a8f7b3" args="(const struct timeval &amp;)" -->
+<a class="anchor" name="7f1e1e35ca5196283b2086e3d9cd9d3b"></a><!-- doxytag: member="Vamp::RealTime::fromTimeval" ref="7f1e1e35ca5196283b2086e3d9cd9d3b" args="(const struct timeval &amp;)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a> Vamp::RealTime::fromTimeval           </td>
+          <td class="memname">static <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> Vamp::RealTime::fromTimeval           </td>
           <td>(</td>
           <td class="paramtype">const struct timeval &amp;&nbsp;</td>
-          <td class="paramname"> <em>tv</em>          </td>
+          <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [static]</code></td>
+          <td><code> [static]</code></td>
         </tr>
       </table>
 </div>
@@ -293,10 +273,6 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8cpp-source.html#l00104">104</a> of file <a class="el" href="RealTime_8cpp-source.html">RealTime.cpp</a>.</p>
-
-<p>References <a class="el" href="RealTime_8h-source.html#l00071">RealTime()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="db82f838804a9a3ad49988de5944d090"></a><!-- doxytag: member="Vamp::RealTime::operator=" ref="db82f838804a9a3ad49988de5944d090" args="(const RealTime &amp;r)" -->
@@ -309,7 +285,7 @@
           <td class="paramtype">const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;&nbsp;</td>
           <td class="paramname"> <em>r</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"><code> [inline]</code></td>
+          <td><code> [inline]</code></td>
         </tr>
       </table>
 </div>
@@ -317,9 +293,9 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00084">84</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00087">87</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00069">nsec</a>, and <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00068">sec</a>.</p>
 
 </div>
 </div><p>
@@ -333,7 +309,7 @@
           <td class="paramtype">const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;&nbsp;</td>
           <td class="paramname"> <em>r</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline]</code></td>
+          <td> const<code> [inline]</code></td>
         </tr>
       </table>
 </div>
@@ -341,9 +317,9 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00088">88</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00091">91</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>, <a class="el" href="RealTime_8h-source.html#l00071">RealTime()</a>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00069">nsec</a>, and <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00068">sec</a>.</p>
 
 </div>
 </div><p>
@@ -357,7 +333,7 @@
           <td class="paramtype">const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;&nbsp;</td>
           <td class="paramname"> <em>r</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline]</code></td>
+          <td> const<code> [inline]</code></td>
         </tr>
       </table>
 </div>
@@ -365,9 +341,9 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00091">91</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00094">94</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>, <a class="el" href="RealTime_8h-source.html#l00071">RealTime()</a>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00069">nsec</a>, and <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00068">sec</a>.</p>
 
 </div>
 </div><p>
@@ -380,7 +356,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline]</code></td>
+          <td> const<code> [inline]</code></td>
         </tr>
       </table>
 </div>
@@ -388,9 +364,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00094">94</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
-
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>, <a class="el" href="RealTime_8h-source.html#l00071">RealTime()</a>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00097">97</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
 </div>
 </div><p>
@@ -404,7 +378,7 @@
           <td class="paramtype">const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;&nbsp;</td>
           <td class="paramname"> <em>r</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline]</code></td>
+          <td> const<code> [inline]</code></td>
         </tr>
       </table>
 </div>
@@ -412,9 +386,9 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00098">98</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00101">101</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00069">nsec</a>, and <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00068">sec</a>.</p>
 
 </div>
 </div><p>
@@ -428,7 +402,7 @@
           <td class="paramtype">const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;&nbsp;</td>
           <td class="paramname"> <em>r</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline]</code></td>
+          <td> const<code> [inline]</code></td>
         </tr>
       </table>
 </div>
@@ -436,9 +410,9 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00103">103</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00106">106</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00069">nsec</a>, and <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00068">sec</a>.</p>
 
 </div>
 </div><p>
@@ -452,7 +426,7 @@
           <td class="paramtype">const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;&nbsp;</td>
           <td class="paramname"> <em>r</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline]</code></td>
+          <td> const<code> [inline]</code></td>
         </tr>
       </table>
 </div>
@@ -460,9 +434,9 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00108">108</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00111">111</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00069">nsec</a>, and <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00068">sec</a>.</p>
 
 </div>
 </div><p>
@@ -476,7 +450,7 @@
           <td class="paramtype">const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;&nbsp;</td>
           <td class="paramname"> <em>r</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline]</code></td>
+          <td> const<code> [inline]</code></td>
         </tr>
       </table>
 </div>
@@ -484,7 +458,7 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00112">112</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00115">115</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
 </div>
 </div><p>
@@ -498,7 +472,7 @@
           <td class="paramtype">const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;&nbsp;</td>
           <td class="paramname"> <em>r</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline]</code></td>
+          <td> const<code> [inline]</code></td>
         </tr>
       </table>
 </div>
@@ -506,9 +480,9 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00116">116</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00119">119</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00069">nsec</a>, and <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00068">sec</a>.</p>
 
 </div>
 </div><p>
@@ -522,7 +496,7 @@
           <td class="paramtype">const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;&nbsp;</td>
           <td class="paramname"> <em>r</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const<code> [inline]</code></td>
+          <td> const<code> [inline]</code></td>
         </tr>
       </table>
 </div>
@@ -530,9 +504,9 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00121">121</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00124">124</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
+<p>References <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00069">nsec</a>, and <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00068">sec</a>.</p>
 
 </div>
 </div><p>
@@ -546,7 +520,7 @@
           <td class="paramtype">int&nbsp;</td>
           <td class="paramname"> <em>d</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const</td>
+          <td> const</td>
         </tr>
       </table>
 </div>
@@ -554,10 +528,6 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8cpp-source.html#l00203">203</a> of file <a class="el" href="RealTime_8cpp-source.html">RealTime.cpp</a>.</p>
-
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>, <a class="el" href="RealTime_8cpp-source.html#l00073">ONE_BILLION</a>, <a class="el" href="RealTime_8h-source.html#l00071">RealTime()</a>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="a6e50a94c81a1448ec1d61421ccf6e3f"></a><!-- doxytag: member="Vamp::RealTime::operator/" ref="a6e50a94c81a1448ec1d61421ccf6e3f" args="(const RealTime &amp;r) const " -->
@@ -570,7 +540,7 @@
           <td class="paramtype">const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;&nbsp;</td>
           <td class="paramname"> <em>r</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const</td>
+          <td> const</td>
         </tr>
       </table>
 </div>
@@ -580,10 +550,6 @@
 Return the ratio of two times. 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8cpp-source.html#l00214">214</a> of file <a class="el" href="RealTime_8cpp-source.html">RealTime.cpp</a>.</p>
-
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>, <a class="el" href="RealTime_8cpp-source.html#l00073">ONE_BILLION</a>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="d44476618183bd736996a87292d03c07"></a><!-- doxytag: member="Vamp::RealTime::toString" ref="d44476618183bd736996a87292d03c07" args="() const " -->
@@ -595,7 +561,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const</td>
+          <td> const</td>
         </tr>
       </table>
 </div>
@@ -605,11 +571,7 @@
 Return a human-readable debug-type string to full precision (probably not a format to show to a user directly). 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8cpp-source.html#l00135">135</a> of file <a class="el" href="RealTime_8cpp-source.html">RealTime.cpp</a>.</p>
-
-<p>References <a class="el" href="RealTime_8cpp-source.html#l00048">stringstream</a>.</p>
-
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00423">printFeatures()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00477">printFeatures()</a>.</p>
 
 </div>
 </div><p>
@@ -623,7 +585,7 @@
           <td class="paramtype">bool&nbsp;</td>
           <td class="paramname"> <em>fixedDp</em> = <code>false</code>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"> const</td>
+          <td> const</td>
         </tr>
       </table>
 </div>
@@ -633,18 +595,14 @@
 Return a user-readable string to the nearest millisecond in a form like HH:MM:SS.mmm. 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8cpp-source.html#l00151">151</a> of file <a class="el" href="RealTime_8cpp-source.html">RealTime.cpp</a>.</p>
-
-<p>References <a class="el" href="RealTime_8h-source.html#l00069">msec()</a>, <a class="el" href="RealTime_8h-source.html#l00065">sec</a>, <a class="el" href="RealTime_8cpp-source.html#l00048">stringstream</a>, and <a class="el" href="RealTime_8h-source.html#l00155">zeroTime</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="1c32b50b1511cdca17cd6c1c3c05d9b5"></a><!-- doxytag: member="Vamp::RealTime::realTime2Frame" ref="1c32b50b1511cdca17cd6c1c3c05d9b5" args="(const RealTime &amp;r, unsigned int sampleRate)" -->
+<a class="anchor" name="c046c73d88da6715e55b12e10534bb5c"></a><!-- doxytag: member="Vamp::RealTime::realTime2Frame" ref="c046c73d88da6715e55b12e10534bb5c" args="(const RealTime &amp;r, unsigned int sampleRate)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">long Vamp::RealTime::realTime2Frame           </td>
+          <td class="memname">static long Vamp::RealTime::realTime2Frame           </td>
           <td>(</td>
           <td class="paramtype">const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;&nbsp;</td>
           <td class="paramname"> <em>r</em>, </td>
@@ -658,7 +616,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [static]</code></td>
+          <td></td><td></td><td><code> [static]</code></td>
         </tr>
       </table>
 </div>
@@ -668,20 +626,14 @@
 Convert a <a class="el" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> into a sample frame at the given sample rate. 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8cpp-source.html#l00224">224</a> of file <a class="el" href="RealTime_8cpp-source.html">RealTime.cpp</a>.</p>
-
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>, <a class="el" href="RealTime_8h-source.html#l00065">sec</a>, and <a class="el" href="RealTime_8h-source.html#l00155">zeroTime</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00417">Vamp::HostExt::PluginBufferingAdapter::Impl::process()</a>.</p>
-
 </div>
 </div><p>
-<a class="anchor" name="3a5ecc8888b559aad3b7d96911786b3a"></a><!-- doxytag: member="Vamp::RealTime::frame2RealTime" ref="3a5ecc8888b559aad3b7d96911786b3a" args="(long frame, unsigned int sampleRate)" -->
+<a class="anchor" name="939b4b1d1ca190db69a418883f16ce8a"></a><!-- doxytag: member="Vamp::RealTime::frame2RealTime" ref="939b4b1d1ca190db69a418883f16ce8a" args="(long frame, unsigned int sampleRate)" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a> Vamp::RealTime::frame2RealTime           </td>
+          <td class="memname">static <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> Vamp::RealTime::frame2RealTime           </td>
           <td>(</td>
           <td class="paramtype">long&nbsp;</td>
           <td class="paramname"> <em>frame</em>, </td>
@@ -695,7 +647,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"><code> [static]</code></td>
+          <td></td><td></td><td><code> [static]</code></td>
         </tr>
       </table>
 </div>
@@ -705,11 +657,7 @@
 Convert a sample frame at the given sample rate into a <a class="el" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>. 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8cpp-source.html#l00232">232</a> of file <a class="el" href="RealTime_8cpp-source.html">RealTime.cpp</a>.</p>
-
-<p>References <a class="el" href="RealTime_8h-source.html#l00066">nsec</a>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
-
-<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00141">ZeroCrossing::process()</a>, <a class="el" href="PluginInputDomainAdapter_8cpp-source.html#l00342">Vamp::HostExt::PluginInputDomainAdapter::Impl::process()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>, and <a class="el" href="PluginBufferingAdapter_8cpp-source.html#l00485">Vamp::HostExt::PluginBufferingAdapter::Impl::processBlock()</a>.</p>
+<p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
 
 </div>
 </div><p>
@@ -727,9 +675,9 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00065">65</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00068">68</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
-<p>Referenced by <a class="el" href="RealTime_8cpp-source.html#l00232">frame2RealTime()</a>, <a class="el" href="RealTime_8h-source.html#l00088">operator+()</a>, <a class="el" href="RealTime_8h-source.html#l00091">operator-()</a>, <a class="el" href="RealTime_8cpp-source.html#l00203">operator/()</a>, <a class="el" href="RealTime_8h-source.html#l00098">operator&lt;()</a>, <a class="el" href="RealTime_8cpp-source.html#l00110">Vamp::operator&lt;&lt;()</a>, <a class="el" href="RealTime_8h-source.html#l00121">operator&lt;=()</a>, <a class="el" href="RealTime_8h-source.html#l00084">operator=()</a>, <a class="el" href="RealTime_8h-source.html#l00108">operator==()</a>, <a class="el" href="RealTime_8h-source.html#l00103">operator&gt;()</a>, <a class="el" href="RealTime_8h-source.html#l00116">operator&gt;=()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00353">Vamp::PluginHostAdapter::process()</a>, <a class="el" href="RealTime_8cpp-source.html#l00075">RealTime()</a>, <a class="el" href="RealTime_8cpp-source.html#l00224">realTime2Frame()</a>, and <a class="el" href="RealTime_8cpp-source.html#l00151">toText()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00091">operator+()</a>, <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00094">operator-()</a>, <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00101">operator&lt;()</a>, <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00124">operator&lt;=()</a>, <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00087">operator=()</a>, <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00111">operator==()</a>, <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00106">operator&gt;()</a>, and <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00119">operator&gt;=()</a>.</p>
 
 </div>
 </div><p>
@@ -746,9 +694,9 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00066">66</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00069">69</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
-<p>Referenced by <a class="el" href="RealTime_8cpp-source.html#l00232">frame2RealTime()</a>, <a class="el" href="RealTime_8h-source.html#l00069">msec()</a>, <a class="el" href="RealTime_8h-source.html#l00088">operator+()</a>, <a class="el" href="RealTime_8h-source.html#l00091">operator-()</a>, <a class="el" href="RealTime_8cpp-source.html#l00203">operator/()</a>, <a class="el" href="RealTime_8h-source.html#l00098">operator&lt;()</a>, <a class="el" href="RealTime_8cpp-source.html#l00110">Vamp::operator&lt;&lt;()</a>, <a class="el" href="RealTime_8h-source.html#l00121">operator&lt;=()</a>, <a class="el" href="RealTime_8h-source.html#l00084">operator=()</a>, <a class="el" href="RealTime_8h-source.html#l00108">operator==()</a>, <a class="el" href="RealTime_8h-source.html#l00103">operator&gt;()</a>, <a class="el" href="RealTime_8h-source.html#l00116">operator&gt;=()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00353">Vamp::PluginHostAdapter::process()</a>, <a class="el" href="RealTime_8cpp-source.html#l00075">RealTime()</a>, <a class="el" href="RealTime_8cpp-source.html#l00224">realTime2Frame()</a>, and <a class="el" href="RealTime_8h-source.html#l00068">usec()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00091">operator+()</a>, <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00094">operator-()</a>, <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00101">operator&lt;()</a>, <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00124">operator&lt;=()</a>, <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00087">operator=()</a>, <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00111">operator==()</a>, <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00106">operator&gt;()</a>, and <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00119">operator&gt;=()</a>.</p>
 
 </div>
 </div><p>
@@ -765,17 +713,15 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="RealTime_8h-source.html#l00155">155</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
-
-<p>Referenced by <a class="el" href="RealTime_8cpp-source.html#l00110">Vamp::operator&lt;&lt;()</a>, <a class="el" href="RealTime_8cpp-source.html#l00224">realTime2Frame()</a>, and <a class="el" href="RealTime_8cpp-source.html#l00151">toText()</a>.</p>
+<p>Definition at line <a class="el" href="vamp-sdk_2RealTime_8h-source.html#l00158">158</a> of file <a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a>.</p>
 
 </div>
 </div><p>
-<hr>The documentation for this class was generated from the following files:<ul>
-<li><a class="el" href="RealTime_8h-source.html">RealTime.h</a><li><a class="el" href="RealTime_8cpp-source.html">RealTime.cpp</a></ul>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="vamp-sdk_2RealTime_8h-source.html">vamp-sdk/RealTime.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:10 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:21 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/struct__VampFeature-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/struct__VampFeature-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -32,8 +32,8 @@
   <tr class="memlist"><td><a class="el" href="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd">valueCount</a></td><td><a class="el" href="struct__VampFeature.html">_VampFeature</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="struct__VampFeature.html#e4030f941ddb2bab8bc147b88e1f1c15">values</a></td><td><a class="el" href="struct__VampFeature.html">_VampFeature</a></td><td></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/struct__VampFeature.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/struct__VampFeature.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -30,7 +30,7 @@
 <p>
 <a href="struct__VampFeature-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00165">165</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00174">174</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
@@ -69,9 +69,7 @@
 1 if the feature has a timestamp (i.e. 
 <p>
 if vampVariableSampleRate). 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00168">168</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">Vamp::PluginHostAdapter::convertFeatures()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00709">Vamp::PluginAdapterBase::Impl::convertFeatures()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00177">177</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -90,9 +88,7 @@
 Seconds component of timestamp. 
 <p>
 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00171">171</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">Vamp::PluginHostAdapter::convertFeatures()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00709">Vamp::PluginAdapterBase::Impl::convertFeatures()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00180">180</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -111,9 +107,7 @@
 Nanoseconds component of timestamp. 
 <p>
 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00174">174</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">Vamp::PluginHostAdapter::convertFeatures()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00709">Vamp::PluginAdapterBase::Impl::convertFeatures()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00183">183</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -132,9 +126,7 @@
 Number of values. 
 <p>
 Must be binCount if hasFixedBinCount. 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00177">177</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">Vamp::PluginHostAdapter::convertFeatures()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00709">Vamp::PluginAdapterBase::Impl::convertFeatures()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00186">186</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -153,9 +145,7 @@
 Values for this returned sample. 
 <p>
 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00180">180</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">Vamp::PluginHostAdapter::convertFeatures()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00709">Vamp::PluginAdapterBase::Impl::convertFeatures()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00189">189</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -174,17 +164,15 @@
 Label for this returned sample. 
 <p>
 May be NULL. 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00183">183</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">Vamp::PluginHostAdapter::convertFeatures()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00709">Vamp::PluginAdapterBase::Impl::convertFeatures()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00192">192</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="vamp_8h-source.html">vamp.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/struct__VampFeatureList-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/struct__VampFeatureList-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,10 +26,10 @@
 <div class="contents">
 <h1>_VampFeatureList Member List</h1>This is the complete list of members for <a class="el" href="struct__VampFeatureList.html">_VampFeatureList</a>, including all inherited members.<p><table>
   <tr class="memlist"><td><a class="el" href="struct__VampFeatureList.html#01db33a31ae5e04a4bd097f4b6aa75f1">featureCount</a></td><td><a class="el" href="struct__VampFeatureList.html">_VampFeatureList</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f">features</a></td><td><a class="el" href="struct__VampFeatureList.html">_VampFeatureList</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="struct__VampFeatureList.html#103c817094643ac5ff4410768f4f92a7">features</a></td><td><a class="el" href="struct__VampFeatureList.html">_VampFeatureList</a></td><td></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/struct__VampFeatureList.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/struct__VampFeatureList.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -30,16 +30,16 @@
 <p>
 <a href="struct__VampFeatureList-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00187">187</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00217">217</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampFeatureList.html#01db33a31ae5e04a4bd097f4b6aa75f1">featureCount</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of features in this feature list.  <a href="#01db33a31ae5e04a4bd097f4b6aa75f1"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct__VampFeature.html">VampFeature</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f">features</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="union__VampFeatureUnion.html">VampFeatureUnion</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampFeatureList.html#103c817094643ac5ff4410768f4f92a7">features</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Features in this feature list.  <a href="#a2d18873fd5e58354460ea77fc48692f"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Features in this feature list.  <a href="#103c817094643ac5ff4410768f4f92a7"></a><br></td></tr>
 </table>
 <hr><h2>Member Data Documentation</h2>
 <a class="anchor" name="01db33a31ae5e04a4bd097f4b6aa75f1"></a><!-- doxytag: member="_VampFeatureList::featureCount" ref="01db33a31ae5e04a4bd097f4b6aa75f1" args="" -->
@@ -57,18 +57,16 @@
 Number of features in this feature list. 
 <p>
 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00190">190</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">Vamp::PluginHostAdapter::convertFeatures()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00709">Vamp::PluginAdapterBase::Impl::convertFeatures()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00220">220</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
-<a class="anchor" name="a2d18873fd5e58354460ea77fc48692f"></a><!-- doxytag: member="_VampFeatureList::features" ref="a2d18873fd5e58354460ea77fc48692f" args="" -->
+<a class="anchor" name="103c817094643ac5ff4410768f4f92a7"></a><!-- doxytag: member="_VampFeatureList::features" ref="103c817094643ac5ff4410768f4f92a7" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="struct__VampFeature.html">VampFeature</a>* <a class="el" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f">_VampFeatureList::features</a>          </td>
+          <td class="memname"><a class="el" href="union__VampFeatureUnion.html">VampFeatureUnion</a>* <a class="el" href="struct__VampFeatureList.html#103c817094643ac5ff4410768f4f92a7">_VampFeatureList::features</a>          </td>
         </tr>
       </table>
 </div>
@@ -77,18 +75,18 @@
 <p>
 Features in this feature list. 
 <p>
-May be NULL if featureCount is zero. 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00193">193</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">Vamp::PluginHostAdapter::convertFeatures()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00709">Vamp::PluginAdapterBase::Impl::convertFeatures()</a>.</p>
+May be NULL if featureCount is zero.<p>
+If present, this array must contain featureCount feature structures for a <a class="el" href="namespaceVamp.html">Vamp</a> API version 1 plugin, or 2*featureCount feature unions for a <a class="el" href="namespaceVamp.html">Vamp</a> API version 2 plugin.<p>
+The features returned by an API version 2 plugin must consist of the same feature structures as in API version 1 for the first featureCount array elements, followed by featureCount unions that contain VampFeatureV2 structures (or NULL pointers if no V2 feature structures are present). 
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00235">235</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="vamp_8h-source.html">vamp.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/struct__VampFeatureV2-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,36 @@
+<!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: Member List</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>_VampFeatureV2 Member List</h1>This is the complete list of members for <a class="el" href="struct__VampFeatureV2.html">_VampFeatureV2</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="struct__VampFeatureV2.html#f71693d907f69048d602d28edbce679e">durationNsec</a></td><td><a class="el" href="struct__VampFeatureV2.html">_VampFeatureV2</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="struct__VampFeatureV2.html#bc95aac3a2efdef6ef0b17e7b6bd3daf">durationSec</a></td><td><a class="el" href="struct__VampFeatureV2.html">_VampFeatureV2</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="struct__VampFeatureV2.html#44d9c57f1ae197d3fec1a48c650cce81">hasDuration</a></td><td><a class="el" href="struct__VampFeatureV2.html">_VampFeatureV2</a></td><td></td></tr>
+</table></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/struct__VampFeatureV2.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,112 @@
+<!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: _VampFeatureV2 Struct 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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>_VampFeatureV2 Struct Reference</h1><!-- doxytag: class="_VampFeatureV2" --><code>#include &lt;<a class="el" href="vamp_8h-source.html">vamp.h</a>&gt;</code>
+<p>
+
+<p>
+<a href="struct__VampFeatureV2-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
+
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00196">196</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampFeatureV2.html#44d9c57f1ae197d3fec1a48c650cce81">hasDuration</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">1 if the feature has a duration.  <a href="#44d9c57f1ae197d3fec1a48c650cce81"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampFeatureV2.html#bc95aac3a2efdef6ef0b17e7b6bd3daf">durationSec</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Seconds component of duratiion.  <a href="#bc95aac3a2efdef6ef0b17e7b6bd3daf"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampFeatureV2.html#f71693d907f69048d602d28edbce679e">durationNsec</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nanoseconds component of duration.  <a href="#f71693d907f69048d602d28edbce679e"></a><br></td></tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="44d9c57f1ae197d3fec1a48c650cce81"></a><!-- doxytag: member="_VampFeatureV2::hasDuration" ref="44d9c57f1ae197d3fec1a48c650cce81" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="struct__VampFeatureV2.html#44d9c57f1ae197d3fec1a48c650cce81">_VampFeatureV2::hasDuration</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+1 if the feature has a duration. 
+<p>
+
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00199">199</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="bc95aac3a2efdef6ef0b17e7b6bd3daf"></a><!-- doxytag: member="_VampFeatureV2::durationSec" ref="bc95aac3a2efdef6ef0b17e7b6bd3daf" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="struct__VampFeatureV2.html#bc95aac3a2efdef6ef0b17e7b6bd3daf">_VampFeatureV2::durationSec</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Seconds component of duratiion. 
+<p>
+
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00202">202</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="f71693d907f69048d602d28edbce679e"></a><!-- doxytag: member="_VampFeatureV2::durationNsec" ref="f71693d907f69048d602d28edbce679e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="struct__VampFeatureV2.html#f71693d907f69048d602d28edbce679e">_VampFeatureV2::durationNsec</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Nanoseconds component of duration. 
+<p>
+
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00205">205</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
+
+</div>
+</div><p>
+<hr>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="vamp_8h-source.html">vamp.h</a></ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- a/code-doc/struct__VampOutputDescriptor-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/struct__VampOutputDescriptor-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -28,6 +28,7 @@
   <tr class="memlist"><td><a class="el" href="struct__VampOutputDescriptor.html#652ee422092720e44d23d98bdb68f978">binCount</a></td><td><a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447">binNames</a></td><td><a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="struct__VampOutputDescriptor.html#bfa911b138cfb80cf63e8f2e0fa0fb89">description</a></td><td><a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="struct__VampOutputDescriptor.html#f792a96dbf292ec966b9b68250febd99">hasDuration</a></td><td><a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="struct__VampOutputDescriptor.html#e8571f5a2bc740738af0cb7dda0c4749">hasFixedBinCount</a></td><td><a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="struct__VampOutputDescriptor.html#f6b512d772023b4e852216689c1c4465">hasKnownExtents</a></td><td><a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="struct__VampOutputDescriptor.html#461161b2010370176115967e4f58a5f5">identifier</a></td><td><a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a></td><td></td></tr>
@@ -40,8 +41,8 @@
   <tr class="memlist"><td><a class="el" href="struct__VampOutputDescriptor.html#5da1d27cc99badc214640e859b882072">sampleType</a></td><td><a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="struct__VampOutputDescriptor.html#d038caa8e596dfd037035637202f1d63">unit</a></td><td><a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a></td><td></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/struct__VampOutputDescriptor.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/struct__VampOutputDescriptor.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -76,6 +76,9 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampOutputDescriptor.html#1ccf193317b2b9c2eb0dbd8dcf61d26e">sampleRate</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sample rate of returned results, if sampleType is vampFixedSampleRate.  <a href="#1ccf193317b2b9c2eb0dbd8dcf61d26e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampOutputDescriptor.html#f792a96dbf292ec966b9b68250febd99">hasDuration</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">1 if the returned results for this output are known to have a duration field.  <a href="#f792a96dbf292ec966b9b68250febd99"></a><br></td></tr>
 </table>
 <hr><h2>Member Data Documentation</h2>
 <a class="anchor" name="461161b2010370176115967e4f58a5f5"></a><!-- doxytag: member="_VampOutputDescriptor::identifier" ref="461161b2010370176115967e4f58a5f5" args="" -->
@@ -95,8 +98,6 @@
 Must not change. [a-zA-Z0-9_] 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00121">121</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00519">Vamp::PluginAdapterBase::Impl::vampReleaseOutputDescriptor()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="f4fca576bd47167fd2bf9b43d588815f"></a><!-- doxytag: member="_VampOutputDescriptor::name" ref="f4fca576bd47167fd2bf9b43d588815f" args="" -->
@@ -116,8 +117,6 @@
 May be translatable. 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00124">124</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00519">Vamp::PluginAdapterBase::Impl::vampReleaseOutputDescriptor()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="bfa911b138cfb80cf63e8f2e0fa0fb89"></a><!-- doxytag: member="_VampOutputDescriptor::description" ref="bfa911b138cfb80cf63e8f2e0fa0fb89" args="" -->
@@ -137,8 +136,6 @@
 May be translatable. 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00127">127</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00519">Vamp::PluginAdapterBase::Impl::vampReleaseOutputDescriptor()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="d038caa8e596dfd037035637202f1d63"></a><!-- doxytag: member="_VampOutputDescriptor::unit" ref="d038caa8e596dfd037035637202f1d63" args="" -->
@@ -158,8 +155,6 @@
 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00130">130</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00519">Vamp::PluginAdapterBase::Impl::vampReleaseOutputDescriptor()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="e8571f5a2bc740738af0cb7dda0c4749"></a><!-- doxytag: member="_VampOutputDescriptor::hasFixedBinCount" ref="e8571f5a2bc740738af0cb7dda0c4749" args="" -->
@@ -179,8 +174,6 @@
 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00133">133</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00519">Vamp::PluginAdapterBase::Impl::vampReleaseOutputDescriptor()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="652ee422092720e44d23d98bdb68f978"></a><!-- doxytag: member="_VampOutputDescriptor::binCount" ref="652ee422092720e44d23d98bdb68f978" args="" -->
@@ -200,8 +193,6 @@
 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00136">136</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00519">Vamp::PluginAdapterBase::Impl::vampReleaseOutputDescriptor()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="10fffaa32bd894843ff7592240dfe447"></a><!-- doxytag: member="_VampOutputDescriptor::binNames" ref="10fffaa32bd894843ff7592240dfe447" args="" -->
@@ -221,8 +212,6 @@
 May be NULL. 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00139">139</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00519">Vamp::PluginAdapterBase::Impl::vampReleaseOutputDescriptor()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="f6b512d772023b4e852216689c1c4465"></a><!-- doxytag: member="_VampOutputDescriptor::hasKnownExtents" ref="f6b512d772023b4e852216689c1c4465" args="" -->
@@ -242,8 +231,6 @@
 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00142">142</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="9a28180989e3d028c12a98517479dc46"></a><!-- doxytag: member="_VampOutputDescriptor::minValue" ref="9a28180989e3d028c12a98517479dc46" args="" -->
@@ -263,8 +250,6 @@
 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00145">145</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="4cbe540a247df60f85b00b2aa16461ee"></a><!-- doxytag: member="_VampOutputDescriptor::maxValue" ref="4cbe540a247df60f85b00b2aa16461ee" args="" -->
@@ -284,8 +269,6 @@
 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00148">148</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="b56cf0bbb17136819024574d5cc65e30"></a><!-- doxytag: member="_VampOutputDescriptor::isQuantized" ref="b56cf0bbb17136819024574d5cc65e30" args="" -->
@@ -305,8 +288,6 @@
 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00151">151</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="71aa40222dda4321030cccd0bb655fe3"></a><!-- doxytag: member="_VampOutputDescriptor::quantizeStep" ref="71aa40222dda4321030cccd0bb655fe3" args="" -->
@@ -326,8 +307,6 @@
 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00154">154</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="5da1d27cc99badc214640e859b882072"></a><!-- doxytag: member="_VampOutputDescriptor::sampleType" ref="5da1d27cc99badc214640e859b882072" args="" -->
@@ -347,8 +326,6 @@
 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00157">157</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="1ccf193317b2b9c2eb0dbd8dcf61d26e"></a><!-- doxytag: member="_VampOutputDescriptor::sampleRate" ref="1ccf193317b2b9c2eb0dbd8dcf61d26e" args="" -->
@@ -368,15 +345,32 @@
 "Resolution" of result, if sampleType is vampVariableSampleRate. 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00161">161</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00637">Vamp::PluginAdapterBase::Impl::getOutputDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>.</p>
+</div>
+</div><p>
+<a class="anchor" name="f792a96dbf292ec966b9b68250febd99"></a><!-- doxytag: member="_VampOutputDescriptor::hasDuration" ref="f792a96dbf292ec966b9b68250febd99" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="struct__VampOutputDescriptor.html#f792a96dbf292ec966b9b68250febd99">_VampOutputDescriptor::hasDuration</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+1 if the returned results for this output are known to have a duration field. 
+<p>
+This field is new in <a class="el" href="namespaceVamp.html">Vamp</a> API version 2; it must not be tested for plugins that report an older API version in their plugin descriptor. 
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00170">170</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="vamp_8h-source.html">vamp.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/struct__VampParameterDescriptor-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/struct__VampParameterDescriptor-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -36,8 +36,8 @@
   <tr class="memlist"><td><a class="el" href="struct__VampParameterDescriptor.html#8ca235f816b56dc99125e010eee08fc7">unit</a></td><td><a class="el" href="struct__VampParameterDescriptor.html">_VampParameterDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d">valueNames</a></td><td><a class="el" href="struct__VampParameterDescriptor.html">_VampParameterDescriptor</a></td><td></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/struct__VampParameterDescriptor.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/struct__VampParameterDescriptor.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -29,10 +29,10 @@
 
 <p>
 <a href="struct__VampParameterDescriptor-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
-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. 
+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" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a>. Plugin authors may prefer to use the C++ classes provided in the <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 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" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> plugin SDK for further details and plugin lifecycle documentation. 
+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. 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00071">71</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
@@ -86,8 +86,6 @@
 Must not change. [a-zA-Z0-9_] 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00074">74</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00213">Vamp::PluginHostAdapter::getParameter()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00227">Vamp::PluginHostAdapter::setParameter()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">Vamp::PluginAdapterBase::Impl::~Impl()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="bba810bce9656f6002777f6c3f655957"></a><!-- doxytag: member="_VampParameterDescriptor::name" ref="bba810bce9656f6002777f6c3f655957" args="" -->
@@ -107,8 +105,6 @@
 May be translatable. 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00077">77</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">Vamp::PluginAdapterBase::Impl::~Impl()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="95489272d6cf5a5b487e949da8e4fac6"></a><!-- doxytag: member="_VampParameterDescriptor::description" ref="95489272d6cf5a5b487e949da8e4fac6" args="" -->
@@ -128,8 +124,6 @@
 May be translatable. 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00080">80</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">Vamp::PluginAdapterBase::Impl::~Impl()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="8ca235f816b56dc99125e010eee08fc7"></a><!-- doxytag: member="_VampParameterDescriptor::unit" ref="8ca235f816b56dc99125e010eee08fc7" args="" -->
@@ -149,8 +143,6 @@
 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00083">83</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">Vamp::PluginAdapterBase::Impl::~Impl()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="b59c84f0bbe0d4d0c578d893c087b0db"></a><!-- doxytag: member="_VampParameterDescriptor::minValue" ref="b59c84f0bbe0d4d0c578d893c087b0db" args="" -->
@@ -170,8 +162,6 @@
 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00086">86</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="6e7646babdb265c4abfc107ba4350d80"></a><!-- doxytag: member="_VampParameterDescriptor::maxValue" ref="6e7646babdb265c4abfc107ba4350d80" args="" -->
@@ -191,8 +181,6 @@
 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00089">89</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="3d37f986ee152ab55feb9902b35f7aca"></a><!-- doxytag: member="_VampParameterDescriptor::defaultValue" ref="3d37f986ee152ab55feb9902b35f7aca" args="" -->
@@ -212,8 +200,6 @@
 Plugin is responsible for setting this on initialise. 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00092">92</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="3f41e3b6b69c7a95ff0ce8625794f83a"></a><!-- doxytag: member="_VampParameterDescriptor::isQuantized" ref="3f41e3b6b69c7a95ff0ce8625794f83a" args="" -->
@@ -233,8 +219,6 @@
 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00095">95</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="68c91fd3fc0b0b3617c2d343fe32d0e5"></a><!-- doxytag: member="_VampParameterDescriptor::quantizeStep" ref="68c91fd3fc0b0b3617c2d343fe32d0e5" args="" -->
@@ -254,8 +238,6 @@
 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00098">98</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="188883325ab1e4a898e3dc53a8f88f9d"></a><!-- doxytag: member="_VampParameterDescriptor::valueNames" ref="188883325ab1e4a898e3dc53a8f88f9d" args="" -->
@@ -275,15 +257,13 @@
 May be NULL. 
 <p>Definition at line <a class="el" href="vamp_8h-source.html#l00101">101</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">Vamp::PluginAdapterBase::Impl::~Impl()</a>.</p>
-
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="vamp_8h-source.html">vamp.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/struct__VampPluginDescriptor-members.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/struct__VampPluginDescriptor-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -56,8 +56,8 @@
   <tr class="memlist"><td><a class="el" href="struct__VampPluginDescriptor.html#ad3cfc7a3b432df40bd9db13eee6a481">setParameter</a></td><td><a class="el" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="struct__VampPluginDescriptor.html#b6c87760e87ddaa9ac3491bccaaa28c2">vampApiVersion</a></td><td><a class="el" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a></td><td></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/struct__VampPluginDescriptor.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/struct__VampPluginDescriptor.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -30,7 +30,7 @@
 <p>
 <a href="struct__VampPluginDescriptor-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00206">206</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00248">248</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
@@ -141,9 +141,7 @@
 API version with which this descriptor is compatible. 
 <p>
 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00209">209</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00145">Vamp::PluginHostAdapter::getVampApiVersion()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00251">251</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -162,9 +160,7 @@
 Computer-usable name of the plugin. 
 <p>
 Must not change. [a-zA-Z0-9_] 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00212">212</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="PluginHostAdapter_8cpp-source.html#l00151">Vamp::PluginHostAdapter::getIdentifier()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00355">Vamp::HostExt::PluginLoader::Impl::loadPlugin()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">Vamp::PluginAdapterBase::Impl::~Impl()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00254">254</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -183,9 +179,7 @@
 Human-readable name of the plugin. 
 <p>
 May be translatable. 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00215">215</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00157">Vamp::PluginHostAdapter::getName()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">Vamp::PluginAdapterBase::Impl::~Impl()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00257">257</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -204,9 +198,7 @@
 Human-readable short text about the plugin. 
 <p>
 May be translatable. 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00218">218</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00163">Vamp::PluginHostAdapter::getDescription()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">Vamp::PluginAdapterBase::Impl::~Impl()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00260">260</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -225,9 +217,7 @@
 Human-readable name of plugin's author or vendor. 
 <p>
 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00221">221</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00169">Vamp::PluginHostAdapter::getMaker()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">Vamp::PluginAdapterBase::Impl::~Impl()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00263">263</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -246,9 +236,7 @@
 Version number of the plugin. 
 <p>
 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00224">224</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00175">Vamp::PluginHostAdapter::getPluginVersion()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00266">266</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -267,9 +255,7 @@
 Human-readable summary of copyright or licensing for plugin. 
 <p>
 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00227">227</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00181">Vamp::PluginHostAdapter::getCopyright()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">Vamp::PluginAdapterBase::Impl::~Impl()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00269">269</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -288,9 +274,7 @@
 Number of parameter inputs. 
 <p>
 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00230">230</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00213">Vamp::PluginHostAdapter::getParameter()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00227">Vamp::PluginHostAdapter::setParameter()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">Vamp::PluginAdapterBase::Impl::~Impl()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00272">272</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -309,9 +293,7 @@
 Fixed descriptors for parameter inputs. 
 <p>
 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00233">233</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00213">Vamp::PluginHostAdapter::getParameter()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00187">Vamp::PluginHostAdapter::getParameterDescriptors()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00227">Vamp::PluginHostAdapter::setParameter()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">Vamp::PluginAdapterBase::Impl::~Impl()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00275">275</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -330,9 +312,7 @@
 Number of programs. 
 <p>
 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00236">236</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00241">Vamp::PluginHostAdapter::getPrograms()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00262">Vamp::PluginHostAdapter::selectProgram()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">Vamp::PluginAdapterBase::Impl::~Impl()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00278">278</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -351,9 +331,7 @@
 Fixed names for programs. 
 <p>
 
-<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>
-
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00253">Vamp::PluginHostAdapter::getCurrentProgram()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00241">Vamp::PluginHostAdapter::getPrograms()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00262">Vamp::PluginHostAdapter::selectProgram()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00258">Vamp::PluginAdapterBase::Impl::~Impl()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00281">281</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -372,9 +350,7 @@
 Preferred input domain for audio input (time or frequency). 
 <p>
 
-<p>Definition at line <a class="el" href="vamp_8h-source.html#l00242">242</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
-
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00135">Vamp::PluginHostAdapter::getInputDomain()</a>.</p>
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00284">284</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
 
 </div>
 </div><p>
@@ -393,8 +369,6 @@
 Create and return a new instance of this plugin. 
 <p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00043">Vamp::PluginHostAdapter::PluginHostAdapter()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="0e4522c33e59c3c518b9262f2477bc27"></a><!-- doxytag: member="_VampPluginDescriptor::cleanup" ref="0e4522c33e59c3c518b9262f2477bc27" args=")(VampPluginHandle)" -->
@@ -412,8 +386,6 @@
 Destroy an instance of this plugin. 
 <p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00055">Vamp::PluginHostAdapter::~PluginHostAdapter()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="d0978f17a5e568079470a1978a9aad22"></a><!-- doxytag: member="_VampPluginDescriptor::initialise" ref="d0978f17a5e568079470a1978a9aad22" args=")(VampPluginHandle, unsigned int inputChannels, unsigned int stepSize, unsigned int blockSize)" -->
@@ -431,8 +403,6 @@
 Initialise an instance following parameter configuration. 
 <p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00118">Vamp::PluginHostAdapter::initialise()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="12267f6b506aeda3792ff7c982b02336"></a><!-- doxytag: member="_VampPluginDescriptor::reset" ref="12267f6b506aeda3792ff7c982b02336" args=")(VampPluginHandle)" -->
@@ -450,8 +420,6 @@
 Reset an instance, ready to use again on new input data. 
 <p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00128">Vamp::PluginHostAdapter::reset()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="07174981875b55ee2ec7521a7f4fc395"></a><!-- doxytag: member="_VampPluginDescriptor::getParameter" ref="07174981875b55ee2ec7521a7f4fc395" args=")(VampPluginHandle, int)" -->
@@ -469,8 +437,6 @@
 Get a parameter value. 
 <p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00213">Vamp::PluginHostAdapter::getParameter()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="ad3cfc7a3b432df40bd9db13eee6a481"></a><!-- doxytag: member="_VampPluginDescriptor::setParameter" ref="ad3cfc7a3b432df40bd9db13eee6a481" args=")(VampPluginHandle, int, float)" -->
@@ -488,8 +454,6 @@
 Set a parameter value. 
 <p>
 May only be called before initialise. 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00227">Vamp::PluginHostAdapter::setParameter()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="861a77525a95d424cb846820b018af53"></a><!-- doxytag: member="_VampPluginDescriptor::getCurrentProgram" ref="861a77525a95d424cb846820b018af53" args=")(VampPluginHandle)" -->
@@ -507,8 +471,6 @@
 Get the current program (if programCount &gt; 0). 
 <p>
 
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00253">Vamp::PluginHostAdapter::getCurrentProgram()</a>, and <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="d9af40cb165ca187e49250964af5f5cf"></a><!-- doxytag: member="_VampPluginDescriptor::selectProgram" ref="d9af40cb165ca187e49250964af5f5cf" args=")(VampPluginHandle, unsigned int)" -->
@@ -526,8 +488,6 @@
 Set the current program. 
 <p>
 May only be called before initialise. 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00262">Vamp::PluginHostAdapter::selectProgram()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="2beddf2ce156c05dd24477ac663adcbb"></a><!-- doxytag: member="_VampPluginDescriptor::getPreferredStepSize" ref="2beddf2ce156c05dd24477ac663adcbb" args=")(VampPluginHandle)" -->
@@ -545,8 +505,6 @@
 Get the plugin's preferred processing window increment in samples. 
 <p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00275">Vamp::PluginHostAdapter::getPreferredStepSize()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="c626e42554ab1532c8d8b5132a0faee8"></a><!-- doxytag: member="_VampPluginDescriptor::getPreferredBlockSize" ref="c626e42554ab1532c8d8b5132a0faee8" args=")(VampPluginHandle)" -->
@@ -564,8 +522,6 @@
 Get the plugin's preferred processing window size in samples. 
 <p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00282">Vamp::PluginHostAdapter::getPreferredBlockSize()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="f175ca17716db5a7545b61b01caabd92"></a><!-- doxytag: member="_VampPluginDescriptor::getMinChannelCount" ref="f175ca17716db5a7545b61b01caabd92" args=")(VampPluginHandle)" -->
@@ -583,8 +539,6 @@
 Get the minimum number of input channels this plugin can handle. 
 <p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00289">Vamp::PluginHostAdapter::getMinChannelCount()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="d1600203418d9646332f5b917284261b"></a><!-- doxytag: member="_VampPluginDescriptor::getMaxChannelCount" ref="d1600203418d9646332f5b917284261b" args=")(VampPluginHandle)" -->
@@ -602,8 +556,6 @@
 Get the maximum number of input channels this plugin can handle. 
 <p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00296">Vamp::PluginHostAdapter::getMaxChannelCount()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="a8fc88da704e24b2b5f674821dd380c1"></a><!-- doxytag: member="_VampPluginDescriptor::getOutputCount" ref="a8fc88da704e24b2b5f674821dd380c1" args=")(VampPluginHandle)" -->
@@ -621,8 +573,6 @@
 Get the number of feature outputs (distinct sets of results). 
 <p>
 
-<p>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">Vamp::PluginHostAdapter::convertFeatures()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="92c58b8ff99ad0c23a42333aa55c144d"></a><!-- doxytag: member="_VampPluginDescriptor::getOutputDescriptor" ref="92c58b8ff99ad0c23a42333aa55c144d" args=")(VampPluginHandle, unsigned int)" -->
@@ -640,8 +590,6 @@
 Get a descriptor for a given feature output. 
 <p>
 Returned pointer is valid only until next call to getOutputDescriptor for this handle, or releaseOutputDescriptor for this descriptor. Host must call releaseOutputDescriptor after use. 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="8cc38edc921616e67e551aa03397ec79"></a><!-- doxytag: member="_VampPluginDescriptor::releaseOutputDescriptor" ref="8cc38edc921616e67e551aa03397ec79" args=")(VampOutputDescriptor *)" -->
@@ -659,8 +607,6 @@
 Destroy a descriptor for a feature output. 
 <p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00303">Vamp::PluginHostAdapter::getOutputDescriptors()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="c5a0a75b6e68b22fed536765d1f2f254"></a><!-- doxytag: member="_VampPluginDescriptor::process" ref="c5a0a75b6e68b22fed536765d1f2f254" args=")(VampPluginHandle, const float *const *inputBuffers, int sec, int nsec)" -->
@@ -678,8 +624,6 @@
 Process an input block and return a set of features. 
 <p>
 Returned pointer is valid only until next call to process, getRemainingFeatures, or cleanup for this handle, or releaseFeatureSet for this feature set. Host must call releaseFeatureSet after use. 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00353">Vamp::PluginHostAdapter::process()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="d22c666188aadab83c354a0edb18fcf0"></a><!-- doxytag: member="_VampPluginDescriptor::getRemainingFeatures" ref="d22c666188aadab83c354a0edb18fcf0" args=")(VampPluginHandle)" -->
@@ -697,8 +641,6 @@
 Return any remaining features at the end of processing. 
 <p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00372">Vamp::PluginHostAdapter::getRemainingFeatures()</a>.</p>
-
 </div>
 </div><p>
 <a class="anchor" name="c4bafe8ad2734d21a433d745b18e7d63"></a><!-- doxytag: member="_VampPluginDescriptor::releaseFeatureSet" ref="c4bafe8ad2734d21a433d745b18e7d63" args=")(VampFeatureList *)" -->
@@ -716,15 +658,13 @@
 Release a feature set returned from process or getRemainingFeatures. 
 <p>
 
-<p>Referenced by <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginHostAdapter_8cpp-source.html#l00372">Vamp::PluginHostAdapter::getRemainingFeatures()</a>, and <a class="el" href="PluginHostAdapter_8cpp-source.html#l00353">Vamp::PluginHostAdapter::process()</a>.</p>
-
 </div>
 </div><p>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="vamp_8h-source.html">vamp.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:19 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/system_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/system_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -18,7 +18,7 @@
   <div class="navpath"><a class="el" href="dir_dc0199af6955c245f7b5a687135670df.html">host</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>system.h</h1><a href="system_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -95,8 +95,8 @@
 <a name="l00074"></a>00074 <span class="preprocessor">#endif</span>
 <a name="l00075"></a>00075 <span class="preprocessor"></span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/system_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/system_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -53,7 +53,7 @@
           <td class="paramtype">b&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%">&nbsp;&nbsp;&nbsp;dlopen((a).c_str(),(b))</td>
+          <td>&nbsp;&nbsp;&nbsp;dlopen((a).c_str(),(b))</td>
         </tr>
       </table>
 </div>
@@ -78,7 +78,7 @@
           <td class="paramtype">b&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%">&nbsp;&nbsp;&nbsp;dlsym((a),(b))</td>
+          <td>&nbsp;&nbsp;&nbsp;dlsym((a),(b))</td>
         </tr>
       </table>
 </div>
@@ -100,7 +100,7 @@
           <td class="paramtype">a&nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%">&nbsp;&nbsp;&nbsp;dlclose((a))</td>
+          <td>&nbsp;&nbsp;&nbsp;dlclose((a))</td>
         </tr>
       </table>
 </div>
@@ -122,7 +122,7 @@
 &nbsp;</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%">&nbsp;&nbsp;&nbsp;dlerror()</td>
+          <td>&nbsp;&nbsp;&nbsp;dlerror()</td>
         </tr>
       </table>
 </div>
@@ -149,6 +149,8 @@
 
 <p>Definition at line <a class="el" href="system_8h-source.html#l00067">67</a> of file <a class="el" href="system_8h-source.html">system.h</a>.</p>
 
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00093">usage()</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="7cbcd5e9e882451e8c93a78b06f563c4"></a><!-- doxytag: member="system.h::HAVE_OPENDIR" ref="7cbcd5e9e882451e8c93a78b06f563c4" args="" -->
@@ -169,8 +171,8 @@
 </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&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/tree.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/tree.html	Tue Dec 09 11:02:57 2008 +0000
@@ -61,40 +61,37 @@
 
   <body class="ftvtree">
     <div class="directory">
-      <h3>VampPluginSDK</h3>
+      <h3 class="swap"><span>VampPluginSDK</span></h3>
       <div style="display: block;">
         <p><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="main.html" target="basefrm">Vamp Plugin SDK</a></p>
         <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder1', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder1', this)"/><a class="el" href="annotated.html" target="basefrm">Class List</a></p>
         <div id="folder1">
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="struct__VampFeature.html" target="basefrm">_VampFeature</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="struct__VampFeatureList.html" target="basefrm">_VampFeatureList</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="union__VampFeatureUnion.html" target="basefrm">_VampFeatureUnion</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="struct__VampFeatureV2.html" target="basefrm">_VampFeatureV2</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="struct__VampOutputDescriptor.html" target="basefrm">_VampOutputDescriptor</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="struct__VampParameterDescriptor.html" target="basefrm">_VampParameterDescriptor</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="struct__VampPluginDescriptor.html" target="basefrm">_VampPluginDescriptor</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classAmplitudeFollower.html" target="basefrm">AmplitudeFollower</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classFixedTempoEstimator.html" target="basefrm">FixedTempoEstimator</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classFixedTempoEstimator_1_1D.html" target="basefrm">FixedTempoEstimator::D</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classPercussionOnsetDetector.html" target="basefrm">PercussionOnsetDetector</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1Plugin.html" target="basefrm">Vamp::Plugin</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structVamp_1_1Plugin_1_1Feature.html" target="basefrm">Vamp::Plugin::Feature</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html" target="basefrm">Vamp::Plugin::OutputDescriptor</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1PluginAdapter.html" target="basefrm">Vamp::PluginAdapter< P ></a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1PluginAdapterBase.html" target="basefrm">Vamp::PluginAdapterBase</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html" target="basefrm">Vamp::PluginAdapterBase::Impl</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1PluginBase.html" target="basefrm">Vamp::PluginBase</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html" target="basefrm">Vamp::PluginBase::ParameterDescriptor</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" target="basefrm">Vamp::HostExt::PluginBufferingAdapter</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html" target="basefrm">Vamp::HostExt::PluginBufferingAdapter::Impl</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html" target="basefrm">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" target="basefrm">Vamp::HostExt::PluginChannelAdapter</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html" target="basefrm">Vamp::HostExt::PluginChannelAdapter::Impl</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1PluginHostAdapter.html" target="basefrm">Vamp::PluginHostAdapter</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" target="basefrm">Vamp::HostExt::PluginInputDomainAdapter</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html" target="basefrm">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" target="basefrm">Vamp::HostExt::PluginLoader</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html" target="basefrm">Vamp::HostExt::PluginLoader::Impl</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html" target="basefrm">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html" target="basefrm">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html" target="basefrm">Vamp::HostExt::PluginRateExtractor</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" target="basefrm">Vamp::HostExt::PluginSummarisingAdapter</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html" target="basefrm">Vamp::HostExt::PluginWrapper</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classPowerSpectrum.html" target="basefrm">PowerSpectrum</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structVamp_1_1RealTime.html" target="basefrm">Vamp::RealTime</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classSpectralCentroid.html" target="basefrm">SpectralCentroid</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classZeroCrossing.html" target="basefrm">ZeroCrossing</a></p>
@@ -103,43 +100,40 @@
         <div id="folder2">
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="struct__VampFeature.html" target="basefrm">_VampFeature</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="struct__VampFeatureList.html" target="basefrm">_VampFeatureList</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="union__VampFeatureUnion.html" target="basefrm">_VampFeatureUnion</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="struct__VampFeatureV2.html" target="basefrm">_VampFeatureV2</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="struct__VampOutputDescriptor.html" target="basefrm">_VampOutputDescriptor</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="struct__VampParameterDescriptor.html" target="basefrm">_VampParameterDescriptor</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="struct__VampPluginDescriptor.html" target="basefrm">_VampPluginDescriptor</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classFixedTempoEstimator_1_1D.html" target="basefrm">FixedTempoEstimator::D</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structVamp_1_1Plugin_1_1Feature.html" target="basefrm">Vamp::Plugin::Feature</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html" target="basefrm">Vamp::Plugin::OutputDescriptor</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder3', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder3', this)"/><a class="el" href="classVamp_1_1PluginAdapterBase.html" target="basefrm">Vamp::PluginAdapterBase</a></p>
           <div id="folder3">
             <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1PluginAdapter.html" target="basefrm">Vamp::PluginAdapter< P ></a></p>
           </div>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1PluginAdapterBase_1_1Impl.html" target="basefrm">Vamp::PluginAdapterBase::Impl</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder4', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder4', this)"/><a class="el" href="classVamp_1_1PluginBase.html" target="basefrm">Vamp::PluginBase</a></p>
           <div id="folder4">
             <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder5', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder5', this)"/><a class="el" href="classVamp_1_1Plugin.html" target="basefrm">Vamp::Plugin</a></p>
             <div id="folder5">
               <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classAmplitudeFollower.html" target="basefrm">AmplitudeFollower</a></p>
+              <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classFixedTempoEstimator.html" target="basefrm">FixedTempoEstimator</a></p>
               <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classPercussionOnsetDetector.html" target="basefrm">PercussionOnsetDetector</a></p>
+              <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classPowerSpectrum.html" target="basefrm">PowerSpectrum</a></p>
               <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classSpectralCentroid.html" target="basefrm">SpectralCentroid</a></p>
-              <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginRateExtractor.html" target="basefrm">Vamp::HostExt::PluginRateExtractor</a></p>
               <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder6', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder6', this)"/><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html" target="basefrm">Vamp::HostExt::PluginWrapper</a></p>
               <div id="folder6">
                 <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html" target="basefrm">Vamp::HostExt::PluginBufferingAdapter</a></p>
                 <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html" target="basefrm">Vamp::HostExt::PluginChannelAdapter</a></p>
                 <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" target="basefrm">Vamp::HostExt::PluginInputDomainAdapter</a></p>
-                <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html" target="basefrm">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter</a></p>
+                <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" target="basefrm">Vamp::HostExt::PluginSummarisingAdapter</a></p>
               </div>
               <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1PluginHostAdapter.html" target="basefrm">Vamp::PluginHostAdapter</a></p>
               <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classZeroCrossing.html" target="basefrm">ZeroCrossing</a></p>
             </div>
           </div>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html" target="basefrm">Vamp::PluginBase::ParameterDescriptor</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html" target="basefrm">Vamp::HostExt::PluginBufferingAdapter::Impl</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html" target="basefrm">Vamp::HostExt::PluginBufferingAdapter::Impl::RingBuffer</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html" target="basefrm">Vamp::HostExt::PluginChannelAdapter::Impl</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html" target="basefrm">Vamp::HostExt::PluginInputDomainAdapter::Impl</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html" target="basefrm">Vamp::HostExt::PluginLoader</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html" target="basefrm">Vamp::HostExt::PluginLoader::Impl</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html" target="basefrm">Vamp::HostExt::PluginLoader::Impl::InstanceCleaner</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structVamp_1_1RealTime.html" target="basefrm">Vamp::RealTime</a></p>
         </div>
         <p><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="functions.html" target="basefrm">Class Members</a></p>
@@ -155,30 +149,34 @@
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="AmplitudeFollower_8cpp.html" target="basefrm">AmplitudeFollower.cpp</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="AmplitudeFollower_8h.html" target="basefrm">AmplitudeFollower.h</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="doc-overview.html" target="basefrm">doc-overview</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="FixedTempoEstimator_8cpp.html" target="basefrm">FixedTempoEstimator.cpp</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="FixedTempoEstimator_8h.html" target="basefrm">FixedTempoEstimator.h</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="hostguard_8h.html" target="basefrm">hostguard.h</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PercussionOnsetDetector_8cpp.html" target="basefrm">PercussionOnsetDetector.cpp</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PercussionOnsetDetector_8h.html" target="basefrm">PercussionOnsetDetector.h</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="Plugin_8h.html" target="basefrm">Plugin.h</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginAdapter_8cpp.html" target="basefrm">PluginAdapter.cpp</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="plugguard_8h.html" target="basefrm">plugguard.h</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="vamp-sdk_2Plugin_8h.html" target="basefrm">vamp-sdk/Plugin.h</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="vamp-hostsdk_2Plugin_8h.html" target="basefrm">vamp-hostsdk/Plugin.h</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginAdapter_8h.html" target="basefrm">PluginAdapter.h</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginBase_8h.html" target="basefrm">PluginBase.h</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginBufferingAdapter_8cpp.html" target="basefrm">PluginBufferingAdapter.cpp</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="vamp-sdk_2PluginBase_8h.html" target="basefrm">vamp-sdk/PluginBase.h</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="vamp-hostsdk_2PluginBase_8h.html" target="basefrm">vamp-hostsdk/PluginBase.h</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginBufferingAdapter_8h.html" target="basefrm">PluginBufferingAdapter.h</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginChannelAdapter_8cpp.html" target="basefrm">PluginChannelAdapter.cpp</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginChannelAdapter_8h.html" target="basefrm">PluginChannelAdapter.h</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginHostAdapter_8cpp.html" target="basefrm">PluginHostAdapter.cpp</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginHostAdapter_8h.html" target="basefrm">PluginHostAdapter.h</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginInputDomainAdapter_8cpp.html" target="basefrm">PluginInputDomainAdapter.cpp</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginInputDomainAdapter_8h.html" target="basefrm">PluginInputDomainAdapter.h</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginLoader_8cpp.html" target="basefrm">PluginLoader.cpp</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginLoader_8h.html" target="basefrm">PluginLoader.h</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="plugins_8cpp.html" target="basefrm">plugins.cpp</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginWrapper_8cpp.html" target="basefrm">PluginWrapper.cpp</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginSummarisingAdapter_8h.html" target="basefrm">PluginSummarisingAdapter.h</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PluginWrapper_8h.html" target="basefrm">PluginWrapper.h</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="RealTime_8cpp.html" target="basefrm">RealTime.cpp</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="RealTime_8h.html" target="basefrm">RealTime.h</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PowerSpectrum_8cpp.html" target="basefrm">PowerSpectrum.cpp</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="PowerSpectrum_8h.html" target="basefrm">PowerSpectrum.h</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="vamp-sdk_2RealTime_8h.html" target="basefrm">vamp-sdk/RealTime.h</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="vamp-hostsdk_2RealTime_8h.html" target="basefrm">vamp-hostsdk/RealTime.h</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="SpectralCentroid_8cpp.html" target="basefrm">SpectralCentroid.cpp</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="SpectralCentroid_8h.html" target="basefrm">SpectralCentroid.h</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="system_8h.html" target="basefrm">system.h</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="vamp-hostsdk_8h.html" target="basefrm">vamp-hostsdk.h</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="vamp-sdk_8h.html" target="basefrm">vamp-sdk.h</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="vamp-simple-host_8cpp.html" target="basefrm">vamp-simple-host.cpp</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="vamp_8h.html" target="basefrm">vamp.h</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="ZeroCrossing_8cpp.html" target="basefrm">ZeroCrossing.cpp</a></p>
@@ -188,14 +186,12 @@
         <div id="folder9">
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="dir_35887283b966ca996e4ff77f459c38ce.html" target="basefrm">examples</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="dir_dc0199af6955c245f7b5a687135670df.html" target="basefrm">host</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="dir_2d75386d541e768dd0382c2de0bcb161.html" target="basefrm">src</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="dir_b086eb10f854304ab96fb3af468374a7.html" target="basefrm">vamp</a></p>
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder10', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder10', this)"/><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html" target="basefrm">vamp-sdk</a></p>
-          <div id="folder10">
-            <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html" target="basefrm">hostext</a></p>
-          </div>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="dir_4571ebff077265f6d30f5427df02fcd6.html" target="basefrm">vamp-hostsdk</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="dir_5b77fce4b90561041d958141b45c7c55.html" target="basefrm">vamp-sdk</a></p>
         </div>
         <p><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="globals.html" target="basefrm">File Members</a></p>
       </div>
     </div>
-  </body>
-</html>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/union__VampFeatureUnion-members.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,35 @@
+<!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: Member List</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>_VampFeatureUnion Member List</h1>This is the complete list of members for <a class="el" href="union__VampFeatureUnion.html">_VampFeatureUnion</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="union__VampFeatureUnion.html#4a32a2ce141ec3cd36b8be54cd9c3369">v1</a></td><td><a class="el" href="union__VampFeatureUnion.html">_VampFeatureUnion</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="union__VampFeatureUnion.html#87e508e37e02cce11c3c4ddf087a627a">v2</a></td><td><a class="el" href="union__VampFeatureUnion.html">_VampFeatureUnion</a></td><td></td></tr>
+</table></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/union__VampFeatureUnion.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,84 @@
+<!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: _VampFeatureUnion Union 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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><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="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>_VampFeatureUnion Union Reference</h1><!-- doxytag: class="_VampFeatureUnion" --><code>#include &lt;<a class="el" href="vamp_8h-source.html">vamp.h</a>&gt;</code>
+<p>
+
+<p>
+<a href="union__VampFeatureUnion-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
+
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00209">209</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct__VampFeature.html">VampFeature</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="union__VampFeatureUnion.html#4a32a2ce141ec3cd36b8be54cd9c3369">v1</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct__VampFeatureV2.html">VampFeatureV2</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="union__VampFeatureUnion.html#87e508e37e02cce11c3c4ddf087a627a">v2</a></td></tr>
+
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="4a32a2ce141ec3cd36b8be54cd9c3369"></a><!-- doxytag: member="_VampFeatureUnion::v1" ref="4a32a2ce141ec3cd36b8be54cd9c3369" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="struct__VampFeature.html">VampFeature</a> <a class="el" href="union__VampFeatureUnion.html#4a32a2ce141ec3cd36b8be54cd9c3369">_VampFeatureUnion::v1</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00212">212</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="87e508e37e02cce11c3c4ddf087a627a"></a><!-- doxytag: member="_VampFeatureUnion::v2" ref="87e508e37e02cce11c3c4ddf087a627a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="struct__VampFeatureV2.html">VampFeatureV2</a> <a class="el" href="union__VampFeatureUnion.html#87e508e37e02cce11c3c4ddf087a627a">_VampFeatureUnion::v2</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00213">213</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
+
+</div>
+</div><p>
+<hr>The documentation for this union was generated from the following file:<ul>
+<li><a class="el" href="vamp_8h-source.html">vamp.h</a></ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-hostsdk_2PluginBase_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,74 @@
+<!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: PluginBase.h Source File</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-hostsdk/PluginBase.h</h1><a href="vamp-hostsdk_2PluginBase_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/*</span>
+<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
+<a name="l00005"></a>00005 <span class="comment"></span>
+<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_HOSTSDK_PLUGIN_BASE_H_</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_HOSTSDK_PLUGIN_BASE_H_</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="comment">// Do not include vamp-sdk/PluginBase.h directly from host code.</span>
+<a name="l00041"></a>00041 <span class="comment">// Always use this header instead.</span>
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="hostguard_8h.html">hostguard.h</a>"</span>
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <span class="preprocessor">#include &lt;<a class="code" href="vamp-sdk_2PluginBase_8h.html">vamp-sdk/PluginBase.h</a>&gt;</span>
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 <span class="preprocessor">#endif</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-hostsdk_2PluginBase_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,34 @@
+<!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: PluginBase.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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-hostsdk/PluginBase.h File Reference</h1>
+<p>
+
+<p>
+<a href="vamp-hostsdk_2PluginBase_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-hostsdk_2Plugin_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,74 @@
+<!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: Plugin.h Source File</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-hostsdk/Plugin.h</h1><a href="vamp-hostsdk_2Plugin_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/*</span>
+<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
+<a name="l00005"></a>00005 <span class="comment"></span>
+<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_HOSTSDK_PLUGIN_H_</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_HOSTSDK_PLUGIN_H_</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="comment">// Do not include vamp-sdk/Plugin.h directly from host code.  Always</span>
+<a name="l00041"></a>00041 <span class="comment">// use this header instead.</span>
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="hostguard_8h.html">hostguard.h</a>"</span>
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <span class="preprocessor">#include &lt;<a class="code" href="vamp-sdk_2Plugin_8h.html">vamp-sdk/Plugin.h</a>&gt;</span>
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 <span class="preprocessor">#endif</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-hostsdk_2Plugin_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,34 @@
+<!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: Plugin.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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-hostsdk/Plugin.h File Reference</h1>
+<p>
+
+<p>
+<a href="vamp-hostsdk_2Plugin_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-hostsdk_2RealTime_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,73 @@
+<!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: RealTime.h Source File</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-hostsdk/RealTime.h</h1><a href="vamp-hostsdk_2RealTime_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/*</span>
+<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
+<a name="l00005"></a>00005 <span class="comment"></span>
+<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_HOSTSDK_REALTIME_H_</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_HOSTSDK_REALTIME_H_</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="comment">// Do not include vamp-sdk/RealTime.h directly from host code.  Always</span>
+<a name="l00041"></a>00041 <span class="comment">// use this header instead.</span>
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="hostguard_8h.html">hostguard.h</a>"</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;<a class="code" href="vamp-sdk_2RealTime_8h.html">vamp-sdk/RealTime.h</a>&gt;</span>
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 <span class="preprocessor">#endif</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-hostsdk_2RealTime_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,34 @@
+<!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: RealTime.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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-hostsdk/RealTime.h File Reference</h1>
+<p>
+
+<p>
+<a href="vamp-hostsdk_2RealTime_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-hostsdk_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,80 @@
+<!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-hostsdk.h Source File</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-hostsdk.h</h1><a href="vamp-hostsdk_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/*</span>
+<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
+<a name="l00005"></a>00005 <span class="comment"></span>
+<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_HOSTSDK_SINGLE_INCLUDE_H_</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_HOSTSDK_SINGLE_INCLUDE_H_</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "PluginBase.h"</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="PluginBufferingAdapter_8h.html">PluginBufferingAdapter.h</a>"</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="PluginChannelAdapter_8h.html">PluginChannelAdapter.h</a>"</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include "Plugin.h"</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include "<a class="code" href="PluginHostAdapter_8h.html">PluginHostAdapter.h</a>"</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#include "<a class="code" href="PluginInputDomainAdapter_8h.html">PluginInputDomainAdapter.h</a>"</span>
+<a name="l00046"></a>00046 <span class="preprocessor">#include "<a class="code" href="PluginLoader_8h.html">PluginLoader.h</a>"</span>
+<a name="l00047"></a>00047 <span class="preprocessor">#include "<a class="code" href="PluginSummarisingAdapter_8h.html">PluginSummarisingAdapter.h</a>"</span>
+<a name="l00048"></a>00048 <span class="preprocessor">#include "<a class="code" href="PluginWrapper_8h.html">PluginWrapper.h</a>"</span>
+<a name="l00049"></a>00049 <span class="preprocessor">#include "RealTime.h"</span>
+<a name="l00050"></a>00050 
+<a name="l00051"></a>00051 <span class="preprocessor">#endif</span>
+<a name="l00052"></a>00052 <span class="preprocessor"></span>
+<a name="l00053"></a>00053 
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-hostsdk_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,34 @@
+<!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-hostsdk.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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_4571ebff077265f6d30f5427df02fcd6.html">vamp-hostsdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-hostsdk.h File Reference</h1>
+<p>
+
+<p>
+<a href="vamp-hostsdk_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-sdk_2PluginBase_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,151 @@
+<!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: PluginBase.h Source File</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-sdk/PluginBase.h</h1><a href="vamp-sdk_2PluginBase_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/*</span>
+<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
+<a name="l00005"></a>00005 <span class="comment"></span>
+<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_SDK_PLUGIN_BASE_H_</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_SDK_PLUGIN_BASE_H_</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00042"></a>00042 
+<a name="l00043"></a><a class="code" href="vamp-sdk_2PluginBase_8h.html#9b7a8e1ac1c91366bec5f2f33c137a2f">00043</a> <span class="preprocessor">#define VAMP_SDK_VERSION "2.0"</span>
+<a name="l00044"></a><a class="code" href="vamp-sdk_2PluginBase_8h.html#b5f7da6acf45065a6c7b7cd38a0bf588">00044</a> <span class="preprocessor"></span><span class="preprocessor">#define VAMP_SDK_MAJOR_VERSION 2</span>
+<a name="l00045"></a><a class="code" href="vamp-sdk_2PluginBase_8h.html#d5eef1e2154b42769cd642d2a1d42257">00045</a> <span class="preprocessor"></span><span class="preprocessor">#define VAMP_SDK_MINOR_VERSION 0</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span>
+<a name="l00047"></a>00047 <span class="preprocessor">#include "<a class="code" href="plugguard_8h.html">plugguard.h</a>"</span>
+<a name="l00048"></a>00048 <a class="code" href="plugguard_8h.html#1a2724ea453971288d3218e4eab3072c">_VAMP_SDK_PLUGSPACE_BEGIN</a>(PluginBase.h)
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050 namespace Vamp {
+<a name="l00051"></a>00051 
+<a name="l00064"></a><a class="code" href="classVamp_1_1PluginBase.html">00064</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a> 
+<a name="l00065"></a>00065 {
+<a name="l00066"></a>00066 <span class="keyword">public</span>:
+<a name="l00067"></a><a class="code" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">00067</a>     <span class="keyword">virtual</span> ~<a class="code" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>() { }
+<a name="l00068"></a>00068 
+<a name="l00072"></a><a class="code" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">00072</a>     <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getVampApiVersion()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 2; }
+<a name="l00073"></a>00073 
+<a name="l00087"></a>00087     <span class="keyword">virtual</span> std::string getIdentifier() <span class="keyword">const</span> = 0;
+<a name="l00088"></a>00088 
+<a name="l00097"></a>00097     <span class="keyword">virtual</span> std::string getName() <span class="keyword">const</span> = 0;
+<a name="l00098"></a>00098 
+<a name="l00107"></a>00107     <span class="keyword">virtual</span> std::string getDescription() <span class="keyword">const</span> = 0;
+<a name="l00108"></a>00108     
+<a name="l00115"></a>00115     <span class="keyword">virtual</span> std::string getMaker() <span class="keyword">const</span> = 0;
+<a name="l00116"></a>00116 
+<a name="l00122"></a>00122     <span class="keyword">virtual</span> std::string getCopyright() <span class="keyword">const</span> = 0;
+<a name="l00123"></a>00123 
+<a name="l00127"></a>00127     <span class="keyword">virtual</span> <span class="keywordtype">int</span> getPluginVersion() <span class="keyword">const</span> = 0;
+<a name="l00128"></a>00128 
+<a name="l00129"></a>00129 
+<a name="l00130"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">00130</a>     <span class="keyword">struct </span><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a>
+<a name="l00131"></a>00131     {
+<a name="l00137"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#116fd9f0dc94c2bc4bbc60b5443c598c">00137</a>         std::string identifier;
+<a name="l00138"></a>00138 
+<a name="l00142"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#0ecebb94fb4ada4aad2640e20aa57084">00142</a>         std::string name;
+<a name="l00143"></a>00143 
+<a name="l00148"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#780ddad41e433d85c82f9ea4d959cbaf">00148</a>         std::string description;
+<a name="l00149"></a>00149 
+<a name="l00153"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#3bc3df322e4c02e17e96bc6d44982d7b">00153</a>         std::string unit;
+<a name="l00154"></a>00154 
+<a name="l00158"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8">00158</a>         <span class="keywordtype">float</span> minValue;
+<a name="l00159"></a>00159 
+<a name="l00163"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4">00163</a>         <span class="keywordtype">float</span> maxValue;
+<a name="l00164"></a>00164 
+<a name="l00171"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc">00171</a>         <span class="keywordtype">float</span> defaultValue;
+<a name="l00172"></a>00172         
+<a name="l00177"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#7c556d58d552f737ee5a34efdf7f9425">00177</a>         <span class="keywordtype">bool</span> isQuantized;
+<a name="l00178"></a>00178 
+<a name="l00184"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#01f8387e7c853d5e4e35d4e9a37353d7">00184</a>         <span class="keywordtype">float</span> quantizeStep;
+<a name="l00185"></a>00185 
+<a name="l00197"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#94df96f53835980b4739965007ff222b">00197</a>         std::vector&lt;std::string&gt; valueNames;
+<a name="l00198"></a>00198 
+<a name="l00199"></a><a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#5b793130e9746b2302317b3c9a9c1395">00199</a>         <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a>() : <span class="comment">// the defaults are invalid: you must set them</span>
+<a name="l00200"></a>00200             minValue(0), maxValue(0), defaultValue(0), isQuantized(false) { }
+<a name="l00201"></a>00201     };
+<a name="l00202"></a>00202 
+<a name="l00203"></a><a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">00203</a>     <span class="keyword">typedef</span> std::vector&lt;ParameterDescriptor&gt; ParameterList;
+<a name="l00204"></a>00204 
+<a name="l00208"></a><a class="code" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">00208</a>     <span class="keyword">virtual</span> ParameterList getParameterDescriptors()<span class="keyword"> const </span>{
+<a name="l00209"></a>00209         <span class="keywordflow">return</span> ParameterList();
+<a name="l00210"></a>00210     }
+<a name="l00211"></a>00211 
+<a name="l00216"></a><a class="code" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">00216</a>     <span class="keyword">virtual</span> <span class="keywordtype">float</span> getParameter(std::string)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 0.0; }
+<a name="l00217"></a>00217 
+<a name="l00222"></a><a class="code" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">00222</a>     <span class="keyword">virtual</span> <span class="keywordtype">void</span> setParameter(std::string, <span class="keywordtype">float</span>) { } 
+<a name="l00223"></a>00223 
+<a name="l00224"></a>00224     
+<a name="l00225"></a><a class="code" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">00225</a>     <span class="keyword">typedef</span> std::vector&lt;std::string&gt; ProgramList;
+<a name="l00226"></a>00226 
+<a name="l00237"></a><a class="code" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">00237</a>     <span class="keyword">virtual</span> ProgramList getPrograms()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ProgramList(); }
+<a name="l00238"></a>00238 
+<a name="l00242"></a><a class="code" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">00242</a>     <span class="keyword">virtual</span> std::string getCurrentProgram()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="stringliteral">""</span>; }
+<a name="l00243"></a>00243 
+<a name="l00248"></a><a class="code" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">00248</a>     <span class="keyword">virtual</span> <span class="keywordtype">void</span> selectProgram(std::string) { }
+<a name="l00249"></a>00249 
+<a name="l00255"></a>00255     <span class="keyword">virtual</span> std::string getType() <span class="keyword">const</span> = 0;
+<a name="l00256"></a>00256 };
+<a name="l00257"></a>00257 
+<a name="l00258"></a>00258 }
+<a name="l00259"></a>00259 
+<a name="l00260"></a>00260 <a class="code" href="plugguard_8h.html#c879bb1077ecc6132ea3581ef9033753">_VAMP_SDK_PLUGSPACE_END</a>(PluginBase.h)
+<a name="l00261"></a>00261 
+<a name="l00262"></a>00262 <span class="preprocessor">#endif</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-sdk_2PluginBase_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,104 @@
+<!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: PluginBase.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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-sdk/PluginBase.h File Reference</h1>
+<p>
+
+<p>
+<a href="vamp-sdk_2PluginBase_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>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html">Vamp</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A base class for plugins with optional configurable parameters, programs, etc.  <a href="classVamp_1_1PluginBase.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">Vamp::PluginBase::ParameterDescriptor</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-sdk_2PluginBase_8h.html#9b7a8e1ac1c91366bec5f2f33c137a2f">VAMP_SDK_VERSION</a>&nbsp;&nbsp;&nbsp;&quot;2.0&quot;</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-sdk_2PluginBase_8h.html#b5f7da6acf45065a6c7b7cd38a0bf588">VAMP_SDK_MAJOR_VERSION</a>&nbsp;&nbsp;&nbsp;2</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-sdk_2PluginBase_8h.html#d5eef1e2154b42769cd642d2a1d42257">VAMP_SDK_MINOR_VERSION</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+
+</table>
+<hr><h2>Define Documentation</h2>
+<a class="anchor" name="9b7a8e1ac1c91366bec5f2f33c137a2f"></a><!-- doxytag: member="vamp-sdk/PluginBase.h::VAMP_SDK_VERSION" ref="9b7a8e1ac1c91366bec5f2f33c137a2f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define VAMP_SDK_VERSION&nbsp;&nbsp;&nbsp;&quot;2.0&quot;          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00043">43</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00137">main()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="b5f7da6acf45065a6c7b7cd38a0bf588"></a><!-- doxytag: member="vamp-sdk/PluginBase.h::VAMP_SDK_MAJOR_VERSION" ref="b5f7da6acf45065a6c7b7cd38a0bf588" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define VAMP_SDK_MAJOR_VERSION&nbsp;&nbsp;&nbsp;2          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00044">44</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="d5eef1e2154b42769cd642d2a1d42257"></a><!-- doxytag: member="vamp-sdk/PluginBase.h::VAMP_SDK_MINOR_VERSION" ref="d5eef1e2154b42769cd642d2a1d42257" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define VAMP_SDK_MINOR_VERSION&nbsp;&nbsp;&nbsp;0          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00045">45</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-sdk_2Plugin_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,195 @@
+<!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: Plugin.h Source File</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-sdk/Plugin.h</h1><a href="vamp-sdk_2Plugin_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/*</span>
+<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
+<a name="l00005"></a>00005 <span class="comment"></span>
+<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_SDK_PLUGIN_H_</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_SDK_PLUGIN_H_</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;map&gt;</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="preprocessor">#include "PluginBase.h"</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#include "RealTime.h"</span>
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 <span class="preprocessor">#include "<a class="code" href="plugguard_8h.html">plugguard.h</a>"</span>
+<a name="l00048"></a>00048 <a class="code" href="plugguard_8h.html#1a2724ea453971288d3218e4eab3072c">_VAMP_SDK_PLUGSPACE_BEGIN</a>(Plugin.h)
+<a name="l00049"></a>00049 
+<a name="l00050"></a><a class="code" href="namespaceVamp.html">00050</a> namespace Vamp {
+<a name="l00051"></a>00051 
+<a name="l00124"></a><a class="code" href="classVamp_1_1Plugin.html">00124</a> <span class="keyword">class </span><a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> : <span class="keyword">public</span> <a class="code" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>
+<a name="l00125"></a>00125 {
+<a name="l00126"></a>00126 <span class="keyword">public</span>:
+<a name="l00127"></a><a class="code" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">00127</a>     <span class="keyword">virtual</span> ~<a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a>() { }
+<a name="l00128"></a>00128 
+<a name="l00141"></a>00141     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> initialise(<span class="keywordtype">size_t</span> inputChannels,
+<a name="l00142"></a>00142                             <span class="keywordtype">size_t</span> stepSize,
+<a name="l00143"></a>00143                             <span class="keywordtype">size_t</span> blockSize) = 0;
+<a name="l00144"></a>00144 
+<a name="l00150"></a>00150     <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;
+<a name="l00151"></a>00151 
+<a name="l00152"></a><a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">00152</a>     <span class="keyword">enum</span> <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> { TimeDomain, FrequencyDomain };
+<a name="l00153"></a>00153     
+<a name="l00164"></a>00164     <span class="keyword">virtual</span> InputDomain getInputDomain() <span class="keyword">const</span> = 0;
+<a name="l00165"></a>00165 
+<a name="l00174"></a><a class="code" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">00174</a>     <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> getPreferredBlockSize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 0; }
+<a name="l00175"></a>00175 
+<a name="l00189"></a><a class="code" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">00189</a>     <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> getPreferredStepSize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 0; }
+<a name="l00190"></a>00190 
+<a name="l00194"></a><a class="code" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">00194</a>     <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> getMinChannelCount()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 1; }
+<a name="l00195"></a>00195 
+<a name="l00199"></a><a class="code" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">00199</a>     <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> getMaxChannelCount()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 1; }
+<a name="l00200"></a>00200 
+<a name="l00201"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">00201</a>     <span class="keyword">struct </span><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a>
+<a name="l00202"></a>00202     {
+<a name="l00209"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b">00209</a>         std::string identifier;
+<a name="l00210"></a>00210 
+<a name="l00215"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87">00215</a>         std::string name;
+<a name="l00216"></a>00216 
+<a name="l00222"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1">00222</a>         std::string description;
+<a name="l00223"></a>00223 
+<a name="l00227"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4">00227</a>         std::string unit;
+<a name="l00228"></a>00228 
+<a name="l00234"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f0e577e1a256ff6eed6ea42133fec77d">00234</a>         <span class="keywordtype">bool</span> hasFixedBinCount;
+<a name="l00235"></a>00235 
+<a name="l00242"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc">00242</a>         <span class="keywordtype">size_t</span> binCount;
+<a name="l00243"></a>00243 
+<a name="l00248"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#31d9b79e2d8241344f551a22fcb5c8c7">00248</a>         std::vector&lt;std::string&gt; binNames;
+<a name="l00249"></a>00249 
+<a name="l00255"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e9ccb65f99f477096b65dd031f4c5e31">00255</a>         <span class="keywordtype">bool</span> hasKnownExtents;
+<a name="l00256"></a>00256 
+<a name="l00261"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#c9f5924c0be7571bba8e7ae7e7a921f4">00261</a>         <span class="keywordtype">float</span> minValue;
+<a name="l00262"></a>00262 
+<a name="l00267"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#907b4e8fbb48a46ac5a05f880d72719f">00267</a>         <span class="keywordtype">float</span> maxValue;
+<a name="l00268"></a>00268 
+<a name="l00273"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1b4858928d23bfd7d5bc557c82a83fb4">00273</a>         <span class="keywordtype">bool</span> isQuantized;
+<a name="l00274"></a>00274 
+<a name="l00280"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#3bed37153067b625b95acb40b60dbf0b">00280</a>         <span class="keywordtype">float</span> quantizeStep;
+<a name="l00281"></a>00281 
+<a name="l00282"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c">00282</a>         <span class="keyword">enum</span> <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c">SampleType</a> {
+<a name="l00283"></a>00283 
+<a name="l00285"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca">00285</a>             OneSamplePerStep,
+<a name="l00286"></a>00286 
+<a name="l00288"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c4c74bd2fc96dfe2815623f94b40e5629">00288</a>             FixedSampleRate,
+<a name="l00289"></a>00289 
+<a name="l00291"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e">00291</a>             VariableSampleRate
+<a name="l00292"></a>00292         };
+<a name="l00293"></a>00293 
+<a name="l00297"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d">00297</a>         <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c">SampleType</a> sampleType;
+<a name="l00298"></a>00298 
+<a name="l00309"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#dd0cbbdfa9c91764037c39365b1d42af">00309</a>         <span class="keywordtype">float</span> sampleRate;
+<a name="l00310"></a>00310 
+<a name="l00315"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b0d7cc6ab19e53b5bd12ee234f549ea3">00315</a>         <span class="keywordtype">bool</span> hasDuration;
+<a name="l00316"></a>00316 
+<a name="l00317"></a><a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1ebf91cc3f60e4cbba818c10591cd344">00317</a>         <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a>() : <span class="comment">// defaults for mandatory non-class-type members</span>
+<a name="l00318"></a>00318             hasFixedBinCount(false), hasKnownExtents(false), isQuantized(false),
+<a name="l00319"></a>00319             sampleType(OneSamplePerStep), hasDuration(false) { }
+<a name="l00320"></a>00320     };
+<a name="l00321"></a>00321 
+<a name="l00322"></a><a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">00322</a>     <span class="keyword">typedef</span> std::vector&lt;OutputDescriptor&gt; OutputList;
+<a name="l00323"></a>00323 
+<a name="l00329"></a>00329     <span class="keyword">virtual</span> OutputList getOutputDescriptors() <span class="keyword">const</span> = 0;
+<a name="l00330"></a>00330 
+<a name="l00331"></a><a class="code" href="structVamp_1_1Plugin_1_1Feature.html">00331</a>     <span class="keyword">struct </span><a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a>
+<a name="l00332"></a>00332     {
+<a name="l00339"></a><a class="code" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b">00339</a>         <span class="keywordtype">bool</span> hasTimestamp;
+<a name="l00340"></a>00340 
+<a name="l00347"></a><a class="code" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7">00347</a>         <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp;
+<a name="l00348"></a>00348 
+<a name="l00355"></a><a class="code" href="structVamp_1_1Plugin_1_1Feature.html#33686757bd4481c72494122e9bfb9fba">00355</a>         <span class="keywordtype">bool</span> hasDuration;
+<a name="l00356"></a>00356 
+<a name="l00362"></a><a class="code" href="structVamp_1_1Plugin_1_1Feature.html#f687c0a7fe041757e922ec296862b115">00362</a>         <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> duration;
+<a name="l00363"></a>00363         
+<a name="l00369"></a><a class="code" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71">00369</a>         std::vector&lt;float&gt; values;
+<a name="l00370"></a>00370 
+<a name="l00374"></a><a class="code" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036">00374</a>         std::string label;
+<a name="l00375"></a>00375 
+<a name="l00376"></a><a class="code" href="structVamp_1_1Plugin_1_1Feature.html#cd4b4cd0d2c31512f4a5df50f8f7a7b8">00376</a>         <a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a>() : <span class="comment">// defaults for mandatory non-class-type members</span>
+<a name="l00377"></a>00377             hasTimestamp(false), hasDuration(false) { }
+<a name="l00378"></a>00378     };
+<a name="l00379"></a>00379 
+<a name="l00380"></a><a class="code" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">00380</a>     <span class="keyword">typedef</span> std::vector&lt;Feature&gt; FeatureList;
+<a name="l00381"></a>00381 
+<a name="l00382"></a><a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">00382</a>     <span class="keyword">typedef</span> std::map&lt;int, FeatureList&gt; FeatureSet; <span class="comment">// key is output no</span>
+<a name="l00383"></a>00383 
+<a name="l00411"></a>00411     <span class="keyword">virtual</span> FeatureSet process(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
+<a name="l00412"></a>00412                                <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> timestamp) = 0;
+<a name="l00413"></a>00413 
+<a name="l00418"></a>00418     <span class="keyword">virtual</span> FeatureSet getRemainingFeatures() = 0;
+<a name="l00419"></a>00419 
+<a name="l00425"></a><a class="code" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">00425</a>     <span class="keyword">virtual</span> std::string getType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="stringliteral">"Feature Extraction Plugin"</span>; }
+<a name="l00426"></a>00426 
+<a name="l00427"></a>00427 <span class="keyword">protected</span>:
+<a name="l00428"></a><a class="code" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">00428</a>     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a>(<span class="keywordtype">float</span> inputSampleRate) :
+<a name="l00429"></a>00429         m_inputSampleRate(inputSampleRate) { }
+<a name="l00430"></a>00430 
+<a name="l00431"></a><a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">00431</a>     <span class="keywordtype">float</span> m_inputSampleRate;
+<a name="l00432"></a>00432 };
+<a name="l00433"></a>00433 
+<a name="l00434"></a>00434 }
+<a name="l00435"></a>00435 
+<a name="l00436"></a>00436 <a class="code" href="plugguard_8h.html#c879bb1077ecc6132ea3581ef9033753">_VAMP_SDK_PLUGSPACE_END</a>(Plugin.h)
+<a name="l00437"></a>00437 
+<a name="l00438"></a>00438 <span class="preprocessor">#endif</span>
+<a name="l00439"></a>00439 <span class="preprocessor"></span>
+<a name="l00440"></a>00440 
+<a name="l00441"></a>00441 
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-sdk_2Plugin_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,45 @@
+<!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: Plugin.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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-sdk/Plugin.h File Reference</h1>
+<p>
+
+<p>
+<a href="vamp-sdk_2Plugin_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>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html">Vamp</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> is a base class for plugin instance classes that provide feature extraction from audio or related data.  <a href="classVamp_1_1Plugin.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Vamp::Plugin::Feature</a></td></tr>
+
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-sdk_2RealTime_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,170 @@
+<!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: RealTime.h Source File</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-sdk/RealTime.h</h1><a href="vamp-sdk_2RealTime_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/*</span>
+<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
+<a name="l00005"></a>00005 <span class="comment"></span>
+<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="comment">/*</span>
+<a name="l00038"></a>00038 <span class="comment">   This is a modified version of a source file from the </span>
+<a name="l00039"></a>00039 <span class="comment">   Rosegarden MIDI and audio sequencer and notation editor.</span>
+<a name="l00040"></a>00040 <span class="comment">   This file copyright 2000-2006 Chris Cannam.</span>
+<a name="l00041"></a>00041 <span class="comment">   Relicensed by the author as detailed above.</span>
+<a name="l00042"></a>00042 <span class="comment">*/</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="preprocessor">#ifndef _VAMP_REAL_TIME_H_</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_REAL_TIME_H_</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span>
+<a name="l00047"></a>00047 <span class="preprocessor">#include &lt;iostream&gt;</span>
+<a name="l00048"></a>00048 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050 <span class="preprocessor">#ifndef _WIN32</span>
+<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="keyword">struct </span>timeval;
+<a name="l00052"></a>00052 <span class="preprocessor">#endif</span>
+<a name="l00053"></a>00053 <span class="preprocessor"></span>
+<a name="l00054"></a>00054 <span class="preprocessor">#include "<a class="code" href="plugguard_8h.html">plugguard.h</a>"</span>
+<a name="l00055"></a>00055 <a class="code" href="plugguard_8h.html#1a2724ea453971288d3218e4eab3072c">_VAMP_SDK_PLUGSPACE_BEGIN</a>(RealTime.h)
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057 namespace Vamp {
+<a name="l00058"></a>00058 
+<a name="l00066"></a><a class="code" href="structVamp_1_1RealTime.html">00066</a> <span class="keyword">struct </span><a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>
+<a name="l00067"></a>00067 {
+<a name="l00068"></a><a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">00068</a>     <span class="keywordtype">int</span> sec;
+<a name="l00069"></a><a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">00069</a>     <span class="keywordtype">int</span> nsec;
+<a name="l00070"></a>00070 
+<a name="l00071"></a><a class="code" href="structVamp_1_1RealTime.html#ace9e2c60af62273e45ccd98d623914c">00071</a>     <span class="keywordtype">int</span> usec()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> nsec / 1000; }
+<a name="l00072"></a><a class="code" href="structVamp_1_1RealTime.html#76e22815db51ae180c38021110da9947">00072</a>     <span class="keywordtype">int</span> msec()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> nsec / 1000000; }
+<a name="l00073"></a>00073 
+<a name="l00074"></a><a class="code" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">00074</a>     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>(): sec(0), nsec(0) {}
+<a name="l00075"></a>00075     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>(<span class="keywordtype">int</span> s, <span class="keywordtype">int</span> n);
+<a name="l00076"></a>00076 
+<a name="l00077"></a><a class="code" href="structVamp_1_1RealTime.html#8f4dbd8ef24a0ec6a77dce67fff5434e">00077</a>     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r) :
+<a name="l00078"></a>00078         sec(r.sec), nsec(r.nsec) { }
+<a name="l00079"></a>00079 
+<a name="l00080"></a>00080     <span class="keyword">static</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> fromSeconds(<span class="keywordtype">double</span> sec);
+<a name="l00081"></a>00081     <span class="keyword">static</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> fromMilliseconds(<span class="keywordtype">int</span> msec);
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083 <span class="preprocessor">#ifndef _WIN32</span>
+<a name="l00084"></a>00084 <span class="preprocessor"></span>    <span class="keyword">static</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> fromTimeval(<span class="keyword">const</span> <span class="keyword">struct</span> timeval &amp;);
+<a name="l00085"></a>00085 <span class="preprocessor">#endif</span>
+<a name="l00086"></a>00086 <span class="preprocessor"></span>
+<a name="l00087"></a><a class="code" href="structVamp_1_1RealTime.html#db82f838804a9a3ad49988de5944d090">00087</a>     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;operator=(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r) {
+<a name="l00088"></a>00088         sec = r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>; nsec = r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>; <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00089"></a>00089     }
+<a name="l00090"></a>00090 
+<a name="l00091"></a><a class="code" href="structVamp_1_1RealTime.html#6b74748d1eb4c3c751e7a12aefae0bde">00091</a>     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> operator+(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
+<a name="l00092"></a>00092         <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>(sec + r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>, nsec + r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>);
+<a name="l00093"></a>00093     }
+<a name="l00094"></a><a class="code" href="structVamp_1_1RealTime.html#f0360b5b0d23a464025a6823912c6291">00094</a>     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> operator-(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
+<a name="l00095"></a>00095         <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>(sec - r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>, nsec - r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>);
+<a name="l00096"></a>00096     }
+<a name="l00097"></a><a class="code" href="structVamp_1_1RealTime.html#f62915355c482f2e1611a52a7f17f5ed">00097</a>     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> operator-()<span class="keyword"> const </span>{
+<a name="l00098"></a>00098         <span class="keywordflow">return</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a>(-sec, -nsec);
+<a name="l00099"></a>00099     }
+<a name="l00100"></a>00100 
+<a name="l00101"></a><a class="code" href="structVamp_1_1RealTime.html#78e378a5dd0137a6514dca18edda6f9a">00101</a>     <span class="keywordtype">bool</span> operator &lt;(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
+<a name="l00102"></a>00102         <span class="keywordflow">if</span> (sec == r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>) <span class="keywordflow">return</span> nsec &lt; r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>;
+<a name="l00103"></a>00103         <span class="keywordflow">else</span> <span class="keywordflow">return</span> sec &lt; r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>;
+<a name="l00104"></a>00104     }
+<a name="l00105"></a>00105 
+<a name="l00106"></a><a class="code" href="structVamp_1_1RealTime.html#6f0aced679e2f97133ed63c688b335e4">00106</a>     <span class="keywordtype">bool</span> operator &gt;(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
+<a name="l00107"></a>00107         <span class="keywordflow">if</span> (sec == r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>) <span class="keywordflow">return</span> nsec &gt; r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>;
+<a name="l00108"></a>00108         <span class="keywordflow">else</span> <span class="keywordflow">return</span> sec &gt; r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>;
+<a name="l00109"></a>00109     }
+<a name="l00110"></a>00110 
+<a name="l00111"></a><a class="code" href="structVamp_1_1RealTime.html#bc5f06b5b9973012cb7453192df3ea5e">00111</a>     <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
+<a name="l00112"></a>00112         <span class="keywordflow">return</span> (sec == r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a> &amp;&amp; nsec == r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>);
+<a name="l00113"></a>00113     }
+<a name="l00114"></a>00114  
+<a name="l00115"></a><a class="code" href="structVamp_1_1RealTime.html#e9b0ea7c217163d5327b1a2a0662a90b">00115</a>     <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
+<a name="l00116"></a>00116         <span class="keywordflow">return</span> !(r == *<span class="keyword">this</span>);
+<a name="l00117"></a>00117     }
+<a name="l00118"></a>00118  
+<a name="l00119"></a><a class="code" href="structVamp_1_1RealTime.html#5cb785a410e3a91ed3092b7bba22afc3">00119</a>     <span class="keywordtype">bool</span> operator&gt;=(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
+<a name="l00120"></a>00120         <span class="keywordflow">if</span> (sec == r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>) <span class="keywordflow">return</span> nsec &gt;= r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>;
+<a name="l00121"></a>00121         <span class="keywordflow">else</span> <span class="keywordflow">return</span> sec &gt;= r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>;
+<a name="l00122"></a>00122     }
+<a name="l00123"></a>00123 
+<a name="l00124"></a><a class="code" href="structVamp_1_1RealTime.html#cf4278eec678c558d62bbda6bc1da44e">00124</a>     <span class="keywordtype">bool</span> operator&lt;=(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r)<span class="keyword"> const </span>{
+<a name="l00125"></a>00125         <span class="keywordflow">if</span> (sec == r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>) <span class="keywordflow">return</span> nsec &lt;= r.<a class="code" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">nsec</a>;
+<a name="l00126"></a>00126         <span class="keywordflow">else</span> <span class="keywordflow">return</span> sec &lt;= r.<a class="code" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">sec</a>;
+<a name="l00127"></a>00127     }
+<a name="l00128"></a>00128 
+<a name="l00129"></a>00129     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> operator/(<span class="keywordtype">int</span> d) <span class="keyword">const</span>;
+<a name="l00130"></a>00130 
+<a name="l00134"></a>00134     <span class="keywordtype">double</span> operator/(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r) <span class="keyword">const</span>;
+<a name="l00135"></a>00135 
+<a name="l00140"></a>00140     std::string toString() <span class="keyword">const</span>;
+<a name="l00141"></a>00141 
+<a name="l00146"></a>00146     std::string toText(<span class="keywordtype">bool</span> fixedDp = <span class="keyword">false</span>) <span class="keyword">const</span>;
+<a name="l00147"></a>00147 
+<a name="l00151"></a>00151     <span class="keyword">static</span> <span class="keywordtype">long</span> realTime2Frame(<span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;r, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate);
+<a name="l00152"></a>00152 
+<a name="l00156"></a>00156     <span class="keyword">static</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> frame2RealTime(<span class="keywordtype">long</span> frame, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sampleRate);
+<a name="l00157"></a>00157 
+<a name="l00158"></a><a class="code" href="structVamp_1_1RealTime.html#be453371597710148b0fd19bb452f8a9">00158</a>     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> zeroTime;
+<a name="l00159"></a>00159 };
+<a name="l00160"></a>00160 
+<a name="l00161"></a>00161 std::ostream &amp;<a class="code" href="namespaceVamp.html#85842d554b6abf7bf9ff648b70f39fef">operator&lt;&lt;</a>(std::ostream &amp;out, <span class="keyword">const</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> &amp;rt);
+<a name="l00162"></a>00162 
+<a name="l00163"></a>00163 }
+<a name="l00164"></a>00164 
+<a name="l00165"></a>00165 <a class="code" href="plugguard_8h.html#c879bb1077ecc6132ea3581ef9033753">_VAMP_SDK_PLUGSPACE_END</a>(RealTime.h)
+<a name="l00166"></a>00166     
+<a name="l00167"></a>00167 <span class="preprocessor">#endif</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-sdk_2RealTime_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,44 @@
+<!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: RealTime.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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-sdk/RealTime.h File Reference</h1>
+<p>
+
+<p>
+<a href="vamp-sdk_2RealTime_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>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html">Vamp</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html">Vamp::RealTime</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> represents time values to nanosecond precision with accurate arithmetic and frame-rate conversion functions.  <a href="structVamp_1_1RealTime.html#_details">More...</a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::ostream &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceVamp.html#85842d554b6abf7bf9ff648b70f39fef">Vamp::operator&lt;&lt;</a> (std::ostream &amp;out, const RealTime &amp;rt)</td></tr>
+
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-sdk_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,73 @@
+<!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-sdk.h Source File</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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-sdk.h</h1><a href="vamp-sdk_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="comment">/*</span>
+<a name="l00004"></a>00004 <span class="comment">    Vamp</span>
+<a name="l00005"></a>00005 <span class="comment"></span>
+<a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
+<a name="l00007"></a>00007 <span class="comment"></span>
+<a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037 <span class="preprocessor">#ifndef _VAMP_SDK_SINGLE_INCLUDE_H_</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_SDK_SINGLE_INCLUDE_H_</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "PluginBase.h"</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include "Plugin.h"</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include "RealTime.h"</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="preprocessor">#endif</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span>
+<a name="l00046"></a>00046 
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-sdk_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -0,0 +1,34 @@
+<!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-sdk.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.6 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&nbsp;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_5b77fce4b90561041d958141b45c7c55.html">vamp-sdk</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-sdk.h File Reference</h1>
+<p>
+
+<p>
+<a href="vamp-sdk_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
+</body>
+</html>
--- a/code-doc/vamp-simple-host_8cpp-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/vamp-simple-host_8cpp-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -18,7 +18,7 @@
   <div class="navpath"><a class="el" href="dir_dc0199af6955c245f7b5a687135670df.html">host</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>vamp-simple-host.cpp</h1><a href="vamp-simple-host_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -27,613 +27,814 @@
 <a name="l00006"></a>00006 <span class="comment">    An API for audio analysis and feature extraction plugins.</span>
 <a name="l00007"></a>00007 <span class="comment"></span>
 <a name="l00008"></a>00008 <span class="comment">    Centre for Digital Music, Queen Mary, University of London.</span>
-<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam.</span>
-<a name="l00010"></a>00010 <span class="comment">    FFT code from Don Cross's public domain FFT implementation.</span>
-<a name="l00011"></a>00011 <span class="comment">  </span>
-<a name="l00012"></a>00012 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
-<a name="l00013"></a>00013 <span class="comment">    obtaining a copy of this software and associated documentation</span>
-<a name="l00014"></a>00014 <span class="comment">    files (the "Software"), to deal in the Software without</span>
-<a name="l00015"></a>00015 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
-<a name="l00016"></a>00016 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
-<a name="l00017"></a>00017 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
-<a name="l00018"></a>00018 <span class="comment">    furnished to do so, subject to the following conditions:</span>
-<a name="l00019"></a>00019 <span class="comment"></span>
-<a name="l00020"></a>00020 <span class="comment">    The above copyright notice and this permission notice shall be</span>
-<a name="l00021"></a>00021 <span class="comment">    included in all copies or substantial portions of the Software.</span>
-<a name="l00022"></a>00022 <span class="comment"></span>
-<a name="l00023"></a>00023 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
-<a name="l00024"></a>00024 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
-<a name="l00025"></a>00025 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
-<a name="l00026"></a>00026 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
-<a name="l00027"></a>00027 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
-<a name="l00028"></a>00028 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
-<a name="l00029"></a>00029 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
-<a name="l00030"></a>00030 <span class="comment"></span>
-<a name="l00031"></a>00031 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
-<a name="l00032"></a>00032 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
-<a name="l00033"></a>00033 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
-<a name="l00034"></a>00034 <span class="comment">    use or other dealings in this Software without prior written</span>
-<a name="l00035"></a>00035 <span class="comment">    authorization.</span>
-<a name="l00036"></a>00036 <span class="comment">*/</span>
+<a name="l00009"></a>00009 <span class="comment">    Copyright 2006 Chris Cannam, copyright 2007-2008 QMUL.</span>
+<a name="l00010"></a>00010 <span class="comment">  </span>
+<a name="l00011"></a>00011 <span class="comment">    Permission is hereby granted, free of charge, to any person</span>
+<a name="l00012"></a>00012 <span class="comment">    obtaining a copy of this software and associated documentation</span>
+<a name="l00013"></a>00013 <span class="comment">    files (the "Software"), to deal in the Software without</span>
+<a name="l00014"></a>00014 <span class="comment">    restriction, including without limitation the rights to use, copy,</span>
+<a name="l00015"></a>00015 <span class="comment">    modify, merge, publish, distribute, sublicense, and/or sell copies</span>
+<a name="l00016"></a>00016 <span class="comment">    of the Software, and to permit persons to whom the Software is</span>
+<a name="l00017"></a>00017 <span class="comment">    furnished to do so, subject to the following conditions:</span>
+<a name="l00018"></a>00018 <span class="comment"></span>
+<a name="l00019"></a>00019 <span class="comment">    The above copyright notice and this permission notice shall be</span>
+<a name="l00020"></a>00020 <span class="comment">    included in all copies or substantial portions of the Software.</span>
+<a name="l00021"></a>00021 <span class="comment"></span>
+<a name="l00022"></a>00022 <span class="comment">    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span>
+<a name="l00023"></a>00023 <span class="comment">    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span>
+<a name="l00024"></a>00024 <span class="comment">    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span>
+<a name="l00025"></a>00025 <span class="comment">    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR</span>
+<a name="l00026"></a>00026 <span class="comment">    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF</span>
+<a name="l00027"></a>00027 <span class="comment">    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION</span>
+<a name="l00028"></a>00028 <span class="comment">    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
+<a name="l00029"></a>00029 <span class="comment"></span>
+<a name="l00030"></a>00030 <span class="comment">    Except as contained in this notice, the names of the Centre for</span>
+<a name="l00031"></a>00031 <span class="comment">    Digital Music; Queen Mary, University of London; and Chris Cannam</span>
+<a name="l00032"></a>00032 <span class="comment">    shall not be used in advertising or otherwise to promote the sale,</span>
+<a name="l00033"></a>00033 <span class="comment">    use or other dealings in this Software without prior written</span>
+<a name="l00034"></a>00034 <span class="comment">    authorization.</span>
+<a name="l00035"></a>00035 <span class="comment">*/</span>
+<a name="l00036"></a>00036 
 <a name="l00037"></a>00037 
-<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="PluginHostAdapter_8h.html">vamp-sdk/PluginHostAdapter.h</a>"</span>
-<a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="PluginChannelAdapter_8h.html">vamp-sdk/hostext/PluginChannelAdapter.h</a>"</span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="PluginInputDomainAdapter_8h.html">vamp-sdk/hostext/PluginInputDomainAdapter.h</a>"</span>
-<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="PluginLoader_8h.html">vamp-sdk/hostext/PluginLoader.h</a>"</span>
-<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="vamp_8h.html">vamp/vamp.h</a>"</span>
-<a name="l00043"></a>00043 
-<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;iostream&gt;</span>
-<a name="l00045"></a>00045 <span class="preprocessor">#include &lt;fstream&gt;</span>
-<a name="l00046"></a>00046 <span class="preprocessor">#include &lt;set&gt;</span>
-<a name="l00047"></a>00047 <span class="preprocessor">#include &lt;sndfile.h&gt;</span>
+<a name="l00038"></a>00038 <span class="comment">/*</span>
+<a name="l00039"></a>00039 <span class="comment"> * This "simple" Vamp plugin host is no longer as simple as it was; it</span>
+<a name="l00040"></a>00040 <span class="comment"> * now has a lot of options and includes a lot of code to handle the</span>
+<a name="l00041"></a>00041 <span class="comment"> * various useful listing modes it supports.</span>
+<a name="l00042"></a>00042 <span class="comment"> *</span>
+<a name="l00043"></a>00043 <span class="comment"> * However, the runPlugin function still contains a reasonable</span>
+<a name="l00044"></a>00044 <span class="comment"> * implementation of a fairly generic Vamp plugin host capable of</span>
+<a name="l00045"></a>00045 <span class="comment"> * evaluating a given output on a given plugin for a sound file read</span>
+<a name="l00046"></a>00046 <span class="comment"> * via libsndfile.</span>
+<a name="l00047"></a>00047 <span class="comment"> */</span>
 <a name="l00048"></a>00048 
-<a name="l00049"></a>00049 <span class="preprocessor">#include &lt;cstring&gt;</span>
-<a name="l00050"></a>00050 <span class="preprocessor">#include &lt;cstdlib&gt;</span>
-<a name="l00051"></a>00051 
-<a name="l00052"></a>00052 <span class="preprocessor">#include "<a class="code" href="system_8h.html">system.h</a>"</span>
-<a name="l00053"></a>00053 
-<a name="l00054"></a>00054 <span class="preprocessor">#include &lt;cmath&gt;</span>
-<a name="l00055"></a>00055 
-<a name="l00056"></a>00056 <span class="keyword">using namespace </span>std;
+<a name="l00049"></a>00049 <span class="preprocessor">#include &lt;<a class="code" href="PluginHostAdapter_8h.html">vamp-hostsdk/PluginHostAdapter.h</a>&gt;</span>
+<a name="l00050"></a>00050 <span class="preprocessor">#include &lt;<a class="code" href="PluginInputDomainAdapter_8h.html">vamp-hostsdk/PluginInputDomainAdapter.h</a>&gt;</span>
+<a name="l00051"></a>00051 <span class="preprocessor">#include &lt;<a class="code" href="PluginLoader_8h.html">vamp-hostsdk/PluginLoader.h</a>&gt;</span>
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053 <span class="preprocessor">#include &lt;iostream&gt;</span>
+<a name="l00054"></a>00054 <span class="preprocessor">#include &lt;fstream&gt;</span>
+<a name="l00055"></a>00055 <span class="preprocessor">#include &lt;set&gt;</span>
+<a name="l00056"></a>00056 <span class="preprocessor">#include &lt;sndfile.h&gt;</span>
 <a name="l00057"></a>00057 
-<a name="l00058"></a>00058 <span class="keyword">using</span> <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a>;
-<a name="l00059"></a>00059 <span class="keyword">using</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">Vamp::PluginHostAdapter</a>;
-<a name="l00060"></a>00060 <span class="keyword">using</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">Vamp::RealTime</a>;
-<a name="l00061"></a>00061 <span class="keyword">using</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">Vamp::HostExt::PluginLoader</a>;
+<a name="l00058"></a>00058 <span class="preprocessor">#include &lt;cstring&gt;</span>
+<a name="l00059"></a>00059 <span class="preprocessor">#include &lt;cstdlib&gt;</span>
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061 <span class="preprocessor">#include "<a class="code" href="system_8h.html">system.h</a>"</span>
 <a name="l00062"></a>00062 
-<a name="l00063"></a><a class="code" href="vamp-simple-host_8cpp.html#a8bc193818940a8954ef0e0e5a8e16d6">00063</a> <span class="preprocessor">#define HOST_VERSION "1.1"</span>
-<a name="l00064"></a>00064 <span class="preprocessor"></span>
-<a name="l00065"></a><a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b313">00065</a> <span class="keyword">enum</span> <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b313">Verbosity</a> {
-<a name="l00066"></a><a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3134cf6a0dfdb6864356feab9d9ca230d16">00066</a>     <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3134cf6a0dfdb6864356feab9d9ca230d16">PluginIds</a>,
-<a name="l00067"></a><a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e">00067</a>     <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e">PluginOutputIds</a>,
-<a name="l00068"></a><a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">00068</a>     <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a>
-<a name="l00069"></a>00069 };
-<a name="l00070"></a>00070 
-<a name="l00071"></a>00071 <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#81f8bc89ed9194159bfb1f2b4d7a7ac4">printFeatures</a>(<span class="keywordtype">int</span>, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>, Plugin::FeatureSet, ofstream *, <span class="keywordtype">bool</span> frames);
-<a name="l00072"></a>00072 <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#e610372882497afdeaf180a7e53eb00b">transformInput</a>(<span class="keywordtype">float</span> *, <span class="keywordtype">size_t</span>);
-<a name="l00073"></a>00073 <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#b40a86a032d0cf473d15fed3616ccc57">fft</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>, <span class="keywordtype">bool</span>, <span class="keywordtype">double</span> *, <span class="keywordtype">double</span> *, <span class="keywordtype">double</span> *, <span class="keywordtype">double</span> *);
-<a name="l00074"></a>00074 <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#4767f8c142ee0b61ba414df1b0376a01">printPluginPath</a>(<span class="keywordtype">bool</span> verbose);
-<a name="l00075"></a>00075 <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#f771864c41f23e5755ed99e8ac6609a5">printPluginCategoryList</a>();
-<a name="l00076"></a>00076 <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">enumeratePlugins</a>(<a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b313">Verbosity</a>);
-<a name="l00077"></a>00077 <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#4d02c3d9ebe7bedb3a4c3a116479e334">listPluginsInLibrary</a>(<span class="keywordtype">string</span> soname);
-<a name="l00078"></a>00078 <span class="keywordtype">int</span> <a class="code" href="vamp-simple-host_8cpp.html#54e0185f4b6ff507cb42c29a04f76397">runPlugin</a>(<span class="keywordtype">string</span> myname, <span class="keywordtype">string</span> soname, <span class="keywordtype">string</span> <span class="keywordtype">id</span>, <span class="keywordtype">string</span> output,
-<a name="l00079"></a>00079               <span class="keywordtype">int</span> outputNo, <span class="keywordtype">string</span> inputFile, <span class="keywordtype">string</span> outfilename, <span class="keywordtype">bool</span> frames);
-<a name="l00080"></a>00080 
-<a name="l00081"></a><a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">00081</a> <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name)
-<a name="l00082"></a>00082 {
-<a name="l00083"></a>00083     cerr &lt;&lt; <span class="stringliteral">"\n"</span>
-<a name="l00084"></a>00084          &lt;&lt; name &lt;&lt; <span class="stringliteral">": A simple Vamp plugin host.\n\n"</span>
-<a name="l00085"></a>00085         <span class="stringliteral">"Centre for Digital Music, Queen Mary, University of London.\n"</span>
-<a name="l00086"></a>00086         <span class="stringliteral">"Copyright 2006-2007 Chris Cannam and QMUL.\n"</span>
-<a name="l00087"></a>00087         <span class="stringliteral">"Freely redistributable; published under a BSD-style license.\n\n"</span>
-<a name="l00088"></a>00088         <span class="stringliteral">"Usage:\n\n"</span>
-<a name="l00089"></a>00089         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" [-s] pluginlibrary[."</span> &lt;&lt; <a class="code" href="PluginLoader_8cpp.html#1efbc9bb9a9f2837d3f7386af8607abf">PLUGIN_SUFFIX</a> &lt;&lt; <span class="stringliteral">"]:plugin[:output] file.wav [-o out.txt]\n"</span>
-<a name="l00090"></a>00090         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" [-s] pluginlibrary[."</span> &lt;&lt; <a class="code" href="PluginLoader_8cpp.html#1efbc9bb9a9f2837d3f7386af8607abf">PLUGIN_SUFFIX</a> &lt;&lt; <span class="stringliteral">"]:plugin file.wav [outputno] [-o out.txt]\n\n"</span>
-<a name="l00091"></a>00091         <span class="stringliteral">"    -- Load plugin id \"plugin\" from \"pluginlibrary\" and run it on the\n"</span>
-<a name="l00092"></a>00092         <span class="stringliteral">"       audio data in \"file.wav\", retrieving the named \"output\", or output\n"</span>
-<a name="l00093"></a>00093         <span class="stringliteral">"       number \"outputno\" (the first output by default) and dumping it to\n"</span>
-<a name="l00094"></a>00094         <span class="stringliteral">"       standard output, or to \"out.txt\" if the -o option is given.\n\n"</span>
-<a name="l00095"></a>00095         <span class="stringliteral">"       \"pluginlibrary\" should be a library name, not a file path; the\n"</span>
-<a name="l00096"></a>00096         <span class="stringliteral">"       standard Vamp library search path will be used to locate it.  If\n"</span>
-<a name="l00097"></a>00097         <span class="stringliteral">"       a file path is supplied, the directory part(s) will be ignored.\n\n"</span>
-<a name="l00098"></a>00098         <span class="stringliteral">"       If the -s option is given, results will be labelled with the audio\n"</span>
-<a name="l00099"></a>00099         <span class="stringliteral">"       sample frame at which they occur. Otherwise, they will be labelled\n"</span>
-<a name="l00100"></a>00100         <span class="stringliteral">"       with time in seconds.\n\n"</span>
-<a name="l00101"></a>00101         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" -l\n\n"</span>
-<a name="l00102"></a>00102         <span class="stringliteral">"    -- List the plugin libraries and Vamp plugins in the library search path\n"</span>
-<a name="l00103"></a>00103         <span class="stringliteral">"       in a verbose human-readable format.\n\n"</span>
-<a name="l00104"></a>00104         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" --list-ids\n\n"</span>
-<a name="l00105"></a>00105         <span class="stringliteral">"    -- List the plugins in the search path in a terse machine-readable format,\n"</span>
-<a name="l00106"></a>00106         <span class="stringliteral">"       in the form vamp:soname:identifier.\n\n"</span>
-<a name="l00107"></a>00107         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" --list-outputs\n\n"</span>
-<a name="l00108"></a>00108         <span class="stringliteral">"    -- List the outputs for plugins in the search path in a machine-readable\n"</span>
-<a name="l00109"></a>00109         <span class="stringliteral">"       format, in the form vamp:soname:identifier:output.\n\n"</span>
-<a name="l00110"></a>00110         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" --list-by-category\n\n"</span>
-<a name="l00111"></a>00111         <span class="stringliteral">"    -- List the plugins as a plugin index by category, in a machine-readable\n"</span>
-<a name="l00112"></a>00112         <span class="stringliteral">"       format.  The format may change in future releases.\n\n"</span>
-<a name="l00113"></a>00113         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" -p\n\n"</span>
-<a name="l00114"></a>00114         <span class="stringliteral">"    -- Print out the Vamp library search path.\n\n"</span>
-<a name="l00115"></a>00115         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" -v\n\n"</span>
-<a name="l00116"></a>00116         <span class="stringliteral">"    -- Display version information only.\n"</span>
-<a name="l00117"></a>00117          &lt;&lt; endl;
-<a name="l00118"></a>00118     exit(2);
-<a name="l00119"></a>00119 }
-<a name="l00120"></a>00120 
-<a name="l00121"></a><a class="code" href="vamp-simple-host_8cpp.html#3c04138a5bfe5d72780bb7e82a18e627">00121</a> <span class="keywordtype">int</span> <a class="code" href="vamp-simple-host_8cpp.html#3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)
-<a name="l00122"></a>00122 {
-<a name="l00123"></a>00123     <span class="keywordtype">char</span> *scooter = argv[0];
-<a name="l00124"></a>00124     <span class="keywordtype">char</span> *name = 0;
-<a name="l00125"></a>00125     <span class="keywordflow">while</span> (scooter &amp;&amp; *scooter) {
-<a name="l00126"></a>00126         <span class="keywordflow">if</span> (*scooter == <span class="charliteral">'/'</span> || *scooter == <span class="charliteral">'\\'</span>) name = ++scooter;
-<a name="l00127"></a>00127         <span class="keywordflow">else</span> ++scooter;
-<a name="l00128"></a>00128     }
-<a name="l00129"></a>00129     <span class="keywordflow">if</span> (!name || !*name) name = argv[0];
-<a name="l00130"></a>00130     
-<a name="l00131"></a>00131     <span class="keywordflow">if</span> (argc &lt; 2) <a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(name);
-<a name="l00132"></a>00132 
-<a name="l00133"></a>00133     <span class="keywordflow">if</span> (argc == 2) {
-<a name="l00134"></a>00134 
-<a name="l00135"></a>00135         <span class="keywordflow">if</span> (!strcmp(argv[1], <span class="stringliteral">"-v"</span>)) {
+<a name="l00063"></a>00063 <span class="preprocessor">#include &lt;cmath&gt;</span>
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065 <span class="keyword">using namespace </span>std;
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067 <span class="keyword">using</span> <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a>;
+<a name="l00068"></a>00068 <span class="keyword">using</span> <a class="code" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">Vamp::PluginHostAdapter</a>;
+<a name="l00069"></a>00069 <span class="keyword">using</span> <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">Vamp::RealTime</a>;
+<a name="l00070"></a>00070 <span class="keyword">using</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">Vamp::HostExt::PluginLoader</a>;
+<a name="l00071"></a>00071 <span class="keyword">using</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">Vamp::HostExt::PluginWrapper</a>;
+<a name="l00072"></a>00072 <span class="keyword">using</span> <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">Vamp::HostExt::PluginInputDomainAdapter</a>;
+<a name="l00073"></a>00073 
+<a name="l00074"></a><a class="code" href="vamp-simple-host_8cpp.html#a8bc193818940a8954ef0e0e5a8e16d6">00074</a> <span class="preprocessor">#define HOST_VERSION "1.4"</span>
+<a name="l00075"></a>00075 <span class="preprocessor"></span>
+<a name="l00076"></a><a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b313">00076</a> <span class="keyword">enum</span> <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b313">Verbosity</a> {
+<a name="l00077"></a><a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3134cf6a0dfdb6864356feab9d9ca230d16">00077</a>     <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3134cf6a0dfdb6864356feab9d9ca230d16">PluginIds</a>,
+<a name="l00078"></a><a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e">00078</a>     <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e">PluginOutputIds</a>,
+<a name="l00079"></a><a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">00079</a>     <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a>,
+<a name="l00080"></a><a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3132624ce417628b6d40ce0973ba381c1e6">00080</a>     <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3132624ce417628b6d40ce0973ba381c1e6">PluginInformationDetailed</a>
+<a name="l00081"></a>00081 };
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083 <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#81f8bc89ed9194159bfb1f2b4d7a7ac4">printFeatures</a>(<span class="keywordtype">int</span>, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>, Plugin::FeatureSet, ofstream *, <span class="keywordtype">bool</span> frames);
+<a name="l00084"></a>00084 <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#e610372882497afdeaf180a7e53eb00b">transformInput</a>(<span class="keywordtype">float</span> *, <span class="keywordtype">size_t</span>);
+<a name="l00085"></a>00085 <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#b40a86a032d0cf473d15fed3616ccc57">fft</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>, <span class="keywordtype">bool</span>, <span class="keywordtype">double</span> *, <span class="keywordtype">double</span> *, <span class="keywordtype">double</span> *, <span class="keywordtype">double</span> *);
+<a name="l00086"></a>00086 <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#4767f8c142ee0b61ba414df1b0376a01">printPluginPath</a>(<span class="keywordtype">bool</span> verbose);
+<a name="l00087"></a>00087 <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#f771864c41f23e5755ed99e8ac6609a5">printPluginCategoryList</a>();
+<a name="l00088"></a>00088 <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">enumeratePlugins</a>(<a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b313">Verbosity</a>);
+<a name="l00089"></a>00089 <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#4d02c3d9ebe7bedb3a4c3a116479e334">listPluginsInLibrary</a>(<span class="keywordtype">string</span> soname);
+<a name="l00090"></a>00090 <span class="keywordtype">int</span> <a class="code" href="vamp-simple-host_8cpp.html#54e0185f4b6ff507cb42c29a04f76397">runPlugin</a>(<span class="keywordtype">string</span> myname, <span class="keywordtype">string</span> soname, <span class="keywordtype">string</span> <span class="keywordtype">id</span>, <span class="keywordtype">string</span> output,
+<a name="l00091"></a>00091               <span class="keywordtype">int</span> outputNo, <span class="keywordtype">string</span> inputFile, <span class="keywordtype">string</span> outfilename, <span class="keywordtype">bool</span> frames);
+<a name="l00092"></a>00092 
+<a name="l00093"></a><a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">00093</a> <span class="keywordtype">void</span> <a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name)
+<a name="l00094"></a>00094 {
+<a name="l00095"></a>00095     cerr &lt;&lt; <span class="stringliteral">"\n"</span>
+<a name="l00096"></a>00096          &lt;&lt; name &lt;&lt; <span class="stringliteral">": A command-line host for Vamp audio analysis plugins.\n\n"</span>
+<a name="l00097"></a>00097         <span class="stringliteral">"Centre for Digital Music, Queen Mary, University of London.\n"</span>
+<a name="l00098"></a>00098         <span class="stringliteral">"Copyright 2006-2008 Chris Cannam and QMUL.\n"</span>
+<a name="l00099"></a>00099         <span class="stringliteral">"Freely redistributable; published under a BSD-style license.\n\n"</span>
+<a name="l00100"></a>00100         <span class="stringliteral">"Usage:\n\n"</span>
+<a name="l00101"></a>00101         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" [-s] pluginlibrary[."</span> &lt;&lt; <a class="code" href="system_8h.html#1efbc9bb9a9f2837d3f7386af8607abf">PLUGIN_SUFFIX</a> &lt;&lt; <span class="stringliteral">"]:plugin[:output] file.wav [-o out.txt]\n"</span>
+<a name="l00102"></a>00102         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" [-s] pluginlibrary[."</span> &lt;&lt; <a class="code" href="system_8h.html#1efbc9bb9a9f2837d3f7386af8607abf">PLUGIN_SUFFIX</a> &lt;&lt; <span class="stringliteral">"]:plugin file.wav [outputno] [-o out.txt]\n\n"</span>
+<a name="l00103"></a>00103         <span class="stringliteral">"    -- Load plugin id \"plugin\" from \"pluginlibrary\" and run it on the\n"</span>
+<a name="l00104"></a>00104         <span class="stringliteral">"       audio data in \"file.wav\", retrieving the named \"output\", or output\n"</span>
+<a name="l00105"></a>00105         <span class="stringliteral">"       number \"outputno\" (the first output by default) and dumping it to\n"</span>
+<a name="l00106"></a>00106         <span class="stringliteral">"       standard output, or to \"out.txt\" if the -o option is given.\n\n"</span>
+<a name="l00107"></a>00107         <span class="stringliteral">"       \"pluginlibrary\" should be a library name, not a file path; the\n"</span>
+<a name="l00108"></a>00108         <span class="stringliteral">"       standard Vamp library search path will be used to locate it.  If\n"</span>
+<a name="l00109"></a>00109         <span class="stringliteral">"       a file path is supplied, the directory part(s) will be ignored.\n\n"</span>
+<a name="l00110"></a>00110         <span class="stringliteral">"       If the -s option is given, results will be labelled with the audio\n"</span>
+<a name="l00111"></a>00111         <span class="stringliteral">"       sample frame at which they occur. Otherwise, they will be labelled\n"</span>
+<a name="l00112"></a>00112         <span class="stringliteral">"       with time in seconds.\n\n"</span>
+<a name="l00113"></a>00113         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" -l\n"</span>
+<a name="l00114"></a>00114         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" --list\n\n"</span>
+<a name="l00115"></a>00115         <span class="stringliteral">"    -- List the plugin libraries and Vamp plugins in the library search path\n"</span>
+<a name="l00116"></a>00116         <span class="stringliteral">"       in a verbose human-readable format.\n\n"</span>
+<a name="l00117"></a>00117         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" --list-full\n\n"</span>
+<a name="l00118"></a>00118         <span class="stringliteral">"    -- List all data reported by all the Vamp plugins in the library search\n"</span>
+<a name="l00119"></a>00119         <span class="stringliteral">"       path in a very verbose human-readable format.\n\n"</span>
+<a name="l00120"></a>00120         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" --list-ids\n\n"</span>
+<a name="l00121"></a>00121         <span class="stringliteral">"    -- List the plugins in the search path in a terse machine-readable format,\n"</span>
+<a name="l00122"></a>00122         <span class="stringliteral">"       in the form vamp:soname:identifier.\n\n"</span>
+<a name="l00123"></a>00123         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" --list-outputs\n\n"</span>
+<a name="l00124"></a>00124         <span class="stringliteral">"    -- List the outputs for plugins in the search path in a machine-readable\n"</span>
+<a name="l00125"></a>00125         <span class="stringliteral">"       format, in the form vamp:soname:identifier:output.\n\n"</span>
+<a name="l00126"></a>00126         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" --list-by-category\n\n"</span>
+<a name="l00127"></a>00127         <span class="stringliteral">"    -- List the plugins as a plugin index by category, in a machine-readable\n"</span>
+<a name="l00128"></a>00128         <span class="stringliteral">"       format.  The format may change in future releases.\n\n"</span>
+<a name="l00129"></a>00129         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" -p\n\n"</span>
+<a name="l00130"></a>00130         <span class="stringliteral">"    -- Print out the Vamp library search path.\n\n"</span>
+<a name="l00131"></a>00131         <span class="stringliteral">"  "</span> &lt;&lt; name &lt;&lt; <span class="stringliteral">" -v\n\n"</span>
+<a name="l00132"></a>00132         <span class="stringliteral">"    -- Display version information only.\n"</span>
+<a name="l00133"></a>00133          &lt;&lt; endl;
+<a name="l00134"></a>00134     exit(2);
+<a name="l00135"></a>00135 }
 <a name="l00136"></a>00136 
-<a name="l00137"></a>00137             cout &lt;&lt; <span class="stringliteral">"Simple Vamp plugin host version: "</span> &lt;&lt; <a class="code" href="vamp-simple-host_8cpp.html#a8bc193818940a8954ef0e0e5a8e16d6">HOST_VERSION</a> &lt;&lt; endl
-<a name="l00138"></a>00138                  &lt;&lt; <span class="stringliteral">"Vamp API version: "</span> &lt;&lt; <a class="code" href="vamp_8h.html#6d6c8c755dbabf161f72712e0e2143c7" title="Plugin API version.">VAMP_API_VERSION</a> &lt;&lt; endl
-<a name="l00139"></a>00139                  &lt;&lt; <span class="stringliteral">"Vamp SDK version: "</span> &lt;&lt; <a class="code" href="PluginBase_8h.html#9b7a8e1ac1c91366bec5f2f33c137a2f">VAMP_SDK_VERSION</a> &lt;&lt; endl;
-<a name="l00140"></a>00140             <span class="keywordflow">return</span> 0;
-<a name="l00141"></a>00141 
-<a name="l00142"></a>00142         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(argv[1], <span class="stringliteral">"-l"</span>)) {
-<a name="l00143"></a>00143 
-<a name="l00144"></a>00144             <a class="code" href="vamp-simple-host_8cpp.html#4767f8c142ee0b61ba414df1b0376a01">printPluginPath</a>(<span class="keyword">true</span>);
-<a name="l00145"></a>00145             <a class="code" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">enumeratePlugins</a>(<a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a>);
-<a name="l00146"></a>00146             <span class="keywordflow">return</span> 0;
-<a name="l00147"></a>00147 
-<a name="l00148"></a>00148         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(argv[1], <span class="stringliteral">"-p"</span>)) {
-<a name="l00149"></a>00149 
-<a name="l00150"></a>00150             <a class="code" href="vamp-simple-host_8cpp.html#4767f8c142ee0b61ba414df1b0376a01">printPluginPath</a>(<span class="keyword">false</span>);
-<a name="l00151"></a>00151             <span class="keywordflow">return</span> 0;
+<a name="l00137"></a><a class="code" href="vamp-simple-host_8cpp.html#3c04138a5bfe5d72780bb7e82a18e627">00137</a> <span class="keywordtype">int</span> <a class="code" href="vamp-simple-host_8cpp.html#3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)
+<a name="l00138"></a>00138 {
+<a name="l00139"></a>00139     <span class="keywordtype">char</span> *scooter = argv[0];
+<a name="l00140"></a>00140     <span class="keywordtype">char</span> *name = 0;
+<a name="l00141"></a>00141     <span class="keywordflow">while</span> (scooter &amp;&amp; *scooter) {
+<a name="l00142"></a>00142         <span class="keywordflow">if</span> (*scooter == <span class="charliteral">'/'</span> || *scooter == <span class="charliteral">'\\'</span>) name = ++scooter;
+<a name="l00143"></a>00143         <span class="keywordflow">else</span> ++scooter;
+<a name="l00144"></a>00144     }
+<a name="l00145"></a>00145     <span class="keywordflow">if</span> (!name || !*name) name = argv[0];
+<a name="l00146"></a>00146     
+<a name="l00147"></a>00147     <span class="keywordflow">if</span> (argc &lt; 2) <a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(name);
+<a name="l00148"></a>00148 
+<a name="l00149"></a>00149     <span class="keywordflow">if</span> (argc == 2) {
+<a name="l00150"></a>00150 
+<a name="l00151"></a>00151         <span class="keywordflow">if</span> (!strcmp(argv[1], <span class="stringliteral">"-v"</span>)) {
 <a name="l00152"></a>00152 
-<a name="l00153"></a>00153         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(argv[1], <span class="stringliteral">"--list-ids"</span>)) {
-<a name="l00154"></a>00154 
-<a name="l00155"></a>00155             <a class="code" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">enumeratePlugins</a>(<a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3134cf6a0dfdb6864356feab9d9ca230d16">PluginIds</a>);
+<a name="l00153"></a>00153             cout &lt;&lt; <span class="stringliteral">"Simple Vamp plugin host version: "</span> &lt;&lt; <a class="code" href="vamp-simple-host_8cpp.html#a8bc193818940a8954ef0e0e5a8e16d6">HOST_VERSION</a> &lt;&lt; endl
+<a name="l00154"></a>00154                  &lt;&lt; <span class="stringliteral">"Vamp API version: "</span> &lt;&lt; <a class="code" href="vamp_8h.html#6d6c8c755dbabf161f72712e0e2143c7" title="Plugin API version.">VAMP_API_VERSION</a> &lt;&lt; endl
+<a name="l00155"></a>00155                  &lt;&lt; <span class="stringliteral">"Vamp SDK version: "</span> &lt;&lt; <a class="code" href="vamp-sdk_2PluginBase_8h.html#9b7a8e1ac1c91366bec5f2f33c137a2f">VAMP_SDK_VERSION</a> &lt;&lt; endl;
 <a name="l00156"></a>00156             <span class="keywordflow">return</span> 0;
 <a name="l00157"></a>00157 
-<a name="l00158"></a>00158         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(argv[1], <span class="stringliteral">"--list-outputs"</span>)) {
+<a name="l00158"></a>00158         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(argv[1], <span class="stringliteral">"-l"</span>) || !strcmp(argv[1], <span class="stringliteral">"--list"</span>)) {
 <a name="l00159"></a>00159 
-<a name="l00160"></a>00160             <a class="code" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">enumeratePlugins</a>(<a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e">PluginOutputIds</a>);
-<a name="l00161"></a>00161             <span class="keywordflow">return</span> 0;
-<a name="l00162"></a>00162 
-<a name="l00163"></a>00163         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(argv[1], <span class="stringliteral">"--list-by-category"</span>)) {
-<a name="l00164"></a>00164 
-<a name="l00165"></a>00165             <a class="code" href="vamp-simple-host_8cpp.html#f771864c41f23e5755ed99e8ac6609a5">printPluginCategoryList</a>();
-<a name="l00166"></a>00166             <span class="keywordflow">return</span> 0;
-<a name="l00167"></a>00167 
-<a name="l00168"></a>00168         } <span class="keywordflow">else</span> <a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(name);
-<a name="l00169"></a>00169     }
+<a name="l00160"></a>00160             <a class="code" href="vamp-simple-host_8cpp.html#4767f8c142ee0b61ba414df1b0376a01">printPluginPath</a>(<span class="keyword">true</span>);
+<a name="l00161"></a>00161             <a class="code" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">enumeratePlugins</a>(<a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a>);
+<a name="l00162"></a>00162             <span class="keywordflow">return</span> 0;
+<a name="l00163"></a>00163 
+<a name="l00164"></a>00164         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(argv[1], <span class="stringliteral">"--list-full"</span>)) {
+<a name="l00165"></a>00165 
+<a name="l00166"></a>00166             <a class="code" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">enumeratePlugins</a>(<a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3132624ce417628b6d40ce0973ba381c1e6">PluginInformationDetailed</a>);
+<a name="l00167"></a>00167             <span class="keywordflow">return</span> 0;
+<a name="l00168"></a>00168 
+<a name="l00169"></a>00169         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(argv[1], <span class="stringliteral">"-p"</span>)) {
 <a name="l00170"></a>00170 
-<a name="l00171"></a>00171     <span class="keywordflow">if</span> (argc &lt; 3) <a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(name);
-<a name="l00172"></a>00172 
-<a name="l00173"></a>00173     <span class="keywordtype">bool</span> useFrames = <span class="keyword">false</span>;
-<a name="l00174"></a>00174     
-<a name="l00175"></a>00175     <span class="keywordtype">int</span> base = 1;
-<a name="l00176"></a>00176     <span class="keywordflow">if</span> (!strcmp(argv[1], <span class="stringliteral">"-s"</span>)) {
-<a name="l00177"></a>00177         useFrames = <span class="keyword">true</span>;
-<a name="l00178"></a>00178         base = 2;
-<a name="l00179"></a>00179     }
+<a name="l00171"></a>00171             <a class="code" href="vamp-simple-host_8cpp.html#4767f8c142ee0b61ba414df1b0376a01">printPluginPath</a>(<span class="keyword">false</span>);
+<a name="l00172"></a>00172             <span class="keywordflow">return</span> 0;
+<a name="l00173"></a>00173 
+<a name="l00174"></a>00174         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(argv[1], <span class="stringliteral">"--list-ids"</span>)) {
+<a name="l00175"></a>00175 
+<a name="l00176"></a>00176             <a class="code" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">enumeratePlugins</a>(<a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3134cf6a0dfdb6864356feab9d9ca230d16">PluginIds</a>);
+<a name="l00177"></a>00177             <span class="keywordflow">return</span> 0;
+<a name="l00178"></a>00178 
+<a name="l00179"></a>00179         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(argv[1], <span class="stringliteral">"--list-outputs"</span>)) {
 <a name="l00180"></a>00180 
-<a name="l00181"></a>00181     <span class="keywordtype">string</span> soname = argv[base];
-<a name="l00182"></a>00182     <span class="keywordtype">string</span> wavname = argv[base+1];
-<a name="l00183"></a>00183     <span class="keywordtype">string</span> plugid = <span class="stringliteral">""</span>;
-<a name="l00184"></a>00184     <span class="keywordtype">string</span> output = <span class="stringliteral">""</span>;
-<a name="l00185"></a>00185     <span class="keywordtype">int</span> outputNo = -1;
-<a name="l00186"></a>00186     <span class="keywordtype">string</span> outfilename;
-<a name="l00187"></a>00187 
-<a name="l00188"></a>00188     <span class="keywordflow">if</span> (argc &gt;= base+3) {
-<a name="l00189"></a>00189 
-<a name="l00190"></a>00190         <span class="keywordtype">int</span> idx = base+2;
+<a name="l00181"></a>00181             <a class="code" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">enumeratePlugins</a>(<a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e">PluginOutputIds</a>);
+<a name="l00182"></a>00182             <span class="keywordflow">return</span> 0;
+<a name="l00183"></a>00183 
+<a name="l00184"></a>00184         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(argv[1], <span class="stringliteral">"--list-by-category"</span>)) {
+<a name="l00185"></a>00185 
+<a name="l00186"></a>00186             <a class="code" href="vamp-simple-host_8cpp.html#f771864c41f23e5755ed99e8ac6609a5">printPluginCategoryList</a>();
+<a name="l00187"></a>00187             <span class="keywordflow">return</span> 0;
+<a name="l00188"></a>00188 
+<a name="l00189"></a>00189         } <span class="keywordflow">else</span> <a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(name);
+<a name="l00190"></a>00190     }
 <a name="l00191"></a>00191 
-<a name="l00192"></a>00192         <span class="keywordflow">if</span> (isdigit(*argv[idx])) {
-<a name="l00193"></a>00193             outputNo = atoi(argv[idx++]);
-<a name="l00194"></a>00194         }
-<a name="l00195"></a>00195 
-<a name="l00196"></a>00196         <span class="keywordflow">if</span> (argc == idx + 2) {
-<a name="l00197"></a>00197             <span class="keywordflow">if</span> (!strcmp(argv[idx], <span class="stringliteral">"-o"</span>)) {
-<a name="l00198"></a>00198                 outfilename = argv[idx+1];
-<a name="l00199"></a>00199             } <span class="keywordflow">else</span> <a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(name);
-<a name="l00200"></a>00200         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (argc != idx) {
-<a name="l00201"></a>00201             (<a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(name));
-<a name="l00202"></a>00202         }
-<a name="l00203"></a>00203     }
-<a name="l00204"></a>00204 
-<a name="l00205"></a>00205     cerr &lt;&lt; endl &lt;&lt; name &lt;&lt; <span class="stringliteral">": Running..."</span> &lt;&lt; endl;
-<a name="l00206"></a>00206 
-<a name="l00207"></a>00207     cerr &lt;&lt; <span class="stringliteral">"Reading file: \""</span> &lt;&lt; wavname &lt;&lt; <span class="stringliteral">"\", writing to "</span>;
-<a name="l00208"></a>00208     <span class="keywordflow">if</span> (outfilename == <span class="stringliteral">""</span>) {
-<a name="l00209"></a>00209         cerr &lt;&lt; <span class="stringliteral">"standard output"</span> &lt;&lt; endl;
-<a name="l00210"></a>00210     } <span class="keywordflow">else</span> {
-<a name="l00211"></a>00211         cerr &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; outfilename &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
-<a name="l00212"></a>00212     }
-<a name="l00213"></a>00213 
-<a name="l00214"></a>00214     string::size_type sep = soname.find(<span class="charliteral">':'</span>);
-<a name="l00215"></a>00215 
-<a name="l00216"></a>00216     <span class="keywordflow">if</span> (sep != string::npos) {
-<a name="l00217"></a>00217         plugid = soname.substr(sep + 1);
-<a name="l00218"></a>00218         soname = soname.substr(0, sep);
-<a name="l00219"></a>00219 
-<a name="l00220"></a>00220         sep = plugid.find(<span class="charliteral">':'</span>);
-<a name="l00221"></a>00221         <span class="keywordflow">if</span> (sep != string::npos) {
-<a name="l00222"></a>00222             output = plugid.substr(sep + 1);
-<a name="l00223"></a>00223             plugid = plugid.substr(0, sep);
-<a name="l00224"></a>00224         }
-<a name="l00225"></a>00225     }
-<a name="l00226"></a>00226 
-<a name="l00227"></a>00227     <span class="keywordflow">if</span> (plugid == <span class="stringliteral">""</span>) {
-<a name="l00228"></a>00228         <a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(name);
-<a name="l00229"></a>00229     }
-<a name="l00230"></a>00230 
-<a name="l00231"></a>00231     <span class="keywordflow">if</span> (output != <span class="stringliteral">""</span> &amp;&amp; outputNo != -1) {
-<a name="l00232"></a>00232         <a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(name);
+<a name="l00192"></a>00192     <span class="keywordflow">if</span> (argc &lt; 3) <a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(name);
+<a name="l00193"></a>00193 
+<a name="l00194"></a>00194     <span class="keywordtype">bool</span> useFrames = <span class="keyword">false</span>;
+<a name="l00195"></a>00195     
+<a name="l00196"></a>00196     <span class="keywordtype">int</span> base = 1;
+<a name="l00197"></a>00197     <span class="keywordflow">if</span> (!strcmp(argv[1], <span class="stringliteral">"-s"</span>)) {
+<a name="l00198"></a>00198         useFrames = <span class="keyword">true</span>;
+<a name="l00199"></a>00199         base = 2;
+<a name="l00200"></a>00200     }
+<a name="l00201"></a>00201 
+<a name="l00202"></a>00202     <span class="keywordtype">string</span> soname = argv[base];
+<a name="l00203"></a>00203     <span class="keywordtype">string</span> wavname = argv[base+1];
+<a name="l00204"></a>00204     <span class="keywordtype">string</span> plugid = <span class="stringliteral">""</span>;
+<a name="l00205"></a>00205     <span class="keywordtype">string</span> output = <span class="stringliteral">""</span>;
+<a name="l00206"></a>00206     <span class="keywordtype">int</span> outputNo = -1;
+<a name="l00207"></a>00207     <span class="keywordtype">string</span> outfilename;
+<a name="l00208"></a>00208 
+<a name="l00209"></a>00209     <span class="keywordflow">if</span> (argc &gt;= base+3) {
+<a name="l00210"></a>00210 
+<a name="l00211"></a>00211         <span class="keywordtype">int</span> idx = base+2;
+<a name="l00212"></a>00212 
+<a name="l00213"></a>00213         <span class="keywordflow">if</span> (isdigit(*argv[idx])) {
+<a name="l00214"></a>00214             outputNo = atoi(argv[idx++]);
+<a name="l00215"></a>00215         }
+<a name="l00216"></a>00216 
+<a name="l00217"></a>00217         <span class="keywordflow">if</span> (argc == idx + 2) {
+<a name="l00218"></a>00218             <span class="keywordflow">if</span> (!strcmp(argv[idx], <span class="stringliteral">"-o"</span>)) {
+<a name="l00219"></a>00219                 outfilename = argv[idx+1];
+<a name="l00220"></a>00220             } <span class="keywordflow">else</span> <a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(name);
+<a name="l00221"></a>00221         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (argc != idx) {
+<a name="l00222"></a>00222             (<a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(name));
+<a name="l00223"></a>00223         }
+<a name="l00224"></a>00224     }
+<a name="l00225"></a>00225 
+<a name="l00226"></a>00226     cerr &lt;&lt; endl &lt;&lt; name &lt;&lt; <span class="stringliteral">": Running..."</span> &lt;&lt; endl;
+<a name="l00227"></a>00227 
+<a name="l00228"></a>00228     cerr &lt;&lt; <span class="stringliteral">"Reading file: \""</span> &lt;&lt; wavname &lt;&lt; <span class="stringliteral">"\", writing to "</span>;
+<a name="l00229"></a>00229     <span class="keywordflow">if</span> (outfilename == <span class="stringliteral">""</span>) {
+<a name="l00230"></a>00230         cerr &lt;&lt; <span class="stringliteral">"standard output"</span> &lt;&lt; endl;
+<a name="l00231"></a>00231     } <span class="keywordflow">else</span> {
+<a name="l00232"></a>00232         cerr &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; outfilename &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
 <a name="l00233"></a>00233     }
 <a name="l00234"></a>00234 
-<a name="l00235"></a>00235     <span class="keywordflow">if</span> (output == <span class="stringliteral">""</span> &amp;&amp; outputNo == -1) {
-<a name="l00236"></a>00236         outputNo = 0;
-<a name="l00237"></a>00237     }
-<a name="l00238"></a>00238 
-<a name="l00239"></a>00239     <span class="keywordflow">return</span> <a class="code" href="vamp-simple-host_8cpp.html#54e0185f4b6ff507cb42c29a04f76397">runPlugin</a>(name, soname, plugid, output, outputNo,
-<a name="l00240"></a>00240                      wavname, outfilename, useFrames);
-<a name="l00241"></a>00241 }
-<a name="l00242"></a>00242 
-<a name="l00243"></a>00243 
-<a name="l00244"></a><a class="code" href="vamp-simple-host_8cpp.html#54e0185f4b6ff507cb42c29a04f76397">00244</a> <span class="keywordtype">int</span> <a class="code" href="vamp-simple-host_8cpp.html#54e0185f4b6ff507cb42c29a04f76397">runPlugin</a>(<span class="keywordtype">string</span> myname, <span class="keywordtype">string</span> soname, <span class="keywordtype">string</span> <span class="keywordtype">id</span>,
-<a name="l00245"></a>00245               <span class="keywordtype">string</span> output, <span class="keywordtype">int</span> outputNo, <span class="keywordtype">string</span> wavname,
-<a name="l00246"></a>00246               <span class="keywordtype">string</span> outfilename, <span class="keywordtype">bool</span> useFrames)
-<a name="l00247"></a>00247 {
-<a name="l00248"></a>00248     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *loader = PluginLoader::getInstance();
-<a name="l00249"></a>00249 
-<a name="l00250"></a>00250     PluginLoader::PluginKey key = loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#cc6865d27825c100d7b6f9ed6ecf5207" title="Given a Vamp plugin library name and plugin identifier, return the corresponding...">composePluginKey</a>(soname, <span class="keywordtype">id</span>);
-<a name="l00251"></a>00251     
-<a name="l00252"></a>00252     SNDFILE *sndfile;
-<a name="l00253"></a>00253     SF_INFO sfinfo;
-<a name="l00254"></a>00254     memset(&amp;sfinfo, 0, <span class="keyword">sizeof</span>(SF_INFO));
+<a name="l00235"></a>00235     string::size_type sep = soname.find(<span class="charliteral">':'</span>);
+<a name="l00236"></a>00236 
+<a name="l00237"></a>00237     <span class="keywordflow">if</span> (sep != string::npos) {
+<a name="l00238"></a>00238         plugid = soname.substr(sep + 1);
+<a name="l00239"></a>00239         soname = soname.substr(0, sep);
+<a name="l00240"></a>00240 
+<a name="l00241"></a>00241         sep = plugid.find(<span class="charliteral">':'</span>);
+<a name="l00242"></a>00242         <span class="keywordflow">if</span> (sep != string::npos) {
+<a name="l00243"></a>00243             output = plugid.substr(sep + 1);
+<a name="l00244"></a>00244             plugid = plugid.substr(0, sep);
+<a name="l00245"></a>00245         }
+<a name="l00246"></a>00246     }
+<a name="l00247"></a>00247 
+<a name="l00248"></a>00248     <span class="keywordflow">if</span> (plugid == <span class="stringliteral">""</span>) {
+<a name="l00249"></a>00249         <a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(name);
+<a name="l00250"></a>00250     }
+<a name="l00251"></a>00251 
+<a name="l00252"></a>00252     <span class="keywordflow">if</span> (output != <span class="stringliteral">""</span> &amp;&amp; outputNo != -1) {
+<a name="l00253"></a>00253         <a class="code" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a>(name);
+<a name="l00254"></a>00254     }
 <a name="l00255"></a>00255 
-<a name="l00256"></a>00256     sndfile = sf_open(wavname.c_str(), SFM_READ, &amp;sfinfo);
-<a name="l00257"></a>00257     <span class="keywordflow">if</span> (!sndfile) {
-<a name="l00258"></a>00258         cerr &lt;&lt; myname &lt;&lt; <span class="stringliteral">": ERROR: Failed to open input file \""</span>
-<a name="l00259"></a>00259              &lt;&lt; wavname &lt;&lt; <span class="stringliteral">"\": "</span> &lt;&lt; sf_strerror(sndfile) &lt;&lt; endl;
-<a name="l00260"></a>00260         <span class="keywordflow">return</span> 1;
-<a name="l00261"></a>00261     }
-<a name="l00262"></a>00262 
-<a name="l00263"></a>00263     ofstream *out = 0;
-<a name="l00264"></a>00264     <span class="keywordflow">if</span> (outfilename != <span class="stringliteral">""</span>) {
-<a name="l00265"></a>00265         out = <span class="keyword">new</span> ofstream(outfilename.c_str(), ios::out);
-<a name="l00266"></a>00266         <span class="keywordflow">if</span> (!*out) {
-<a name="l00267"></a>00267             cerr &lt;&lt; myname &lt;&lt; <span class="stringliteral">": ERROR: Failed to open output file \""</span>
-<a name="l00268"></a>00268                  &lt;&lt; outfilename &lt;&lt; <span class="stringliteral">"\" for writing"</span> &lt;&lt; endl;
-<a name="l00269"></a>00269             <span class="keyword">delete</span> out;
-<a name="l00270"></a>00270             <span class="keywordflow">return</span> 1;
-<a name="l00271"></a>00271         }
-<a name="l00272"></a>00272     }
-<a name="l00273"></a>00273 
-<a name="l00274"></a>00274     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin = loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#2154970381343edef629482bdafea7e2" title="Load a Vamp plugin, given its identifying key.">loadPlugin</a>
-<a name="l00275"></a>00275         (key, sfinfo.samplerate, PluginLoader::ADAPT_ALL_SAFE);
-<a name="l00276"></a>00276     <span class="keywordflow">if</span> (!plugin) {
-<a name="l00277"></a>00277         cerr &lt;&lt; myname &lt;&lt; <span class="stringliteral">": ERROR: Failed to load plugin \""</span> &lt;&lt; <span class="keywordtype">id</span>
-<a name="l00278"></a>00278              &lt;&lt; <span class="stringliteral">"\" from library \""</span> &lt;&lt; soname &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
-<a name="l00279"></a>00279         sf_close(sndfile);
-<a name="l00280"></a>00280         <span class="keywordflow">if</span> (out) {
-<a name="l00281"></a>00281             out-&gt;close();
-<a name="l00282"></a>00282             <span class="keyword">delete</span> out;
-<a name="l00283"></a>00283         }
-<a name="l00284"></a>00284         <span class="keywordflow">return</span> 1;
-<a name="l00285"></a>00285     }
-<a name="l00286"></a>00286 
-<a name="l00287"></a>00287     cerr &lt;&lt; <span class="stringliteral">"Running plugin: \""</span> &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a" title="Get the computer-usable name of the plugin.">getIdentifier</a>() &lt;&lt; <span class="stringliteral">"\"..."</span> &lt;&lt; endl;
-<a name="l00288"></a>00288 
-<a name="l00289"></a>00289     <span class="keywordtype">int</span> blockSize = plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac" title="Get the preferred block size (window size -- the number of sample frames passed in...">getPreferredBlockSize</a>();
-<a name="l00290"></a>00290     <span class="keywordtype">int</span> stepSize = plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567" title="Get the preferred step size (window increment -- the distance in sample frames between...">getPreferredStepSize</a>();
-<a name="l00291"></a>00291 
-<a name="l00292"></a>00292     <span class="keywordflow">if</span> (blockSize == 0) {
-<a name="l00293"></a>00293         blockSize = 1024;
-<a name="l00294"></a>00294     }
-<a name="l00295"></a>00295     <span class="keywordflow">if</span> (stepSize == 0) {
-<a name="l00296"></a>00296         <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() == Plugin::FrequencyDomain) {
-<a name="l00297"></a>00297             stepSize = blockSize/2;
-<a name="l00298"></a>00298         } <span class="keywordflow">else</span> {
-<a name="l00299"></a>00299             stepSize = blockSize;
-<a name="l00300"></a>00300         }
-<a name="l00301"></a>00301     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (stepSize &gt; blockSize) {
-<a name="l00302"></a>00302         cerr &lt;&lt; <span class="stringliteral">"WARNING: stepSize "</span> &lt;&lt; stepSize &lt;&lt; <span class="stringliteral">" &gt; blockSize "</span> &lt;&lt; blockSize &lt;&lt; <span class="stringliteral">", resetting blockSize to "</span>;
-<a name="l00303"></a>00303         <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() == Plugin::FrequencyDomain) {
-<a name="l00304"></a>00304             blockSize = stepSize * 2;
-<a name="l00305"></a>00305         } <span class="keywordflow">else</span> {
-<a name="l00306"></a>00306             blockSize = stepSize;
-<a name="l00307"></a>00307         }
-<a name="l00308"></a>00308         cerr &lt;&lt; blockSize &lt;&lt; endl;
-<a name="l00309"></a>00309     }
-<a name="l00310"></a>00310 
-<a name="l00311"></a>00311     <span class="keywordtype">int</span> channels = sfinfo.channels;
-<a name="l00312"></a>00312 
-<a name="l00313"></a>00313     <span class="keywordtype">float</span> *filebuf = <span class="keyword">new</span> <span class="keywordtype">float</span>[blockSize * channels];
-<a name="l00314"></a>00314     <span class="keywordtype">float</span> **plugbuf = <span class="keyword">new</span> <span class="keywordtype">float</span>*[channels];
-<a name="l00315"></a>00315     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> c = 0; c &lt; channels; ++c) plugbuf[c] = <span class="keyword">new</span> <span class="keywordtype">float</span>[blockSize + 2];
-<a name="l00316"></a>00316 
-<a name="l00317"></a>00317     cerr &lt;&lt; <span class="stringliteral">"Using block size = "</span> &lt;&lt; blockSize &lt;&lt; <span class="stringliteral">", step size = "</span>
-<a name="l00318"></a>00318               &lt;&lt; stepSize &lt;&lt; endl;
-<a name="l00319"></a>00319 
-<a name="l00320"></a>00320     <span class="keywordtype">int</span> minch = plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525" title="Get the minimum supported number of input channels.">getMinChannelCount</a>();
-<a name="l00321"></a>00321     <span class="keywordtype">int</span> maxch = plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e" title="Get the maximum supported number of input channels.">getMaxChannelCount</a>();
-<a name="l00322"></a>00322     cerr &lt;&lt; <span class="stringliteral">"Plugin accepts "</span> &lt;&lt; minch &lt;&lt; <span class="stringliteral">" -&gt; "</span> &lt;&lt; maxch &lt;&lt; <span class="stringliteral">" channel(s)"</span> &lt;&lt; endl;
-<a name="l00323"></a>00323     cerr &lt;&lt; <span class="stringliteral">"Sound file has "</span> &lt;&lt; channels &lt;&lt; <span class="stringliteral">" (will mix/augment if necessary)"</span> &lt;&lt; endl;
-<a name="l00324"></a>00324 
-<a name="l00325"></a>00325     Plugin::OutputList outputs = plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35" title="Get the outputs of this plugin.">getOutputDescriptors</a>();
-<a name="l00326"></a>00326     Plugin::OutputDescriptor od;
-<a name="l00327"></a>00327 
-<a name="l00328"></a>00328     <span class="keywordtype">int</span> returnValue = 1;
-<a name="l00329"></a>00329     <span class="keywordtype">int</span> progress = 0;
-<a name="l00330"></a>00330 
-<a name="l00331"></a>00331     <span class="keywordflow">if</span> (outputs.empty()) {
-<a name="l00332"></a>00332         cerr &lt;&lt; <span class="stringliteral">"ERROR: Plugin has no outputs!"</span> &lt;&lt; endl;
-<a name="l00333"></a>00333         <span class="keywordflow">goto</span> done;
-<a name="l00334"></a>00334     }
-<a name="l00335"></a>00335 
-<a name="l00336"></a>00336     <span class="keywordflow">if</span> (outputNo &lt; 0) {
-<a name="l00337"></a>00337 
-<a name="l00338"></a>00338         <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> oi = 0; oi &lt; outputs.size(); ++oi) {
-<a name="l00339"></a>00339             <span class="keywordflow">if</span> (outputs[oi].identifier == output) {
-<a name="l00340"></a>00340                 outputNo = oi;
-<a name="l00341"></a>00341                 <span class="keywordflow">break</span>;
-<a name="l00342"></a>00342             }
-<a name="l00343"></a>00343         }
+<a name="l00256"></a>00256     <span class="keywordflow">if</span> (output == <span class="stringliteral">""</span> &amp;&amp; outputNo == -1) {
+<a name="l00257"></a>00257         outputNo = 0;
+<a name="l00258"></a>00258     }
+<a name="l00259"></a>00259 
+<a name="l00260"></a>00260     <span class="keywordflow">return</span> <a class="code" href="vamp-simple-host_8cpp.html#54e0185f4b6ff507cb42c29a04f76397">runPlugin</a>(name, soname, plugid, output, outputNo,
+<a name="l00261"></a>00261                      wavname, outfilename, useFrames);
+<a name="l00262"></a>00262 }
+<a name="l00263"></a>00263 
+<a name="l00264"></a>00264 
+<a name="l00265"></a><a class="code" href="vamp-simple-host_8cpp.html#54e0185f4b6ff507cb42c29a04f76397">00265</a> <span class="keywordtype">int</span> <a class="code" href="vamp-simple-host_8cpp.html#54e0185f4b6ff507cb42c29a04f76397">runPlugin</a>(<span class="keywordtype">string</span> myname, <span class="keywordtype">string</span> soname, <span class="keywordtype">string</span> <span class="keywordtype">id</span>,
+<a name="l00266"></a>00266               <span class="keywordtype">string</span> output, <span class="keywordtype">int</span> outputNo, <span class="keywordtype">string</span> wavname,
+<a name="l00267"></a>00267               <span class="keywordtype">string</span> outfilename, <span class="keywordtype">bool</span> useFrames)
+<a name="l00268"></a>00268 {
+<a name="l00269"></a>00269     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *loader = PluginLoader::getInstance();
+<a name="l00270"></a>00270 
+<a name="l00271"></a>00271     PluginLoader::PluginKey key = loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#cc6865d27825c100d7b6f9ed6ecf5207" title="Given a Vamp plugin library name and plugin identifier, return the corresponding...">composePluginKey</a>(soname, <span class="keywordtype">id</span>);
+<a name="l00272"></a>00272     
+<a name="l00273"></a>00273     SNDFILE *sndfile;
+<a name="l00274"></a>00274     SF_INFO sfinfo;
+<a name="l00275"></a>00275     memset(&amp;sfinfo, 0, <span class="keyword">sizeof</span>(SF_INFO));
+<a name="l00276"></a>00276 
+<a name="l00277"></a>00277     sndfile = sf_open(wavname.c_str(), SFM_READ, &amp;sfinfo);
+<a name="l00278"></a>00278     <span class="keywordflow">if</span> (!sndfile) {
+<a name="l00279"></a>00279         cerr &lt;&lt; myname &lt;&lt; <span class="stringliteral">": ERROR: Failed to open input file \""</span>
+<a name="l00280"></a>00280              &lt;&lt; wavname &lt;&lt; <span class="stringliteral">"\": "</span> &lt;&lt; sf_strerror(sndfile) &lt;&lt; endl;
+<a name="l00281"></a>00281         <span class="keywordflow">return</span> 1;
+<a name="l00282"></a>00282     }
+<a name="l00283"></a>00283 
+<a name="l00284"></a>00284     ofstream *out = 0;
+<a name="l00285"></a>00285     <span class="keywordflow">if</span> (outfilename != <span class="stringliteral">""</span>) {
+<a name="l00286"></a>00286         out = <span class="keyword">new</span> ofstream(outfilename.c_str(), ios::out);
+<a name="l00287"></a>00287         <span class="keywordflow">if</span> (!*out) {
+<a name="l00288"></a>00288             cerr &lt;&lt; myname &lt;&lt; <span class="stringliteral">": ERROR: Failed to open output file \""</span>
+<a name="l00289"></a>00289                  &lt;&lt; outfilename &lt;&lt; <span class="stringliteral">"\" for writing"</span> &lt;&lt; endl;
+<a name="l00290"></a>00290             <span class="keyword">delete</span> out;
+<a name="l00291"></a>00291             <span class="keywordflow">return</span> 1;
+<a name="l00292"></a>00292         }
+<a name="l00293"></a>00293     }
+<a name="l00294"></a>00294 
+<a name="l00295"></a>00295     <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin = loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f" title="Load a Vamp plugin, given its identifying key.">loadPlugin</a>
+<a name="l00296"></a>00296         (key, sfinfo.samplerate, PluginLoader::ADAPT_ALL_SAFE);
+<a name="l00297"></a>00297     <span class="keywordflow">if</span> (!plugin) {
+<a name="l00298"></a>00298         cerr &lt;&lt; myname &lt;&lt; <span class="stringliteral">": ERROR: Failed to load plugin \""</span> &lt;&lt; <span class="keywordtype">id</span>
+<a name="l00299"></a>00299              &lt;&lt; <span class="stringliteral">"\" from library \""</span> &lt;&lt; soname &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
+<a name="l00300"></a>00300         sf_close(sndfile);
+<a name="l00301"></a>00301         <span class="keywordflow">if</span> (out) {
+<a name="l00302"></a>00302             out-&gt;close();
+<a name="l00303"></a>00303             <span class="keyword">delete</span> out;
+<a name="l00304"></a>00304         }
+<a name="l00305"></a>00305         <span class="keywordflow">return</span> 1;
+<a name="l00306"></a>00306     }
+<a name="l00307"></a>00307 
+<a name="l00308"></a>00308     cerr &lt;&lt; <span class="stringliteral">"Running plugin: \""</span> &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a" title="Get the computer-usable name of the plugin.">getIdentifier</a>() &lt;&lt; <span class="stringliteral">"\"..."</span> &lt;&lt; endl;
+<a name="l00309"></a>00309 
+<a name="l00310"></a>00310     <span class="comment">// Note that the following would be much simpler if we used a</span>
+<a name="l00311"></a>00311     <span class="comment">// PluginBufferingAdapter as well -- i.e. if we had passed</span>
+<a name="l00312"></a>00312     <span class="comment">// PluginLoader::ADAPT_ALL to loader-&gt;loadPlugin() above, instead</span>
+<a name="l00313"></a>00313     <span class="comment">// of ADAPT_ALL_SAFE.  Then we could simply specify our own block</span>
+<a name="l00314"></a>00314     <span class="comment">// size, keep the step size equal to the block size, and ignore</span>
+<a name="l00315"></a>00315     <span class="comment">// the plugin's bleatings.  However, there are some issues with</span>
+<a name="l00316"></a>00316     <span class="comment">// using a PluginBufferingAdapter that make the results sometimes</span>
+<a name="l00317"></a>00317     <span class="comment">// technically different from (if effectively the same as) the</span>
+<a name="l00318"></a>00318     <span class="comment">// un-adapted plugin, so we aren't doing that here.  See the</span>
+<a name="l00319"></a>00319     <span class="comment">// PluginBufferingAdapter documentation for details.</span>
+<a name="l00320"></a>00320 
+<a name="l00321"></a>00321     <span class="keywordtype">int</span> blockSize = plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac" title="Get the preferred block size (window size -- the number of sample frames passed in...">getPreferredBlockSize</a>();
+<a name="l00322"></a>00322     <span class="keywordtype">int</span> stepSize = plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567" title="Get the preferred step size (window increment -- the distance in sample frames between...">getPreferredStepSize</a>();
+<a name="l00323"></a>00323 
+<a name="l00324"></a>00324     <span class="keywordflow">if</span> (blockSize == 0) {
+<a name="l00325"></a>00325         blockSize = 1024;
+<a name="l00326"></a>00326     }
+<a name="l00327"></a>00327     <span class="keywordflow">if</span> (stepSize == 0) {
+<a name="l00328"></a>00328         <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() == Plugin::FrequencyDomain) {
+<a name="l00329"></a>00329             stepSize = blockSize/2;
+<a name="l00330"></a>00330         } <span class="keywordflow">else</span> {
+<a name="l00331"></a>00331             stepSize = blockSize;
+<a name="l00332"></a>00332         }
+<a name="l00333"></a>00333     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (stepSize &gt; blockSize) {
+<a name="l00334"></a>00334         cerr &lt;&lt; <span class="stringliteral">"WARNING: stepSize "</span> &lt;&lt; stepSize &lt;&lt; <span class="stringliteral">" &gt; blockSize "</span> &lt;&lt; blockSize &lt;&lt; <span class="stringliteral">", resetting blockSize to "</span>;
+<a name="l00335"></a>00335         <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() == Plugin::FrequencyDomain) {
+<a name="l00336"></a>00336             blockSize = stepSize * 2;
+<a name="l00337"></a>00337         } <span class="keywordflow">else</span> {
+<a name="l00338"></a>00338             blockSize = stepSize;
+<a name="l00339"></a>00339         }
+<a name="l00340"></a>00340         cerr &lt;&lt; blockSize &lt;&lt; endl;
+<a name="l00341"></a>00341     }
+<a name="l00342"></a>00342 
+<a name="l00343"></a>00343     <span class="keywordtype">int</span> channels = sfinfo.channels;
 <a name="l00344"></a>00344 
-<a name="l00345"></a>00345         <span class="keywordflow">if</span> (outputNo &lt; 0) {
-<a name="l00346"></a>00346             cerr &lt;&lt; <span class="stringliteral">"ERROR: Non-existent output \""</span> &lt;&lt; output &lt;&lt; <span class="stringliteral">"\" requested"</span> &lt;&lt; endl;
-<a name="l00347"></a>00347             <span class="keywordflow">goto</span> done;
-<a name="l00348"></a>00348         }
-<a name="l00349"></a>00349 
-<a name="l00350"></a>00350     } <span class="keywordflow">else</span> {
+<a name="l00345"></a>00345     <span class="keywordtype">float</span> *filebuf = <span class="keyword">new</span> <span class="keywordtype">float</span>[blockSize * channels];
+<a name="l00346"></a>00346     <span class="keywordtype">float</span> **plugbuf = <span class="keyword">new</span> <span class="keywordtype">float</span>*[channels];
+<a name="l00347"></a>00347     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> c = 0; c &lt; channels; ++c) plugbuf[c] = <span class="keyword">new</span> <span class="keywordtype">float</span>[blockSize + 2];
+<a name="l00348"></a>00348 
+<a name="l00349"></a>00349     cerr &lt;&lt; <span class="stringliteral">"Using block size = "</span> &lt;&lt; blockSize &lt;&lt; <span class="stringliteral">", step size = "</span>
+<a name="l00350"></a>00350               &lt;&lt; stepSize &lt;&lt; endl;
 <a name="l00351"></a>00351 
-<a name="l00352"></a>00352         <span class="keywordflow">if</span> (<span class="keywordtype">int</span>(outputs.size()) &lt;= outputNo) {
-<a name="l00353"></a>00353             cerr &lt;&lt; <span class="stringliteral">"ERROR: Output "</span> &lt;&lt; outputNo &lt;&lt; <span class="stringliteral">" requested, but plugin has only "</span> &lt;&lt; outputs.size() &lt;&lt; <span class="stringliteral">" output(s)"</span> &lt;&lt; endl;
-<a name="l00354"></a>00354             <span class="keywordflow">goto</span> done;
-<a name="l00355"></a>00355         }        
-<a name="l00356"></a>00356     }
-<a name="l00357"></a>00357 
-<a name="l00358"></a>00358     od = outputs[outputNo];
-<a name="l00359"></a>00359     cerr &lt;&lt; <span class="stringliteral">"Output is: \""</span> &lt;&lt; od.identifier &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
+<a name="l00352"></a>00352     <span class="comment">// The channel queries here are for informational purposes only --</span>
+<a name="l00353"></a>00353     <span class="comment">// a PluginChannelAdapter is being used automatically behind the</span>
+<a name="l00354"></a>00354     <span class="comment">// scenes, and it will take case of any channel mismatch</span>
+<a name="l00355"></a>00355 
+<a name="l00356"></a>00356     <span class="keywordtype">int</span> minch = plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525" title="Get the minimum supported number of input channels.">getMinChannelCount</a>();
+<a name="l00357"></a>00357     <span class="keywordtype">int</span> maxch = plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e" title="Get the maximum supported number of input channels.">getMaxChannelCount</a>();
+<a name="l00358"></a>00358     cerr &lt;&lt; <span class="stringliteral">"Plugin accepts "</span> &lt;&lt; minch &lt;&lt; <span class="stringliteral">" -&gt; "</span> &lt;&lt; maxch &lt;&lt; <span class="stringliteral">" channel(s)"</span> &lt;&lt; endl;
+<a name="l00359"></a>00359     cerr &lt;&lt; <span class="stringliteral">"Sound file has "</span> &lt;&lt; channels &lt;&lt; <span class="stringliteral">" (will mix/augment if necessary)"</span> &lt;&lt; endl;
 <a name="l00360"></a>00360 
-<a name="l00361"></a>00361     <span class="keywordflow">if</span> (!plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise</a>(channels, stepSize, blockSize)) {
-<a name="l00362"></a>00362         cerr &lt;&lt; <span class="stringliteral">"ERROR: Plugin initialise (channels = "</span> &lt;&lt; channels
-<a name="l00363"></a>00363              &lt;&lt; <span class="stringliteral">", stepSize = "</span> &lt;&lt; stepSize &lt;&lt; <span class="stringliteral">", blockSize = "</span>
-<a name="l00364"></a>00364              &lt;&lt; blockSize &lt;&lt; <span class="stringliteral">") failed."</span> &lt;&lt; endl;
-<a name="l00365"></a>00365         <span class="keywordflow">goto</span> done;
-<a name="l00366"></a>00366     }
-<a name="l00367"></a>00367 
-<a name="l00368"></a>00368     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; sfinfo.frames; i += stepSize) {
-<a name="l00369"></a>00369 
-<a name="l00370"></a>00370         <span class="keywordtype">int</span> count;
-<a name="l00371"></a>00371 
-<a name="l00372"></a>00372         <span class="keywordflow">if</span> (sf_seek(sndfile, i, SEEK_SET) &lt; 0) {
-<a name="l00373"></a>00373             cerr &lt;&lt; <span class="stringliteral">"ERROR: sf_seek failed: "</span> &lt;&lt; sf_strerror(sndfile) &lt;&lt; endl;
-<a name="l00374"></a>00374             <span class="keywordflow">break</span>;
-<a name="l00375"></a>00375         }
-<a name="l00376"></a>00376         
-<a name="l00377"></a>00377         <span class="keywordflow">if</span> ((count = sf_readf_float(sndfile, filebuf, blockSize)) &lt; 0) {
-<a name="l00378"></a>00378             cerr &lt;&lt; <span class="stringliteral">"ERROR: sf_readf_float failed: "</span> &lt;&lt; sf_strerror(sndfile) &lt;&lt; endl;
-<a name="l00379"></a>00379             <span class="keywordflow">break</span>;
-<a name="l00380"></a>00380         }
-<a name="l00381"></a>00381 
-<a name="l00382"></a>00382         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> c = 0; c &lt; channels; ++c) {
-<a name="l00383"></a>00383             <span class="keywordtype">int</span> j = 0;
-<a name="l00384"></a>00384             <span class="keywordflow">while</span> (j &lt; count) {
-<a name="l00385"></a>00385                 plugbuf[c][j] = filebuf[j * sfinfo.channels + c];
-<a name="l00386"></a>00386                 ++j;
-<a name="l00387"></a>00387             }
-<a name="l00388"></a>00388             <span class="keywordflow">while</span> (j &lt; blockSize) {
-<a name="l00389"></a>00389                 plugbuf[c][j] = 0.0f;
-<a name="l00390"></a>00390                 ++j;
-<a name="l00391"></a>00391             }
-<a name="l00392"></a>00392         }
-<a name="l00393"></a>00393 
-<a name="l00394"></a>00394         <a class="code" href="vamp-simple-host_8cpp.html#81f8bc89ed9194159bfb1f2b4d7a7ac4">printFeatures</a>
-<a name="l00395"></a>00395             (i, sfinfo.samplerate, outputNo, plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process</a>
-<a name="l00396"></a>00396              (plugbuf, RealTime::frame2RealTime(i, sfinfo.samplerate)),
-<a name="l00397"></a>00397              out, useFrames);
-<a name="l00398"></a>00398 
-<a name="l00399"></a>00399         <span class="keywordtype">int</span> pp = progress;
-<a name="l00400"></a>00400         progress = lrintf((<span class="keywordtype">float</span>(i) / sfinfo.frames) * 100.f);
-<a name="l00401"></a>00401         <span class="keywordflow">if</span> (progress != pp &amp;&amp; out) {
-<a name="l00402"></a>00402             cerr &lt;&lt; <span class="stringliteral">"\r"</span> &lt;&lt; progress &lt;&lt; <span class="stringliteral">"%"</span>;
-<a name="l00403"></a>00403         }
-<a name="l00404"></a>00404     }
-<a name="l00405"></a>00405     <span class="keywordflow">if</span> (out) cerr &lt;&lt; <span class="stringliteral">"\rDone"</span> &lt;&lt; endl;
-<a name="l00406"></a>00406 
-<a name="l00407"></a>00407     <a class="code" href="vamp-simple-host_8cpp.html#81f8bc89ed9194159bfb1f2b4d7a7ac4">printFeatures</a>(sfinfo.frames, sfinfo.samplerate, outputNo,
-<a name="l00408"></a>00408                   plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures</a>(), out, useFrames);
-<a name="l00409"></a>00409 
-<a name="l00410"></a>00410     returnValue = 0;
-<a name="l00411"></a>00411 
-<a name="l00412"></a>00412 done:
-<a name="l00413"></a>00413     <span class="keyword">delete</span> plugin;
-<a name="l00414"></a>00414     <span class="keywordflow">if</span> (out) {
-<a name="l00415"></a>00415         out-&gt;close();
-<a name="l00416"></a>00416         <span class="keyword">delete</span> out;
-<a name="l00417"></a>00417     }
-<a name="l00418"></a>00418     sf_close(sndfile);
-<a name="l00419"></a>00419     <span class="keywordflow">return</span> returnValue;
-<a name="l00420"></a>00420 }
-<a name="l00421"></a>00421 
-<a name="l00422"></a>00422 <span class="keywordtype">void</span>
-<a name="l00423"></a><a class="code" href="vamp-simple-host_8cpp.html#81f8bc89ed9194159bfb1f2b4d7a7ac4">00423</a> <a class="code" href="vamp-simple-host_8cpp.html#81f8bc89ed9194159bfb1f2b4d7a7ac4">printFeatures</a>(<span class="keywordtype">int</span> frame, <span class="keywordtype">int</span> sr, <span class="keywordtype">int</span> output,
-<a name="l00424"></a>00424               Plugin::FeatureSet features, ofstream *out, <span class="keywordtype">bool</span> useFrames)
-<a name="l00425"></a>00425 {
-<a name="l00426"></a>00426     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; features[output].size(); ++i) {
-<a name="l00427"></a>00427 
-<a name="l00428"></a>00428         <span class="keywordflow">if</span> (useFrames) {
-<a name="l00429"></a>00429 
-<a name="l00430"></a>00430             <span class="keywordtype">int</span> displayFrame = frame;
-<a name="l00431"></a>00431 
-<a name="l00432"></a>00432             <span class="keywordflow">if</span> (features[output][i].hasTimestamp) {
-<a name="l00433"></a>00433                 displayFrame = RealTime::realTime2Frame
-<a name="l00434"></a>00434                     (features[output][i].timestamp, sr);
-<a name="l00435"></a>00435             }
-<a name="l00436"></a>00436 
-<a name="l00437"></a>00437             (out ? *out : cout) &lt;&lt; displayFrame &lt;&lt; <span class="stringliteral">":"</span>;
-<a name="l00438"></a>00438 
-<a name="l00439"></a>00439         } <span class="keywordflow">else</span> {
-<a name="l00440"></a>00440 
-<a name="l00441"></a>00441             <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> rt = RealTime::frame2RealTime(frame, sr);
+<a name="l00361"></a>00361     Plugin::OutputList outputs = plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35" title="Get the outputs of this plugin.">getOutputDescriptors</a>();
+<a name="l00362"></a>00362     Plugin::OutputDescriptor od;
+<a name="l00363"></a>00363 
+<a name="l00364"></a>00364     <span class="keywordtype">int</span> returnValue = 1;
+<a name="l00365"></a>00365     <span class="keywordtype">int</span> progress = 0;
+<a name="l00366"></a>00366 
+<a name="l00367"></a>00367     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> rt;
+<a name="l00368"></a>00368     <a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a> *wrapper = 0;
+<a name="l00369"></a>00369     <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> adjustment = RealTime::zeroTime;
+<a name="l00370"></a>00370 
+<a name="l00371"></a>00371     <span class="keywordflow">if</span> (outputs.empty()) {
+<a name="l00372"></a>00372         cerr &lt;&lt; <span class="stringliteral">"ERROR: Plugin has no outputs!"</span> &lt;&lt; endl;
+<a name="l00373"></a>00373         <span class="keywordflow">goto</span> done;
+<a name="l00374"></a>00374     }
+<a name="l00375"></a>00375 
+<a name="l00376"></a>00376     <span class="keywordflow">if</span> (outputNo &lt; 0) {
+<a name="l00377"></a>00377 
+<a name="l00378"></a>00378         <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> oi = 0; oi &lt; outputs.size(); ++oi) {
+<a name="l00379"></a>00379             <span class="keywordflow">if</span> (outputs[oi].identifier == output) {
+<a name="l00380"></a>00380                 outputNo = oi;
+<a name="l00381"></a>00381                 <span class="keywordflow">break</span>;
+<a name="l00382"></a>00382             }
+<a name="l00383"></a>00383         }
+<a name="l00384"></a>00384 
+<a name="l00385"></a>00385         <span class="keywordflow">if</span> (outputNo &lt; 0) {
+<a name="l00386"></a>00386             cerr &lt;&lt; <span class="stringliteral">"ERROR: Non-existent output \""</span> &lt;&lt; output &lt;&lt; <span class="stringliteral">"\" requested"</span> &lt;&lt; endl;
+<a name="l00387"></a>00387             <span class="keywordflow">goto</span> done;
+<a name="l00388"></a>00388         }
+<a name="l00389"></a>00389 
+<a name="l00390"></a>00390     } <span class="keywordflow">else</span> {
+<a name="l00391"></a>00391 
+<a name="l00392"></a>00392         <span class="keywordflow">if</span> (<span class="keywordtype">int</span>(outputs.size()) &lt;= outputNo) {
+<a name="l00393"></a>00393             cerr &lt;&lt; <span class="stringliteral">"ERROR: Output "</span> &lt;&lt; outputNo &lt;&lt; <span class="stringliteral">" requested, but plugin has only "</span> &lt;&lt; outputs.size() &lt;&lt; <span class="stringliteral">" output(s)"</span> &lt;&lt; endl;
+<a name="l00394"></a>00394             <span class="keywordflow">goto</span> done;
+<a name="l00395"></a>00395         }        
+<a name="l00396"></a>00396     }
+<a name="l00397"></a>00397 
+<a name="l00398"></a>00398     od = outputs[outputNo];
+<a name="l00399"></a>00399     cerr &lt;&lt; <span class="stringliteral">"Output is: \""</span> &lt;&lt; od.identifier &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
+<a name="l00400"></a>00400 
+<a name="l00401"></a>00401     <span class="keywordflow">if</span> (!plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise</a>(channels, stepSize, blockSize)) {
+<a name="l00402"></a>00402         cerr &lt;&lt; <span class="stringliteral">"ERROR: Plugin initialise (channels = "</span> &lt;&lt; channels
+<a name="l00403"></a>00403              &lt;&lt; <span class="stringliteral">", stepSize = "</span> &lt;&lt; stepSize &lt;&lt; <span class="stringliteral">", blockSize = "</span>
+<a name="l00404"></a>00404              &lt;&lt; blockSize &lt;&lt; <span class="stringliteral">") failed."</span> &lt;&lt; endl;
+<a name="l00405"></a>00405         <span class="keywordflow">goto</span> done;
+<a name="l00406"></a>00406     }
+<a name="l00407"></a>00407 
+<a name="l00408"></a>00408     wrapper = <span class="keyword">dynamic_cast&lt;</span><a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins.">PluginWrapper</a> *<span class="keyword">&gt;</span>(plugin);
+<a name="l00409"></a>00409     <span class="keywordflow">if</span> (wrapper) {
+<a name="l00410"></a>00410         <span class="comment">// See documentation for</span>
+<a name="l00411"></a>00411         <span class="comment">// PluginInputDomainAdapter::getTimestampAdjustment</span>
+<a name="l00412"></a>00412         <a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a> *ida =
+<a name="l00413"></a>00413             wrapper-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3" title="Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper&amp;#39;s...">getWrapper</a>&lt;<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html" title="PluginInputDomainAdapter is a Vamp plugin adapter that converts time-domain input...">PluginInputDomainAdapter</a>&gt;();
+<a name="l00414"></a>00414         <span class="keywordflow">if</span> (ida) adjustment = ida-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#c1ab6af0fcda0a4c3f050c54b2db4769" title="Return the amount by which the timestamps supplied to process() are being incremented...">getTimestampAdjustment</a>();
+<a name="l00415"></a>00415     }
+<a name="l00416"></a>00416 
+<a name="l00417"></a>00417     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; sfinfo.frames; i += stepSize) {
+<a name="l00418"></a>00418 
+<a name="l00419"></a>00419         <span class="keywordtype">int</span> count;
+<a name="l00420"></a>00420 
+<a name="l00421"></a>00421         <span class="keywordflow">if</span> (sf_seek(sndfile, i, SEEK_SET) &lt; 0) {
+<a name="l00422"></a>00422             cerr &lt;&lt; <span class="stringliteral">"ERROR: sf_seek failed: "</span> &lt;&lt; sf_strerror(sndfile) &lt;&lt; endl;
+<a name="l00423"></a>00423             <span class="keywordflow">break</span>;
+<a name="l00424"></a>00424         }
+<a name="l00425"></a>00425         
+<a name="l00426"></a>00426         <span class="keywordflow">if</span> ((count = sf_readf_float(sndfile, filebuf, blockSize)) &lt; 0) {
+<a name="l00427"></a>00427             cerr &lt;&lt; <span class="stringliteral">"ERROR: sf_readf_float failed: "</span> &lt;&lt; sf_strerror(sndfile) &lt;&lt; endl;
+<a name="l00428"></a>00428             <span class="keywordflow">break</span>;
+<a name="l00429"></a>00429         }
+<a name="l00430"></a>00430 
+<a name="l00431"></a>00431         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> c = 0; c &lt; channels; ++c) {
+<a name="l00432"></a>00432             <span class="keywordtype">int</span> j = 0;
+<a name="l00433"></a>00433             <span class="keywordflow">while</span> (j &lt; count) {
+<a name="l00434"></a>00434                 plugbuf[c][j] = filebuf[j * sfinfo.channels + c];
+<a name="l00435"></a>00435                 ++j;
+<a name="l00436"></a>00436             }
+<a name="l00437"></a>00437             <span class="keywordflow">while</span> (j &lt; blockSize) {
+<a name="l00438"></a>00438                 plugbuf[c][j] = 0.0f;
+<a name="l00439"></a>00439                 ++j;
+<a name="l00440"></a>00440             }
+<a name="l00441"></a>00441         }
 <a name="l00442"></a>00442 
-<a name="l00443"></a>00443             <span class="keywordflow">if</span> (features[output][i].hasTimestamp) {
-<a name="l00444"></a>00444                 rt = features[output][i].timestamp;
-<a name="l00445"></a>00445             }
-<a name="l00446"></a>00446 
-<a name="l00447"></a>00447             (out ? *out : cout) &lt;&lt; rt.<a class="code" href="structVamp_1_1RealTime.html#d44476618183bd736996a87292d03c07" title="Return a human-readable debug-type string to full precision (probably not a format...">toString</a>() &lt;&lt; <span class="stringliteral">":"</span>;
-<a name="l00448"></a>00448         }
+<a name="l00443"></a>00443         rt = RealTime::frame2RealTime(i, sfinfo.samplerate);
+<a name="l00444"></a>00444 
+<a name="l00445"></a>00445         <a class="code" href="vamp-simple-host_8cpp.html#81f8bc89ed9194159bfb1f2b4d7a7ac4">printFeatures</a>
+<a name="l00446"></a>00446             (RealTime::realTime2Frame(rt + adjustment, sfinfo.samplerate),
+<a name="l00447"></a>00447              sfinfo.samplerate, outputNo, plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process</a>(plugbuf, rt),
+<a name="l00448"></a>00448              out, useFrames);
 <a name="l00449"></a>00449 
-<a name="l00450"></a>00450         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j &lt; features[output][i].values.size(); ++j) {
-<a name="l00451"></a>00451             (out ? *out : cout) &lt;&lt; <span class="stringliteral">" "</span> &lt;&lt; features[output][i].values[j];
-<a name="l00452"></a>00452         }
-<a name="l00453"></a>00453 
-<a name="l00454"></a>00454         (out ? *out : cout) &lt;&lt; endl;
+<a name="l00450"></a>00450         <span class="keywordtype">int</span> pp = progress;
+<a name="l00451"></a>00451         progress = lrintf((<span class="keywordtype">float</span>(i) / sfinfo.frames) * 100.f);
+<a name="l00452"></a>00452         <span class="keywordflow">if</span> (progress != pp &amp;&amp; out) {
+<a name="l00453"></a>00453             cerr &lt;&lt; <span class="stringliteral">"\r"</span> &lt;&lt; progress &lt;&lt; <span class="stringliteral">"%"</span>;
+<a name="l00454"></a>00454         }
 <a name="l00455"></a>00455     }
-<a name="l00456"></a>00456 }
+<a name="l00456"></a>00456     <span class="keywordflow">if</span> (out) cerr &lt;&lt; <span class="stringliteral">"\rDone"</span> &lt;&lt; endl;
 <a name="l00457"></a>00457 
-<a name="l00458"></a>00458 <span class="keywordtype">void</span>
-<a name="l00459"></a><a class="code" href="vamp-simple-host_8cpp.html#4767f8c142ee0b61ba414df1b0376a01">00459</a> <a class="code" href="vamp-simple-host_8cpp.html#4767f8c142ee0b61ba414df1b0376a01">printPluginPath</a>(<span class="keywordtype">bool</span> verbose)
-<a name="l00460"></a>00460 {
-<a name="l00461"></a>00461     <span class="keywordflow">if</span> (verbose) {
-<a name="l00462"></a>00462         cout &lt;&lt; <span class="stringliteral">"\nVamp plugin search path: "</span>;
-<a name="l00463"></a>00463     }
-<a name="l00464"></a>00464 
-<a name="l00465"></a>00465     vector&lt;string&gt; path = PluginHostAdapter::getPluginPath();
-<a name="l00466"></a>00466     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; path.size(); ++i) {
-<a name="l00467"></a>00467         <span class="keywordflow">if</span> (verbose) {
-<a name="l00468"></a>00468             cout &lt;&lt; <span class="stringliteral">"["</span> &lt;&lt; path[i] &lt;&lt; <span class="stringliteral">"]"</span>;
-<a name="l00469"></a>00469         } <span class="keywordflow">else</span> {
-<a name="l00470"></a>00470             cout &lt;&lt; path[i] &lt;&lt; endl;
-<a name="l00471"></a>00471         }
-<a name="l00472"></a>00472     }
-<a name="l00473"></a>00473 
-<a name="l00474"></a>00474     <span class="keywordflow">if</span> (verbose) cout &lt;&lt; endl;
-<a name="l00475"></a>00475 }
-<a name="l00476"></a>00476 
-<a name="l00477"></a>00477 <span class="keywordtype">void</span>
-<a name="l00478"></a><a class="code" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">00478</a> <a class="code" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">enumeratePlugins</a>(<a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b313">Verbosity</a> verbosity)
+<a name="l00458"></a>00458     rt = RealTime::frame2RealTime(sfinfo.frames, sfinfo.samplerate);
+<a name="l00459"></a>00459 
+<a name="l00460"></a>00460     <a class="code" href="vamp-simple-host_8cpp.html#81f8bc89ed9194159bfb1f2b4d7a7ac4">printFeatures</a>(RealTime::realTime2Frame(rt + adjustment, sfinfo.samplerate),
+<a name="l00461"></a>00461                   sfinfo.samplerate, outputNo,
+<a name="l00462"></a>00462                   plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures</a>(), out, useFrames);
+<a name="l00463"></a>00463 
+<a name="l00464"></a>00464     returnValue = 0;
+<a name="l00465"></a>00465 
+<a name="l00466"></a>00466 done:
+<a name="l00467"></a>00467     <span class="keyword">delete</span> plugin;
+<a name="l00468"></a>00468     <span class="keywordflow">if</span> (out) {
+<a name="l00469"></a>00469         out-&gt;close();
+<a name="l00470"></a>00470         <span class="keyword">delete</span> out;
+<a name="l00471"></a>00471     }
+<a name="l00472"></a>00472     sf_close(sndfile);
+<a name="l00473"></a>00473     <span class="keywordflow">return</span> returnValue;
+<a name="l00474"></a>00474 }
+<a name="l00475"></a>00475 
+<a name="l00476"></a>00476 <span class="keywordtype">void</span>
+<a name="l00477"></a><a class="code" href="vamp-simple-host_8cpp.html#81f8bc89ed9194159bfb1f2b4d7a7ac4">00477</a> <a class="code" href="vamp-simple-host_8cpp.html#81f8bc89ed9194159bfb1f2b4d7a7ac4">printFeatures</a>(<span class="keywordtype">int</span> frame, <span class="keywordtype">int</span> sr, <span class="keywordtype">int</span> output,
+<a name="l00478"></a>00478               Plugin::FeatureSet features, ofstream *out, <span class="keywordtype">bool</span> useFrames)
 <a name="l00479"></a>00479 {
-<a name="l00480"></a>00480     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *loader = PluginLoader::getInstance();
+<a name="l00480"></a>00480     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; features[output].size(); ++i) {
 <a name="l00481"></a>00481 
-<a name="l00482"></a>00482     <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a>) {
-<a name="l00483"></a>00483         cout &lt;&lt; <span class="stringliteral">"\nVamp plugin libraries found in search path:"</span> &lt;&lt; endl;
-<a name="l00484"></a>00484     }
+<a name="l00482"></a>00482         <span class="keywordflow">if</span> (useFrames) {
+<a name="l00483"></a>00483 
+<a name="l00484"></a>00484             <span class="keywordtype">int</span> displayFrame = frame;
 <a name="l00485"></a>00485 
-<a name="l00486"></a>00486     vector&lt;PluginLoader::PluginKey&gt; plugins = loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ec450c2928b1ae5318d45972722dd16b" title="Search for all available Vamp plugins, and return a list of them in the order in...">listPlugins</a>();
-<a name="l00487"></a>00487     <span class="keyword">typedef</span> multimap&lt;string, PluginLoader::PluginKey&gt;
-<a name="l00488"></a>00488         LibraryMap;
-<a name="l00489"></a>00489     LibraryMap libraryMap;
+<a name="l00486"></a>00486             <span class="keywordflow">if</span> (features[output][i].hasTimestamp) {
+<a name="l00487"></a>00487                 displayFrame = RealTime::realTime2Frame
+<a name="l00488"></a>00488                     (features[output][i].timestamp, sr);
+<a name="l00489"></a>00489             }
 <a name="l00490"></a>00490 
-<a name="l00491"></a>00491     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; plugins.size(); ++i) {
-<a name="l00492"></a>00492         <span class="keywordtype">string</span> path = loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#592d6b4c6edaa369407e833f56e4a4de" title="Return the file path of the dynamic library from which the given plugin will be loaded...">getLibraryPathForPlugin</a>(plugins[i]);
-<a name="l00493"></a>00493         libraryMap.insert(LibraryMap::value_type(path, plugins[i]));
-<a name="l00494"></a>00494     }
-<a name="l00495"></a>00495 
-<a name="l00496"></a>00496     <span class="keywordtype">string</span> prevPath = <span class="stringliteral">""</span>;
-<a name="l00497"></a>00497     <span class="keywordtype">int</span> index = 0;
+<a name="l00491"></a>00491             (out ? *out : cout) &lt;&lt; displayFrame;
+<a name="l00492"></a>00492 
+<a name="l00493"></a>00493             <span class="keywordflow">if</span> (features[output][i].hasDuration) {
+<a name="l00494"></a>00494                 displayFrame = RealTime::realTime2Frame
+<a name="l00495"></a>00495                     (features[output][i].duration, sr);
+<a name="l00496"></a>00496                 (out ? *out : cout) &lt;&lt; <span class="stringliteral">","</span> &lt;&lt; displayFrame;
+<a name="l00497"></a>00497             }
 <a name="l00498"></a>00498 
-<a name="l00499"></a>00499     <span class="keywordflow">for</span> (LibraryMap::iterator i = libraryMap.begin();
-<a name="l00500"></a>00500          i != libraryMap.end(); ++i) {
-<a name="l00501"></a>00501         
-<a name="l00502"></a>00502         <span class="keywordtype">string</span> path = i-&gt;first;
-<a name="l00503"></a>00503         PluginLoader::PluginKey key = i-&gt;second;
+<a name="l00499"></a>00499             (out ? *out : cout)  &lt;&lt; <span class="stringliteral">":"</span>;
+<a name="l00500"></a>00500 
+<a name="l00501"></a>00501         } <span class="keywordflow">else</span> {
+<a name="l00502"></a>00502 
+<a name="l00503"></a>00503             <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">RealTime</a> rt = RealTime::frame2RealTime(frame, sr);
 <a name="l00504"></a>00504 
-<a name="l00505"></a>00505         <span class="keywordflow">if</span> (path != prevPath) {
-<a name="l00506"></a>00506             prevPath = path;
-<a name="l00507"></a>00507             index = 0;
-<a name="l00508"></a>00508             <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a>) {
-<a name="l00509"></a>00509                 cout &lt;&lt; <span class="stringliteral">"\n  "</span> &lt;&lt; path &lt;&lt; <span class="stringliteral">":"</span> &lt;&lt; endl;
-<a name="l00510"></a>00510             }
-<a name="l00511"></a>00511         }
-<a name="l00512"></a>00512 
-<a name="l00513"></a>00513         <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin = loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#2154970381343edef629482bdafea7e2" title="Load a Vamp plugin, given its identifying key.">loadPlugin</a>(key, 48000);
-<a name="l00514"></a>00514         <span class="keywordflow">if</span> (plugin) {
+<a name="l00505"></a>00505             <span class="keywordflow">if</span> (features[output][i].hasTimestamp) {
+<a name="l00506"></a>00506                 rt = features[output][i].timestamp;
+<a name="l00507"></a>00507             }
+<a name="l00508"></a>00508 
+<a name="l00509"></a>00509             (out ? *out : cout) &lt;&lt; rt.<a class="code" href="structVamp_1_1RealTime.html#d44476618183bd736996a87292d03c07" title="Return a human-readable debug-type string to full precision (probably not a format...">toString</a>();
+<a name="l00510"></a>00510 
+<a name="l00511"></a>00511             <span class="keywordflow">if</span> (features[output][i].hasDuration) {
+<a name="l00512"></a>00512                 rt = features[output][i].duration;
+<a name="l00513"></a>00513                 (out ? *out : cout) &lt;&lt; <span class="stringliteral">","</span> &lt;&lt; rt.<a class="code" href="structVamp_1_1RealTime.html#d44476618183bd736996a87292d03c07" title="Return a human-readable debug-type string to full precision (probably not a format...">toString</a>();
+<a name="l00514"></a>00514             }
 <a name="l00515"></a>00515 
-<a name="l00516"></a>00516             <span class="keywordtype">char</span> c = char(<span class="charliteral">'A'</span> + index);
-<a name="l00517"></a>00517             <span class="keywordflow">if</span> (c &gt; <span class="charliteral">'Z'</span>) c = char(<span class="charliteral">'a'</span> + (index - 26));
+<a name="l00516"></a>00516             (out ? *out : cout) &lt;&lt; <span class="stringliteral">":"</span>;
+<a name="l00517"></a>00517         }
 <a name="l00518"></a>00518 
-<a name="l00519"></a>00519             <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a>) {
-<a name="l00520"></a>00520 
-<a name="l00521"></a>00521                 cout &lt;&lt; <span class="stringliteral">"    ["</span> &lt;&lt; c &lt;&lt; <span class="stringliteral">"] [v"</span>
-<a name="l00522"></a>00522                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf" title="Get the Vamp API compatibility level of the plugin.">getVampApiVersion</a>() &lt;&lt; <span class="stringliteral">"] "</span>
-<a name="l00523"></a>00523                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232" title="Get a human-readable name or title of the plugin.">getName</a>() &lt;&lt; <span class="stringliteral">", \""</span>
-<a name="l00524"></a>00524                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a" title="Get the computer-usable name of the plugin.">getIdentifier</a>() &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; <span class="stringliteral">" ["</span>
-<a name="l00525"></a>00525                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637" title="Get the name of the author or vendor of the plugin in human-readable form.">getMaker</a>() &lt;&lt; <span class="stringliteral">"]"</span> &lt;&lt; endl;
+<a name="l00519"></a>00519         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j &lt; features[output][i].values.size(); ++j) {
+<a name="l00520"></a>00520             (out ? *out : cout) &lt;&lt; <span class="stringliteral">" "</span> &lt;&lt; features[output][i].values[j];
+<a name="l00521"></a>00521         }
+<a name="l00522"></a>00522 
+<a name="l00523"></a>00523         (out ? *out : cout) &lt;&lt; endl;
+<a name="l00524"></a>00524     }
+<a name="l00525"></a>00525 }
 <a name="l00526"></a>00526 
-<a name="l00527"></a>00527                 PluginLoader::PluginCategoryHierarchy category =
-<a name="l00528"></a>00528                     loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#d5c594142ff058bd70e66247d45cd86e" title="Return the category hierarchy for a Vamp plugin, given its identifying key.">getPluginCategory</a>(key);
-<a name="l00529"></a>00529 
-<a name="l00530"></a>00530                 <span class="keywordflow">if</span> (!category.empty()) {
-<a name="l00531"></a>00531                     cout &lt;&lt; <span class="stringliteral">"       "</span>;
-<a name="l00532"></a>00532                     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> ci = 0; ci &lt; category.size(); ++ci) {
-<a name="l00533"></a>00533                         cout &lt;&lt; <span class="stringliteral">" &gt; "</span> &lt;&lt; category[ci];
-<a name="l00534"></a>00534                     }
-<a name="l00535"></a>00535                     cout &lt;&lt; endl;
-<a name="l00536"></a>00536                 }
-<a name="l00537"></a>00537 
-<a name="l00538"></a>00538                 <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a" title="Get a human-readable description for the plugin, typically a line of text that may...">getDescription</a>() != <span class="stringliteral">""</span>) {
-<a name="l00539"></a>00539                     cout &lt;&lt; <span class="stringliteral">"        - "</span> &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a" title="Get a human-readable description for the plugin, typically a line of text that may...">getDescription</a>() &lt;&lt; endl;
-<a name="l00540"></a>00540                 }
-<a name="l00541"></a>00541 
-<a name="l00542"></a>00542             } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3134cf6a0dfdb6864356feab9d9ca230d16">PluginIds</a>) {
-<a name="l00543"></a>00543                 cout &lt;&lt; <span class="stringliteral">"vamp:"</span> &lt;&lt; key &lt;&lt; endl;
-<a name="l00544"></a>00544             }
-<a name="l00545"></a>00545             
-<a name="l00546"></a>00546             Plugin::OutputList outputs =
-<a name="l00547"></a>00547                 plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35" title="Get the outputs of this plugin.">getOutputDescriptors</a>();
-<a name="l00548"></a>00548 
-<a name="l00549"></a>00549             <span class="keywordflow">if</span> (outputs.size() &gt; 1 || verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e">PluginOutputIds</a>) {
-<a name="l00550"></a>00550                 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; outputs.size(); ++j) {
-<a name="l00551"></a>00551                     <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a>) {
-<a name="l00552"></a>00552                         cout &lt;&lt; <span class="stringliteral">"         ("</span> &lt;&lt; j &lt;&lt; <span class="stringliteral">") "</span>
-<a name="l00553"></a>00553                              &lt;&lt; outputs[j].name &lt;&lt; <span class="stringliteral">", \""</span>
-<a name="l00554"></a>00554                              &lt;&lt; outputs[j].identifier &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
-<a name="l00555"></a>00555                         <span class="keywordflow">if</span> (outputs[j].description != <span class="stringliteral">""</span>) {
-<a name="l00556"></a>00556                             cout &lt;&lt; <span class="stringliteral">"             - "</span> 
-<a name="l00557"></a>00557                                  &lt;&lt; outputs[j].description &lt;&lt; endl;
-<a name="l00558"></a>00558                         }
-<a name="l00559"></a>00559                     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e">PluginOutputIds</a>) {
-<a name="l00560"></a>00560                         cout &lt;&lt; <span class="stringliteral">"vamp:"</span> &lt;&lt; key &lt;&lt; <span class="stringliteral">":"</span> &lt;&lt; outputs[j].identifier &lt;&lt; endl;
-<a name="l00561"></a>00561                     }
-<a name="l00562"></a>00562                 }
-<a name="l00563"></a>00563             }
-<a name="l00564"></a>00564 
-<a name="l00565"></a>00565             ++index;
+<a name="l00527"></a>00527 <span class="keywordtype">void</span>
+<a name="l00528"></a><a class="code" href="vamp-simple-host_8cpp.html#4767f8c142ee0b61ba414df1b0376a01">00528</a> <a class="code" href="vamp-simple-host_8cpp.html#4767f8c142ee0b61ba414df1b0376a01">printPluginPath</a>(<span class="keywordtype">bool</span> verbose)
+<a name="l00529"></a>00529 {
+<a name="l00530"></a>00530     <span class="keywordflow">if</span> (verbose) {
+<a name="l00531"></a>00531         cout &lt;&lt; <span class="stringliteral">"\nVamp plugin search path: "</span>;
+<a name="l00532"></a>00532     }
+<a name="l00533"></a>00533 
+<a name="l00534"></a>00534     vector&lt;string&gt; path = PluginHostAdapter::getPluginPath();
+<a name="l00535"></a>00535     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; path.size(); ++i) {
+<a name="l00536"></a>00536         <span class="keywordflow">if</span> (verbose) {
+<a name="l00537"></a>00537             cout &lt;&lt; <span class="stringliteral">"["</span> &lt;&lt; path[i] &lt;&lt; <span class="stringliteral">"]"</span>;
+<a name="l00538"></a>00538         } <span class="keywordflow">else</span> {
+<a name="l00539"></a>00539             cout &lt;&lt; path[i] &lt;&lt; endl;
+<a name="l00540"></a>00540         }
+<a name="l00541"></a>00541     }
+<a name="l00542"></a>00542 
+<a name="l00543"></a>00543     <span class="keywordflow">if</span> (verbose) cout &lt;&lt; endl;
+<a name="l00544"></a>00544 }
+<a name="l00545"></a>00545 
+<a name="l00546"></a>00546 <span class="keyword">static</span>
+<a name="l00547"></a>00547 <span class="keywordtype">string</span>
+<a name="l00548"></a><a class="code" href="vamp-simple-host_8cpp.html#713775f2037987c0851ff3672339a82c">00548</a> <a class="code" href="vamp-simple-host_8cpp.html#713775f2037987c0851ff3672339a82c">header</a>(<span class="keywordtype">string</span> text, <span class="keywordtype">int</span> level)
+<a name="l00549"></a>00549 {
+<a name="l00550"></a>00550     <span class="keywordtype">string</span> out = <span class="charliteral">'\n'</span> + text + <span class="charliteral">'\n'</span>;
+<a name="l00551"></a>00551     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; text.length(); ++i) {
+<a name="l00552"></a>00552         out += (level == 1 ? <span class="charliteral">'='</span> : level == 2 ? <span class="charliteral">'-'</span> : <span class="charliteral">'~'</span>);
+<a name="l00553"></a>00553     }
+<a name="l00554"></a>00554     out += <span class="charliteral">'\n'</span>;
+<a name="l00555"></a>00555     <span class="keywordflow">return</span> out;
+<a name="l00556"></a>00556 }
+<a name="l00557"></a>00557 
+<a name="l00558"></a>00558 <span class="keywordtype">void</span>
+<a name="l00559"></a><a class="code" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">00559</a> <a class="code" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">enumeratePlugins</a>(<a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b313">Verbosity</a> verbosity)
+<a name="l00560"></a>00560 {
+<a name="l00561"></a>00561     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *loader = PluginLoader::getInstance();
+<a name="l00562"></a>00562 
+<a name="l00563"></a>00563     <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a>) {
+<a name="l00564"></a>00564         cout &lt;&lt; <span class="stringliteral">"\nVamp plugin libraries found in search path:"</span> &lt;&lt; endl;
+<a name="l00565"></a>00565     }
 <a name="l00566"></a>00566 
-<a name="l00567"></a>00567             <span class="keyword">delete</span> plugin;
-<a name="l00568"></a>00568         }
-<a name="l00569"></a>00569     }
-<a name="l00570"></a>00570 
-<a name="l00571"></a>00571     <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a>) {
-<a name="l00572"></a>00572         cout &lt;&lt; endl;
-<a name="l00573"></a>00573     }
-<a name="l00574"></a>00574 }
-<a name="l00575"></a>00575 
-<a name="l00576"></a>00576 <span class="keywordtype">void</span>
-<a name="l00577"></a><a class="code" href="vamp-simple-host_8cpp.html#f771864c41f23e5755ed99e8ac6609a5">00577</a> <a class="code" href="vamp-simple-host_8cpp.html#f771864c41f23e5755ed99e8ac6609a5">printPluginCategoryList</a>()
-<a name="l00578"></a>00578 {
-<a name="l00579"></a>00579     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *loader = PluginLoader::getInstance();
-<a name="l00580"></a>00580 
-<a name="l00581"></a>00581     vector&lt;PluginLoader::PluginKey&gt; plugins = loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ec450c2928b1ae5318d45972722dd16b" title="Search for all available Vamp plugins, and return a list of them in the order in...">listPlugins</a>();
-<a name="l00582"></a>00582 
-<a name="l00583"></a>00583     set&lt;string&gt; printedcats;
-<a name="l00584"></a>00584 
-<a name="l00585"></a>00585     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; plugins.size(); ++i) {
-<a name="l00586"></a>00586 
-<a name="l00587"></a>00587         PluginLoader::PluginKey key = plugins[i];
-<a name="l00588"></a>00588         
-<a name="l00589"></a>00589         PluginLoader::PluginCategoryHierarchy category =
-<a name="l00590"></a>00590             loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#d5c594142ff058bd70e66247d45cd86e" title="Return the category hierarchy for a Vamp plugin, given its identifying key.">getPluginCategory</a>(key);
-<a name="l00591"></a>00591 
-<a name="l00592"></a>00592         <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin = loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#2154970381343edef629482bdafea7e2" title="Load a Vamp plugin, given its identifying key.">loadPlugin</a>(key, 48000);
-<a name="l00593"></a>00593         <span class="keywordflow">if</span> (!plugin) <span class="keywordflow">continue</span>;
-<a name="l00594"></a>00594 
-<a name="l00595"></a>00595         <span class="keywordtype">string</span> catstr = <span class="stringliteral">""</span>;
-<a name="l00596"></a>00596 
-<a name="l00597"></a>00597         <span class="keywordflow">if</span> (category.empty()) catstr = <span class="charliteral">'|'</span>;
-<a name="l00598"></a>00598         <span class="keywordflow">else</span> {
-<a name="l00599"></a>00599             <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; category.size(); ++j) {
-<a name="l00600"></a>00600                 catstr += category[j];
-<a name="l00601"></a>00601                 catstr += <span class="charliteral">'|'</span>;
-<a name="l00602"></a>00602                 <span class="keywordflow">if</span> (printedcats.find(catstr) == printedcats.end()) {
-<a name="l00603"></a>00603                     std::cout &lt;&lt; catstr &lt;&lt; std::endl;
-<a name="l00604"></a>00604                     printedcats.insert(catstr);
-<a name="l00605"></a>00605                 }
-<a name="l00606"></a>00606             }
-<a name="l00607"></a>00607         }
-<a name="l00608"></a>00608 
-<a name="l00609"></a>00609         std::cout &lt;&lt; catstr &lt;&lt; key &lt;&lt; <span class="stringliteral">":::"</span> &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232" title="Get a human-readable name or title of the plugin.">getName</a>() &lt;&lt; <span class="stringliteral">":::"</span> &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637" title="Get the name of the author or vendor of the plugin in human-readable form.">getMaker</a>() &lt;&lt; <span class="stringliteral">":::"</span> &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a" title="Get a human-readable description for the plugin, typically a line of text that may...">getDescription</a>() &lt;&lt; std::endl;
-<a name="l00610"></a>00610     }
-<a name="l00611"></a>00611 }
-<a name="l00612"></a>00612 
+<a name="l00567"></a>00567     vector&lt;PluginLoader::PluginKey&gt; plugins = loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff51b52bb68aa2934ccf26ad1d284f28" title="Search for all available Vamp plugins, and return a list of them in the order in...">listPlugins</a>();
+<a name="l00568"></a>00568     <span class="keyword">typedef</span> multimap&lt;string, PluginLoader::PluginKey&gt;
+<a name="l00569"></a>00569         LibraryMap;
+<a name="l00570"></a>00570     LibraryMap libraryMap;
+<a name="l00571"></a>00571 
+<a name="l00572"></a>00572     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; plugins.size(); ++i) {
+<a name="l00573"></a>00573         <span class="keywordtype">string</span> path = loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#4bbcb7873e617bbc9f79eade1f90f7ad" title="Return the file path of the dynamic library from which the given plugin will be loaded...">getLibraryPathForPlugin</a>(plugins[i]);
+<a name="l00574"></a>00574         libraryMap.insert(LibraryMap::value_type(path, plugins[i]));
+<a name="l00575"></a>00575     }
+<a name="l00576"></a>00576 
+<a name="l00577"></a>00577     <span class="keywordtype">string</span> prevPath = <span class="stringliteral">""</span>;
+<a name="l00578"></a>00578     <span class="keywordtype">int</span> index = 0;
+<a name="l00579"></a>00579 
+<a name="l00580"></a>00580     <span class="keywordflow">for</span> (LibraryMap::iterator i = libraryMap.begin();
+<a name="l00581"></a>00581          i != libraryMap.end(); ++i) {
+<a name="l00582"></a>00582         
+<a name="l00583"></a>00583         <span class="keywordtype">string</span> path = i-&gt;first;
+<a name="l00584"></a>00584         PluginLoader::PluginKey key = i-&gt;second;
+<a name="l00585"></a>00585 
+<a name="l00586"></a>00586         <span class="keywordflow">if</span> (path != prevPath) {
+<a name="l00587"></a>00587             prevPath = path;
+<a name="l00588"></a>00588             index = 0;
+<a name="l00589"></a>00589             <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a>) {
+<a name="l00590"></a>00590                 cout &lt;&lt; <span class="stringliteral">"\n  "</span> &lt;&lt; path &lt;&lt; <span class="stringliteral">":"</span> &lt;&lt; endl;
+<a name="l00591"></a>00591             } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3132624ce417628b6d40ce0973ba381c1e6">PluginInformationDetailed</a>) {
+<a name="l00592"></a>00592                 string::size_type ki = i-&gt;second.find(<span class="charliteral">':'</span>);
+<a name="l00593"></a>00593                 <span class="keywordtype">string</span> text = <span class="stringliteral">"Library \""</span> + i-&gt;second.substr(0, ki) + <span class="stringliteral">"\""</span>;
+<a name="l00594"></a>00594                 cout &lt;&lt; <span class="stringliteral">"\n"</span> &lt;&lt; <a class="code" href="vamp-simple-host_8cpp.html#713775f2037987c0851ff3672339a82c">header</a>(text, 1);
+<a name="l00595"></a>00595             }
+<a name="l00596"></a>00596         }
+<a name="l00597"></a>00597 
+<a name="l00598"></a>00598         <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin = loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f" title="Load a Vamp plugin, given its identifying key.">loadPlugin</a>(key, 48000);
+<a name="l00599"></a>00599         <span class="keywordflow">if</span> (plugin) {
+<a name="l00600"></a>00600 
+<a name="l00601"></a>00601             <span class="keywordtype">char</span> c = char(<span class="charliteral">'A'</span> + index);
+<a name="l00602"></a>00602             <span class="keywordflow">if</span> (c &gt; <span class="charliteral">'Z'</span>) c = char(<span class="charliteral">'a'</span> + (index - 26));
+<a name="l00603"></a>00603 
+<a name="l00604"></a>00604             PluginLoader::PluginCategoryHierarchy category =
+<a name="l00605"></a>00605                 loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#52746ea66339ad981b868a031a3b382d" title="Return the category hierarchy for a Vamp plugin, given its identifying key.">getPluginCategory</a>(key);
+<a name="l00606"></a>00606             <span class="keywordtype">string</span> catstr;
+<a name="l00607"></a>00607             <span class="keywordflow">if</span> (!category.empty()) {
+<a name="l00608"></a>00608                 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> ci = 0; ci &lt; category.size(); ++ci) {
+<a name="l00609"></a>00609                     <span class="keywordflow">if</span> (ci &gt; 0) catstr += <span class="stringliteral">" &gt; "</span>;
+<a name="l00610"></a>00610                         catstr += category[ci];
+<a name="l00611"></a>00611                 }
+<a name="l00612"></a>00612             }
+<a name="l00613"></a>00613 
+<a name="l00614"></a>00614             <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a>) {
+<a name="l00615"></a>00615 
+<a name="l00616"></a>00616                 cout &lt;&lt; <span class="stringliteral">"    ["</span> &lt;&lt; c &lt;&lt; <span class="stringliteral">"] [v"</span>
+<a name="l00617"></a>00617                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf" title="Get the Vamp API compatibility level of the plugin.">getVampApiVersion</a>() &lt;&lt; <span class="stringliteral">"] "</span>
+<a name="l00618"></a>00618                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232" title="Get a human-readable name or title of the plugin.">getName</a>() &lt;&lt; <span class="stringliteral">", \""</span>
+<a name="l00619"></a>00619                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a" title="Get the computer-usable name of the plugin.">getIdentifier</a>() &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; <span class="stringliteral">" ["</span>
+<a name="l00620"></a>00620                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637" title="Get the name of the author or vendor of the plugin in human-readable form.">getMaker</a>() &lt;&lt; <span class="stringliteral">"]"</span> &lt;&lt; endl;
+<a name="l00621"></a>00621                 
+<a name="l00622"></a>00622                 <span class="keywordflow">if</span> (catstr != <span class="stringliteral">""</span>) {
+<a name="l00623"></a>00623                     cout &lt;&lt; <span class="stringliteral">"       &gt; "</span> &lt;&lt; catstr &lt;&lt; endl;
+<a name="l00624"></a>00624                 }
+<a name="l00625"></a>00625 
+<a name="l00626"></a>00626                 <span class="keywordflow">if</span> (plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a" title="Get a human-readable description for the plugin, typically a line of text that may...">getDescription</a>() != <span class="stringliteral">""</span>) {
+<a name="l00627"></a>00627                     cout &lt;&lt; <span class="stringliteral">"        - "</span> &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a" title="Get a human-readable description for the plugin, typically a line of text that may...">getDescription</a>() &lt;&lt; endl;
+<a name="l00628"></a>00628                 }
+<a name="l00629"></a>00629 
+<a name="l00630"></a>00630             } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3132624ce417628b6d40ce0973ba381c1e6">PluginInformationDetailed</a>) {
+<a name="l00631"></a>00631 
+<a name="l00632"></a>00632                 cout &lt;&lt; <a class="code" href="vamp-simple-host_8cpp.html#713775f2037987c0851ff3672339a82c">header</a>(plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232" title="Get a human-readable name or title of the plugin.">getName</a>(), 2);
+<a name="l00633"></a>00633                 cout &lt;&lt; <span class="stringliteral">" - Identifier:         "</span>
+<a name="l00634"></a>00634                      &lt;&lt; key &lt;&lt; endl;
+<a name="l00635"></a>00635                 cout &lt;&lt; <span class="stringliteral">" - Plugin Version:     "</span> 
+<a name="l00636"></a>00636                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151" title="Get the version number of the plugin.">getPluginVersion</a>() &lt;&lt; endl;
+<a name="l00637"></a>00637                 cout &lt;&lt; <span class="stringliteral">" - Vamp API Version:   "</span>
+<a name="l00638"></a>00638                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf" title="Get the Vamp API compatibility level of the plugin.">getVampApiVersion</a>() &lt;&lt; endl;
+<a name="l00639"></a>00639                 cout &lt;&lt; <span class="stringliteral">" - Maker:              \""</span>
+<a name="l00640"></a>00640                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637" title="Get the name of the author or vendor of the plugin in human-readable form.">getMaker</a>() &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
+<a name="l00641"></a>00641                 cout &lt;&lt; <span class="stringliteral">" - Copyright:          \""</span>
+<a name="l00642"></a>00642                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661" title="Get the copyright statement or licensing summary for the plugin.">getCopyright</a>() &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
+<a name="l00643"></a>00643                 cout &lt;&lt; <span class="stringliteral">" - Description:        \""</span>
+<a name="l00644"></a>00644                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a" title="Get a human-readable description for the plugin, typically a line of text that may...">getDescription</a>() &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
+<a name="l00645"></a>00645                 cout &lt;&lt; <span class="stringliteral">" - Input Domain:       "</span>
+<a name="l00646"></a>00646                      &lt;&lt; (plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6" title="Get the plugin&amp;#39;s required input domain.">getInputDomain</a>() == <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">Vamp::Plugin::TimeDomain</a> ?
+<a name="l00647"></a>00647                          <span class="stringliteral">"Time Domain"</span> : <span class="stringliteral">"Frequency Domain"</span>) &lt;&lt; endl;
+<a name="l00648"></a>00648                 cout &lt;&lt; <span class="stringliteral">" - Default Step Size:  "</span> 
+<a name="l00649"></a>00649                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567" title="Get the preferred step size (window increment -- the distance in sample frames between...">getPreferredStepSize</a>() &lt;&lt; endl;
+<a name="l00650"></a>00650                 cout &lt;&lt; <span class="stringliteral">" - Default Block Size: "</span> 
+<a name="l00651"></a>00651                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac" title="Get the preferred block size (window size -- the number of sample frames passed in...">getPreferredBlockSize</a>() &lt;&lt; endl;
+<a name="l00652"></a>00652                 cout &lt;&lt; <span class="stringliteral">" - Minimum Channels:   "</span> 
+<a name="l00653"></a>00653                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525" title="Get the minimum supported number of input channels.">getMinChannelCount</a>() &lt;&lt; endl;
+<a name="l00654"></a>00654                 cout &lt;&lt; <span class="stringliteral">" - Maximum Channels:   "</span> 
+<a name="l00655"></a>00655                      &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e" title="Get the maximum supported number of input channels.">getMaxChannelCount</a>() &lt;&lt; endl;
+<a name="l00656"></a>00656 
+<a name="l00657"></a>00657             } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3134cf6a0dfdb6864356feab9d9ca230d16">PluginIds</a>) {
+<a name="l00658"></a>00658                 cout &lt;&lt; <span class="stringliteral">"vamp:"</span> &lt;&lt; key &lt;&lt; endl;
+<a name="l00659"></a>00659             }
+<a name="l00660"></a>00660             
+<a name="l00661"></a>00661             Plugin::OutputList outputs =
+<a name="l00662"></a>00662                 plugin-&gt;<a class="code" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35" title="Get the outputs of this plugin.">getOutputDescriptors</a>();
+<a name="l00663"></a>00663 
+<a name="l00664"></a>00664             <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3132624ce417628b6d40ce0973ba381c1e6">PluginInformationDetailed</a>) {
+<a name="l00665"></a>00665 
+<a name="l00666"></a>00666                 Plugin::ParameterList params = plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21" title="Get the controllable parameters of this plugin.">getParameterDescriptors</a>();
+<a name="l00667"></a>00667                 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; params.size(); ++j) {
+<a name="l00668"></a>00668                     Plugin::ParameterDescriptor &amp;pd(params[j]);
+<a name="l00669"></a>00669                     cout &lt;&lt; <span class="stringliteral">"\nParameter "</span> &lt;&lt; j+1 &lt;&lt; <span class="stringliteral">": \""</span> &lt;&lt; pd.name &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
+<a name="l00670"></a>00670                     cout &lt;&lt; <span class="stringliteral">" - Identifier:         "</span> &lt;&lt; pd.identifier &lt;&lt; endl;
+<a name="l00671"></a>00671                     cout &lt;&lt; <span class="stringliteral">" - Description:        \""</span> &lt;&lt; pd.description &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
+<a name="l00672"></a>00672                     <span class="keywordflow">if</span> (pd.unit != <span class="stringliteral">""</span>) {
+<a name="l00673"></a>00673                         cout &lt;&lt; <span class="stringliteral">" - Unit:               "</span> &lt;&lt; pd.unit &lt;&lt; endl;
+<a name="l00674"></a>00674                     }
+<a name="l00675"></a>00675                     cout &lt;&lt; <span class="stringliteral">" - Range:              "</span>;
+<a name="l00676"></a>00676                     cout &lt;&lt; pd.minValue &lt;&lt; <span class="stringliteral">" -&gt; "</span> &lt;&lt; pd.maxValue &lt;&lt; endl;
+<a name="l00677"></a>00677                     cout &lt;&lt; <span class="stringliteral">" - Default:            "</span>;
+<a name="l00678"></a>00678                     cout &lt;&lt; pd.defaultValue &lt;&lt; endl;
+<a name="l00679"></a>00679                     <span class="keywordflow">if</span> (pd.isQuantized) {
+<a name="l00680"></a>00680                         cout &lt;&lt; <span class="stringliteral">" - Quantize Step:      "</span>
+<a name="l00681"></a>00681                              &lt;&lt; pd.quantizeStep &lt;&lt; endl;
+<a name="l00682"></a>00682                     }
+<a name="l00683"></a>00683                     <span class="keywordflow">if</span> (!pd.valueNames.empty()) {
+<a name="l00684"></a>00684                         cout &lt;&lt; <span class="stringliteral">" - Value Names:        "</span>;
+<a name="l00685"></a>00685                         <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> k = 0; k &lt; pd.valueNames.size(); ++k) {
+<a name="l00686"></a>00686                             <span class="keywordflow">if</span> (k &gt; 0) cout &lt;&lt; <span class="stringliteral">", "</span>;
+<a name="l00687"></a>00687                             cout &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; pd.valueNames[k] &lt;&lt; <span class="stringliteral">"\""</span>;
+<a name="l00688"></a>00688                         }
+<a name="l00689"></a>00689                         cout &lt;&lt; endl;
+<a name="l00690"></a>00690                     }
+<a name="l00691"></a>00691                 }
+<a name="l00692"></a>00692 
+<a name="l00693"></a>00693                 <span class="keywordflow">if</span> (outputs.empty()) {
+<a name="l00694"></a>00694                     cout &lt;&lt; <span class="stringliteral">"\n** Note: This plugin reports no outputs!"</span> &lt;&lt; endl;
+<a name="l00695"></a>00695                 }
+<a name="l00696"></a>00696                 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; outputs.size(); ++j) {
+<a name="l00697"></a>00697                     Plugin::OutputDescriptor &amp;od(outputs[j]);
+<a name="l00698"></a>00698                     cout &lt;&lt; <span class="stringliteral">"\nOutput "</span> &lt;&lt; j+1 &lt;&lt; <span class="stringliteral">": \""</span> &lt;&lt; od.name &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
+<a name="l00699"></a>00699                     cout &lt;&lt; <span class="stringliteral">" - Identifier:         "</span> &lt;&lt; od.identifier &lt;&lt; endl;
+<a name="l00700"></a>00700                     cout &lt;&lt; <span class="stringliteral">" - Description:        \""</span> &lt;&lt; od.description &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
+<a name="l00701"></a>00701                     <span class="keywordflow">if</span> (od.unit != <span class="stringliteral">""</span>) {
+<a name="l00702"></a>00702                         cout &lt;&lt; <span class="stringliteral">" - Unit:               "</span> &lt;&lt; od.unit &lt;&lt; endl;
+<a name="l00703"></a>00703                     }
+<a name="l00704"></a>00704                     <span class="keywordflow">if</span> (od.hasFixedBinCount) {
+<a name="l00705"></a>00705                         cout &lt;&lt; <span class="stringliteral">" - Default Bin Count:  "</span> &lt;&lt; od.binCount &lt;&lt; endl;
+<a name="l00706"></a>00706                     }
+<a name="l00707"></a>00707                     <span class="keywordflow">if</span> (!od.binNames.empty()) {
+<a name="l00708"></a>00708                         <span class="keywordtype">bool</span> have = <span class="keyword">false</span>;
+<a name="l00709"></a>00709                         <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> k = 0; k &lt; od.binNames.size(); ++k) {
+<a name="l00710"></a>00710                             <span class="keywordflow">if</span> (od.binNames[k] != <span class="stringliteral">""</span>) {
+<a name="l00711"></a>00711                                 have = <span class="keyword">true</span>; <span class="keywordflow">break</span>;
+<a name="l00712"></a>00712                             }
+<a name="l00713"></a>00713                         }
+<a name="l00714"></a>00714                         <span class="keywordflow">if</span> (have) {
+<a name="l00715"></a>00715                             cout &lt;&lt; <span class="stringliteral">" - Bin Names:          "</span>;
+<a name="l00716"></a>00716                             <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> k = 0; k &lt; od.binNames.size(); ++k) {
+<a name="l00717"></a>00717                                 <span class="keywordflow">if</span> (k &gt; 0) cout &lt;&lt; <span class="stringliteral">", "</span>;
+<a name="l00718"></a>00718                                 cout &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; od.binNames[k] &lt;&lt; <span class="stringliteral">"\""</span>;
+<a name="l00719"></a>00719                             }
+<a name="l00720"></a>00720                             cout &lt;&lt; endl;
+<a name="l00721"></a>00721                         }
+<a name="l00722"></a>00722                     }
+<a name="l00723"></a>00723                     <span class="keywordflow">if</span> (od.hasKnownExtents) {
+<a name="l00724"></a>00724                         cout &lt;&lt; <span class="stringliteral">" - Default Extents:    "</span>;
+<a name="l00725"></a>00725                         cout &lt;&lt; od.minValue &lt;&lt; <span class="stringliteral">" -&gt; "</span> &lt;&lt; od.maxValue &lt;&lt; endl;
+<a name="l00726"></a>00726                     }
+<a name="l00727"></a>00727                     <span class="keywordflow">if</span> (od.isQuantized) {
+<a name="l00728"></a>00728                         cout &lt;&lt; <span class="stringliteral">" - Quantize Step:      "</span>
+<a name="l00729"></a>00729                              &lt;&lt; od.quantizeStep &lt;&lt; endl;
+<a name="l00730"></a>00730                     }
+<a name="l00731"></a>00731                     cout &lt;&lt; <span class="stringliteral">" - Sample Type:        "</span>
+<a name="l00732"></a>00732                          &lt;&lt; (od.sampleType ==
+<a name="l00733"></a>00733                              Plugin::OutputDescriptor::OneSamplePerStep ?
+<a name="l00734"></a>00734                              <span class="stringliteral">"One Sample Per Step"</span> :
+<a name="l00735"></a>00735                              od.sampleType ==
+<a name="l00736"></a>00736                              Plugin::OutputDescriptor::FixedSampleRate ?
+<a name="l00737"></a>00737                              <span class="stringliteral">"Fixed Sample Rate"</span> :
+<a name="l00738"></a>00738                              <span class="stringliteral">"Variable Sample Rate"</span>) &lt;&lt; endl;
+<a name="l00739"></a>00739                     <span class="keywordflow">if</span> (od.sampleType !=
+<a name="l00740"></a>00740                         Plugin::OutputDescriptor::OneSamplePerStep) {
+<a name="l00741"></a>00741                         cout &lt;&lt; <span class="stringliteral">" - Default Rate:       "</span>
+<a name="l00742"></a>00742                              &lt;&lt; od.sampleRate &lt;&lt; endl;
+<a name="l00743"></a>00743                     }
+<a name="l00744"></a>00744                     cout &lt;&lt; <span class="stringliteral">" - Has Duration:       "</span>
+<a name="l00745"></a>00745                          &lt;&lt; (od.hasDuration ? <span class="stringliteral">"Yes"</span> : <span class="stringliteral">"No"</span>) &lt;&lt; endl;
+<a name="l00746"></a>00746                 }
+<a name="l00747"></a>00747             }
+<a name="l00748"></a>00748 
+<a name="l00749"></a>00749             <span class="keywordflow">if</span> (outputs.size() &gt; 1 || verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e">PluginOutputIds</a>) {
+<a name="l00750"></a>00750                 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; outputs.size(); ++j) {
+<a name="l00751"></a>00751                     <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a>) {
+<a name="l00752"></a>00752                         cout &lt;&lt; <span class="stringliteral">"         ("</span> &lt;&lt; j &lt;&lt; <span class="stringliteral">") "</span>
+<a name="l00753"></a>00753                              &lt;&lt; outputs[j].name &lt;&lt; <span class="stringliteral">", \""</span>
+<a name="l00754"></a>00754                              &lt;&lt; outputs[j].identifier &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; endl;
+<a name="l00755"></a>00755                         <span class="keywordflow">if</span> (outputs[j].description != <span class="stringliteral">""</span>) {
+<a name="l00756"></a>00756                             cout &lt;&lt; <span class="stringliteral">"             - "</span> 
+<a name="l00757"></a>00757                                  &lt;&lt; outputs[j].description &lt;&lt; endl;
+<a name="l00758"></a>00758                         }
+<a name="l00759"></a>00759                     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e">PluginOutputIds</a>) {
+<a name="l00760"></a>00760                         cout &lt;&lt; <span class="stringliteral">"vamp:"</span> &lt;&lt; key &lt;&lt; <span class="stringliteral">":"</span> &lt;&lt; outputs[j].identifier &lt;&lt; endl;
+<a name="l00761"></a>00761                     }
+<a name="l00762"></a>00762                 }
+<a name="l00763"></a>00763             }
+<a name="l00764"></a>00764 
+<a name="l00765"></a>00765             ++index;
+<a name="l00766"></a>00766 
+<a name="l00767"></a>00767             <span class="keyword">delete</span> plugin;
+<a name="l00768"></a>00768         }
+<a name="l00769"></a>00769     }
+<a name="l00770"></a>00770 
+<a name="l00771"></a>00771     <span class="keywordflow">if</span> (verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a> ||
+<a name="l00772"></a>00772         verbosity == <a class="code" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3132624ce417628b6d40ce0973ba381c1e6">PluginInformationDetailed</a>) {
+<a name="l00773"></a>00773         cout &lt;&lt; endl;
+<a name="l00774"></a>00774     }
+<a name="l00775"></a>00775 }
+<a name="l00776"></a>00776 
+<a name="l00777"></a>00777 <span class="keywordtype">void</span>
+<a name="l00778"></a><a class="code" href="vamp-simple-host_8cpp.html#f771864c41f23e5755ed99e8ac6609a5">00778</a> <a class="code" href="vamp-simple-host_8cpp.html#f771864c41f23e5755ed99e8ac6609a5">printPluginCategoryList</a>()
+<a name="l00779"></a>00779 {
+<a name="l00780"></a>00780     <a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html" title="Vamp::HostExt::PluginLoader is a convenience class for discovering and loading Vamp...">PluginLoader</a> *loader = PluginLoader::getInstance();
+<a name="l00781"></a>00781 
+<a name="l00782"></a>00782     vector&lt;PluginLoader::PluginKey&gt; plugins = loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff51b52bb68aa2934ccf26ad1d284f28" title="Search for all available Vamp plugins, and return a list of them in the order in...">listPlugins</a>();
+<a name="l00783"></a>00783 
+<a name="l00784"></a>00784     set&lt;string&gt; printedcats;
+<a name="l00785"></a>00785 
+<a name="l00786"></a>00786     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; plugins.size(); ++i) {
+<a name="l00787"></a>00787 
+<a name="l00788"></a>00788         PluginLoader::PluginKey key = plugins[i];
+<a name="l00789"></a>00789         
+<a name="l00790"></a>00790         PluginLoader::PluginCategoryHierarchy category =
+<a name="l00791"></a>00791             loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#52746ea66339ad981b868a031a3b382d" title="Return the category hierarchy for a Vamp plugin, given its identifying key.">getPluginCategory</a>(key);
+<a name="l00792"></a>00792 
+<a name="l00793"></a>00793         <a class="code" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Plugin</a> *plugin = loader-&gt;<a class="code" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f" title="Load a Vamp plugin, given its identifying key.">loadPlugin</a>(key, 48000);
+<a name="l00794"></a>00794         <span class="keywordflow">if</span> (!plugin) <span class="keywordflow">continue</span>;
+<a name="l00795"></a>00795 
+<a name="l00796"></a>00796         <span class="keywordtype">string</span> catstr = <span class="stringliteral">""</span>;
+<a name="l00797"></a>00797 
+<a name="l00798"></a>00798         <span class="keywordflow">if</span> (category.empty()) catstr = <span class="charliteral">'|'</span>;
+<a name="l00799"></a>00799         <span class="keywordflow">else</span> {
+<a name="l00800"></a>00800             <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; category.size(); ++j) {
+<a name="l00801"></a>00801                 catstr += category[j];
+<a name="l00802"></a>00802                 catstr += <span class="charliteral">'|'</span>;
+<a name="l00803"></a>00803                 <span class="keywordflow">if</span> (printedcats.find(catstr) == printedcats.end()) {
+<a name="l00804"></a>00804                     std::cout &lt;&lt; catstr &lt;&lt; std::endl;
+<a name="l00805"></a>00805                     printedcats.insert(catstr);
+<a name="l00806"></a>00806                 }
+<a name="l00807"></a>00807             }
+<a name="l00808"></a>00808         }
+<a name="l00809"></a>00809 
+<a name="l00810"></a>00810         std::cout &lt;&lt; catstr &lt;&lt; key &lt;&lt; <span class="stringliteral">":::"</span> &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232" title="Get a human-readable name or title of the plugin.">getName</a>() &lt;&lt; <span class="stringliteral">":::"</span> &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637" title="Get the name of the author or vendor of the plugin in human-readable form.">getMaker</a>() &lt;&lt; <span class="stringliteral">":::"</span> &lt;&lt; plugin-&gt;<a class="code" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a" title="Get a human-readable description for the plugin, typically a line of text that may...">getDescription</a>() &lt;&lt; std::endl;
+<a name="l00811"></a>00811     }
+<a name="l00812"></a>00812 }
+<a name="l00813"></a>00813 
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/vamp-simple-host_8cpp.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/vamp-simple-host_8cpp.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -26,12 +26,13 @@
 <a href="vamp-simple-host_8cpp-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>Defines</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-simple-host_8cpp.html#a8bc193818940a8954ef0e0e5a8e16d6">HOST_VERSION</a>&nbsp;&nbsp;&nbsp;&quot;1.1&quot;</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-simple-host_8cpp.html#a8bc193818940a8954ef0e0e5a8e16d6">HOST_VERSION</a>&nbsp;&nbsp;&nbsp;&quot;1.4&quot;</td></tr>
 
 <tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b313">Verbosity</a> { <a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3134cf6a0dfdb6864356feab9d9ca230d16">PluginIds</a>, 
 <a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e">PluginOutputIds</a>, 
-<a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a>
+<a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1">PluginInformation</a>, 
+<a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b3132624ce417628b6d40ce0973ba381c1e6">PluginInformationDetailed</a>
  }</td></tr>
 
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
@@ -55,6 +56,8 @@
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-simple-host_8cpp.html#3c04138a5bfe5d72780bb7e82a18e627">main</a> (int argc, char **argv)</td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-simple-host_8cpp.html#713775f2037987c0851ff3672339a82c">header</a> (string text, int level)</td></tr>
+
 </table>
 <hr><h2>Define Documentation</h2>
 <a class="anchor" name="a8bc193818940a8954ef0e0e5a8e16d6"></a><!-- doxytag: member="vamp-simple-host.cpp::HOST_VERSION" ref="a8bc193818940a8954ef0e0e5a8e16d6" args="" -->
@@ -62,7 +65,7 @@
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">#define HOST_VERSION&nbsp;&nbsp;&nbsp;&quot;1.1&quot;          </td>
+          <td class="memname">#define HOST_VERSION&nbsp;&nbsp;&nbsp;&quot;1.4&quot;          </td>
         </tr>
       </table>
 </div>
@@ -70,9 +73,9 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00063">63</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
+<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00074">74</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">main()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00137">main()</a>.</p>
 
 </div>
 </div><p>
@@ -97,10 +100,12 @@
 </td></tr>
 <tr><td valign="top"><em><a class="anchor" name="bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1"></a><!-- doxytag: member="PluginInformation" ref="bf3be10d03894afb391f3a2935e3b3138acba147ed4716f3baa8546f6dc055a1" args="" -->PluginInformation</em>&nbsp;</td><td>
 </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="bf3be10d03894afb391f3a2935e3b3132624ce417628b6d40ce0973ba381c1e6"></a><!-- doxytag: member="PluginInformationDetailed" ref="bf3be10d03894afb391f3a2935e3b3132624ce417628b6d40ce0973ba381c1e6" args="" -->PluginInformationDetailed</em>&nbsp;</td><td>
+</td></tr>
 </table>
 </dl>
 
-<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00065">65</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
+<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00076">76</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
 
 </div>
 </div><p>
@@ -148,7 +153,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -156,11 +161,11 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00423">423</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
+<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00477">477</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
 
-<p>References <a class="el" href="RealTime_8cpp-source.html#l00135">Vamp::RealTime::toString()</a>.</p>
+<p>References <a class="el" href="structVamp_1_1RealTime.html#d44476618183bd736996a87292d03c07">Vamp::RealTime::toString()</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
 
 </div>
 </div><p>
@@ -183,7 +188,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -236,7 +241,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -256,7 +261,7 @@
           <td class="paramtype">bool&nbsp;</td>
           <td class="paramname"> <em>verbose</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -264,9 +269,9 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00459">459</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
+<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00528">528</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">main()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00137">main()</a>.</p>
 
 </div>
 </div><p>
@@ -279,7 +284,7 @@
           <td>(</td>
           <td class="paramname">          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -287,11 +292,11 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00577">577</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
+<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00778">778</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
 
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase::getDescription()</a>, <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase::getMaker()</a>, <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase::getName()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00185">Vamp::HostExt::PluginLoader::getPluginCategory()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00165">Vamp::HostExt::PluginLoader::listPlugins()</a>, and <a class="el" href="PluginLoader_8cpp-source.html#l00171">Vamp::HostExt::PluginLoader::loadPlugin()</a>.</p>
+<p>References <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase::getDescription()</a>, <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase::getMaker()</a>, <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase::getName()</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#52746ea66339ad981b868a031a3b382d">Vamp::HostExt::PluginLoader::getPluginCategory()</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff51b52bb68aa2934ccf26ad1d284f28">Vamp::HostExt::PluginLoader::listPlugins()</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f">Vamp::HostExt::PluginLoader::loadPlugin()</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">main()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00137">main()</a>.</p>
 
 </div>
 </div><p>
@@ -305,7 +310,7 @@
           <td class="paramtype"><a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b313">Verbosity</a>&nbsp;</td>
           <td class="paramname"> <em>verbosity</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -313,11 +318,11 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">478</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
+<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">559</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
 
-<p>References <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase::getDescription()</a>, <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase::getIdentifier()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00191">Vamp::HostExt::PluginLoader::getLibraryPathForPlugin()</a>, <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase::getMaker()</a>, <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase::getName()</a>, <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin::getOutputDescriptors()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00185">Vamp::HostExt::PluginLoader::getPluginCategory()</a>, <a class="el" href="PluginBase_8h-source.html#l00067">Vamp::PluginBase::getVampApiVersion()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00165">Vamp::HostExt::PluginLoader::listPlugins()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00171">Vamp::HostExt::PluginLoader::loadPlugin()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00066">PluginIds</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00068">PluginInformation</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00067">PluginOutputIds</a>.</p>
+<p>References <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase::getCopyright()</a>, <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase::getDescription()</a>, <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase::getIdentifier()</a>, <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin::getInputDomain()</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#4bbcb7873e617bbc9f79eade1f90f7ad">Vamp::HostExt::PluginLoader::getLibraryPathForPlugin()</a>, <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase::getMaker()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">Vamp::Plugin::getMaxChannelCount()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">Vamp::Plugin::getMinChannelCount()</a>, <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase::getName()</a>, <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin::getOutputDescriptors()</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00208">Vamp::PluginBase::getParameterDescriptors()</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#52746ea66339ad981b868a031a3b382d">Vamp::HostExt::PluginLoader::getPluginCategory()</a>, <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase::getPluginVersion()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00174">Vamp::Plugin::getPreferredBlockSize()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00189">Vamp::Plugin::getPreferredStepSize()</a>, <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00072">Vamp::PluginBase::getVampApiVersion()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00548">header()</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff51b52bb68aa2934ccf26ad1d284f28">Vamp::HostExt::PluginLoader::listPlugins()</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f">Vamp::HostExt::PluginLoader::loadPlugin()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00077">PluginIds</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00079">PluginInformation</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00080">PluginInformationDetailed</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00078">PluginOutputIds</a>, and <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">Vamp::Plugin::TimeDomain</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">main()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00137">main()</a>.</p>
 
 </div>
 </div><p>
@@ -331,7 +336,7 @@
           <td class="paramtype">string&nbsp;</td>
           <td class="paramname"> <em>soname</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -396,7 +401,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -404,11 +409,11 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">244</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
+<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">265</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
 
-<p>References <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#cc6865d27825c100d7b6f9ed6ecf5207">Vamp::HostExt::PluginLoader::composePluginKey()</a>, <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase::getIdentifier()</a>, <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin::getInputDomain()</a>, <a class="el" href="Plugin_8h-source.html#l00196">Vamp::Plugin::getMaxChannelCount()</a>, <a class="el" href="Plugin_8h-source.html#l00191">Vamp::Plugin::getMinChannelCount()</a>, <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin::getOutputDescriptors()</a>, <a class="el" href="Plugin_8h-source.html#l00171">Vamp::Plugin::getPreferredBlockSize()</a>, <a class="el" href="Plugin_8h-source.html#l00186">Vamp::Plugin::getPreferredStepSize()</a>, <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin::getRemainingFeatures()</a>, <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin::initialise()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00171">Vamp::HostExt::PluginLoader::loadPlugin()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00423">printFeatures()</a>, and <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin::process()</a>.</p>
+<p>References <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#cc6865d27825c100d7b6f9ed6ecf5207">Vamp::HostExt::PluginLoader::composePluginKey()</a>, <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase::getIdentifier()</a>, <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin::getInputDomain()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00199">Vamp::Plugin::getMaxChannelCount()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00194">Vamp::Plugin::getMinChannelCount()</a>, <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin::getOutputDescriptors()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00174">Vamp::Plugin::getPreferredBlockSize()</a>, <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00189">Vamp::Plugin::getPreferredStepSize()</a>, <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin::getRemainingFeatures()</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#c1ab6af0fcda0a4c3f050c54b2db4769">Vamp::HostExt::PluginInputDomainAdapter::getTimestampAdjustment()</a>, <a class="el" href="PluginWrapper_8h-source.html#l00116">Vamp::HostExt::PluginWrapper::getWrapper()</a>, <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin::initialise()</a>, <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f">Vamp::HostExt::PluginLoader::loadPlugin()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00477">printFeatures()</a>, and <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin::process()</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">main()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00137">main()</a>.</p>
 
 </div>
 </div><p>
@@ -422,7 +427,7 @@
           <td class="paramtype">const char *&nbsp;</td>
           <td class="paramname"> <em>name</em>          </td>
           <td>&nbsp;)&nbsp;</td>
-          <td width="100%"></td>
+          <td></td>
         </tr>
       </table>
 </div>
@@ -430,11 +435,11 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00081">81</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
+<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00093">93</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
 
-<p>References <a class="el" href="PluginLoader_8cpp-source.html#l00062">PLUGIN_SUFFIX</a>.</p>
+<p>References <a class="el" href="system_8h-source.html#l00067">PLUGIN_SUFFIX</a>.</p>
 
-<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">main()</a>.</p>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00137">main()</a>.</p>
 
 </div>
 </div><p>
@@ -457,7 +462,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -465,15 +470,48 @@
 
 <p>
 
-<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">121</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
+<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00137">137</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
 
-<p>References <a class="el" href="vamp-simple-host_8cpp-source.html#l00478">enumeratePlugins()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00063">HOST_VERSION</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00066">PluginIds</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00068">PluginInformation</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00067">PluginOutputIds</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00577">printPluginCategoryList()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00459">printPluginPath()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00081">usage()</a>, <a class="el" href="vamp_8h-source.html#l00053">VAMP_API_VERSION</a>, and <a class="el" href="PluginBase_8h-source.html#l00043">VAMP_SDK_VERSION</a>.</p>
+<p>References <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00074">HOST_VERSION</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00077">PluginIds</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00079">PluginInformation</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00080">PluginInformationDetailed</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00078">PluginOutputIds</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00778">printPluginCategoryList()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00528">printPluginPath()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>, <a class="el" href="vamp-simple-host_8cpp-source.html#l00093">usage()</a>, <a class="el" href="vamp_8h-source.html#l00053">VAMP_API_VERSION</a>, and <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00043">VAMP_SDK_VERSION</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="713775f2037987c0851ff3672339a82c"></a><!-- doxytag: member="vamp-simple-host.cpp::header" ref="713775f2037987c0851ff3672339a82c" args="(string text, int level)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static string header           </td>
+          <td>(</td>
+          <td class="paramtype">string&nbsp;</td>
+          <td class="paramname"> <em>text</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>level</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp-simple-host_8cpp-source.html#l00548">548</a> of file <a class="el" href="vamp-simple-host_8cpp-source.html">vamp-simple-host.cpp</a>.</p>
+
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00559">enumeratePlugins()</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&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/vamp_8h-source.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/vamp_8h-source.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -18,7 +18,7 @@
   <div class="navpath"><a class="el" href="dir_b086eb10f854304ab96fb3af468374a7.html">vamp</a>
   </div>
 </div>
-</div>
+<div class="contents">
 <h1>vamp.h</h1><a href="vamp_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */</span>
 <a name="l00002"></a>00002 
 <a name="l00003"></a>00003 <span class="comment">/*</span>
@@ -62,7 +62,7 @@
 <a name="l00041"></a>00041 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
 <a name="l00042"></a>00042 <span class="preprocessor">#endif</span>
 <a name="l00043"></a>00043 <span class="preprocessor"></span>
-<a name="l00053"></a><a class="code" href="vamp_8h.html#6d6c8c755dbabf161f72712e0e2143c7">00053</a> <span class="preprocessor">#define VAMP_API_VERSION 1</span>
+<a name="l00053"></a><a class="code" href="vamp_8h.html#6d6c8c755dbabf161f72712e0e2143c7">00053</a> <span class="preprocessor">#define VAMP_API_VERSION 2</span>
 <a name="l00054"></a>00054 <span class="preprocessor"></span>
 <a name="l00071"></a><a class="code" href="struct__VampParameterDescriptor.html">00071</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__VampParameterDescriptor.html" title="C language API for Vamp plugins.">_VampParameterDescriptor</a>
 <a name="l00072"></a>00072 {
@@ -128,129 +128,149 @@
 <a name="l00158"></a>00158 
 <a name="l00161"></a><a class="code" href="struct__VampOutputDescriptor.html#1ccf193317b2b9c2eb0dbd8dcf61d26e">00161</a>     <span class="keywordtype">float</span> <a class="code" href="struct__VampOutputDescriptor.html#1ccf193317b2b9c2eb0dbd8dcf61d26e" title="Sample rate of returned results, if sampleType is vampFixedSampleRate.">sampleRate</a>;
 <a name="l00162"></a>00162 
-<a name="l00163"></a>00163 } <a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a>;
-<a name="l00164"></a>00164 
-<a name="l00165"></a><a class="code" href="struct__VampFeature.html">00165</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__VampFeature.html">_VampFeature</a>
-<a name="l00166"></a>00166 {
-<a name="l00168"></a><a class="code" href="struct__VampFeature.html#be6aa7a08185beeb9deca2d08d99859f">00168</a>     <span class="keywordtype">int</span> <a class="code" href="struct__VampFeature.html#be6aa7a08185beeb9deca2d08d99859f" title="1 if the feature has a timestamp (i.e.">hasTimestamp</a>;
-<a name="l00169"></a>00169 
-<a name="l00171"></a><a class="code" href="struct__VampFeature.html#31f0b57050e33d082692536097953d9c">00171</a>     <span class="keywordtype">int</span> <a class="code" href="struct__VampFeature.html#31f0b57050e33d082692536097953d9c" title="Seconds component of timestamp.">sec</a>;
-<a name="l00172"></a>00172 
-<a name="l00174"></a><a class="code" href="struct__VampFeature.html#8874cb23600c6b10ca6e8a40920d999e">00174</a>     <span class="keywordtype">int</span> <a class="code" href="struct__VampFeature.html#8874cb23600c6b10ca6e8a40920d999e" title="Nanoseconds component of timestamp.">nsec</a>;
-<a name="l00175"></a>00175 
-<a name="l00177"></a><a class="code" href="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd">00177</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd" title="Number of values.">valueCount</a>;
+<a name="l00170"></a><a class="code" href="struct__VampOutputDescriptor.html#f792a96dbf292ec966b9b68250febd99">00170</a>     <span class="keywordtype">int</span> <a class="code" href="struct__VampOutputDescriptor.html#f792a96dbf292ec966b9b68250febd99" title="1 if the returned results for this output are known to have a duration field.">hasDuration</a>;
+<a name="l00171"></a>00171 
+<a name="l00172"></a>00172 } <a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a>;
+<a name="l00173"></a>00173 
+<a name="l00174"></a><a class="code" href="struct__VampFeature.html">00174</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__VampFeature.html">_VampFeature</a>
+<a name="l00175"></a>00175 {
+<a name="l00177"></a><a class="code" href="struct__VampFeature.html#be6aa7a08185beeb9deca2d08d99859f">00177</a>     <span class="keywordtype">int</span> <a class="code" href="struct__VampFeature.html#be6aa7a08185beeb9deca2d08d99859f" title="1 if the feature has a timestamp (i.e.">hasTimestamp</a>;
 <a name="l00178"></a>00178 
-<a name="l00180"></a><a class="code" href="struct__VampFeature.html#e4030f941ddb2bab8bc147b88e1f1c15">00180</a>     <span class="keywordtype">float</span> *<a class="code" href="struct__VampFeature.html#e4030f941ddb2bab8bc147b88e1f1c15" title="Values for this returned sample.">values</a>;
+<a name="l00180"></a><a class="code" href="struct__VampFeature.html#31f0b57050e33d082692536097953d9c">00180</a>     <span class="keywordtype">int</span> <a class="code" href="struct__VampFeature.html#31f0b57050e33d082692536097953d9c" title="Seconds component of timestamp.">sec</a>;
 <a name="l00181"></a>00181 
-<a name="l00183"></a><a class="code" href="struct__VampFeature.html#6662b7489a7890cae713bf4e8f6d52cd">00183</a>     <span class="keywordtype">char</span> *<a class="code" href="struct__VampFeature.html#6662b7489a7890cae713bf4e8f6d52cd" title="Label for this returned sample.">label</a>;
+<a name="l00183"></a><a class="code" href="struct__VampFeature.html#8874cb23600c6b10ca6e8a40920d999e">00183</a>     <span class="keywordtype">int</span> <a class="code" href="struct__VampFeature.html#8874cb23600c6b10ca6e8a40920d999e" title="Nanoseconds component of timestamp.">nsec</a>;
 <a name="l00184"></a>00184 
-<a name="l00185"></a>00185 } <a class="code" href="struct__VampFeature.html">VampFeature</a>;
-<a name="l00186"></a>00186 
-<a name="l00187"></a><a class="code" href="struct__VampFeatureList.html">00187</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__VampFeatureList.html">_VampFeatureList</a>
-<a name="l00188"></a>00188 {
-<a name="l00190"></a><a class="code" href="struct__VampFeatureList.html#01db33a31ae5e04a4bd097f4b6aa75f1">00190</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct__VampFeatureList.html#01db33a31ae5e04a4bd097f4b6aa75f1" title="Number of features in this feature list.">featureCount</a>;
-<a name="l00191"></a>00191 
-<a name="l00193"></a><a class="code" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f">00193</a>     <a class="code" href="struct__VampFeature.html">VampFeature</a> *<a class="code" href="struct__VampFeatureList.html#a2d18873fd5e58354460ea77fc48692f" title="Features in this feature list.">features</a>;
-<a name="l00194"></a>00194 
-<a name="l00195"></a>00195 } <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a>;
-<a name="l00196"></a>00196 
-<a name="l00197"></a><a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765">00197</a> <span class="keyword">typedef</span> <span class="keyword">enum</span>
-<a name="l00198"></a>00198 {
-<a name="l00199"></a><a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765e3dbb77ff3e8f292966fd3748888e1a1">00199</a>     <a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765e3dbb77ff3e8f292966fd3748888e1a1">vampTimeDomain</a>,
-<a name="l00200"></a><a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d">00200</a>     <a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d">vampFrequencyDomain</a>
-<a name="l00201"></a>00201 
-<a name="l00202"></a>00202 } <a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765">VampInputDomain</a>;
+<a name="l00186"></a><a class="code" href="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd">00186</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd" title="Number of values.">valueCount</a>;
+<a name="l00187"></a>00187 
+<a name="l00189"></a><a class="code" href="struct__VampFeature.html#e4030f941ddb2bab8bc147b88e1f1c15">00189</a>     <span class="keywordtype">float</span> *<a class="code" href="struct__VampFeature.html#e4030f941ddb2bab8bc147b88e1f1c15" title="Values for this returned sample.">values</a>;
+<a name="l00190"></a>00190 
+<a name="l00192"></a><a class="code" href="struct__VampFeature.html#6662b7489a7890cae713bf4e8f6d52cd">00192</a>     <span class="keywordtype">char</span> *<a class="code" href="struct__VampFeature.html#6662b7489a7890cae713bf4e8f6d52cd" title="Label for this returned sample.">label</a>;
+<a name="l00193"></a>00193 
+<a name="l00194"></a>00194 } <a class="code" href="struct__VampFeature.html">VampFeature</a>;
+<a name="l00195"></a>00195 
+<a name="l00196"></a><a class="code" href="struct__VampFeatureV2.html">00196</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__VampFeatureV2.html">_VampFeatureV2</a>
+<a name="l00197"></a>00197 {
+<a name="l00199"></a><a class="code" href="struct__VampFeatureV2.html#44d9c57f1ae197d3fec1a48c650cce81">00199</a>     <span class="keywordtype">int</span> <a class="code" href="struct__VampFeatureV2.html#44d9c57f1ae197d3fec1a48c650cce81" title="1 if the feature has a duration.">hasDuration</a>;
+<a name="l00200"></a>00200 
+<a name="l00202"></a><a class="code" href="struct__VampFeatureV2.html#bc95aac3a2efdef6ef0b17e7b6bd3daf">00202</a>     <span class="keywordtype">int</span> <a class="code" href="struct__VampFeatureV2.html#bc95aac3a2efdef6ef0b17e7b6bd3daf" title="Seconds component of duratiion.">durationSec</a>;
 <a name="l00203"></a>00203 
-<a name="l00204"></a><a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">00204</a> <span class="keyword">typedef</span> <span class="keywordtype">void</span> *<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>;
-<a name="l00205"></a>00205 
-<a name="l00206"></a><a class="code" href="struct__VampPluginDescriptor.html">00206</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a>
-<a name="l00207"></a>00207 {
-<a name="l00209"></a><a class="code" href="struct__VampPluginDescriptor.html#b6c87760e87ddaa9ac3491bccaaa28c2">00209</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct__VampPluginDescriptor.html#b6c87760e87ddaa9ac3491bccaaa28c2" title="API version with which this descriptor is compatible.">vampApiVersion</a>;
-<a name="l00210"></a>00210 
-<a name="l00212"></a><a class="code" href="struct__VampPluginDescriptor.html#4915ec8276749cb505c01d25a6d02219">00212</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampPluginDescriptor.html#4915ec8276749cb505c01d25a6d02219" title="Computer-usable name of the plugin.">identifier</a>;
-<a name="l00213"></a>00213 
-<a name="l00215"></a><a class="code" href="struct__VampPluginDescriptor.html#9dd5a0190e4d453ff36b5acb7000b150">00215</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampPluginDescriptor.html#9dd5a0190e4d453ff36b5acb7000b150" title="Human-readable name of the plugin.">name</a>;
+<a name="l00205"></a><a class="code" href="struct__VampFeatureV2.html#f71693d907f69048d602d28edbce679e">00205</a>     <span class="keywordtype">int</span> <a class="code" href="struct__VampFeatureV2.html#f71693d907f69048d602d28edbce679e" title="Nanoseconds component of duration.">durationNsec</a>;
+<a name="l00206"></a>00206 
+<a name="l00207"></a>00207 } <a class="code" href="struct__VampFeatureV2.html">VampFeatureV2</a>;
+<a name="l00208"></a>00208 
+<a name="l00209"></a><a class="code" href="union__VampFeatureUnion.html">00209</a> <span class="keyword">typedef</span> <span class="keyword">union </span><a class="code" href="union__VampFeatureUnion.html">_VampFeatureUnion</a>
+<a name="l00210"></a>00210 {
+<a name="l00211"></a>00211     <span class="comment">// sizeof(featureV1) &gt;= sizeof(featureV2) for backward compatibility</span>
+<a name="l00212"></a><a class="code" href="union__VampFeatureUnion.html#4a32a2ce141ec3cd36b8be54cd9c3369">00212</a>     <a class="code" href="struct__VampFeature.html">VampFeature</a>   <a class="code" href="union__VampFeatureUnion.html#4a32a2ce141ec3cd36b8be54cd9c3369">v1</a>;
+<a name="l00213"></a><a class="code" href="union__VampFeatureUnion.html#87e508e37e02cce11c3c4ddf087a627a">00213</a>     <a class="code" href="struct__VampFeatureV2.html">VampFeatureV2</a> <a class="code" href="union__VampFeatureUnion.html#87e508e37e02cce11c3c4ddf087a627a">v2</a>;
+<a name="l00214"></a>00214 
+<a name="l00215"></a>00215 } <a class="code" href="union__VampFeatureUnion.html">VampFeatureUnion</a>;
 <a name="l00216"></a>00216 
-<a name="l00218"></a><a class="code" href="struct__VampPluginDescriptor.html#9ff8050f92f1a04a68bb34a9d368295e">00218</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampPluginDescriptor.html#9ff8050f92f1a04a68bb34a9d368295e" title="Human-readable short text about the plugin.">description</a>;
-<a name="l00219"></a>00219 
-<a name="l00221"></a><a class="code" href="struct__VampPluginDescriptor.html#4dca3d57331802964716edfa80580c9b">00221</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampPluginDescriptor.html#4dca3d57331802964716edfa80580c9b" title="Human-readable name of plugin&amp;#39;s author or vendor.">maker</a>;
-<a name="l00222"></a>00222 
-<a name="l00224"></a><a class="code" href="struct__VampPluginDescriptor.html#04427c420d9252c7796c0bf5101345ae">00224</a>     <span class="keywordtype">int</span> <a class="code" href="struct__VampPluginDescriptor.html#04427c420d9252c7796c0bf5101345ae" title="Version number of the plugin.">pluginVersion</a>;
-<a name="l00225"></a>00225 
-<a name="l00227"></a><a class="code" href="struct__VampPluginDescriptor.html#e704bba384af0de056a26da1b13ee521">00227</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampPluginDescriptor.html#e704bba384af0de056a26da1b13ee521" title="Human-readable summary of copyright or licensing for plugin.">copyright</a>;
-<a name="l00228"></a>00228 
-<a name="l00230"></a><a class="code" href="struct__VampPluginDescriptor.html#e6271dc3ea0cea959c84a64185492cab">00230</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct__VampPluginDescriptor.html#e6271dc3ea0cea959c84a64185492cab" title="Number of parameter inputs.">parameterCount</a>;
-<a name="l00231"></a>00231 
-<a name="l00233"></a><a class="code" href="struct__VampPluginDescriptor.html#64d614862604c31d6b84c49005f51913">00233</a>     <span class="keyword">const</span> <a class="code" href="struct__VampParameterDescriptor.html" title="C language API for Vamp plugins.">VampParameterDescriptor</a> **<a class="code" href="struct__VampPluginDescriptor.html#64d614862604c31d6b84c49005f51913" title="Fixed descriptors for parameter inputs.">parameters</a>;
-<a name="l00234"></a>00234 
-<a name="l00236"></a><a class="code" href="struct__VampPluginDescriptor.html#1962666aa173e7a9a2c30dc82e4b2e00">00236</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct__VampPluginDescriptor.html#1962666aa173e7a9a2c30dc82e4b2e00" title="Number of programs.">programCount</a>;
-<a name="l00237"></a>00237 
-<a name="l00239"></a><a class="code" href="struct__VampPluginDescriptor.html#d488470c582d8472d86455889d71c5ec">00239</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code" href="struct__VampPluginDescriptor.html#d488470c582d8472d86455889d71c5ec" title="Fixed names for programs.">programs</a>;
-<a name="l00240"></a>00240 
-<a name="l00242"></a><a class="code" href="struct__VampPluginDescriptor.html#ffc4d1796da7ced2c0cbb2cc2c4a22f4">00242</a>     <a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765">VampInputDomain</a> <a class="code" href="struct__VampPluginDescriptor.html#ffc4d1796da7ced2c0cbb2cc2c4a22f4" title="Preferred input domain for audio input (time or frequency).">inputDomain</a>;
+<a name="l00217"></a><a class="code" href="struct__VampFeatureList.html">00217</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__VampFeatureList.html">_VampFeatureList</a>
+<a name="l00218"></a>00218 {
+<a name="l00220"></a><a class="code" href="struct__VampFeatureList.html#01db33a31ae5e04a4bd097f4b6aa75f1">00220</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct__VampFeatureList.html#01db33a31ae5e04a4bd097f4b6aa75f1" title="Number of features in this feature list.">featureCount</a>;
+<a name="l00221"></a>00221 
+<a name="l00235"></a><a class="code" href="struct__VampFeatureList.html#103c817094643ac5ff4410768f4f92a7">00235</a>     <a class="code" href="union__VampFeatureUnion.html">VampFeatureUnion</a> *<a class="code" href="struct__VampFeatureList.html#103c817094643ac5ff4410768f4f92a7" title="Features in this feature list.">features</a>;
+<a name="l00236"></a>00236 
+<a name="l00237"></a>00237 } <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a>;
+<a name="l00238"></a>00238 
+<a name="l00239"></a><a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765">00239</a> <span class="keyword">typedef</span> <span class="keyword">enum</span>
+<a name="l00240"></a>00240 {
+<a name="l00241"></a><a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765e3dbb77ff3e8f292966fd3748888e1a1">00241</a>     <a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765e3dbb77ff3e8f292966fd3748888e1a1">vampTimeDomain</a>,
+<a name="l00242"></a><a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d">00242</a>     <a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d">vampFrequencyDomain</a>
 <a name="l00243"></a>00243 
-<a name="l00245"></a>00245     <a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> (*<a class="code" href="struct__VampPluginDescriptor.html#19c4ce36fdeb88eeedb539efc544b8ee" title="Create and return a new instance of this plugin.">instantiate</a>)(<span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a> *,
-<a name="l00246"></a>00246                                    <span class="keywordtype">float</span> inputSampleRate);
+<a name="l00244"></a>00244 } <a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765">VampInputDomain</a>;
+<a name="l00245"></a>00245 
+<a name="l00246"></a><a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">00246</a> <span class="keyword">typedef</span> <span class="keywordtype">void</span> *<a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>;
 <a name="l00247"></a>00247 
-<a name="l00249"></a>00249     void (*<a class="code" href="struct__VampPluginDescriptor.html#0e4522c33e59c3c518b9262f2477bc27" title="Destroy an instance of this plugin.">cleanup</a>)(VampPluginHandle);
-<a name="l00250"></a>00250 
-<a name="l00252"></a>00252     int (*<a class="code" href="struct__VampPluginDescriptor.html#d0978f17a5e568079470a1978a9aad22" title="Initialise an instance following parameter configuration.">initialise</a>)(VampPluginHandle,
-<a name="l00253"></a>00253                       <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> inputChannels,
-<a name="l00254"></a>00254                       <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> stepSize, 
-<a name="l00255"></a>00255                       <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> blockSize);
-<a name="l00256"></a>00256 
-<a name="l00258"></a>00258     void (*<a class="code" href="struct__VampPluginDescriptor.html#12267f6b506aeda3792ff7c982b02336" title="Reset an instance, ready to use again on new input data.">reset</a>)(VampPluginHandle);
-<a name="l00259"></a>00259 
-<a name="l00261"></a>00261     float (*<a class="code" href="struct__VampPluginDescriptor.html#07174981875b55ee2ec7521a7f4fc395" title="Get a parameter value.">getParameter</a>)(VampPluginHandle, int);
-<a name="l00262"></a>00262 
-<a name="l00264"></a>00264     void  (*<a class="code" href="struct__VampPluginDescriptor.html#ad3cfc7a3b432df40bd9db13eee6a481" title="Set a parameter value.">setParameter</a>)(VampPluginHandle, int, float);
-<a name="l00265"></a>00265 
-<a name="l00267"></a>00267     <span class="keywordtype">unsigned</span> int (*<a class="code" href="struct__VampPluginDescriptor.html#861a77525a95d424cb846820b018af53" title="Get the current program (if programCount &amp;gt; 0).">getCurrentProgram</a>)(VampPluginHandle);
-<a name="l00268"></a>00268 
-<a name="l00270"></a>00270     void  (*<a class="code" href="struct__VampPluginDescriptor.html#d9af40cb165ca187e49250964af5f5cf" title="Set the current program.">selectProgram</a>)(VampPluginHandle, <span class="keywordtype">unsigned</span> int);
-<a name="l00271"></a>00271     
-<a name="l00273"></a>00273     <span class="keywordtype">unsigned</span> int (*<a class="code" href="struct__VampPluginDescriptor.html#2beddf2ce156c05dd24477ac663adcbb" title="Get the plugin&amp;#39;s preferred processing window increment in samples.">getPreferredStepSize</a>)(VampPluginHandle);
-<a name="l00274"></a>00274 
-<a name="l00276"></a>00276     <span class="keywordtype">unsigned</span> int (*<a class="code" href="struct__VampPluginDescriptor.html#c626e42554ab1532c8d8b5132a0faee8" title="Get the plugin&amp;#39;s preferred processing window size in samples.">getPreferredBlockSize</a>)(VampPluginHandle);
-<a name="l00277"></a>00277 
-<a name="l00279"></a>00279     <span class="keywordtype">unsigned</span> int (*<a class="code" href="struct__VampPluginDescriptor.html#f175ca17716db5a7545b61b01caabd92" title="Get the minimum number of input channels this plugin can handle.">getMinChannelCount</a>)(VampPluginHandle);
-<a name="l00280"></a>00280 
-<a name="l00282"></a>00282     <span class="keywordtype">unsigned</span> int (*<a class="code" href="struct__VampPluginDescriptor.html#d1600203418d9646332f5b917284261b" title="Get the maximum number of input channels this plugin can handle.">getMaxChannelCount</a>)(VampPluginHandle);
-<a name="l00283"></a>00283 
-<a name="l00285"></a>00285     <span class="keywordtype">unsigned</span> int (*<a class="code" href="struct__VampPluginDescriptor.html#a8fc88da704e24b2b5f674821dd380c1" title="Get the number of feature outputs (distinct sets of results).">getOutputCount</a>)(VampPluginHandle);
-<a name="l00286"></a>00286 
-<a name="l00291"></a>00291     <a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *(*getOutputDescriptor)(VampPluginHandle,
-<a name="l00292"></a>00292                                                 <span class="keywordtype">unsigned</span> int);
-<a name="l00293"></a>00293 
-<a name="l00295"></a>00295     void (*<a class="code" href="struct__VampPluginDescriptor.html#8cc38edc921616e67e551aa03397ec79" title="Destroy a descriptor for a feature output.">releaseOutputDescriptor</a>)(<a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *);
-<a name="l00296"></a>00296 
-<a name="l00302"></a>00302     <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *(*process)(VampPluginHandle,
-<a name="l00303"></a>00303                                 <span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
-<a name="l00304"></a>00304                                 <span class="keywordtype">int</span> sec,
-<a name="l00305"></a>00305                                 <span class="keywordtype">int</span> nsec);
-<a name="l00306"></a>00306 
-<a name="l00308"></a>00308     <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *(*getRemainingFeatures)(VampPluginHandle);
-<a name="l00309"></a>00309 
-<a name="l00311"></a>00311     void (*<a class="code" href="struct__VampPluginDescriptor.html#c4bafe8ad2734d21a433d745b18e7d63" title="Release a feature set returned from process or getRemainingFeatures.">releaseFeatureSet</a>)(<a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *);
-<a name="l00312"></a>00312 
-<a name="l00313"></a>00313 } <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a>;
-<a name="l00314"></a>00314 
-<a name="l00315"></a>00315 
-<a name="l00334"></a>00334 <span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *<a class="code" href="vamp_8h.html#50cf6f17d0718f02093be6c7f63fcf30" title="Get the descriptor for a given plugin index in this library.">vampGetPluginDescriptor</a>
-<a name="l00335"></a>00335     (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> hostApiVersion, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index);
-<a name="l00336"></a>00336 
-<a name="l00337"></a>00337 
-<a name="l00339"></a>00339 <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *(*VampGetPluginDescriptorFunction)
-<a name="l00340"></a><a class="code" href="vamp_8h.html#551bb7e0d8c970c2202be5f881817478">00340</a>     (<span class="keywordtype">unsigned</span> int, <span class="keywordtype">unsigned</span> int);
-<a name="l00341"></a>00341 
-<a name="l00342"></a>00342 <span class="preprocessor">#ifdef __cplusplus</span>
-<a name="l00343"></a>00343 <span class="preprocessor"></span>}
-<a name="l00344"></a>00344 <span class="preprocessor">#endif</span>
-<a name="l00345"></a>00345 <span class="preprocessor"></span>
-<a name="l00346"></a>00346 <span class="preprocessor">#endif</span>
+<a name="l00248"></a><a class="code" href="struct__VampPluginDescriptor.html">00248</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a>
+<a name="l00249"></a>00249 {
+<a name="l00251"></a><a class="code" href="struct__VampPluginDescriptor.html#b6c87760e87ddaa9ac3491bccaaa28c2">00251</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct__VampPluginDescriptor.html#b6c87760e87ddaa9ac3491bccaaa28c2" title="API version with which this descriptor is compatible.">vampApiVersion</a>;
+<a name="l00252"></a>00252 
+<a name="l00254"></a><a class="code" href="struct__VampPluginDescriptor.html#4915ec8276749cb505c01d25a6d02219">00254</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampPluginDescriptor.html#4915ec8276749cb505c01d25a6d02219" title="Computer-usable name of the plugin.">identifier</a>;
+<a name="l00255"></a>00255 
+<a name="l00257"></a><a class="code" href="struct__VampPluginDescriptor.html#9dd5a0190e4d453ff36b5acb7000b150">00257</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampPluginDescriptor.html#9dd5a0190e4d453ff36b5acb7000b150" title="Human-readable name of the plugin.">name</a>;
+<a name="l00258"></a>00258 
+<a name="l00260"></a><a class="code" href="struct__VampPluginDescriptor.html#9ff8050f92f1a04a68bb34a9d368295e">00260</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampPluginDescriptor.html#9ff8050f92f1a04a68bb34a9d368295e" title="Human-readable short text about the plugin.">description</a>;
+<a name="l00261"></a>00261 
+<a name="l00263"></a><a class="code" href="struct__VampPluginDescriptor.html#4dca3d57331802964716edfa80580c9b">00263</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampPluginDescriptor.html#4dca3d57331802964716edfa80580c9b" title="Human-readable name of plugin&amp;#39;s author or vendor.">maker</a>;
+<a name="l00264"></a>00264 
+<a name="l00266"></a><a class="code" href="struct__VampPluginDescriptor.html#04427c420d9252c7796c0bf5101345ae">00266</a>     <span class="keywordtype">int</span> <a class="code" href="struct__VampPluginDescriptor.html#04427c420d9252c7796c0bf5101345ae" title="Version number of the plugin.">pluginVersion</a>;
+<a name="l00267"></a>00267 
+<a name="l00269"></a><a class="code" href="struct__VampPluginDescriptor.html#e704bba384af0de056a26da1b13ee521">00269</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampPluginDescriptor.html#e704bba384af0de056a26da1b13ee521" title="Human-readable summary of copyright or licensing for plugin.">copyright</a>;
+<a name="l00270"></a>00270 
+<a name="l00272"></a><a class="code" href="struct__VampPluginDescriptor.html#e6271dc3ea0cea959c84a64185492cab">00272</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct__VampPluginDescriptor.html#e6271dc3ea0cea959c84a64185492cab" title="Number of parameter inputs.">parameterCount</a>;
+<a name="l00273"></a>00273 
+<a name="l00275"></a><a class="code" href="struct__VampPluginDescriptor.html#64d614862604c31d6b84c49005f51913">00275</a>     <span class="keyword">const</span> <a class="code" href="struct__VampParameterDescriptor.html" title="C language API for Vamp plugins.">VampParameterDescriptor</a> **<a class="code" href="struct__VampPluginDescriptor.html#64d614862604c31d6b84c49005f51913" title="Fixed descriptors for parameter inputs.">parameters</a>;
+<a name="l00276"></a>00276 
+<a name="l00278"></a><a class="code" href="struct__VampPluginDescriptor.html#1962666aa173e7a9a2c30dc82e4b2e00">00278</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct__VampPluginDescriptor.html#1962666aa173e7a9a2c30dc82e4b2e00" title="Number of programs.">programCount</a>;
+<a name="l00279"></a>00279 
+<a name="l00281"></a><a class="code" href="struct__VampPluginDescriptor.html#d488470c582d8472d86455889d71c5ec">00281</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code" href="struct__VampPluginDescriptor.html#d488470c582d8472d86455889d71c5ec" title="Fixed names for programs.">programs</a>;
+<a name="l00282"></a>00282 
+<a name="l00284"></a><a class="code" href="struct__VampPluginDescriptor.html#ffc4d1796da7ced2c0cbb2cc2c4a22f4">00284</a>     <a class="code" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765">VampInputDomain</a> <a class="code" href="struct__VampPluginDescriptor.html#ffc4d1796da7ced2c0cbb2cc2c4a22f4" title="Preferred input domain for audio input (time or frequency).">inputDomain</a>;
+<a name="l00285"></a>00285 
+<a name="l00287"></a>00287     <a class="code" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> (*<a class="code" href="struct__VampPluginDescriptor.html#19c4ce36fdeb88eeedb539efc544b8ee" title="Create and return a new instance of this plugin.">instantiate</a>)(<span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a> *,
+<a name="l00288"></a>00288                                    <span class="keywordtype">float</span> inputSampleRate);
+<a name="l00289"></a>00289 
+<a name="l00291"></a>00291     void (*<a class="code" href="struct__VampPluginDescriptor.html#0e4522c33e59c3c518b9262f2477bc27" title="Destroy an instance of this plugin.">cleanup</a>)(VampPluginHandle);
+<a name="l00292"></a>00292 
+<a name="l00294"></a>00294     int (*<a class="code" href="struct__VampPluginDescriptor.html#d0978f17a5e568079470a1978a9aad22" title="Initialise an instance following parameter configuration.">initialise</a>)(VampPluginHandle,
+<a name="l00295"></a>00295                       <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> inputChannels,
+<a name="l00296"></a>00296                       <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> stepSize, 
+<a name="l00297"></a>00297                       <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> blockSize);
+<a name="l00298"></a>00298 
+<a name="l00300"></a>00300     void (*<a class="code" href="struct__VampPluginDescriptor.html#12267f6b506aeda3792ff7c982b02336" title="Reset an instance, ready to use again on new input data.">reset</a>)(VampPluginHandle);
+<a name="l00301"></a>00301 
+<a name="l00303"></a>00303     float (*<a class="code" href="struct__VampPluginDescriptor.html#07174981875b55ee2ec7521a7f4fc395" title="Get a parameter value.">getParameter</a>)(VampPluginHandle, int);
+<a name="l00304"></a>00304 
+<a name="l00306"></a>00306     void  (*<a class="code" href="struct__VampPluginDescriptor.html#ad3cfc7a3b432df40bd9db13eee6a481" title="Set a parameter value.">setParameter</a>)(VampPluginHandle, int, float);
+<a name="l00307"></a>00307 
+<a name="l00309"></a>00309     <span class="keywordtype">unsigned</span> int (*<a class="code" href="struct__VampPluginDescriptor.html#861a77525a95d424cb846820b018af53" title="Get the current program (if programCount &amp;gt; 0).">getCurrentProgram</a>)(VampPluginHandle);
+<a name="l00310"></a>00310 
+<a name="l00312"></a>00312     void  (*<a class="code" href="struct__VampPluginDescriptor.html#d9af40cb165ca187e49250964af5f5cf" title="Set the current program.">selectProgram</a>)(VampPluginHandle, <span class="keywordtype">unsigned</span> int);
+<a name="l00313"></a>00313     
+<a name="l00315"></a>00315     <span class="keywordtype">unsigned</span> int (*<a class="code" href="struct__VampPluginDescriptor.html#2beddf2ce156c05dd24477ac663adcbb" title="Get the plugin&amp;#39;s preferred processing window increment in samples.">getPreferredStepSize</a>)(VampPluginHandle);
+<a name="l00316"></a>00316 
+<a name="l00318"></a>00318     <span class="keywordtype">unsigned</span> int (*<a class="code" href="struct__VampPluginDescriptor.html#c626e42554ab1532c8d8b5132a0faee8" title="Get the plugin&amp;#39;s preferred processing window size in samples.">getPreferredBlockSize</a>)(VampPluginHandle);
+<a name="l00319"></a>00319 
+<a name="l00321"></a>00321     <span class="keywordtype">unsigned</span> int (*<a class="code" href="struct__VampPluginDescriptor.html#f175ca17716db5a7545b61b01caabd92" title="Get the minimum number of input channels this plugin can handle.">getMinChannelCount</a>)(VampPluginHandle);
+<a name="l00322"></a>00322 
+<a name="l00324"></a>00324     <span class="keywordtype">unsigned</span> int (*<a class="code" href="struct__VampPluginDescriptor.html#d1600203418d9646332f5b917284261b" title="Get the maximum number of input channels this plugin can handle.">getMaxChannelCount</a>)(VampPluginHandle);
+<a name="l00325"></a>00325 
+<a name="l00327"></a>00327     <span class="keywordtype">unsigned</span> int (*<a class="code" href="struct__VampPluginDescriptor.html#a8fc88da704e24b2b5f674821dd380c1" title="Get the number of feature outputs (distinct sets of results).">getOutputCount</a>)(VampPluginHandle);
+<a name="l00328"></a>00328 
+<a name="l00333"></a>00333     <a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *(*getOutputDescriptor)(VampPluginHandle,
+<a name="l00334"></a>00334                                                  <span class="keywordtype">unsigned</span> int);
+<a name="l00335"></a>00335 
+<a name="l00337"></a>00337     void (*<a class="code" href="struct__VampPluginDescriptor.html#8cc38edc921616e67e551aa03397ec79" title="Destroy a descriptor for a feature output.">releaseOutputDescriptor</a>)(<a class="code" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *);
+<a name="l00338"></a>00338 
+<a name="l00344"></a>00344     <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *(*process)(VampPluginHandle,
+<a name="l00345"></a>00345                                 <span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
+<a name="l00346"></a>00346                                 <span class="keywordtype">int</span> sec,
+<a name="l00347"></a>00347                                 <span class="keywordtype">int</span> nsec);
+<a name="l00348"></a>00348 
+<a name="l00350"></a>00350     <a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *(*getRemainingFeatures)(VampPluginHandle);
+<a name="l00351"></a>00351 
+<a name="l00353"></a>00353     void (*<a class="code" href="struct__VampPluginDescriptor.html#c4bafe8ad2734d21a433d745b18e7d63" title="Release a feature set returned from process or getRemainingFeatures.">releaseFeatureSet</a>)(<a class="code" href="struct__VampFeatureList.html">VampFeatureList</a> *);
+<a name="l00354"></a>00354 
+<a name="l00355"></a>00355 } <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a>;
+<a name="l00356"></a>00356 
+<a name="l00357"></a>00357 
+<a name="l00376"></a>00376 <span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *<a class="code" href="vamp_8h.html#50cf6f17d0718f02093be6c7f63fcf30" title="Get the descriptor for a given plugin index in this library.">vampGetPluginDescriptor</a>
+<a name="l00377"></a>00377     (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> hostApiVersion, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index);
+<a name="l00378"></a>00378 
+<a name="l00379"></a>00379 
+<a name="l00381"></a>00381 <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *(*VampGetPluginDescriptorFunction)
+<a name="l00382"></a><a class="code" href="vamp_8h.html#551bb7e0d8c970c2202be5f881817478">00382</a>     (<span class="keywordtype">unsigned</span> int, <span class="keywordtype">unsigned</span> int);
+<a name="l00383"></a>00383 
+<a name="l00384"></a>00384 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00385"></a>00385 <span class="preprocessor"></span>}
+<a name="l00386"></a>00386 <span class="preprocessor">#endif</span>
+<a name="l00387"></a>00387 <span class="preprocessor"></span>
+<a name="l00388"></a>00388 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/code-doc/vamp_8h.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/code-doc/vamp_8h.html	Tue Dec 09 11:02:57 2008 +0000
@@ -4,7 +4,7 @@
 <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 -->
+<!-- Generated by Doxygen 1.5.6 -->
 <div class="navigation" id="top">
   <div class="tabs">
     <ul>
@@ -28,28 +28,37 @@
 <tr><td colspan="2"><br><h2>Classes</h2></td></tr>
 <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>
 
-<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>
+<tr><td class="mdescLeft">&nbsp;</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 &nbsp;</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 &nbsp;</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 &nbsp;</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 &nbsp;</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 &nbsp;</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 &nbsp;</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&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>
+<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;2</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#e26a9d54a92f1c083a1b209a25a8e44e">VampParameterDescriptor</a></td></tr>
 
+<tr><td class="mdescLeft">&nbsp;</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>
 <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>
 
 <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>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__VampFeatureV2.html">_VampFeatureV2</a>&nbsp;</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>&nbsp;</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>&nbsp;</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 *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a></td></tr>
@@ -82,7 +91,7 @@
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">#define VAMP_API_VERSION&nbsp;&nbsp;&nbsp;1          </td>
+          <td class="memname">#define VAMP_API_VERSION&nbsp;&nbsp;&nbsp;2          </td>
         </tr>
       </table>
 </div>
@@ -95,7 +104,7 @@
 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>
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00137">main()</a>.</p>
 
 </div>
 </div><p>
@@ -112,7 +121,10 @@
 <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="" -->
@@ -145,6 +157,36 @@
 
 </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">
@@ -173,7 +215,7 @@
 
 <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>
+<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>
@@ -207,7 +249,7 @@
 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>
+<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>
@@ -266,7 +308,7 @@
 </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>
+<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>
@@ -290,7 +332,7 @@
         <tr>
           <td></td>
           <td>)</td>
-          <td></td><td></td><td width="100%"></td>
+          <td></td><td></td><td></td>
         </tr>
       </table>
 </div>
@@ -300,17 +342,17 @@
 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>
+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="PluginAdapter_8cpp-source.html#l00138">Vamp::PluginAdapterBase::getDescriptor()</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 Wed Jul 9 11:36:07 2008 for VampPluginSDK by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 14:37:18 2008 for VampPluginSDK by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
 </body>
 </html>
--- a/develop.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/develop.html	Tue Dec 09 11:02:57 2008 +0000
@@ -27,7 +27,7 @@
 	      src="http://sourceforge.net/sflogo.php?group_id=192001&type=1"
 width="88" height="31" border="0" alt="SourceForge.net Logo"/></a></i></p>
 
-      <p>Vamp is a very easy system to develop plugins for, as it has
+      <p>Vamp is an easy system to develop plugins for.  It has
       a standard cross-platform SDK which includes API documentation,
       example plugins, ready-to-use C++ base classes, the C API
       header, and a test host.</p>
@@ -38,15 +38,15 @@
       This is particularly advisable since the values returned by a
       plugin may have relatively complex structures.</p>
 
-      <ul><li>Download the Vamp plugin SDK (current version 1.3):
+      <ul><li>Download the Vamp plugin SDK (current version 2.0):
 
-      <ul><li>The development headers and source code: <a href="http://downloads.sourceforge.net/vamp/vamp-plugin-sdk-1.3.tar.gz">Gzipped tar file</a> or <a href="http://downloads.sourceforge.net/vamp/vamp-plugin-sdk-1.3.zip">ZIP file</a> (the contents are identical).</li>
+      <ul><li>The development headers and source code: <a href="http://downloads.sourceforge.net/vamp/vamp-plugin-sdk-2.0.tar.gz">Gzipped tar file</a> or <a href="http://downloads.sourceforge.net/vamp/vamp-plugin-sdk-2.0.zip">ZIP file</a> (the contents are identical).</li>
 
-      <li>Pre-compiled library and host binaries for <a href="http://downloads.sourceforge.net/vamp/vamp-plugin-sdk-1.3-binaries-win32-mingw32.zip">Windows (MinGW)</a>, <a href="http://downloads.sourceforge.net/vamp/vamp-plugin-sdk-1.3-binaries-osx-universal.tar.gz">OS/X</a> and <a href="http://downloads.sourceforge.net/vamp/vamp-plugin-sdk-1.3-binaries-i686-linux.tar.gz">Linux</a>.</li>
+      <li>Pre-compiled library and host binaries for <a href="http://downloads.sourceforge.net/vamp/vamp-plugin-sdk-2.0-binaries-win32-mingw32.zip">Windows (MinGW)</a>, <a href="http://downloads.sourceforge.net/vamp/vamp-plugin-sdk-2.0-staticlibs-win32-msvc.zip">Windows (MSVC, static libraries only), <a href="http://downloads.sourceforge.net/vamp/vamp-plugin-sdk-2.0-binaries-osx-universal.tar.gz">OS/X</a>, <a href="http://downloads.sourceforge.net/vamp/vamp-plugin-sdk-2.0-binaries-i686-linux.tar.gz">32-bit Linux</a>, and <a href="http://downloads.sourceforge.net/vamp/vamp-plugin-sdk-2.0-binaries-amd64-linux.tar.gz">64-bit Linux</a>.</li>
 
-      <li><a href="http://downloads.sourceforge.net/vamp/vamp-plugin-sdk-1.3-docs.tar.gz">API documentation bundle</a>.</li>
+      <li><a href="http://downloads.sourceforge.net/vamp/vamp-plugin-sdk-2.0-docs.tar.gz">API documentation bundle</a>.</li>
 
-      <li>Example plugin binaries for <a href="http://downloads.sourceforge.net/vamp/vamp-example-plugins-1.3-win32.zip">Windows</a>, <a href="http://downloads.sourceforge.net/vamp/vamp-example-plugins-1.3-osx-universal.tar.gz">OS/X</a> and <a href="http://downloads.sourceforge.net/vamp/vamp-example-plugins-1.3-i686-linux.tar.gz">Linux</a>.</li>
+      <li>Example plugin binaries for <a href="http://downloads.sourceforge.net/vamp/vamp-example-plugins-2.0-win32.zip">Windows</a>, <a href="http://downloads.sourceforge.net/vamp/vamp-example-plugins-2.0-osx-universal.tar.gz">OS/X</a>, <a href="http://downloads.sourceforge.net/vamp/vamp-example-plugins-2.0-i686-linux.tar.gz">32-bit Linux</a>, and <a href="http://downloads.sourceforge.net/vamp/vamp-example-plugins-2.0-i686-linux.tar.gz">64-bit Linux</a>.</li>
 
       <li><a href="http://sourceforge.net/project/showfiles.php?group_id=192001&package_id=225765">The SourceForge download area</a> for any files not listed above.</li>
 
@@ -66,6 +66,8 @@
 
       <li>Have a look at a simple example plugin: <a href="http://vamp.svn.sourceforge.net/viewvc/*checkout*/vamp/vamp-plugin-sdk/trunk/examples/ZeroCrossing.h">header</a>, <a href="http://vamp.svn.sourceforge.net/viewvc/*checkout*/vamp/vamp-plugin-sdk/trunk/examples/ZeroCrossing.cpp">source file</a>.
 
+      <li>Read documentation for all the <a href="plugin-doc/vamp-example-plugins.html">SDK example plugins</a>.
+
       <li><a href="http://vamp.svn.sourceforge.net/viewvc/vamp/vamp-plugin-sdk/trunk/">Browse the SDK and examples code</a> in the Subversion repository.</li>
 
       </ul>
--- a/download.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/download.html	Tue Dec 09 11:02:57 2008 +0000
@@ -32,14 +32,7 @@
       see the individual plugin pages for details.</p>
 
       <p><i><small>Looking for the developer kit?  Look <a href="develop.html">here</a>!</small></i></p>
-<!--
-      <p><i><small>Note: The plugins linked below all use the Vamp 1.0
-      API.  This is the current standard.  Any future revisions of
-      Vamp will retain backward compatibility with 1.0, but revisions
-      that pre-date 1.0 may be incompatible.  If you have a host that is
-      too old to use the current 1.0 API, please update it before
-      installing any of these plugins.</small></i></p>
--->
+
       <table align=center border=1 cellpadding=5>
 
       <tr><td><b>Plugins</b></td><td><b>Version</b></td><td><b>Linux</b></td><td><b>OS/X</b></td><td><b>Windows</b></td><td><b>Source&nbsp;code</b></td></tr>
--- a/index.html	Mon Nov 24 15:17:08 2008 +0000
+++ b/index.html	Tue Dec 09 11:02:57 2008 +0000
@@ -30,7 +30,7 @@
 
       <img style="float:right;padding-left:1em;padding-top:0em" src="images/vamp-overview-webscale.png" alt="Freehand sketch of a Vamp plugin in its natural habitat">
 
-      <p><b>9th July 2008:</b> Version 1.3 of the Vamp plugin SDK is now
+      <p><b>9th December 2008:</b> Version 2.0 of the Vamp plugin SDK is now
       available.<br>See the <a
       href="develop.html">developers</a> page for more
       information.</p>
@@ -47,12 +47,13 @@
       <p>Just like an audio effects plugin (such as a VST), a Vamp
       plugin is a binary module that can be loaded up by a host
       application and fed audio data.  However, unlike an effects
-      plugin, a Vamp plugin outputs not processed audio but some sort
-      of symbolic information.  Typical things that a Vamp plugin
-      might calculate include the locations of moments such as note onset
-      times, visual representations of the audio such as histograms,
-      or curve data such as power or fundamental frequency.  <a
-      href="rationale.html">Read more about the rationale for Vamp</a>.</p>
+      plugin, a Vamp plugin generates not more audio, but some sort of
+      symbolic information.  Typical things that a Vamp plugin might
+      calculate include the locations of moments such as note onset
+      times, visualisable representations of the audio such as
+      spectrograms, or curve data such as power or fundamental
+      frequency.  <a href="rationale.html">Read more about the
+      rationale for Vamp</a>.</p>
 
 	<div id="logoblock">
 
--- a/screen.css	Mon Nov 24 15:17:08 2008 +0000
+++ b/screen.css	Tue Dec 09 11:02:57 2008 +0000
@@ -28,7 +28,7 @@
   color: #303030;
 }
 p,td,ul,ol,li,blockquote { 
-    font-size: 1em;
+    font-size: 0.95em;
     font-style: normal;
     font-family: 'Lucida Sans Unicode', 'Lucida Grande', sans-serif;
 }
@@ -70,7 +70,7 @@
 /*  display: inline; */
   margin: 0;
   padding: 0;
-  font-size: 0.9em;
+  font-size: 0.8em;
   text-transform: uppercase;
   font-weight: bold;
 }