changeset 0:351c4ebce5f9 website

* Move website from vamp-website/trunk to plain website
author cannam
date Mon, 22 Sep 2008 13:01:46 +0000
parents
children 632b1ffb5fb2
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/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/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/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.md5 code-doc/classAmplitudeFollower__inherit__graph.png code-doc/classPercussionOnsetDetector-members.html code-doc/classPercussionOnsetDetector.html code-doc/classPercussionOnsetDetector__inherit__graph.map code-doc/classPercussionOnsetDetector__inherit__graph.md5 code-doc/classPercussionOnsetDetector__inherit__graph.png code-doc/classSpectralCentroid-members.html code-doc/classSpectralCentroid.html code-doc/classSpectralCentroid__inherit__graph.map code-doc/classSpectralCentroid__inherit__graph.md5 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.md5 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.md5 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.md5 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_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.md5 code-doc/classVamp_1_1PluginAdapterBase__inherit__graph.png code-doc/classVamp_1_1PluginAdapter__inherit__graph.map code-doc/classVamp_1_1PluginAdapter__inherit__graph.md5 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.md5 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.md5 code-doc/classZeroCrossing__inherit__graph.png code-doc/dir_35887283b966ca996e4ff77f459c38ce.html code-doc/dir_35887283b966ca996e4ff77f459c38ce_dep.map code-doc/dir_35887283b966ca996e4ff77f459c38ce_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.map code-doc/dir_b086eb10f854304ab96fb3af468374a7_dep.png code-doc/dir_dc0199af6955c245f7b5a687135670df.html code-doc/dir_dc0199af6955c245f7b5a687135670df_dep.map 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/doxygen.png code-doc/files.html code-doc/ftv2blank.png code-doc/ftv2doc.png code-doc/ftv2folderclosed.png code-doc/ftv2folderopen.png code-doc/ftv2lastnode.png code-doc/ftv2link.png code-doc/ftv2mlastnode.png code-doc/ftv2mnode.png code-doc/ftv2node.png code-doc/ftv2plastnode.png code-doc/ftv2pnode.png code-doc/ftv2vertline.png 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.dot code-doc/graph_legend.html code-doc/graph_legend.png code-doc/hierarchy.html code-doc/index.html code-doc/inherit__graph__0.map code-doc/inherit__graph__0.md5 code-doc/inherit__graph__0.png code-doc/inherit__graph__1.map code-doc/inherit__graph__1.md5 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/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__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/tab_b.gif code-doc/tab_l.gif code-doc/tab_r.gif code-doc/tabs.css code-doc/tree.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 guide.odt guide.pdf images/chromagram.png images/easaier-logo.png images/forum-title.png images/qm-logo.png images/simac-logo.png images/vamp-overview-webscale.png images/vamp-title.png images/waveform.png index.html rationale.html rdf/plugins/vamp-example-plugins.n3 rdf/plugins/vamp-example-plugins.rdf rdf/vamp.n3 rdf/vamp.rdf screen.css vamp-programmer-presentation.odp vamp-programmer-presentation.pdf
diffstat 351 files changed, 43112 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/AmplitudeFollower_8cpp-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,269 @@
+<!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: AmplitudeFollower.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+</div>
+<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>
+<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">    This file copyright 2006 Dan Stowell.</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="AmplitudeFollower_8h.html">AmplitudeFollower.h</a>"</span>
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;cmath&gt;</span>
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;iostream&gt;</span>
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <span class="keyword">using</span> std::string;
+<a name="l00046"></a>00046 <span class="keyword">using</span> std::vector;
+<a name="l00047"></a>00047 <span class="keyword">using</span> std::cerr;
+<a name="l00048"></a>00048 <span class="keyword">using</span> std::endl;
+<a name="l00049"></a>00049 
+<a name="l00055"></a><a class="code" href="classAmplitudeFollower.html#29eaeffc353da2614ae508abcd0ab63f">00055</a> <a class="code" href="classAmplitudeFollower.html#29eaeffc353da2614ae508abcd0ab63f" title="An implementation of SuperCollider&amp;#39;s amplitude-follower algorithm as a simple...">AmplitudeFollower::AmplitudeFollower</a>(<span class="keywordtype">float</span> inputSampleRate) :
+<a name="l00056"></a>00056     Plugin(inputSampleRate),
+<a name="l00057"></a>00057     m_stepSize(0),
+<a name="l00058"></a>00058     m_previn(0.0f),
+<a name="l00059"></a>00059     m_clampcoef(0.01f),
+<a name="l00060"></a>00060     m_relaxcoef(0.01f)
+<a name="l00061"></a>00061 {
+<a name="l00062"></a>00062 }
+<a name="l00063"></a>00063 
+<a name="l00064"></a><a class="code" href="classAmplitudeFollower.html#a78f98539ad3a1b08691a99b32035b2d">00064</a> <a class="code" href="classAmplitudeFollower.html#a78f98539ad3a1b08691a99b32035b2d">AmplitudeFollower::~AmplitudeFollower</a>()
+<a name="l00065"></a>00065 {
+<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="classAmplitudeFollower.html#fe7576af95c8fcc7f5bad42eec9f9f29">00069</a> <a class="code" href="classAmplitudeFollower.html#fe7576af95c8fcc7f5bad42eec9f9f29" title="Get the computer-usable name of the plugin.">AmplitudeFollower::getIdentifier</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">"amplitudefollower"</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="classAmplitudeFollower.html#7cfed00bc9d96ba6c709b69ab6a40594">00075</a> <a class="code" href="classAmplitudeFollower.html#7cfed00bc9d96ba6c709b69ab6a40594" title="Get a human-readable name or title of the plugin.">AmplitudeFollower::getName</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">"Amplitude Follower"</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="classAmplitudeFollower.html#6f0f2fea1fdb4b51e688edfe859d5062">00081</a> <a class="code" href="classAmplitudeFollower.html#6f0f2fea1fdb4b51e688edfe859d5062" title="Get a human-readable description for the plugin, typically a line of text that may...">AmplitudeFollower::getDescription</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">"Track the amplitude of the audio signal"</span>;
+<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="classAmplitudeFollower.html#44fc43838f203f58bc2ce6e3cb2b03dd">00087</a> <a class="code" href="classAmplitudeFollower.html#44fc43838f203f58bc2ce6e3cb2b03dd" title="Get the name of the author or vendor of the plugin in human-readable form.">AmplitudeFollower::getMaker</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">"Vamp SDK Example Plugins"</span>;
+<a name="l00090"></a>00090 }
+<a name="l00091"></a>00091 
+<a name="l00092"></a>00092 <span class="keywordtype">int</span>
+<a name="l00093"></a><a class="code" href="classAmplitudeFollower.html#8a5d7a834eb996d517c51f84b2a72250">00093</a> <a class="code" href="classAmplitudeFollower.html#8a5d7a834eb996d517c51f84b2a72250" title="Get the version number of the plugin.">AmplitudeFollower::getPluginVersion</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> 1;
+<a name="l00096"></a>00096 }
+<a name="l00097"></a>00097 
+<a name="l00098"></a>00098 <span class="keywordtype">string</span>
+<a name="l00099"></a><a class="code" href="classAmplitudeFollower.html#0c197fc90f30d91cb4403115c83c9134">00099</a> <a class="code" href="classAmplitudeFollower.html#0c197fc90f30d91cb4403115c83c9134" title="Get the copyright statement or licensing summary for the plugin.">AmplitudeFollower::getCopyright</a>()<span class="keyword"> const</span>
+<a name="l00100"></a>00100 <span class="keyword"></span>{
+<a name="l00101"></a>00101     <span class="keywordflow">return</span> <span class="stringliteral">"Code copyright 2006 Dan Stowell; method from SuperCollider.  Freely redistributable (BSD license)"</span>;
+<a name="l00102"></a>00102 }
+<a name="l00103"></a>00103 
+<a name="l00104"></a>00104 <span class="keywordtype">bool</span>
+<a name="l00105"></a><a class="code" href="classAmplitudeFollower.html#eb727e44ee8ad1aceb90964d20f8d90d">00105</a> <a class="code" href="classAmplitudeFollower.html#eb727e44ee8ad1aceb90964d20f8d90d" title="Initialise a plugin to prepare it for use with the given number of input channels...">AmplitudeFollower::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="l00106"></a>00106 {
+<a name="l00107"></a>00107     <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="l00108"></a>00108         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="l00109"></a>00109 
+<a name="l00110"></a>00110     <a class="code" href="classAmplitudeFollower.html#959c2647fd3c5feea2591e3618774027">m_stepSize</a> = std::min(stepSize, blockSize);
+<a name="l00111"></a>00111         
+<a name="l00112"></a>00112     <span class="comment">// Translate the coefficients </span>
+<a name="l00113"></a>00113     <span class="comment">// from their "convenient" 60dB convergence-time values</span>
+<a name="l00114"></a>00114     <span class="comment">// to real coefficients</span>
+<a name="l00115"></a>00115     <a class="code" href="classAmplitudeFollower.html#1cb205b08cfe2ce94a4af05b18f72876">m_clampcoef</a> = <a class="code" href="classAmplitudeFollower.html#1cb205b08cfe2ce94a4af05b18f72876">m_clampcoef</a>==0.0 ? 0.0 : exp(log(0.1)/(<a class="code" href="classAmplitudeFollower.html#1cb205b08cfe2ce94a4af05b18f72876">m_clampcoef</a> * <a class="code" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>));
+<a name="l00116"></a>00116     <a class="code" href="classAmplitudeFollower.html#ceecd3b3879f32eb4a2e597c32c41cfc">m_relaxcoef</a> = <a class="code" href="classAmplitudeFollower.html#ceecd3b3879f32eb4a2e597c32c41cfc">m_relaxcoef</a>==0.0 ? 0.0 : exp(log(0.1)/(<a class="code" href="classAmplitudeFollower.html#ceecd3b3879f32eb4a2e597c32c41cfc">m_relaxcoef</a> * m_inputSampleRate));
+<a name="l00117"></a>00117 
+<a name="l00118"></a>00118     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00119"></a>00119 }
+<a name="l00120"></a>00120 
+<a name="l00121"></a>00121 <span class="keywordtype">void</span>
+<a name="l00122"></a><a class="code" href="classAmplitudeFollower.html#cebd835e80e84669df078fbd7591d8f7">00122</a> <a class="code" href="classAmplitudeFollower.html#cebd835e80e84669df078fbd7591d8f7" title="Reset the plugin after use, to prepare it for another clean run.">AmplitudeFollower::reset</a>()
+<a name="l00123"></a>00123 {
+<a name="l00124"></a>00124     <a class="code" href="classAmplitudeFollower.html#c95e8d2f334821c6c92c706bae29695a">m_previn</a> = 0.0f;
+<a name="l00125"></a>00125 }
+<a name="l00126"></a>00126 
+<a name="l00127"></a>00127 <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">AmplitudeFollower::OutputList</a>
+<a name="l00128"></a><a class="code" href="classAmplitudeFollower.html#043e3c3db77d76267cd8069e1485bf26">00128</a> <a class="code" href="classAmplitudeFollower.html#043e3c3db77d76267cd8069e1485bf26" title="Get the outputs of this plugin.">AmplitudeFollower::getOutputDescriptors</a>()<span class="keyword"> const</span>
+<a name="l00129"></a>00129 <span class="keyword"></span>{
+<a name="l00130"></a>00130     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> list;
+<a name="l00131"></a>00131 
+<a name="l00132"></a>00132     <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> sca;
+<a name="l00133"></a>00133     sca.<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">"amplitude"</span>;
+<a name="l00134"></a>00134     sca.<a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87" title="The human-readable name of the output.">name</a> = <span class="stringliteral">"Amplitude"</span>;
+<a name="l00135"></a>00135     sca.<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">""</span>;
+<a name="l00136"></a>00136     sca.<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">"V"</span>;
+<a name="l00137"></a>00137     sca.<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="l00138"></a>00138     sca.<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="l00139"></a>00139     sca.<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="l00140"></a>00140     sca.<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="l00141"></a>00141     sca.<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="l00142"></a>00142     list.push_back(sca);
+<a name="l00143"></a>00143 
+<a name="l00144"></a>00144     <span class="keywordflow">return</span> list;
+<a name="l00145"></a>00145 }
+<a name="l00146"></a>00146 
+<a name="l00147"></a>00147 <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">AmplitudeFollower::ParameterList</a>
+<a name="l00148"></a><a class="code" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">00148</a> <a class="code" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf" title="Get the controllable parameters of this plugin.">AmplitudeFollower::getParameterDescriptors</a>()<span class="keyword"> const</span>
+<a name="l00149"></a>00149 <span class="keyword"></span>{
+<a name="l00150"></a>00150     <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> list;
+<a name="l00151"></a>00151         
+<a name="l00152"></a>00152     <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a> att;
+<a name="l00153"></a>00153     att.<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">"attack"</span>;
+<a name="l00154"></a>00154     att.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#0ecebb94fb4ada4aad2640e20aa57084" title="The human-readable name of the parameter.">name</a> = <span class="stringliteral">"Attack time"</span>;
+<a name="l00155"></a>00155     att.<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">""</span>;
+<a name="l00156"></a>00156     att.<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="l00157"></a>00157     att.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8" title="The minimum value of the parameter.">minValue</a> = 0.0f;
+<a name="l00158"></a>00158     att.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4" title="The maximum value of the parameter.">maxValue</a> = 1.f;
+<a name="l00159"></a>00159     att.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc" title="The default value of the parameter.">defaultValue</a> = 0.01f;
+<a name="l00160"></a>00160     att.<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="l00161"></a>00161     
+<a name="l00162"></a>00162     list.push_back(att);
+<a name="l00163"></a>00163     
+<a name="l00164"></a>00164     <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a> dec;
+<a name="l00165"></a>00165     dec.<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">"release"</span>;
+<a name="l00166"></a>00166     dec.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#0ecebb94fb4ada4aad2640e20aa57084" title="The human-readable name of the parameter.">name</a> = <span class="stringliteral">"Release time"</span>;
+<a name="l00167"></a>00167     dec.<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">""</span>;
+<a name="l00168"></a>00168     dec.<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="l00169"></a>00169     dec.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8" title="The minimum value of the parameter.">minValue</a> = 0.0f;
+<a name="l00170"></a>00170     dec.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4" title="The maximum value of the parameter.">maxValue</a> = 1.f;
+<a name="l00171"></a>00171     dec.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc" title="The default value of the parameter.">defaultValue</a> = 0.01f;
+<a name="l00172"></a>00172     dec.<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="l00173"></a>00173     
+<a name="l00174"></a>00174     list.push_back(dec);
+<a name="l00175"></a>00175     
+<a name="l00176"></a>00176     <span class="keywordflow">return</span> list;
+<a name="l00177"></a>00177 }
+<a name="l00178"></a>00178 
+<a name="l00179"></a><a class="code" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">00179</a> <span class="keywordtype">void</span> <a class="code" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340" title="Set a named parameter.">AmplitudeFollower::setParameter</a>(std::string paramid, <span class="keywordtype">float</span> newval)
+<a name="l00180"></a>00180 {
+<a name="l00181"></a>00181     <span class="keywordflow">if</span> (paramid == <span class="stringliteral">"attack"</span>) {
+<a name="l00182"></a>00182         <a class="code" href="classAmplitudeFollower.html#1cb205b08cfe2ce94a4af05b18f72876">m_clampcoef</a> = newval;
+<a name="l00183"></a>00183     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (paramid == <span class="stringliteral">"release"</span>) {
+<a name="l00184"></a>00184         <a class="code" href="classAmplitudeFollower.html#ceecd3b3879f32eb4a2e597c32c41cfc">m_relaxcoef</a> = newval;
+<a name="l00185"></a>00185     }
+<a name="l00186"></a>00186 }
+<a name="l00187"></a>00187 
+<a name="l00188"></a><a class="code" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">00188</a> <span class="keywordtype">float</span> <a class="code" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39" title="Get the value of a named parameter.">AmplitudeFollower::getParameter</a>(std::string paramid)<span class="keyword"> const</span>
+<a name="l00189"></a>00189 <span class="keyword"></span>{
+<a name="l00190"></a>00190     <span class="keywordflow">if</span> (paramid == <span class="stringliteral">"attack"</span>) {
+<a name="l00191"></a>00191         <span class="keywordflow">return</span> <a class="code" href="classAmplitudeFollower.html#1cb205b08cfe2ce94a4af05b18f72876">m_clampcoef</a>;
+<a name="l00192"></a>00192     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (paramid == <span class="stringliteral">"release"</span>) {
+<a name="l00193"></a>00193         <span class="keywordflow">return</span> <a class="code" href="classAmplitudeFollower.html#ceecd3b3879f32eb4a2e597c32c41cfc">m_relaxcoef</a>;
+<a name="l00194"></a>00194     }
+<a name="l00195"></a>00195 
+<a name="l00196"></a>00196     <span class="keywordflow">return</span> 0.0f;
+<a name="l00197"></a>00197 }
+<a name="l00198"></a>00198 
+<a name="l00199"></a>00199 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">AmplitudeFollower::FeatureSet</a>
+<a name="l00200"></a><a class="code" href="classAmplitudeFollower.html#48d0f95cac31ffd190cff89b50a2a5bd">00200</a> <a class="code" href="classAmplitudeFollower.html#48d0f95cac31ffd190cff89b50a2a5bd" title="Process a single block of input data.">AmplitudeFollower::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
+<a name="l00201"></a>00201                            <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="l00202"></a>00202 {
+<a name="l00203"></a>00203     <span class="keywordflow">if</span> (<a class="code" href="classAmplitudeFollower.html#959c2647fd3c5feea2591e3618774027">m_stepSize</a> == 0) {
+<a name="l00204"></a>00204         cerr &lt;&lt; <span class="stringliteral">"ERROR: AmplitudeFollower::process: "</span>
+<a name="l00205"></a>00205              &lt;&lt; <span class="stringliteral">"AmplitudeFollower has not been initialised"</span>
+<a name="l00206"></a>00206              &lt;&lt; endl;
+<a name="l00207"></a>00207         <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>();
+<a name="l00208"></a>00208     }
+<a name="l00209"></a>00209 
+<a name="l00210"></a>00210     <span class="keywordtype">float</span> previn = <a class="code" href="classAmplitudeFollower.html#c95e8d2f334821c6c92c706bae29695a">m_previn</a>;
+<a name="l00211"></a>00211 
+<a name="l00212"></a>00212     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> returnFeatures;
+<a name="l00213"></a>00213         
+<a name="l00214"></a>00214     <span class="keywordtype">float</span> val;
+<a name="l00215"></a>00215     <span class="keywordtype">float</span> peak = 0.0f;
+<a name="l00216"></a>00216 
+<a name="l00217"></a>00217     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classAmplitudeFollower.html#959c2647fd3c5feea2591e3618774027">m_stepSize</a>; ++i) {
+<a name="l00218"></a>00218 
+<a name="l00219"></a>00219         val = fabs(inputBuffers[0][i]);
+<a name="l00220"></a>00220                 
+<a name="l00221"></a>00221         <span class="keywordflow">if</span> (val &lt; previn) {
+<a name="l00222"></a>00222             val = val + (previn - val) * <a class="code" href="classAmplitudeFollower.html#ceecd3b3879f32eb4a2e597c32c41cfc">m_relaxcoef</a>;
+<a name="l00223"></a>00223         } <span class="keywordflow">else</span> {
+<a name="l00224"></a>00224             val = val + (previn - val) * <a class="code" href="classAmplitudeFollower.html#1cb205b08cfe2ce94a4af05b18f72876">m_clampcoef</a>;
+<a name="l00225"></a>00225         }
+<a name="l00226"></a>00226 
+<a name="l00227"></a>00227         <span class="keywordflow">if</span> (val &gt; peak) peak = val;
+<a name="l00228"></a>00228         previn = val;
+<a name="l00229"></a>00229     }
+<a name="l00230"></a>00230 
+<a name="l00231"></a>00231     <a class="code" href="classAmplitudeFollower.html#c95e8d2f334821c6c92c706bae29695a">m_previn</a> = previn;
+<a name="l00232"></a>00232 
+<a name="l00233"></a>00233     <span class="comment">// Now store the "feature" (peak amp) for this sample</span>
+<a name="l00234"></a>00234     <a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> feature;
+<a name="l00235"></a>00235     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="l00236"></a>00236     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(peak);
+<a name="l00237"></a>00237     returnFeatures[0].push_back(feature);
+<a name="l00238"></a>00238 
+<a name="l00239"></a>00239     <span class="keywordflow">return</span> returnFeatures;
+<a name="l00240"></a>00240 }
+<a name="l00241"></a>00241 
+<a name="l00242"></a>00242 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">AmplitudeFollower::FeatureSet</a>
+<a name="l00243"></a><a class="code" href="classAmplitudeFollower.html#368606f643b88e0df0823d85e36f030c">00243</a> <a class="code" href="classAmplitudeFollower.html#368606f643b88e0df0823d85e36f030c" title="After all blocks have been processed, calculate and return any remaining features...">AmplitudeFollower::getRemainingFeatures</a>()
+<a name="l00244"></a>00244 {
+<a name="l00245"></a>00245     <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>();
+<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;
+<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/AmplitudeFollower_8cpp.html	Mon Sep 22 13:01:46 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: AmplitudeFollower.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>AmplitudeFollower.cpp File Reference</h1>
+<p>
+
+<p>
+<a href="AmplitudeFollower_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 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/AmplitudeFollower_8h-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,106 @@
+<!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: AmplitudeFollower.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+</div>
+<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>
+<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">    This file copyright 2006 Dan Stowell.</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 _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="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 {
+<a name="l00049"></a>00049 <span class="keyword">public</span>:
+<a name="l00050"></a>00050     <a class="code" href="classAmplitudeFollower.html#29eaeffc353da2614ae508abcd0ab63f" title="An implementation of SuperCollider&amp;#39;s amplitude-follower algorithm as a simple...">AmplitudeFollower</a>(<span class="keywordtype">float</span> inputSampleRate);
+<a name="l00051"></a>00051     <span class="keyword">virtual</span> <a class="code" href="classAmplitudeFollower.html#a78f98539ad3a1b08691a99b32035b2d">~AmplitudeFollower</a>();
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053     <span class="keywordtype">bool</span> <a class="code" href="classAmplitudeFollower.html#eb727e44ee8ad1aceb90964d20f8d90d" 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="l00054"></a>00054     <span class="keywordtype">void</span> <a class="code" href="classAmplitudeFollower.html#cebd835e80e84669df078fbd7591d8f7" title="Reset the plugin after use, to prepare it for another clean run.">reset</a>();
+<a name="l00055"></a>00055 
+<a name="l00056"></a><a class="code" href="classAmplitudeFollower.html#fc07a389b5f922b944b0350fd232d2eb">00056</a>     <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> <a class="code" href="classAmplitudeFollower.html#fc07a389b5f922b944b0350fd232d2eb" 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#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a>; }
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058     std::string <a class="code" href="classAmplitudeFollower.html#fe7576af95c8fcc7f5bad42eec9f9f29" title="Get the computer-usable name of the plugin.">getIdentifier</a>() <span class="keyword">const</span>;
+<a name="l00059"></a>00059     std::string <a class="code" href="classAmplitudeFollower.html#7cfed00bc9d96ba6c709b69ab6a40594" title="Get a human-readable name or title of the plugin.">getName</a>() <span class="keyword">const</span>;
+<a name="l00060"></a>00060     std::string <a class="code" href="classAmplitudeFollower.html#6f0f2fea1fdb4b51e688edfe859d5062" 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="l00061"></a>00061     std::string <a class="code" href="classAmplitudeFollower.html#44fc43838f203f58bc2ce6e3cb2b03dd" 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="l00062"></a>00062     <span class="keywordtype">int</span> <a class="code" href="classAmplitudeFollower.html#8a5d7a834eb996d517c51f84b2a72250" title="Get the version number of the plugin.">getPluginVersion</a>() <span class="keyword">const</span>;
+<a name="l00063"></a>00063     std::string <a class="code" href="classAmplitudeFollower.html#0c197fc90f30d91cb4403115c83c9134" title="Get the copyright statement or licensing summary for the plugin.">getCopyright</a>() <span class="keyword">const</span>;
+<a name="l00064"></a>00064         
+<a name="l00065"></a>00065     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> <a class="code" href="classAmplitudeFollower.html#043e3c3db77d76267cd8069e1485bf26" title="Get the outputs of this plugin.">getOutputDescriptors</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="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf" 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="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39" title="Get the value of a named parameter.">getParameter</a>(std::string paramid) <span class="keyword">const</span>;
+<a name="l00069"></a>00069     <span class="keywordtype">void</span> <a class="code" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340" title="Set a named parameter.">setParameter</a>(std::string paramid, <span class="keywordtype">float</span> newval);
+<a name="l00070"></a>00070 
+<a name="l00071"></a>00071     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classAmplitudeFollower.html#48d0f95cac31ffd190cff89b50a2a5bd" 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="l00072"></a>00072                        <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="l00073"></a>00073 
+<a name="l00074"></a>00074     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classAmplitudeFollower.html#368606f643b88e0df0823d85e36f030c" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures</a>();
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076 <span class="keyword">protected</span>:
+<a name="l00077"></a><a class="code" href="classAmplitudeFollower.html#959c2647fd3c5feea2591e3618774027">00077</a>     <span class="keywordtype">size_t</span> <a class="code" href="classAmplitudeFollower.html#959c2647fd3c5feea2591e3618774027">m_stepSize</a>;
+<a name="l00078"></a><a class="code" href="classAmplitudeFollower.html#c95e8d2f334821c6c92c706bae29695a">00078</a>     <span class="keywordtype">float</span>  <a class="code" href="classAmplitudeFollower.html#c95e8d2f334821c6c92c706bae29695a">m_previn</a>;
+<a name="l00079"></a><a class="code" href="classAmplitudeFollower.html#1cb205b08cfe2ce94a4af05b18f72876">00079</a>     <span class="keywordtype">float</span>  <a class="code" href="classAmplitudeFollower.html#1cb205b08cfe2ce94a4af05b18f72876">m_clampcoef</a>;
+<a name="l00080"></a><a class="code" href="classAmplitudeFollower.html#ceecd3b3879f32eb4a2e597c32c41cfc">00080</a>     <span class="keywordtype">float</span>  <a class="code" href="classAmplitudeFollower.html#ceecd3b3879f32eb4a2e597c32c41cfc">m_relaxcoef</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 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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/AmplitudeFollower_8h.html	Mon Sep 22 13:01:46 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: AmplitudeFollower.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>AmplitudeFollower.h File Reference</h1>
+<p>
+
+<p>
+<a href="AmplitudeFollower_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="classAmplitudeFollower.html">AmplitudeFollower</a></td></tr>
+
+<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;
+<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/PercussionOnsetDetector_8cpp-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,312 @@
+<!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: PercussionOnsetDetector.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+</div>
+<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>
+<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="PercussionOnsetDetector_8h.html">PercussionOnsetDetector.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="preprocessor">#include &lt;cmath&gt;</span>
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046 
+<a name="l00047"></a><a class="code" href="classPercussionOnsetDetector.html#9f700579805ee5105758d847baab3511">00047</a> <a class="code" href="classPercussionOnsetDetector.html#9f700579805ee5105758d847baab3511">PercussionOnsetDetector::PercussionOnsetDetector</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     m_threshold(3),
+<a name="l00052"></a>00052     m_sensitivity(40),
+<a name="l00053"></a>00053     m_priorMagnitudes(0),
+<a name="l00054"></a>00054     m_dfMinus1(0),
+<a name="l00055"></a>00055     m_dfMinus2(0)
+<a name="l00056"></a>00056 {
+<a name="l00057"></a>00057 }
+<a name="l00058"></a>00058 
+<a name="l00059"></a><a class="code" href="classPercussionOnsetDetector.html#99f833667cf8185e879d735216c7642b">00059</a> <a class="code" href="classPercussionOnsetDetector.html#99f833667cf8185e879d735216c7642b">PercussionOnsetDetector::~PercussionOnsetDetector</a>()
+<a name="l00060"></a>00060 {
+<a name="l00061"></a>00061     <span class="keyword">delete</span>[] <a class="code" href="classPercussionOnsetDetector.html#30daa717267251a9d49afe57c328e989">m_priorMagnitudes</a>;
+<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="classPercussionOnsetDetector.html#267c83a7533146c127e2c3be310e0154">00065</a> <a class="code" href="classPercussionOnsetDetector.html#267c83a7533146c127e2c3be310e0154" title="Get the computer-usable name of the plugin.">PercussionOnsetDetector::getIdentifier</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">"percussiononsets"</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="classPercussionOnsetDetector.html#a98f1ad061a11af98c054011a8844e6f">00071</a> <a class="code" href="classPercussionOnsetDetector.html#a98f1ad061a11af98c054011a8844e6f" title="Get a human-readable name or title of the plugin.">PercussionOnsetDetector::getName</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">"Simple Percussion Onset Detector"</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="classPercussionOnsetDetector.html#9061d189705802a48973a7ccab6360db">00077</a> <a class="code" href="classPercussionOnsetDetector.html#9061d189705802a48973a7ccab6360db" title="Get a human-readable description for the plugin, typically a line of text that may...">PercussionOnsetDetector::getDescription</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">"Detect percussive note onsets by identifying broadband energy rises"</span>;
+<a name="l00080"></a>00080 }
+<a name="l00081"></a>00081 
+<a name="l00082"></a>00082 <span class="keywordtype">string</span>
+<a name="l00083"></a><a class="code" href="classPercussionOnsetDetector.html#63d63f2cb7ea8d8b09d58cc13b541375">00083</a> <a class="code" href="classPercussionOnsetDetector.html#63d63f2cb7ea8d8b09d58cc13b541375" title="Get the name of the author or vendor of the plugin in human-readable form.">PercussionOnsetDetector::getMaker</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> <span class="stringliteral">"Vamp SDK Example Plugins"</span>;
+<a name="l00086"></a>00086 }
+<a name="l00087"></a>00087 
+<a name="l00088"></a>00088 <span class="keywordtype">int</span>
+<a name="l00089"></a><a class="code" href="classPercussionOnsetDetector.html#d6b818dbd81867ce7be71c99cae861be">00089</a> <a class="code" href="classPercussionOnsetDetector.html#d6b818dbd81867ce7be71c99cae861be" title="Get the version number of the plugin.">PercussionOnsetDetector::getPluginVersion</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> 2;
+<a name="l00092"></a>00092 }
+<a name="l00093"></a>00093 
+<a name="l00094"></a>00094 <span class="keywordtype">string</span>
+<a name="l00095"></a><a class="code" href="classPercussionOnsetDetector.html#1a22ece271330c94cc08798a77416351">00095</a> <a class="code" href="classPercussionOnsetDetector.html#1a22ece271330c94cc08798a77416351" title="Get the copyright statement or licensing summary for the plugin.">PercussionOnsetDetector::getCopyright</a>()<span class="keyword"> const</span>
+<a name="l00096"></a>00096 <span class="keyword"></span>{
+<a name="l00097"></a>00097     <span class="keywordflow">return</span> <span class="stringliteral">"Code copyright 2006 Queen Mary, University of London, after Dan Barry et al 2005.  Freely redistributable (BSD license)"</span>;
+<a name="l00098"></a>00098 }
+<a name="l00099"></a>00099 
+<a name="l00100"></a>00100 <span class="keywordtype">size_t</span>
+<a name="l00101"></a><a class="code" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">00101</a> <a class="code" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968" title="Get the preferred step size (window increment -- the distance in sample frames between...">PercussionOnsetDetector::getPreferredStepSize</a>()<span class="keyword"> const</span>
+<a name="l00102"></a>00102 <span class="keyword"></span>{
+<a name="l00103"></a>00103     <span class="keywordflow">return</span> 0;
+<a name="l00104"></a>00104 }
+<a name="l00105"></a>00105 
+<a name="l00106"></a>00106 <span class="keywordtype">size_t</span>
+<a name="l00107"></a><a class="code" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">00107</a> <a class="code" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0" title="Get the preferred block size (window size -- the number of sample frames passed in...">PercussionOnsetDetector::getPreferredBlockSize</a>()<span class="keyword"> const</span>
+<a name="l00108"></a>00108 <span class="keyword"></span>{
+<a name="l00109"></a>00109     <span class="keywordflow">return</span> 1024;
+<a name="l00110"></a>00110 }
+<a name="l00111"></a>00111 
+<a name="l00112"></a>00112 <span class="keywordtype">bool</span>
+<a name="l00113"></a><a class="code" href="classPercussionOnsetDetector.html#349c528260622308f3850bcda8a448ab">00113</a> <a class="code" href="classPercussionOnsetDetector.html#349c528260622308f3850bcda8a448ab" title="Initialise a plugin to prepare it for use with the given number of input channels...">PercussionOnsetDetector::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="l00114"></a>00114 {
+<a name="l00115"></a>00115     <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="l00116"></a>00116         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="l00117"></a>00117 
+<a name="l00118"></a>00118     <a class="code" href="classPercussionOnsetDetector.html#abac0cf7e961482b075777e5f0686e6c">m_stepSize</a> = stepSize;
+<a name="l00119"></a>00119     <a class="code" href="classPercussionOnsetDetector.html#920de543dbcf70a2edd80b5b31313285">m_blockSize</a> = blockSize;
+<a name="l00120"></a>00120 
+<a name="l00121"></a>00121     <a class="code" href="classPercussionOnsetDetector.html#30daa717267251a9d49afe57c328e989">m_priorMagnitudes</a> = <span class="keyword">new</span> <span class="keywordtype">float</span>[<a class="code" href="classPercussionOnsetDetector.html#920de543dbcf70a2edd80b5b31313285">m_blockSize</a>/2];
+<a name="l00122"></a>00122 
+<a name="l00123"></a>00123     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classPercussionOnsetDetector.html#920de543dbcf70a2edd80b5b31313285">m_blockSize</a>/2; ++i) {
+<a name="l00124"></a>00124         <a class="code" href="classPercussionOnsetDetector.html#30daa717267251a9d49afe57c328e989">m_priorMagnitudes</a>[i] = 0.f;
+<a name="l00125"></a>00125     }
+<a name="l00126"></a>00126 
+<a name="l00127"></a>00127     <a class="code" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">m_dfMinus1</a> = 0.f;
+<a name="l00128"></a>00128     <a class="code" href="classPercussionOnsetDetector.html#6ad7d8353cc681ff42a63b127cca5779">m_dfMinus2</a> = 0.f;
+<a name="l00129"></a>00129 
+<a name="l00130"></a>00130     <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<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="classPercussionOnsetDetector.html#9b1075e992cd9599764ef3881fb91d1a">00134</a> <a class="code" href="classPercussionOnsetDetector.html#9b1075e992cd9599764ef3881fb91d1a" title="Reset the plugin after use, to prepare it for another clean run.">PercussionOnsetDetector::reset</a>()
+<a name="l00135"></a>00135 {
+<a name="l00136"></a>00136     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classPercussionOnsetDetector.html#920de543dbcf70a2edd80b5b31313285">m_blockSize</a>/2; ++i) {
+<a name="l00137"></a>00137         <a class="code" href="classPercussionOnsetDetector.html#30daa717267251a9d49afe57c328e989">m_priorMagnitudes</a>[i] = 0.f;
+<a name="l00138"></a>00138     }
+<a name="l00139"></a>00139 
+<a name="l00140"></a>00140     <a class="code" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">m_dfMinus1</a> = 0.f;
+<a name="l00141"></a>00141     <a class="code" href="classPercussionOnsetDetector.html#6ad7d8353cc681ff42a63b127cca5779">m_dfMinus2</a> = 0.f;
+<a name="l00142"></a>00142 }
+<a name="l00143"></a>00143 
+<a name="l00144"></a>00144 <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">PercussionOnsetDetector::ParameterList</a>
+<a name="l00145"></a><a class="code" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">00145</a> <a class="code" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815" title="Get the controllable parameters of this plugin.">PercussionOnsetDetector::getParameterDescriptors</a>()<span class="keyword"> const</span>
+<a name="l00146"></a>00146 <span class="keyword"></span>{
+<a name="l00147"></a>00147     <a class="code" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> list;
+<a name="l00148"></a>00148 
+<a name="l00149"></a>00149     <a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a> d;
+<a name="l00150"></a>00150     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">"threshold"</span>;
+<a name="l00151"></a>00151     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">"Energy rise threshold"</span>;
+<a name="l00152"></a>00152     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">"Energy rise within a frequency bin necessary to count toward broadband total"</span>;
+<a name="l00153"></a>00153     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">"dB"</span>;
+<a name="l00154"></a>00154     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8" title="The minimum value of the parameter.">minValue</a> = 0;
+<a name="l00155"></a>00155     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4" title="The maximum value of the parameter.">maxValue</a> = 20;
+<a name="l00156"></a>00156     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc" title="The default value of the parameter.">defaultValue</a> = 3;
+<a name="l00157"></a>00157     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="l00158"></a>00158     list.push_back(d);
+<a name="l00159"></a>00159 
+<a name="l00160"></a>00160     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">"sensitivity"</span>;
+<a name="l00161"></a>00161     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">"Sensitivity"</span>;
+<a name="l00162"></a>00162     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">"Sensitivity of peak detector applied to broadband detection function"</span>;
+<a name="l00163"></a>00163     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">"%"</span>;
+<a name="l00164"></a>00164     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8" title="The minimum value of the parameter.">minValue</a> = 0;
+<a name="l00165"></a>00165     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4" title="The maximum value of the parameter.">maxValue</a> = 100;
+<a name="l00166"></a>00166     d.<a class="code" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc" title="The default value of the parameter.">defaultValue</a> = 40;
+<a name="l00167"></a>00167     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="l00168"></a>00168     list.push_back(d);
+<a name="l00169"></a>00169 
+<a name="l00170"></a>00170     <span class="keywordflow">return</span> list;
+<a name="l00171"></a>00171 }
+<a name="l00172"></a>00172 
+<a name="l00173"></a>00173 <span class="keywordtype">float</span>
+<a name="l00174"></a><a class="code" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">00174</a> <a class="code" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527" title="Get the value of a named parameter.">PercussionOnsetDetector::getParameter</a>(std::string <span class="keywordtype">id</span>)<span class="keyword"> const</span>
+<a name="l00175"></a>00175 <span class="keyword"></span>{
+<a name="l00176"></a>00176     <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == <span class="stringliteral">"threshold"</span>) <span class="keywordflow">return</span> <a class="code" href="classPercussionOnsetDetector.html#b04119adad56d87f2e633de289aab507">m_threshold</a>;
+<a name="l00177"></a>00177     <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == <span class="stringliteral">"sensitivity"</span>) <span class="keywordflow">return</span> <a class="code" href="classPercussionOnsetDetector.html#4e9770f246ba3bc75e7fc2cb8f9010af">m_sensitivity</a>;
+<a name="l00178"></a>00178     <span class="keywordflow">return</span> 0.f;
+<a name="l00179"></a>00179 }
+<a name="l00180"></a>00180 
+<a name="l00181"></a>00181 <span class="keywordtype">void</span>
+<a name="l00182"></a><a class="code" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">00182</a> <a class="code" href="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01" title="Set a named parameter.">PercussionOnsetDetector::setParameter</a>(std::string <span class="keywordtype">id</span>, <span class="keywordtype">float</span> value)
+<a name="l00183"></a>00183 {
+<a name="l00184"></a>00184     <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == <span class="stringliteral">"threshold"</span>) {
+<a name="l00185"></a>00185         <span class="keywordflow">if</span> (value &lt; 0) value = 0;
+<a name="l00186"></a>00186         <span class="keywordflow">if</span> (value &gt; 20) value = 20;
+<a name="l00187"></a>00187         <a class="code" href="classPercussionOnsetDetector.html#b04119adad56d87f2e633de289aab507">m_threshold</a> = value;
+<a name="l00188"></a>00188     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == <span class="stringliteral">"sensitivity"</span>) {
+<a name="l00189"></a>00189         <span class="keywordflow">if</span> (value &lt; 0) value = 0;
+<a name="l00190"></a>00190         <span class="keywordflow">if</span> (value &gt; 100) value = 100;
+<a name="l00191"></a>00191         <a class="code" href="classPercussionOnsetDetector.html#4e9770f246ba3bc75e7fc2cb8f9010af">m_sensitivity</a> = value;
+<a name="l00192"></a>00192     }
+<a name="l00193"></a>00193 }
+<a name="l00194"></a>00194 
+<a name="l00195"></a>00195 <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">PercussionOnsetDetector::OutputList</a>
+<a name="l00196"></a><a class="code" href="classPercussionOnsetDetector.html#a4537aa0eb58a67d6e824d46924cf782">00196</a> <a class="code" href="classPercussionOnsetDetector.html#a4537aa0eb58a67d6e824d46924cf782" title="Get the outputs of this plugin.">PercussionOnsetDetector::getOutputDescriptors</a>()<span class="keyword"> const</span>
+<a name="l00197"></a>00197 <span class="keyword"></span>{
+<a name="l00198"></a>00198     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> list;
+<a name="l00199"></a>00199 
+<a name="l00200"></a>00200     <a class="code" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> d;
+<a name="l00201"></a>00201     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">"onsets"</span>;
+<a name="l00202"></a>00202     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">"Onsets"</span>;
+<a name="l00203"></a>00203     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">"Percussive note onset locations"</span>;
+<a name="l00204"></a>00204     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="l00205"></a>00205     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="l00206"></a>00206     d.<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="l00207"></a>00207     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="l00208"></a>00208     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="l00209"></a>00209     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="l00210"></a>00210     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="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a>;
+<a name="l00211"></a>00211     list.push_back(d);
+<a name="l00212"></a>00212 
+<a name="l00213"></a>00213     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="l00214"></a>00214     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="l00215"></a>00215     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">"Broadband energy rise detection function"</span>;
+<a name="l00216"></a>00216     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="l00217"></a>00217     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">true</span>;
+<a name="l00218"></a>00218     d.<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="l00219"></a>00219     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="l00220"></a>00220     list.push_back(d);
+<a name="l00221"></a>00221 
+<a name="l00222"></a>00222     <span class="keywordflow">return</span> list;
+<a name="l00223"></a>00223 }
+<a name="l00224"></a>00224 
+<a name="l00225"></a>00225 <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PercussionOnsetDetector::FeatureSet</a>
+<a name="l00226"></a><a class="code" href="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614">00226</a> <a class="code" href="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614" title="Process a single block of input data.">PercussionOnsetDetector::process</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> *<span class="keyword">const</span> *inputBuffers,
+<a name="l00227"></a>00227                                  <a class="code" href="structVamp_1_1RealTime.html" title="RealTime represents time values to nanosecond precision with accurate arithmetic...">Vamp::RealTime</a> ts)
+<a name="l00228"></a>00228 {
+<a name="l00229"></a>00229     <span class="keywordflow">if</span> (<a class="code" href="classPercussionOnsetDetector.html#abac0cf7e961482b075777e5f0686e6c">m_stepSize</a> == 0) {
+<a name="l00230"></a>00230         cerr &lt;&lt; <span class="stringliteral">"ERROR: PercussionOnsetDetector::process: "</span>
+<a name="l00231"></a>00231              &lt;&lt; <span class="stringliteral">"PercussionOnsetDetector has not been initialised"</span>
+<a name="l00232"></a>00232              &lt;&lt; endl;
+<a name="l00233"></a>00233         <span class="keywordflow">return</span> <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>();
+<a name="l00234"></a>00234     }
+<a name="l00235"></a>00235 
+<a name="l00236"></a>00236     <span class="keywordtype">int</span> count = 0;
+<a name="l00237"></a>00237 
+<a name="l00238"></a>00238     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 1; i &lt; <a class="code" href="classPercussionOnsetDetector.html#920de543dbcf70a2edd80b5b31313285">m_blockSize</a>/2; ++i) {
+<a name="l00239"></a>00239 
+<a name="l00240"></a>00240         <span class="keywordtype">float</span> real = inputBuffers[0][i*2];
+<a name="l00241"></a>00241         <span class="keywordtype">float</span> imag = inputBuffers[0][i*2 + 1];
+<a name="l00242"></a>00242 
+<a name="l00243"></a>00243         <span class="keywordtype">float</span> sqrmag = real * real + imag * imag;
+<a name="l00244"></a>00244 
+<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="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         }
+<a name="l00252"></a>00252 
+<a name="l00253"></a>00253         <a class="code" href="classPercussionOnsetDetector.html#30daa717267251a9d49afe57c328e989">m_priorMagnitudes</a>[i] = sqrmag;
+<a name="l00254"></a>00254     }
+<a name="l00255"></a>00255 
+<a name="l00256"></a>00256     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> returnFeatures;
+<a name="l00257"></a>00257 
+<a name="l00258"></a>00258     <a class="code" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> detectionFunction;
+<a name="l00259"></a>00259     detectionFunction.<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="l00260"></a>00260     detectionFunction.<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="l00261"></a>00261     returnFeatures[1].push_back(detectionFunction);
+<a name="l00262"></a>00262 
+<a name="l00263"></a>00263     <span class="keywordflow">if</span> (<a class="code" href="classPercussionOnsetDetector.html#6ad7d8353cc681ff42a63b127cca5779">m_dfMinus2</a> &lt; <a class="code" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">m_dfMinus1</a> &amp;&amp;
+<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 
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PercussionOnsetDetector_8cpp.html	Mon Sep 22 13:01:46 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: PercussionOnsetDetector.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>PercussionOnsetDetector.cpp File Reference</h1>
+<p>
+
+<p>
+<a href="PercussionOnsetDetector_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 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/PercussionOnsetDetector_8h-source.html	Mon Sep 22 13:01:46 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: PercussionOnsetDetector.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+</div>
+<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>
+<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 _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="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 {
+<a name="l00048"></a>00048 <span class="keyword">public</span>:
+<a name="l00049"></a>00049     <a class="code" href="classPercussionOnsetDetector.html#9f700579805ee5105758d847baab3511">PercussionOnsetDetector</a>(<span class="keywordtype">float</span> inputSampleRate);
+<a name="l00050"></a>00050     <span class="keyword">virtual</span> <a class="code" href="classPercussionOnsetDetector.html#99f833667cf8185e879d735216c7642b">~PercussionOnsetDetector</a>();
+<a name="l00051"></a>00051 
+<a name="l00052"></a>00052     <span class="keywordtype">bool</span> <a class="code" href="classPercussionOnsetDetector.html#349c528260622308f3850bcda8a448ab" 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="classPercussionOnsetDetector.html#9b1075e992cd9599764ef3881fb91d1a" 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="classPercussionOnsetDetector.html#4f6954267696ee5bfa7dd1c4a6cfa92a">00055</a>     <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> <a class="code" href="classPercussionOnsetDetector.html#4f6954267696ee5bfa7dd1c4a6cfa92a" 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="classPercussionOnsetDetector.html#267c83a7533146c127e2c3be310e0154" 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="classPercussionOnsetDetector.html#a98f1ad061a11af98c054011a8844e6f" 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="classPercussionOnsetDetector.html#9061d189705802a48973a7ccab6360db" 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="classPercussionOnsetDetector.html#63d63f2cb7ea8d8b09d58cc13b541375" 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="classPercussionOnsetDetector.html#d6b818dbd81867ce7be71c99cae861be" 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="classPercussionOnsetDetector.html#1a22ece271330c94cc08798a77416351" 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="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968" 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="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0" 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="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815" 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="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527" 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="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01" 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="classPercussionOnsetDetector.html#a4537aa0eb58a67d6e824d46924cf782" 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="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614" 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="classPercussionOnsetDetector.html#d3d6767ed137783e84f842b4d4732ffa" 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="classPercussionOnsetDetector.html#abac0cf7e961482b075777e5f0686e6c">00079</a>     <span class="keywordtype">size_t</span> <a class="code" href="classPercussionOnsetDetector.html#abac0cf7e961482b075777e5f0686e6c">m_stepSize</a>;
+<a name="l00080"></a><a class="code" href="classPercussionOnsetDetector.html#920de543dbcf70a2edd80b5b31313285">00080</a>     <span class="keywordtype">size_t</span> <a class="code" href="classPercussionOnsetDetector.html#920de543dbcf70a2edd80b5b31313285">m_blockSize</a>;
+<a name="l00081"></a>00081 
+<a name="l00082"></a><a class="code" href="classPercussionOnsetDetector.html#b04119adad56d87f2e633de289aab507">00082</a>     <span class="keywordtype">float</span>  <a class="code" href="classPercussionOnsetDetector.html#b04119adad56d87f2e633de289aab507">m_threshold</a>;
+<a name="l00083"></a><a class="code" href="classPercussionOnsetDetector.html#4e9770f246ba3bc75e7fc2cb8f9010af">00083</a>     <span class="keywordtype">float</span>  <a class="code" href="classPercussionOnsetDetector.html#4e9770f246ba3bc75e7fc2cb8f9010af">m_sensitivity</a>;
+<a name="l00084"></a><a class="code" href="classPercussionOnsetDetector.html#30daa717267251a9d49afe57c328e989">00084</a>     <span class="keywordtype">float</span> *<a class="code" href="classPercussionOnsetDetector.html#30daa717267251a9d49afe57c328e989">m_priorMagnitudes</a>;
+<a name="l00085"></a><a class="code" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">00085</a>     <span class="keywordtype">float</span>  <a class="code" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">m_dfMinus1</a>;
+<a name="l00086"></a><a class="code" href="classPercussionOnsetDetector.html#6ad7d8353cc681ff42a63b127cca5779">00086</a>     <span class="keywordtype">float</span>  <a class="code" href="classPercussionOnsetDetector.html#6ad7d8353cc681ff42a63b127cca5779">m_dfMinus2</a>;
+<a name="l00087"></a>00087 };
+<a name="l00088"></a>00088 
+<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;
+<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/PercussionOnsetDetector_8h.html	Mon Sep 22 13:01:46 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: PercussionOnsetDetector.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>PercussionOnsetDetector.h File Reference</h1>
+<p>
+
+<p>
+<a href="PercussionOnsetDetector_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="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td></tr>
+
+<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;
+<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/PluginAdapter_8cpp-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,880 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginAdapter_8cpp.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,40 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginAdapter_8h-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,116 @@
+<!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.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>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>
+<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_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="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="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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginAdapter_8h.html	Mon Sep 22 13:01:46 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: PluginAdapter.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>PluginAdapter.h File Reference</h1>
+<p>
+
+<p>
+<a href="PluginAdapter_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_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="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;
+<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/PluginBase_8h-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,141 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginBase_8h.html	Mon Sep 22 13:01:46 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: 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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginBufferingAdapter_8cpp-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,581 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginBufferingAdapter_8cpp.html	Mon Sep 22 13:01:46 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: 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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginBufferingAdapter_8h-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,101 @@
+<!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.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>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  </div>
+</div>
+</div>
+<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>
+<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, Copyright 2007 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>
+<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">#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="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="l00096"></a>00096 
+<a name="l00097"></a>00097 }
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099 <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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginBufferingAdapter_8h.html	Mon Sep 22 13:01:46 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: PluginBufferingAdapter.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>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  </div>
+</div>
+<div class="contents">
+<h1>PluginBufferingAdapter.h File Reference</h1>
+<p>
+
+<p>
+<a href="PluginBufferingAdapter_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_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>
+</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/PluginChannelAdapter_8cpp-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,255 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginChannelAdapter_8cpp.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,42 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginChannelAdapter_8h-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,92 @@
+<!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.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>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  </div>
+</div>
+</div>
+<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>
+<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">#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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginChannelAdapter_8h.html	Mon Sep 22 13:01:46 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: PluginChannelAdapter.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>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  </div>
+</div>
+<div class="contents">
+<h1>PluginChannelAdapter.h File Reference</h1>
+<p>
+
+<p>
+<a href="PluginChannelAdapter_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_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>
+</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/PluginHostAdapter_8cpp-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,456 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginHostAdapter_8cpp.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,77 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginHostAdapter_8h-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,127 @@
+<!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.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>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>
+<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_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="l00042"></a>00042 
+<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <span class="keyword">namespace </span>Vamp {
+<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="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="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="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="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="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 
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginHostAdapter_8h.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,41 @@
+<!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.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>PluginHostAdapter.h File Reference</h1>
+<p>
+
+<p>
+<a href="PluginHostAdapter_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_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>
+</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/PluginInputDomainAdapter_8cpp-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,563 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginInputDomainAdapter_8cpp.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,65 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginInputDomainAdapter_8h-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,97 @@
+<!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.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>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  </div>
+</div>
+</div>
+<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>
+<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">#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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginInputDomainAdapter_8h.html	Mon Sep 22 13:01:46 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: PluginInputDomainAdapter.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>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  </div>
+</div>
+<div class="contents">
+<h1>PluginInputDomainAdapter.h File Reference</h1>
+<p>
+
+<p>
+<a href="PluginInputDomainAdapter_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_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>
+</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/PluginLoader_8cpp-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,663 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginLoader_8cpp.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,69 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginLoader_8h-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,129 @@
+<!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.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>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  </div>
+</div>
+</div>
+<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>
+<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">#ifndef _VAMP_PLUGIN_LOADER_H_</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _VAMP_PLUGIN_LOADER_H_</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;vector&gt;</span>
+<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="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="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="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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginLoader_8h.html	Mon Sep 22 13:01:46 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: PluginLoader.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>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  </div>
+</div>
+<div class="contents">
+<h1>PluginLoader.h File Reference</h1>
+<p>
+
+<p>
+<a href="PluginLoader_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_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>
+</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/PluginWrapper_8cpp-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,228 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginWrapper_8cpp.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,42 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginWrapper_8h-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,120 @@
+<!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.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>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  </div>
+</div>
+</div>
+<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>
+<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">#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="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="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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/PluginWrapper_8h.html	Mon Sep 22 13:01:46 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: PluginWrapper.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>&nbsp;&raquo&nbsp;<a class="el" href="dir_fa454903fff8cd477733ebe28a3468c0.html">hostext</a>
+  </div>
+</div>
+<div class="contents">
+<h1>PluginWrapper.h File Reference</h1>
+<p>
+
+<p>
+<a href="PluginWrapper_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_1PluginWrapper.html">Vamp::HostExt::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: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/Plugin_8h-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,176 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/Plugin_8h.html	Mon Sep 22 13:01:46 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.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/RealTime_8cpp-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,272 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/RealTime_8cpp.html	Mon Sep 22 13:01:46 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: 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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/RealTime_8h-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,165 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/RealTime_8h.html	Mon Sep 22 13:01:46 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.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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/SpectralCentroid_8cpp-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,215 @@
+<!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: SpectralCentroid.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+</div>
+<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>
+<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="SpectralCentroid_8h.html">SpectralCentroid.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="preprocessor">#include &lt;cmath&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="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="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="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 
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/SpectralCentroid_8cpp.html	Mon Sep 22 13:01:46 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: SpectralCentroid.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>SpectralCentroid.cpp File Reference</h1>
+<p>
+
+<p>
+<a href="SpectralCentroid_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 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/SpectralCentroid_8h-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,100 @@
+<!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: SpectralCentroid.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+</div>
+<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>
+<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 _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="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 {
+<a name="l00049"></a>00049 <span class="keyword">public</span>:
+<a name="l00050"></a>00050     <a class="code" href="classSpectralCentroid.html#2cd801ad72f262eceb95ab0d22e7dbcd">SpectralCentroid</a>(<span class="keywordtype">float</span> inputSampleRate);
+<a name="l00051"></a>00051     <span class="keyword">virtual</span> <a class="code" href="classSpectralCentroid.html#483e0d6757bc3dcf61e8066f764f45c6">~SpectralCentroid</a>();
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053     <span class="keywordtype">bool</span> <a class="code" href="classSpectralCentroid.html#ab1ae16f5c68e2b319668f447908cedb" 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="l00054"></a>00054     <span class="keywordtype">void</span> <a class="code" href="classSpectralCentroid.html#9b5f5581691ff8f46bb7674d8d74395c" title="Reset the plugin after use, to prepare it for another clean run.">reset</a>();
+<a name="l00055"></a>00055 
+<a name="l00056"></a><a class="code" href="classSpectralCentroid.html#0ec2cb74c1c5f6e57d0bd9dcf7c8f469">00056</a>     <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> <a class="code" href="classSpectralCentroid.html#0ec2cb74c1c5f6e57d0bd9dcf7c8f469" 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="l00057"></a>00057 
+<a name="l00058"></a>00058     std::string <a class="code" href="classSpectralCentroid.html#1b2c4c8440c024c4c635fcef5697949f" title="Get the computer-usable name of the plugin.">getIdentifier</a>() <span class="keyword">const</span>;
+<a name="l00059"></a>00059     std::string <a class="code" href="classSpectralCentroid.html#b7e6a620fea568af431be3cfd9dd5a41" title="Get a human-readable name or title of the plugin.">getName</a>() <span class="keyword">const</span>;
+<a name="l00060"></a>00060     std::string <a class="code" href="classSpectralCentroid.html#8fbb74a46283057d9a0b0e4718ee943c" 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="l00061"></a>00061     std::string <a class="code" href="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8" 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="l00062"></a>00062     <span class="keywordtype">int</span> <a class="code" href="classSpectralCentroid.html#f64622e66bf678ac2b0b58aa832ca2b3" title="Get the version number of the plugin.">getPluginVersion</a>() <span class="keyword">const</span>;
+<a name="l00063"></a>00063     std::string <a class="code" href="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980" title="Get the copyright statement or licensing summary for the plugin.">getCopyright</a>() <span class="keyword">const</span>;
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> <a class="code" href="classSpectralCentroid.html#894ca9740927102bb80b56b5e9e95877" title="Get the outputs of this plugin.">getOutputDescriptors</a>() <span class="keyword">const</span>;
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classSpectralCentroid.html#ca96c70e7e75c9e4a7db38485018914c" 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="l00068"></a>00068                        <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="l00069"></a>00069 
+<a name="l00070"></a>00070     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classSpectralCentroid.html#83ba39f0870a2f86837605a958dfab1a" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures</a>();
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072 <span class="keyword">protected</span>:
+<a name="l00073"></a><a class="code" href="classSpectralCentroid.html#49805a090ba58477da4adbefea4392a7">00073</a>     <span class="keywordtype">size_t</span> <a class="code" href="classSpectralCentroid.html#49805a090ba58477da4adbefea4392a7">m_stepSize</a>;
+<a name="l00074"></a><a class="code" href="classSpectralCentroid.html#262f583d71b442bb2d80023e7c85aa4e">00074</a>     <span class="keywordtype">size_t</span> <a class="code" href="classSpectralCentroid.html#262f583d71b442bb2d80023e7c85aa4e">m_blockSize</a>;
+<a name="l00075"></a>00075 };
+<a name="l00076"></a>00076 
+<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;
+<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/SpectralCentroid_8h.html	Mon Sep 22 13:01:46 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: SpectralCentroid.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>SpectralCentroid.h File Reference</h1>
+<p>
+
+<p>
+<a href="SpectralCentroid_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="classSpectralCentroid.html">SpectralCentroid</a></td></tr>
+
+<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;
+<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/ZeroCrossing_8cpp-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,221 @@
+<!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: ZeroCrossing.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+</div>
+<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>
+<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="ZeroCrossing_8h.html">ZeroCrossing.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 
+<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 
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/ZeroCrossing_8cpp.html	Mon Sep 22 13:01:46 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: ZeroCrossing.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>ZeroCrossing.cpp File Reference</h1>
+<p>
+
+<p>
+<a href="ZeroCrossing_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 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/ZeroCrossing_8h-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,100 @@
+<!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: ZeroCrossing.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+</div>
+<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>
+<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 _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="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 {
+<a name="l00049"></a>00049 <span class="keyword">public</span>:
+<a name="l00050"></a>00050     <a class="code" href="classZeroCrossing.html#9855153a54bdc9ba75cc1a705a149473">ZeroCrossing</a>(<span class="keywordtype">float</span> inputSampleRate);
+<a name="l00051"></a>00051     <span class="keyword">virtual</span> <a class="code" href="classZeroCrossing.html#f1de0da862e6e2443581e4e16044675b">~ZeroCrossing</a>();
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053     <span class="keywordtype">bool</span> <a class="code" href="classZeroCrossing.html#f21bbcc87a6eb7875dfab7d86222dccc" 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="l00054"></a>00054     <span class="keywordtype">void</span> <a class="code" href="classZeroCrossing.html#9ae6c4a31ea027dceb1e97ead807e228" title="Reset the plugin after use, to prepare it for another clean run.">reset</a>();
+<a name="l00055"></a>00055 
+<a name="l00056"></a><a class="code" href="classZeroCrossing.html#afe2ce6ebd353a14c40db7e8e60f4051">00056</a>     <a class="code" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> <a class="code" href="classZeroCrossing.html#afe2ce6ebd353a14c40db7e8e60f4051" 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#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a>; }
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058     std::string <a class="code" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a" title="Get the computer-usable name of the plugin.">getIdentifier</a>() <span class="keyword">const</span>;
+<a name="l00059"></a>00059     std::string <a class="code" href="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498" title="Get a human-readable name or title of the plugin.">getName</a>() <span class="keyword">const</span>;
+<a name="l00060"></a>00060     std::string <a class="code" href="classZeroCrossing.html#710bb0b013157adaeef2a9e6867b4478" 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="l00061"></a>00061     std::string <a class="code" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a" 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="l00062"></a>00062     <span class="keywordtype">int</span> <a class="code" href="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb" title="Get the version number of the plugin.">getPluginVersion</a>() <span class="keyword">const</span>;
+<a name="l00063"></a>00063     std::string <a class="code" href="classZeroCrossing.html#f9c41b92aa8ff8bddaebf75569ff789c" title="Get the copyright statement or licensing summary for the plugin.">getCopyright</a>() <span class="keyword">const</span>;
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065     <a class="code" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> <a class="code" href="classZeroCrossing.html#c9d590a6feb1fc9a37d7892aefe2b688" title="Get the outputs of this plugin.">getOutputDescriptors</a>() <span class="keyword">const</span>;
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da" 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="l00068"></a>00068                        <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="l00069"></a>00069 
+<a name="l00070"></a>00070     <a class="code" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> <a class="code" href="classZeroCrossing.html#70996d1b7166e303903daf92a9a37ad8" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures</a>();
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072 <span class="keyword">protected</span>:
+<a name="l00073"></a><a class="code" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">00073</a>     <span class="keywordtype">size_t</span> <a class="code" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">m_stepSize</a>;
+<a name="l00074"></a><a class="code" href="classZeroCrossing.html#0f2d9f2cab0a8a30344e1f2c0ebb8ee8">00074</a>     <span class="keywordtype">float</span> <a class="code" href="classZeroCrossing.html#0f2d9f2cab0a8a30344e1f2c0ebb8ee8">m_previousSample</a>;
+<a name="l00075"></a>00075 };
+<a name="l00076"></a>00076 
+<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;
+<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/ZeroCrossing_8h.html	Mon Sep 22 13:01:46 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: ZeroCrossing.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>ZeroCrossing.h File Reference</h1>
+<p>
+
+<p>
+<a href="ZeroCrossing_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="classZeroCrossing.html">ZeroCrossing</a></td></tr>
+
+<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;
+<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/annotated.html	Mon Sep 22 13:01:46 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: Class 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 class="current"><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>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="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__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="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_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_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="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;
+<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/classAmplitudeFollower-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,75 @@
+<!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>AmplitudeFollower Member List</h1>This is the complete list of members for <a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="classAmplitudeFollower.html#29eaeffc353da2614ae508abcd0ab63f">AmplitudeFollower</a>(float inputSampleRate)</td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</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="classAmplitudeFollower.html#0c197fc90f30d91cb4403115c83c9134">getCopyright</a>() const </td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</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="classAmplitudeFollower.html#6f0f2fea1fdb4b51e688edfe859d5062">getDescription</a>() const </td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classAmplitudeFollower.html#fe7576af95c8fcc7f5bad42eec9f9f29">getIdentifier</a>() const </td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classAmplitudeFollower.html#fc07a389b5f922b944b0350fd232d2eb">getInputDomain</a>() const </td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classAmplitudeFollower.html#44fc43838f203f58bc2ce6e3cb2b03dd">getMaker</a>() const </td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</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="classAmplitudeFollower.html#7cfed00bc9d96ba6c709b69ab6a40594">getName</a>() const </td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classAmplitudeFollower.html#043e3c3db77d76267cd8069e1485bf26">getOutputDescriptors</a>() const </td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">getParameter</a>(std::string paramid) const </td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">getParameterDescriptors</a>() const </td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classAmplitudeFollower.html#8a5d7a834eb996d517c51f84b2a72250">getPluginVersion</a>() const </td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</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="classAmplitudeFollower.html#368606f643b88e0df0823d85e36f030c">getRemainingFeatures</a>()</td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</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="classAmplitudeFollower.html#eb727e44ee8ad1aceb90964d20f8d90d">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</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="classAmplitudeFollower.html#1cb205b08cfe2ce94a4af05b18f72876">m_clampcoef</a></td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</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="classAmplitudeFollower.html#c95e8d2f334821c6c92c706bae29695a">m_previn</a></td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classAmplitudeFollower.html#ceecd3b3879f32eb4a2e597c32c41cfc">m_relaxcoef</a></td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classAmplitudeFollower.html#959c2647fd3c5feea2591e3618774027">m_stepSize</a></td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</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="classAmplitudeFollower.html#48d0f95cac31ffd190cff89b50a2a5bd">process</a>(const float *const *inputBuffers, Vamp::RealTime timestamp)</td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</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="classAmplitudeFollower.html#cebd835e80e84669df078fbd7591d8f7">reset</a>()</td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</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="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">setParameter</a>(std::string paramid, float newval)</td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</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="classAmplitudeFollower.html#a78f98539ad3a1b08691a99b32035b2d">~AmplitudeFollower</a>()</td><td><a class="el" href="classAmplitudeFollower.html">AmplitudeFollower</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 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/classAmplitudeFollower.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1093 @@
+<!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: AmplitudeFollower 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>
+<div class="contents">
+<h1>AmplitudeFollower Class Reference</h1><!-- doxytag: class="AmplitudeFollower" --><!-- doxytag: inherits="Vamp::Plugin" --><code>#include &lt;<a class="el" href="AmplitudeFollower_8h-source.html">AmplitudeFollower.h</a>&gt;</code>
+<p>
+<div class="dynheader">
+Inheritance diagram for AmplitudeFollower:</div>
+<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>
+<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
+
+<p>
+<a href="classAmplitudeFollower-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
+Example plugin implementing the SuperCollider amplitude follower function. 
+<p>Definition at line <a class="el" href="AmplitudeFollower_8h-source.html#l00047">47</a> of file <a class="el" href="AmplitudeFollower_8h-source.html">AmplitudeFollower.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="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="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>
+
+<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="#eb727e44ee8ad1aceb90964d20f8d90d"></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="classAmplitudeFollower.html#cebd835e80e84669df078fbd7591d8f7">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="#cebd835e80e84669df078fbd7591d8f7"></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="classAmplitudeFollower.html#fc07a389b5f922b944b0350fd232d2eb">getInputDomain</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#fc07a389b5f922b944b0350fd232d2eb"></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="classAmplitudeFollower.html#fe7576af95c8fcc7f5bad42eec9f9f29">getIdentifier</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#fe7576af95c8fcc7f5bad42eec9f9f29"></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="classAmplitudeFollower.html#7cfed00bc9d96ba6c709b69ab6a40594">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="#7cfed00bc9d96ba6c709b69ab6a40594"></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="classAmplitudeFollower.html#6f0f2fea1fdb4b51e688edfe859d5062">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="#6f0f2fea1fdb4b51e688edfe859d5062"></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="classAmplitudeFollower.html#44fc43838f203f58bc2ce6e3cb2b03dd">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="#44fc43838f203f58bc2ce6e3cb2b03dd"></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="classAmplitudeFollower.html#8a5d7a834eb996d517c51f84b2a72250">getPluginVersion</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the version number of the plugin.  <a href="#8a5d7a834eb996d517c51f84b2a72250"></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="classAmplitudeFollower.html#0c197fc90f30d91cb4403115c83c9134">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="#0c197fc90f30d91cb4403115c83c9134"></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="classAmplitudeFollower.html#043e3c3db77d76267cd8069e1485bf26">getOutputDescriptors</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#043e3c3db77d76267cd8069e1485bf26"></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="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">getParameterDescriptors</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#9df01323a09e117bc12354ebe9244edf"></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="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">getParameter</a> (std::string paramid) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of a named parameter.  <a href="#b278c4b6f2ca23248dc94ad775273f39"></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="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">setParameter</a> (std::string paramid, float newval)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter.  <a href="#e1fc37ece4d20e40f3066a3361a99340"></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="classAmplitudeFollower.html#48d0f95cac31ffd190cff89b50a2a5bd">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="#48d0f95cac31ffd190cff89b50a2a5bd"></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="classAmplitudeFollower.html#368606f643b88e0df0823d85e36f030c">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="#368606f643b88e0df0823d85e36f030c"></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" 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 <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="classAmplitudeFollower.html#959c2647fd3c5feea2591e3618774027">m_stepSize</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAmplitudeFollower.html#c95e8d2f334821c6c92c706bae29695a">m_previn</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAmplitudeFollower.html#1cb205b08cfe2ce94a4af05b18f72876">m_clampcoef</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAmplitudeFollower.html#ceecd3b3879f32eb4a2e597c32c41cfc">m_relaxcoef</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="AmplitudeFollower::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="AmplitudeFollower::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="AmplitudeFollower::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="AmplitudeFollower::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="AmplitudeFollower::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="AmplitudeFollower::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="29eaeffc353da2614ae508abcd0ab63f"></a><!-- doxytag: member="AmplitudeFollower::AmplitudeFollower" ref="29eaeffc353da2614ae508abcd0ab63f" args="(float inputSampleRate)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">AmplitudeFollower::AmplitudeFollower           </td>
+          <td>(</td>
+          <td class="paramtype">float&nbsp;</td>
+          <td class="paramname"> <em>inputSampleRate</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></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. 
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="a78f98539ad3a1b08691a99b32035b2d"></a><!-- doxytag: member="AmplitudeFollower::~AmplitudeFollower" ref="a78f98539ad3a1b08691a99b32035b2d" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">AmplitudeFollower::~AmplitudeFollower           </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="AmplitudeFollower_8cpp-source.html#l00064">64</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="eb727e44ee8ad1aceb90964d20f8d90d"></a><!-- doxytag: member="AmplitudeFollower::initialise" ref="eb727e44ee8ad1aceb90964d20f8d90d" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool AmplitudeFollower::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]</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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="cebd835e80e84669df078fbd7591d8f7"></a><!-- doxytag: member="AmplitudeFollower::reset" ref="cebd835e80e84669df078fbd7591d8f7" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AmplitudeFollower::reset           </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>
+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="AmplitudeFollower_8cpp-source.html#l00122">122</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
+
+<p>References <a class="el" href="AmplitudeFollower_8h-source.html#l00078">m_previn</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="fc07a389b5f922b944b0350fd232d2eb"></a><!-- doxytag: member="AmplitudeFollower::getInputDomain" ref="fc07a389b5f922b944b0350fd232d2eb" 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> AmplitudeFollower::getInputDomain           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="classAmplitudeFollower.html#48d0f95cac31ffd190cff89b50a2a5bd" 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="classAmplitudeFollower.html#48d0f95cac31ffd190cff89b50a2a5bd" 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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="fe7576af95c8fcc7f5bad42eec9f9f29"></a><!-- doxytag: member="AmplitudeFollower::getIdentifier" ref="fe7576af95c8fcc7f5bad42eec9f9f29" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string AmplitudeFollower::getIdentifier           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="AmplitudeFollower_8cpp-source.html#l00069">69</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="7cfed00bc9d96ba6c709b69ab6a40594"></a><!-- doxytag: member="AmplitudeFollower::getName" ref="7cfed00bc9d96ba6c709b69ab6a40594" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string AmplitudeFollower::getName           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="AmplitudeFollower_8cpp-source.html#l00075">75</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="6f0f2fea1fdb4b51e688edfe859d5062"></a><!-- doxytag: member="AmplitudeFollower::getDescription" ref="6f0f2fea1fdb4b51e688edfe859d5062" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string AmplitudeFollower::getDescription           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="AmplitudeFollower_8cpp-source.html#l00081">81</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="44fc43838f203f58bc2ce6e3cb2b03dd"></a><!-- doxytag: member="AmplitudeFollower::getMaker" ref="44fc43838f203f58bc2ce6e3cb2b03dd" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string AmplitudeFollower::getMaker           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="AmplitudeFollower_8cpp-source.html#l00087">87</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="8a5d7a834eb996d517c51f84b2a72250"></a><!-- doxytag: member="AmplitudeFollower::getPluginVersion" ref="8a5d7a834eb996d517c51f84b2a72250" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int AmplitudeFollower::getPluginVersion           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="AmplitudeFollower_8cpp-source.html#l00093">93</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="0c197fc90f30d91cb4403115c83c9134"></a><!-- doxytag: member="AmplitudeFollower::getCopyright" ref="0c197fc90f30d91cb4403115c83c9134" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string AmplitudeFollower::getCopyright           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="AmplitudeFollower_8cpp-source.html#l00099">99</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="043e3c3db77d76267cd8069e1485bf26"></a><!-- doxytag: member="AmplitudeFollower::getOutputDescriptors" ref="043e3c3db77d76267cd8069e1485bf26" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">AmplitudeFollower::OutputList</a> AmplitudeFollower::getOutputDescriptors           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="classAmplitudeFollower.html#48d0f95cac31ffd190cff89b50a2a5bd" 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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="9df01323a09e117bc12354ebe9244edf"></a><!-- doxytag: member="AmplitudeFollower::getParameterDescriptors" ref="9df01323a09e117bc12354ebe9244edf" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">AmplitudeFollower::ParameterList</a> AmplitudeFollower::getParameterDescriptors           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="b278c4b6f2ca23248dc94ad775273f39"></a><!-- doxytag: member="AmplitudeFollower::getParameter" ref="b278c4b6f2ca23248dc94ad775273f39" args="(std::string paramid) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AmplitudeFollower::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]</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="AmplitudeFollower_8cpp-source.html#l00188">188</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
+
+<p>References <a class="el" href="AmplitudeFollower_8h-source.html#l00079">m_clampcoef</a>, and <a class="el" href="AmplitudeFollower_8h-source.html#l00080">m_relaxcoef</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="e1fc37ece4d20e40f3066a3361a99340"></a><!-- doxytag: member="AmplitudeFollower::setParameter" ref="e1fc37ece4d20e40f3066a3361a99340" args="(std::string paramid, float newval)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AmplitudeFollower::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]</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="AmplitudeFollower_8cpp-source.html#l00179">179</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
+
+<p>References <a class="el" href="AmplitudeFollower_8h-source.html#l00079">m_clampcoef</a>, and <a class="el" href="AmplitudeFollower_8h-source.html#l00080">m_relaxcoef</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="48d0f95cac31ffd190cff89b50a2a5bd"></a><!-- doxytag: member="AmplitudeFollower::process" ref="48d0f95cac31ffd190cff89b50a2a5bd" 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">AmplitudeFollower::FeatureSet</a> AmplitudeFollower::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 width="100%"><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 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>
+
+</div>
+</div><p>
+<a class="anchor" name="368606f643b88e0df0823d85e36f030c"></a><!-- doxytag: member="AmplitudeFollower::getRemainingFeatures" ref="368606f643b88e0df0823d85e36f030c" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">AmplitudeFollower::FeatureSet</a> AmplitudeFollower::getRemainingFeatures           </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>
+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="AmplitudeFollower_8cpp-source.html#l00243">243</a> of file <a class="el" href="AmplitudeFollower_8cpp-source.html">AmplitudeFollower.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="a529adf83f87a603954eb31407602aac"></a><!-- doxytag: member="AmplitudeFollower::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="AmplitudeFollower::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="AmplitudeFollower::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">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="AmplitudeFollower::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">initialise()</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="AmplitudeFollower::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="AmplitudeFollower::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="bb307c60bdb981d5f5af50c3c4ae84af"></a><!-- doxytag: member="AmplitudeFollower::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="AmplitudeFollower::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="AmplitudeFollower::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="959c2647fd3c5feea2591e3618774027"></a><!-- doxytag: member="AmplitudeFollower::m_stepSize" ref="959c2647fd3c5feea2591e3618774027" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t <a class="el" href="classAmplitudeFollower.html#959c2647fd3c5feea2591e3618774027">AmplitudeFollower::m_stepSize</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="AmplitudeFollower_8h-source.html#l00077">77</a> of file <a class="el" href="AmplitudeFollower_8h-source.html">AmplitudeFollower.h</a>.</p>
+
+<p>Referenced by <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">initialise()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00200">process()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c95e8d2f334821c6c92c706bae29695a"></a><!-- doxytag: member="AmplitudeFollower::m_previn" ref="c95e8d2f334821c6c92c706bae29695a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="classAmplitudeFollower.html#c95e8d2f334821c6c92c706bae29695a">AmplitudeFollower::m_previn</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="AmplitudeFollower_8h-source.html#l00078">78</a> of file <a class="el" href="AmplitudeFollower_8h-source.html">AmplitudeFollower.h</a>.</p>
+
+<p>Referenced by <a class="el" href="AmplitudeFollower_8cpp-source.html#l00200">process()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00122">reset()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="1cb205b08cfe2ce94a4af05b18f72876"></a><!-- doxytag: member="AmplitudeFollower::m_clampcoef" ref="1cb205b08cfe2ce94a4af05b18f72876" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="classAmplitudeFollower.html#1cb205b08cfe2ce94a4af05b18f72876">AmplitudeFollower::m_clampcoef</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="AmplitudeFollower_8h-source.html#l00079">79</a> of file <a class="el" href="AmplitudeFollower_8h-source.html">AmplitudeFollower.h</a>.</p>
+
+<p>Referenced by <a class="el" href="AmplitudeFollower_8cpp-source.html#l00188">getParameter()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00200">process()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00179">setParameter()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="ceecd3b3879f32eb4a2e597c32c41cfc"></a><!-- doxytag: member="AmplitudeFollower::m_relaxcoef" ref="ceecd3b3879f32eb4a2e597c32c41cfc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="classAmplitudeFollower.html#ceecd3b3879f32eb4a2e597c32c41cfc">AmplitudeFollower::m_relaxcoef</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="AmplitudeFollower_8h-source.html#l00080">80</a> of file <a class="el" href="AmplitudeFollower_8h-source.html">AmplitudeFollower.h</a>.</p>
+
+<p>Referenced by <a class="el" href="AmplitudeFollower_8cpp-source.html#l00188">getParameter()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">initialise()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00200">process()</a>, and <a class="el" href="AmplitudeFollower_8cpp-source.html#l00179">setParameter()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="59b9dd82a4f4eb946cd0474cc81abc23"></a><!-- doxytag: member="AmplitudeFollower::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">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 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;
+<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/classAmplitudeFollower__inherit__graph.map	Mon Sep 22 13:01:46 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,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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classAmplitudeFollower__inherit__graph.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+ae601c884d2d7815d3a3ef8ea2610149
\ No newline at end of file
Binary file code-doc/classAmplitudeFollower__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classPercussionOnsetDetector-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,78 @@
+<!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>PercussionOnsetDetector Member List</h1>This is the complete list of members for <a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</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="classPercussionOnsetDetector.html#1a22ece271330c94cc08798a77416351">getCopyright</a>() const </td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</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="classPercussionOnsetDetector.html#9061d189705802a48973a7ccab6360db">getDescription</a>() const </td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPercussionOnsetDetector.html#267c83a7533146c127e2c3be310e0154">getIdentifier</a>() const </td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPercussionOnsetDetector.html#4f6954267696ee5bfa7dd1c4a6cfa92a">getInputDomain</a>() const </td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPercussionOnsetDetector.html#63d63f2cb7ea8d8b09d58cc13b541375">getMaker</a>() const </td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</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="classPercussionOnsetDetector.html#a98f1ad061a11af98c054011a8844e6f">getName</a>() const </td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPercussionOnsetDetector.html#a4537aa0eb58a67d6e824d46924cf782">getOutputDescriptors</a>() const </td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">getParameter</a>(std::string id) const </td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">getParameterDescriptors</a>() const </td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPercussionOnsetDetector.html#d6b818dbd81867ce7be71c99cae861be">getPluginVersion</a>() const </td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">getPreferredBlockSize</a>() const </td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">getPreferredStepSize</a>() const </td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</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="classPercussionOnsetDetector.html#d3d6767ed137783e84f842b4d4732ffa">getRemainingFeatures</a>()</td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</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="classPercussionOnsetDetector.html#349c528260622308f3850bcda8a448ab">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</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="classPercussionOnsetDetector.html#920de543dbcf70a2edd80b5b31313285">m_blockSize</a></td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">m_dfMinus1</a></td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPercussionOnsetDetector.html#6ad7d8353cc681ff42a63b127cca5779">m_dfMinus2</a></td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</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="classPercussionOnsetDetector.html#30daa717267251a9d49afe57c328e989">m_priorMagnitudes</a></td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPercussionOnsetDetector.html#4e9770f246ba3bc75e7fc2cb8f9010af">m_sensitivity</a></td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPercussionOnsetDetector.html#abac0cf7e961482b075777e5f0686e6c">m_stepSize</a></td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classPercussionOnsetDetector.html#b04119adad56d87f2e633de289aab507">m_threshold</a></td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</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="classPercussionOnsetDetector.html#9f700579805ee5105758d847baab3511">PercussionOnsetDetector</a>(float inputSampleRate)</td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</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="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614">process</a>(const float *const *inputBuffers, Vamp::RealTime timestamp)</td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</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="classPercussionOnsetDetector.html#9b1075e992cd9599764ef3881fb91d1a">reset</a>()</td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</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="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">setParameter</a>(std::string id, float value)</td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</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="classPercussionOnsetDetector.html#99f833667cf8185e879d735216c7642b">~PercussionOnsetDetector</a>()</td><td><a class="el" href="classPercussionOnsetDetector.html">PercussionOnsetDetector</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 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/classPercussionOnsetDetector.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1151 @@
+<!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: PercussionOnsetDetector 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>
+<div class="contents">
+<h1>PercussionOnsetDetector Class Reference</h1><!-- doxytag: class="PercussionOnsetDetector" --><!-- doxytag: inherits="Vamp::Plugin" --><code>#include &lt;<a class="el" href="PercussionOnsetDetector_8h-source.html">PercussionOnsetDetector.h</a>&gt;</code>
+<p>
+<div class="dynheader">
+Inheritance diagram for PercussionOnsetDetector:</div>
+<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>
+<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
+
+<p>
+<a href="classPercussionOnsetDetector-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
+Example plugin that detects percussive events. 
+<p>Definition at line <a class="el" href="PercussionOnsetDetector_8h-source.html#l00046">46</a> of file <a class="el" href="PercussionOnsetDetector_8h-source.html">PercussionOnsetDetector.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="classPercussionOnsetDetector.html#9f700579805ee5105758d847baab3511">PercussionOnsetDetector</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="classPercussionOnsetDetector.html#99f833667cf8185e879d735216c7642b">~PercussionOnsetDetector</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPercussionOnsetDetector.html#349c528260622308f3850bcda8a448ab">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="#349c528260622308f3850bcda8a448ab"></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="classPercussionOnsetDetector.html#9b1075e992cd9599764ef3881fb91d1a">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="#9b1075e992cd9599764ef3881fb91d1a"></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="classPercussionOnsetDetector.html#4f6954267696ee5bfa7dd1c4a6cfa92a">getInputDomain</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#4f6954267696ee5bfa7dd1c4a6cfa92a"></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="classPercussionOnsetDetector.html#267c83a7533146c127e2c3be310e0154">getIdentifier</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#267c83a7533146c127e2c3be310e0154"></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="classPercussionOnsetDetector.html#a98f1ad061a11af98c054011a8844e6f">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="#a98f1ad061a11af98c054011a8844e6f"></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="classPercussionOnsetDetector.html#9061d189705802a48973a7ccab6360db">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="#9061d189705802a48973a7ccab6360db"></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="classPercussionOnsetDetector.html#63d63f2cb7ea8d8b09d58cc13b541375">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="#63d63f2cb7ea8d8b09d58cc13b541375"></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="classPercussionOnsetDetector.html#d6b818dbd81867ce7be71c99cae861be">getPluginVersion</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the version number of the plugin.  <a href="#d6b818dbd81867ce7be71c99cae861be"></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="classPercussionOnsetDetector.html#1a22ece271330c94cc08798a77416351">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="#1a22ece271330c94cc08798a77416351"></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="classPercussionOnsetDetector.html#733824891e11c306a7a678534b89b968">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="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614" title="Process a single block of input data.">process()</a> function) for the plugin.  <a href="#733824891e11c306a7a678534b89b968"></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="classPercussionOnsetDetector.html#410c0b47c6c849d7ed9b726b84402ad0">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="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614" title="Process a single block of input data.">process()</a> function).  <a href="#410c0b47c6c849d7ed9b726b84402ad0"></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="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">getParameterDescriptors</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#bceae88cc9762b0ea310d7aad71de815"></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="classPercussionOnsetDetector.html#9b28da8315fcde46ce7644d6592ba527">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="#9b28da8315fcde46ce7644d6592ba527"></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="classPercussionOnsetDetector.html#a097d72488e1211f05fc661ff5c6dc01">setParameter</a> (std::string id, float value)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter.  <a href="#a097d72488e1211f05fc661ff5c6dc01"></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="classPercussionOnsetDetector.html#a4537aa0eb58a67d6e824d46924cf782">getOutputDescriptors</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#a4537aa0eb58a67d6e824d46924cf782"></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="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614">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="#dfd989812b3e0cb8f4b498f56a5a9614"></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="classPercussionOnsetDetector.html#d3d6767ed137783e84f842b4d4732ffa">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="#d3d6767ed137783e84f842b4d4732ffa"></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" 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 <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="classPercussionOnsetDetector.html#abac0cf7e961482b075777e5f0686e6c">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="classPercussionOnsetDetector.html#920de543dbcf70a2edd80b5b31313285">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="classPercussionOnsetDetector.html#b04119adad56d87f2e633de289aab507">m_threshold</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPercussionOnsetDetector.html#4e9770f246ba3bc75e7fc2cb8f9010af">m_sensitivity</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPercussionOnsetDetector.html#30daa717267251a9d49afe57c328e989">m_priorMagnitudes</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">m_dfMinus1</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPercussionOnsetDetector.html#6ad7d8353cc681ff42a63b127cca5779">m_dfMinus2</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="PercussionOnsetDetector::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="PercussionOnsetDetector::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="PercussionOnsetDetector::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="PercussionOnsetDetector::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="PercussionOnsetDetector::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="PercussionOnsetDetector::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="9f700579805ee5105758d847baab3511"></a><!-- doxytag: member="PercussionOnsetDetector::PercussionOnsetDetector" ref="9f700579805ee5105758d847baab3511" args="(float inputSampleRate)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">PercussionOnsetDetector::PercussionOnsetDetector           </td>
+          <td>(</td>
+          <td class="paramtype">float&nbsp;</td>
+          <td class="paramname"> <em>inputSampleRate</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="PercussionOnsetDetector_8cpp-source.html#l00047">47</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="99f833667cf8185e879d735216c7642b"></a><!-- doxytag: member="PercussionOnsetDetector::~PercussionOnsetDetector" ref="99f833667cf8185e879d735216c7642b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">PercussionOnsetDetector::~PercussionOnsetDetector           </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="PercussionOnsetDetector_8cpp-source.html#l00059">59</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
+
+<p>References <a class="el" href="PercussionOnsetDetector_8h-source.html#l00084">m_priorMagnitudes</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="349c528260622308f3850bcda8a448ab"></a><!-- doxytag: member="PercussionOnsetDetector::initialise" ref="349c528260622308f3850bcda8a448ab" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool PercussionOnsetDetector::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]</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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="9b1075e992cd9599764ef3881fb91d1a"></a><!-- doxytag: member="PercussionOnsetDetector::reset" ref="9b1075e992cd9599764ef3881fb91d1a" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void PercussionOnsetDetector::reset           </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>
+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="PercussionOnsetDetector_8cpp-source.html#l00134">134</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
+
+<p>References <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>, and <a class="el" href="PercussionOnsetDetector_8h-source.html#l00084">m_priorMagnitudes</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="4f6954267696ee5bfa7dd1c4a6cfa92a"></a><!-- doxytag: member="PercussionOnsetDetector::getInputDomain" ref="4f6954267696ee5bfa7dd1c4a6cfa92a" 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> PercussionOnsetDetector::getInputDomain           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614" 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="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614" 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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="267c83a7533146c127e2c3be310e0154"></a><!-- doxytag: member="PercussionOnsetDetector::getIdentifier" ref="267c83a7533146c127e2c3be310e0154" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string PercussionOnsetDetector::getIdentifier           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="PercussionOnsetDetector_8cpp-source.html#l00065">65</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="a98f1ad061a11af98c054011a8844e6f"></a><!-- doxytag: member="PercussionOnsetDetector::getName" ref="a98f1ad061a11af98c054011a8844e6f" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string PercussionOnsetDetector::getName           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="PercussionOnsetDetector_8cpp-source.html#l00071">71</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="9061d189705802a48973a7ccab6360db"></a><!-- doxytag: member="PercussionOnsetDetector::getDescription" ref="9061d189705802a48973a7ccab6360db" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string PercussionOnsetDetector::getDescription           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="PercussionOnsetDetector_8cpp-source.html#l00077">77</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="63d63f2cb7ea8d8b09d58cc13b541375"></a><!-- doxytag: member="PercussionOnsetDetector::getMaker" ref="63d63f2cb7ea8d8b09d58cc13b541375" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string PercussionOnsetDetector::getMaker           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="PercussionOnsetDetector_8cpp-source.html#l00083">83</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="d6b818dbd81867ce7be71c99cae861be"></a><!-- doxytag: member="PercussionOnsetDetector::getPluginVersion" ref="d6b818dbd81867ce7be71c99cae861be" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int PercussionOnsetDetector::getPluginVersion           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="PercussionOnsetDetector_8cpp-source.html#l00089">89</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="1a22ece271330c94cc08798a77416351"></a><!-- doxytag: member="PercussionOnsetDetector::getCopyright" ref="1a22ece271330c94cc08798a77416351" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string PercussionOnsetDetector::getCopyright           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="PercussionOnsetDetector_8cpp-source.html#l00095">95</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="733824891e11c306a7a678534b89b968"></a><!-- doxytag: member="PercussionOnsetDetector::getPreferredStepSize" ref="733824891e11c306a7a678534b89b968" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t PercussionOnsetDetector::getPreferredStepSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614" title="Process a single block of input data.">process()</a> function) for the plugin. 
+<p>
+This should be called before <a class="el" href="classPercussionOnsetDetector.html#349c528260622308f3850bcda8a448ab" 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="classPercussionOnsetDetector.html#349c528260622308f3850bcda8a448ab" 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="PercussionOnsetDetector_8cpp-source.html#l00101">101</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="410c0b47c6c849d7ed9b726b84402ad0"></a><!-- doxytag: member="PercussionOnsetDetector::getPreferredBlockSize" ref="410c0b47c6c849d7ed9b726b84402ad0" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t PercussionOnsetDetector::getPreferredBlockSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614" title="Process a single block of input data.">process()</a> function). 
+<p>
+This should be called before <a class="el" href="classPercussionOnsetDetector.html#349c528260622308f3850bcda8a448ab" 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="classPercussionOnsetDetector.html#349c528260622308f3850bcda8a448ab" 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="PercussionOnsetDetector_8cpp-source.html#l00107">107</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="bceae88cc9762b0ea310d7aad71de815"></a><!-- doxytag: member="PercussionOnsetDetector::getParameterDescriptors" ref="bceae88cc9762b0ea310d7aad71de815" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">PercussionOnsetDetector::ParameterList</a> PercussionOnsetDetector::getParameterDescriptors           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="9b28da8315fcde46ce7644d6592ba527"></a><!-- doxytag: member="PercussionOnsetDetector::getParameter" ref="9b28da8315fcde46ce7644d6592ba527" args="(std::string id) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float PercussionOnsetDetector::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]</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="PercussionOnsetDetector_8cpp-source.html#l00174">174</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
+
+<p>References <a class="el" href="PercussionOnsetDetector_8h-source.html#l00083">m_sensitivity</a>, and <a class="el" href="PercussionOnsetDetector_8h-source.html#l00082">m_threshold</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="a097d72488e1211f05fc661ff5c6dc01"></a><!-- doxytag: member="PercussionOnsetDetector::setParameter" ref="a097d72488e1211f05fc661ff5c6dc01" args="(std::string id, float value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void PercussionOnsetDetector::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]</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="PercussionOnsetDetector_8cpp-source.html#l00182">182</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
+
+<p>References <a class="el" href="PercussionOnsetDetector_8h-source.html#l00083">m_sensitivity</a>, and <a class="el" href="PercussionOnsetDetector_8h-source.html#l00082">m_threshold</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="a4537aa0eb58a67d6e824d46924cf782"></a><!-- doxytag: member="PercussionOnsetDetector::getOutputDescriptors" ref="a4537aa0eb58a67d6e824d46924cf782" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">PercussionOnsetDetector::OutputList</a> PercussionOnsetDetector::getOutputDescriptors           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="classPercussionOnsetDetector.html#dfd989812b3e0cb8f4b498f56a5a9614" 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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="dfd989812b3e0cb8f4b498f56a5a9614"></a><!-- doxytag: member="PercussionOnsetDetector::process" ref="dfd989812b3e0cb8f4b498f56a5a9614" 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">PercussionOnsetDetector::FeatureSet</a> PercussionOnsetDetector::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 width="100%"><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 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>
+
+</div>
+</div><p>
+<a class="anchor" name="d3d6767ed137783e84f842b4d4732ffa"></a><!-- doxytag: member="PercussionOnsetDetector::getRemainingFeatures" ref="d3d6767ed137783e84f842b4d4732ffa" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">PercussionOnsetDetector::FeatureSet</a> PercussionOnsetDetector::getRemainingFeatures           </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>
+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="PercussionOnsetDetector_8cpp-source.html#l00281">281</a> of file <a class="el" href="PercussionOnsetDetector_8cpp-source.html">PercussionOnsetDetector.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="267b42e866df3cf0d190893e8096f525"></a><!-- doxytag: member="PercussionOnsetDetector::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">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="PercussionOnsetDetector::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">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="be13b3997a69fbcc09e2213faa352f91"></a><!-- doxytag: member="PercussionOnsetDetector::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="PercussionOnsetDetector::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="bb307c60bdb981d5f5af50c3c4ae84af"></a><!-- doxytag: member="PercussionOnsetDetector::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="PercussionOnsetDetector::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="PercussionOnsetDetector::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="abac0cf7e961482b075777e5f0686e6c"></a><!-- doxytag: member="PercussionOnsetDetector::m_stepSize" ref="abac0cf7e961482b075777e5f0686e6c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t <a class="el" href="classPercussionOnsetDetector.html#abac0cf7e961482b075777e5f0686e6c">PercussionOnsetDetector::m_stepSize</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="PercussionOnsetDetector_8h-source.html#l00079">79</a> of file <a class="el" href="PercussionOnsetDetector_8h-source.html">PercussionOnsetDetector.h</a>.</p>
+
+<p>Referenced by <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">initialise()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">process()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="920de543dbcf70a2edd80b5b31313285"></a><!-- doxytag: member="PercussionOnsetDetector::m_blockSize" ref="920de543dbcf70a2edd80b5b31313285" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t <a class="el" href="classPercussionOnsetDetector.html#920de543dbcf70a2edd80b5b31313285">PercussionOnsetDetector::m_blockSize</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="PercussionOnsetDetector_8h-source.html#l00080">80</a> of file <a class="el" href="PercussionOnsetDetector_8h-source.html">PercussionOnsetDetector.h</a>.</p>
+
+<p>Referenced by <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00134">reset()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="b04119adad56d87f2e633de289aab507"></a><!-- doxytag: member="PercussionOnsetDetector::m_threshold" ref="b04119adad56d87f2e633de289aab507" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="classPercussionOnsetDetector.html#b04119adad56d87f2e633de289aab507">PercussionOnsetDetector::m_threshold</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="PercussionOnsetDetector_8h-source.html#l00082">82</a> of file <a class="el" href="PercussionOnsetDetector_8h-source.html">PercussionOnsetDetector.h</a>.</p>
+
+<p>Referenced by <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00174">getParameter()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00182">setParameter()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="4e9770f246ba3bc75e7fc2cb8f9010af"></a><!-- doxytag: member="PercussionOnsetDetector::m_sensitivity" ref="4e9770f246ba3bc75e7fc2cb8f9010af" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="classPercussionOnsetDetector.html#4e9770f246ba3bc75e7fc2cb8f9010af">PercussionOnsetDetector::m_sensitivity</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="PercussionOnsetDetector_8h-source.html#l00083">83</a> of file <a class="el" href="PercussionOnsetDetector_8h-source.html">PercussionOnsetDetector.h</a>.</p>
+
+<p>Referenced by <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00174">getParameter()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00182">setParameter()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="30daa717267251a9d49afe57c328e989"></a><!-- doxytag: member="PercussionOnsetDetector::m_priorMagnitudes" ref="30daa717267251a9d49afe57c328e989" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float* <a class="el" href="classPercussionOnsetDetector.html#30daa717267251a9d49afe57c328e989">PercussionOnsetDetector::m_priorMagnitudes</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="PercussionOnsetDetector_8h-source.html#l00084">84</a> of file <a class="el" href="PercussionOnsetDetector_8h-source.html">PercussionOnsetDetector.h</a>.</p>
+
+<p>Referenced by <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">process()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00134">reset()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00059">~PercussionOnsetDetector()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="cd80162c65212be7fa91251263fb9c3d"></a><!-- doxytag: member="PercussionOnsetDetector::m_dfMinus1" ref="cd80162c65212be7fa91251263fb9c3d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="classPercussionOnsetDetector.html#cd80162c65212be7fa91251263fb9c3d">PercussionOnsetDetector::m_dfMinus1</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="PercussionOnsetDetector_8h-source.html#l00085">85</a> of file <a class="el" href="PercussionOnsetDetector_8h-source.html">PercussionOnsetDetector.h</a>.</p>
+
+<p>Referenced by <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00134">reset()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="6ad7d8353cc681ff42a63b127cca5779"></a><!-- doxytag: member="PercussionOnsetDetector::m_dfMinus2" ref="6ad7d8353cc681ff42a63b127cca5779" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="classPercussionOnsetDetector.html#6ad7d8353cc681ff42a63b127cca5779">PercussionOnsetDetector::m_dfMinus2</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="PercussionOnsetDetector_8h-source.html#l00086">86</a> of file <a class="el" href="PercussionOnsetDetector_8h-source.html">PercussionOnsetDetector.h</a>.</p>
+
+<p>Referenced by <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00113">initialise()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00134">reset()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="59b9dd82a4f4eb946cd0474cc81abc23"></a><!-- doxytag: member="PercussionOnsetDetector::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">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>
+
+</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;
+<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/classPercussionOnsetDetector__inherit__graph.map	Mon Sep 22 13:01:46 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="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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classPercussionOnsetDetector__inherit__graph.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+bc2e650ddd8fa8e4ffb683bae1d72050
\ No newline at end of file
Binary file code-doc/classPercussionOnsetDetector__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classSpectralCentroid-members.html	Mon Sep 22 13:01:46 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: 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>SpectralCentroid Member List</h1>This is the complete list of members for <a class="el" href="classSpectralCentroid.html">SpectralCentroid</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="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980">getCopyright</a>() const </td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</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="classSpectralCentroid.html#8fbb74a46283057d9a0b0e4718ee943c">getDescription</a>() const </td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classSpectralCentroid.html#1b2c4c8440c024c4c635fcef5697949f">getIdentifier</a>() const </td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classSpectralCentroid.html#0ec2cb74c1c5f6e57d0bd9dcf7c8f469">getInputDomain</a>() const </td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8">getMaker</a>() const </td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</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="classSpectralCentroid.html#b7e6a620fea568af431be3cfd9dd5a41">getName</a>() const </td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classSpectralCentroid.html#894ca9740927102bb80b56b5e9e95877">getOutputDescriptors</a>() const </td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</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="classSpectralCentroid.html#f64622e66bf678ac2b0b58aa832ca2b3">getPluginVersion</a>() const </td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</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="classSpectralCentroid.html#83ba39f0870a2f86837605a958dfab1a">getRemainingFeatures</a>()</td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</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="classSpectralCentroid.html#ab1ae16f5c68e2b319668f447908cedb">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</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="classSpectralCentroid.html#262f583d71b442bb2d80023e7c85aa4e">m_blockSize</a></td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</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="classSpectralCentroid.html#49805a090ba58477da4adbefea4392a7">m_stepSize</a></td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</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="classSpectralCentroid.html#ca96c70e7e75c9e4a7db38485018914c">process</a>(const float *const *inputBuffers, Vamp::RealTime timestamp)</td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</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="classSpectralCentroid.html#9b5f5581691ff8f46bb7674d8d74395c">reset</a>()</td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</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="classSpectralCentroid.html#2cd801ad72f262eceb95ab0d22e7dbcd">SpectralCentroid</a>(float inputSampleRate)</td><td><a class="el" href="classSpectralCentroid.html">SpectralCentroid</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="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;
+<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/classSpectralCentroid.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1046 @@
+<!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: SpectralCentroid 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>
+<div class="contents">
+<h1>SpectralCentroid Class Reference</h1><!-- doxytag: class="SpectralCentroid" --><!-- doxytag: inherits="Vamp::Plugin" --><code>#include &lt;<a class="el" href="SpectralCentroid_8h-source.html">SpectralCentroid.h</a>&gt;</code>
+<p>
+<div class="dynheader">
+Inheritance diagram for SpectralCentroid:</div>
+<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>
+<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
+
+<p>
+<a href="classSpectralCentroid-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
+Example plugin that calculates the centre of gravity of the frequency domain representation of each block of audio. 
+<p>Definition at line <a class="el" href="SpectralCentroid_8h-source.html#l00047">47</a> of file <a class="el" href="SpectralCentroid_8h-source.html">SpectralCentroid.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="classSpectralCentroid.html#2cd801ad72f262eceb95ab0d22e7dbcd">SpectralCentroid</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="classSpectralCentroid.html#483e0d6757bc3dcf61e8066f764f45c6">~SpectralCentroid</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSpectralCentroid.html#ab1ae16f5c68e2b319668f447908cedb">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="#ab1ae16f5c68e2b319668f447908cedb"></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="classSpectralCentroid.html#9b5f5581691ff8f46bb7674d8d74395c">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="#9b5f5581691ff8f46bb7674d8d74395c"></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="classSpectralCentroid.html#0ec2cb74c1c5f6e57d0bd9dcf7c8f469">getInputDomain</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#0ec2cb74c1c5f6e57d0bd9dcf7c8f469"></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="classSpectralCentroid.html#1b2c4c8440c024c4c635fcef5697949f">getIdentifier</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#1b2c4c8440c024c4c635fcef5697949f"></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="classSpectralCentroid.html#b7e6a620fea568af431be3cfd9dd5a41">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="#b7e6a620fea568af431be3cfd9dd5a41"></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="classSpectralCentroid.html#8fbb74a46283057d9a0b0e4718ee943c">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="#8fbb74a46283057d9a0b0e4718ee943c"></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="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8">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="#c01ff858bf67e2e93ad5d24a6ba8c8c8"></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="classSpectralCentroid.html#f64622e66bf678ac2b0b58aa832ca2b3">getPluginVersion</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the version number of the plugin.  <a href="#f64622e66bf678ac2b0b58aa832ca2b3"></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="classSpectralCentroid.html#925747d513d598e0fa21ed0ed6520980">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="#925747d513d598e0fa21ed0ed6520980"></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="classSpectralCentroid.html#894ca9740927102bb80b56b5e9e95877">getOutputDescriptors</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#894ca9740927102bb80b56b5e9e95877"></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="classSpectralCentroid.html#ca96c70e7e75c9e4a7db38485018914c">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="#ca96c70e7e75c9e4a7db38485018914c"></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="classSpectralCentroid.html#83ba39f0870a2f86837605a958dfab1a">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="#83ba39f0870a2f86837605a958dfab1a"></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" 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 <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="classSpectralCentroid.html#49805a090ba58477da4adbefea4392a7">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="classSpectralCentroid.html#262f583d71b442bb2d80023e7c85aa4e">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="SpectralCentroid::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="SpectralCentroid::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="SpectralCentroid::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="SpectralCentroid::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="SpectralCentroid::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="SpectralCentroid::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="2cd801ad72f262eceb95ab0d22e7dbcd"></a><!-- doxytag: member="SpectralCentroid::SpectralCentroid" ref="2cd801ad72f262eceb95ab0d22e7dbcd" args="(float inputSampleRate)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">SpectralCentroid::SpectralCentroid           </td>
+          <td>(</td>
+          <td class="paramtype">float&nbsp;</td>
+          <td class="paramname"> <em>inputSampleRate</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="SpectralCentroid_8cpp-source.html#l00047">47</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="483e0d6757bc3dcf61e8066f764f45c6"></a><!-- doxytag: member="SpectralCentroid::~SpectralCentroid" ref="483e0d6757bc3dcf61e8066f764f45c6" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">SpectralCentroid::~SpectralCentroid           </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="SpectralCentroid_8cpp-source.html#l00054">54</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="ab1ae16f5c68e2b319668f447908cedb"></a><!-- doxytag: member="SpectralCentroid::initialise" ref="ab1ae16f5c68e2b319668f447908cedb" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool SpectralCentroid::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]</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="SpectralCentroid_8cpp-source.html#l00095">95</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>
+
+</div>
+</div><p>
+<a class="anchor" name="9b5f5581691ff8f46bb7674d8d74395c"></a><!-- doxytag: member="SpectralCentroid::reset" ref="9b5f5581691ff8f46bb7674d8d74395c" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void SpectralCentroid::reset           </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>
+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="SpectralCentroid_8cpp-source.html#l00107">107</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="0ec2cb74c1c5f6e57d0bd9dcf7c8f469"></a><!-- doxytag: member="SpectralCentroid::getInputDomain" ref="0ec2cb74c1c5f6e57d0bd9dcf7c8f469" 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> SpectralCentroid::getInputDomain           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="classSpectralCentroid.html#ca96c70e7e75c9e4a7db38485018914c" 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="classSpectralCentroid.html#ca96c70e7e75c9e4a7db38485018914c" 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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="1b2c4c8440c024c4c635fcef5697949f"></a><!-- doxytag: member="SpectralCentroid::getIdentifier" ref="1b2c4c8440c024c4c635fcef5697949f" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string SpectralCentroid::getIdentifier           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="SpectralCentroid_8cpp-source.html#l00059">59</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="b7e6a620fea568af431be3cfd9dd5a41"></a><!-- doxytag: member="SpectralCentroid::getName" ref="b7e6a620fea568af431be3cfd9dd5a41" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string SpectralCentroid::getName           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="SpectralCentroid_8cpp-source.html#l00065">65</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="8fbb74a46283057d9a0b0e4718ee943c"></a><!-- doxytag: member="SpectralCentroid::getDescription" ref="8fbb74a46283057d9a0b0e4718ee943c" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string SpectralCentroid::getDescription           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="SpectralCentroid_8cpp-source.html#l00071">71</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c01ff858bf67e2e93ad5d24a6ba8c8c8"></a><!-- doxytag: member="SpectralCentroid::getMaker" ref="c01ff858bf67e2e93ad5d24a6ba8c8c8" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string SpectralCentroid::getMaker           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="SpectralCentroid_8cpp-source.html#l00077">77</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="f64622e66bf678ac2b0b58aa832ca2b3"></a><!-- doxytag: member="SpectralCentroid::getPluginVersion" ref="f64622e66bf678ac2b0b58aa832ca2b3" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int SpectralCentroid::getPluginVersion           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="SpectralCentroid_8cpp-source.html#l00083">83</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="925747d513d598e0fa21ed0ed6520980"></a><!-- doxytag: member="SpectralCentroid::getCopyright" ref="925747d513d598e0fa21ed0ed6520980" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string SpectralCentroid::getCopyright           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="SpectralCentroid_8cpp-source.html#l00089">89</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="894ca9740927102bb80b56b5e9e95877"></a><!-- doxytag: member="SpectralCentroid::getOutputDescriptors" ref="894ca9740927102bb80b56b5e9e95877" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">SpectralCentroid::OutputList</a> SpectralCentroid::getOutputDescriptors           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="ca96c70e7e75c9e4a7db38485018914c"></a><!-- doxytag: member="SpectralCentroid::process" ref="ca96c70e7e75c9e4a7db38485018914c" 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">SpectralCentroid::FeatureSet</a> SpectralCentroid::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 width="100%"><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 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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="83ba39f0870a2f86837605a958dfab1a"></a><!-- doxytag: member="SpectralCentroid::getRemainingFeatures" ref="83ba39f0870a2f86837605a958dfab1a" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">SpectralCentroid::FeatureSet</a> SpectralCentroid::getRemainingFeatures           </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>
+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="SpectralCentroid_8cpp-source.html#l00184">184</a> of file <a class="el" href="SpectralCentroid_8cpp-source.html">SpectralCentroid.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="a529adf83f87a603954eb31407602aac"></a><!-- doxytag: member="SpectralCentroid::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="SpectralCentroid::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="SpectralCentroid::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">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="SpectralCentroid::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">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="be13b3997a69fbcc09e2213faa352f91"></a><!-- doxytag: member="SpectralCentroid::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="SpectralCentroid::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="ac3e49b3b66cacfbb768dfdf07444f21"></a><!-- doxytag: member="SpectralCentroid::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="SpectralCentroid::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="SpectralCentroid::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="SpectralCentroid::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="SpectralCentroid::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="SpectralCentroid::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="49805a090ba58477da4adbefea4392a7"></a><!-- doxytag: member="SpectralCentroid::m_stepSize" ref="49805a090ba58477da4adbefea4392a7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t <a class="el" href="classSpectralCentroid.html#49805a090ba58477da4adbefea4392a7">SpectralCentroid::m_stepSize</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="262f583d71b442bb2d80023e7c85aa4e"></a><!-- doxytag: member="SpectralCentroid::m_blockSize" ref="262f583d71b442bb2d80023e7c85aa4e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t <a class="el" href="classSpectralCentroid.html#262f583d71b442bb2d80023e7c85aa4e">SpectralCentroid::m_blockSize</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="59b9dd82a4f4eb946cd0474cc81abc23"></a><!-- doxytag: member="SpectralCentroid::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">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;
+<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/classSpectralCentroid__inherit__graph.map	Mon Sep 22 13:01:46 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,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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classSpectralCentroid__inherit__graph.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+68c9d8ef4f76ab5ad5336f3b58b36eda
\ No newline at end of file
Binary file code-doc/classSpectralCentroid__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,75 @@
+<!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 Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html">Vamp::HostExt::PluginBufferingAdapter</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_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_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_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_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_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>
+  <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_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_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_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_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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1081 @@
+<!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 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>
+  </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>
+<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>
+<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. 
+<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>
+<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_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="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">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">Get the outputs of this plugin.  <a href="#85a027f5859efb31d315205e234e94c0"></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="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">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">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#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">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"><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="" -->
+<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::PluginBufferingAdapter::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::PluginBufferingAdapter::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::PluginBufferingAdapter::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::PluginBufferingAdapter::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::PluginBufferingAdapter::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="1276bcfcbe1414b33eeefbd7b2b702fe"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::PluginBufferingAdapter" ref="1276bcfcbe1414b33eeefbd7b2b702fe" args="(Plugin *plugin)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::HostExt::PluginBufferingAdapter::PluginBufferingAdapter           </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="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="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::HostExt::PluginBufferingAdapter::~PluginBufferingAdapter           </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="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>
+
+</div>
+</div><p>
+<hr><h2>Member Function Documentation</h2>
+<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">
+      <table class="memname">
+        <tr>
+          <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>
+        </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]</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>
+
+<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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t Vamp::HostExt::PluginBufferingAdapter::getPreferredStepSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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_1PluginBufferingAdapter.html#262206b978d9de28ee4bb35f437e915e" 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_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>
+
+</div>
+</div><p>
+<a class="anchor" name="85a027f5859efb31d315205e234e94c0"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getOutputDescriptors" ref="85a027f5859efb31d315205e234e94c0" 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>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="131fd9fe8a1795d7370d8a721176868a"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::reset" ref="131fd9fe8a1795d7370d8a721176868a" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void Vamp::HostExt::PluginBufferingAdapter::reset           </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>
+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>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)" -->
+<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>(</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]</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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="8771cba75552aaa1340b68de9bf1659c"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::getRemainingFeatures" ref="8771cba75552aaa1340b68de9bf1659c" 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>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><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#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>
+
+</div>
+</div><p>
+<a class="anchor" name="031aa818fd48fd0f4b5e1bf80c032870"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::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::PluginBufferingAdapter::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::PluginBufferingAdapter::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::PluginBufferingAdapter::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::PluginBufferingAdapter::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::PluginBufferingAdapter::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::PluginBufferingAdapter::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::PluginBufferingAdapter::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::PluginBufferingAdapter::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::PluginBufferingAdapter::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::PluginBufferingAdapter::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::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>(</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::PluginBufferingAdapter::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::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 " -->
+<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::PluginBufferingAdapter::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="be13b3997a69fbcc09e2213faa352f91"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::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="51e10c9c63c0349fd74c6d604de5554e"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::m_impl" ref="51e10c9c63c0349fd74c6d604de5554e" args="" -->
+<div class="memitem">
+<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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="b4e40ecd98b445e1a2aa9e7baa280ea2"></a><!-- doxytag: member="Vamp::HostExt::PluginBufferingAdapter::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">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::~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::PluginBufferingAdapter::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">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 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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,54 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,575 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,49 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter_1_1Impl_1_1RingBuffer.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,453 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.map	Mon Sep 22 13:01:46 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="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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+ca33908e9fe9c052657d3d95bce0bb16
\ No newline at end of file
Binary file code-doc/classVamp_1_1HostExt_1_1PluginBufferingAdapter__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,75 @@
+<!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 Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1HostExt_1_1PluginChannelAdapter.html">Vamp::HostExt::PluginChannelAdapter</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_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>
+  <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_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_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_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_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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1110 @@
+<!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 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>
+  </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>
+<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>
+<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. 
+<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>
+<ul>
+<li>If the plugin supports the provided number of channels directly, <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> will just run the plugin as normal.</li></ul>
+<p>
+<ul>
+<li>If the plugin only supports exactly one channel but more than one channel is provided, <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> will use the mean of the channels. This ensures that the resulting values remain within the same magnitude range as expected for mono data.</li></ul>
+<p>
+<ul>
+<li>If the plugin requires more than one channel but exactly one is provided, the provided channel will be duplicated across all the plugin input channels.</li></ul>
+<p>
+If none of the above apply:<p>
+<ul>
+<li>If the plugin requires more channels than are provided, the minimum acceptable number of channels will be produced by adding empty (zero valued) channels to those provided.</li></ul>
+<p>
+<ul>
+<li>If the plugin requires fewer channels than are provided, the maximum acceptable number of channels will be produced by discarding the excess channels.</li></ul>
+<p>
+Hosts requiring a different channel policy from the above will need to implement it themselves, instead of 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>.<p>
+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>
+
+<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>
+<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_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="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="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data.  <a href="#294e663b4d9ec885791faa1b440571ed"></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#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_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"><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="" -->
+<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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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="2cda2b672708264f9a33c43bad3acdd8"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::PluginChannelAdapter" ref="2cda2b672708264f9a33c43bad3acdd8" args="(Plugin *plugin)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::HostExt::PluginChannelAdapter::PluginChannelAdapter           </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#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>
+
+</div>
+</div><p>
+<a class="anchor" name="7bd79ac5febc8d3c499e7339476c07b4"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::~PluginChannelAdapter" ref="7bd79ac5febc8d3c499e7339476c07b4" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::HostExt::PluginChannelAdapter::~PluginChannelAdapter           </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="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>
+<a class="anchor" name="de0473c8fc54636431967cbf41649c1c"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::initialise" ref="de0473c8fc54636431967cbf41649c1c" 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::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]</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>
+
+<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)" -->
+<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>(</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]</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>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="PluginChannelAdapter_8cpp-source.html#l00080">80</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>, and <a class="el" href="PluginChannelAdapter_8cpp-source.html#l00177">Vamp::HostExt::PluginChannelAdapter::Impl::process()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="d19cc0614ba41cdc26ef3394c5146fe6"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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::PluginChannelAdapter::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="1dce55a75a32b08fc56a52a300d9fcbe"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::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::PluginChannelAdapter::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="e3a74a2e6c4cd33dce9f4248e73c6701"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::m_impl" ref="e3a74a2e6c4cd33dce9f4248e73c6701" args="" -->
+<div class="memitem">
+<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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="b4e40ecd98b445e1a2aa9e7baa280ea2"></a><!-- doxytag: member="Vamp::HostExt::PluginChannelAdapter::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">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::~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::PluginChannelAdapter::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 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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl-members.html	Mon Sep 22 13:01:46 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: 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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter_1_1Impl.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,304 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.map	Mon Sep 22 13:01:46 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="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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+0ec7df91548d8ac8ca49b5642bcc1138
\ No newline at end of file
Binary file code-doc/classVamp_1_1HostExt_1_1PluginChannelAdapter__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,75 @@
+<!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 Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html">Vamp::HostExt::PluginInputDomainAdapter</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_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_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_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_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_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>
+  <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_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_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_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_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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1085 @@
+<!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 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>
+  </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>
+<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>
+<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. 
+<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>
+
+<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>
+<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_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="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="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#376fa97a1c721255541fe35d71368976"></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="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">Process a single block of input data.  <a href="#0867737693c16801d40a6adbde07ec07"></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="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#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#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_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"><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="" -->
+<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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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="878e7275acdb77efc7a802944305039d"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::PluginInputDomainAdapter" ref="878e7275acdb77efc7a802944305039d" args="(Plugin *plugin)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::HostExt::PluginInputDomainAdapter::PluginInputDomainAdapter           </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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="ec457c952155adf516dd8e3dc7739321"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::~PluginInputDomainAdapter" ref="ec457c952155adf516dd8e3dc7739321" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::HostExt::PluginInputDomainAdapter::~PluginInputDomainAdapter           </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="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>
+<a class="anchor" name="72d201eca10ec73bf16e07984f58f94c"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::initialise" ref="72d201eca10ec73bf16e07984f58f94c" 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::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]</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>
+
+<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 " -->
+<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>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> const<code> [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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="d979af9f1cbf2eeb16f4eaedb4a4f565"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::getPreferredStepSize" ref="d979af9f1cbf2eeb16f4eaedb4a4f565" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t Vamp::HostExt::PluginInputDomainAdapter::getPreferredStepSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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. 
+<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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t Vamp::HostExt::PluginInputDomainAdapter::getPreferredBlockSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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). 
+<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)" -->
+<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>(</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]</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>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="PluginInputDomainAdapter_8cpp-source.html#l00149">149</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="PluginInputDomainAdapter_8cpp-source.html#l00342">Vamp::HostExt::PluginInputDomainAdapter::Impl::process()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="d19cc0614ba41cdc26ef3394c5146fe6"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::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="74147fda6b44ff2169bd4a1eea0d46ff"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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="2b28f1cf37d46a514f1e1411a6037bf8"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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="1dce55a75a32b08fc56a52a300d9fcbe"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::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::PluginInputDomainAdapter::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="9fa8a6b8a4e41b6e3f2fabc0d23678cc"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::m_impl" ref="9fa8a6b8a4e41b6e3f2fabc0d23678cc" args="" -->
+<div class="memitem">
+<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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="b4e40ecd98b445e1a2aa9e7baa280ea2"></a><!-- doxytag: member="Vamp::HostExt::PluginInputDomainAdapter::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">Vamp::HostExt::PluginLoader::Impl::PluginDeletionNotifyAdapter::~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::PluginInputDomainAdapter::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">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 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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,50 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter_1_1Impl.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,518 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.map	Mon Sep 22 13:01:46 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="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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+47d56728165169f68915d6e27c0ab18b
\ No newline at end of file
Binary file code-doc/classVamp_1_1HostExt_1_1PluginInputDomainAdapter__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginLoader-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,52 @@
+<!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 Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html">Vamp::HostExt::PluginLoader</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34943b1e08415c0cbc96f7900eac955ad6d0">ADAPT_ALL</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#ff3ee11692ce25e0dfb904324cbe34948220529e851ae30d37f413c40a389e08">ADAPT_ALL_SAFE</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#ff3ee11692ce25e0dfb904324cbe34945c0c389797922630a6b54ffd1eed21f1">ADAPT_BUFFER_SIZE</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#ff3ee11692ce25e0dfb904324cbe349454c43b85382d78e8ea8da192bce3a139">ADAPT_CHANNEL_COUNT</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#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#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#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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginLoader.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,491 @@
+<!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 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>
+  </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>
+<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. 
+<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>
+
+<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>
+<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_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494">AdapterFlags</a> { <br>
+&nbsp;&nbsp;<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494763a9a0caf512d9671b90c05c2808a09">ADAPT_INPUT_DOMAIN</a> =  0x01, 
+<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe349454c43b85382d78e8ea8da192bce3a139">ADAPT_CHANNEL_COUNT</a> =  0x02, 
+<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34945c0c389797922630a6b54ffd1eed21f1">ADAPT_BUFFER_SIZE</a> =  0x04, 
+<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34948220529e851ae30d37f413c40a389e08">ADAPT_ALL_SAFE</a> =  0x03, 
+<br>
+&nbsp;&nbsp;<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34943b1e08415c0cbc96f7900eac955ad6d0">ADAPT_ALL</a> =  0xff
+<br>
+ }</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">AdapterFlags contains a set of values that may be OR'd together to indicate in which circumstances <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> should use a plugin adapter to make a plugin easier to use for a host that does not want to cater for complex features.  <a href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a></td></tr>
+
+<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="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="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">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="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">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 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 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="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 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 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 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>
+
+</table>
+<hr><h2>Member Typedef Documentation</h2>
+<a class="anchor" name="473645bbb3ac5c1a0da2f0f482947c4d"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::PluginKey" ref="473645bbb3ac5c1a0da2f0f482947c4d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::string <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">Vamp::HostExt::PluginLoader::PluginKey</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="0d48b76e4f995110f53e0feeb23f733a"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::PluginKeyList" ref="0d48b76e4f995110f53e0feeb23f733a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::vector&lt;<a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">PluginKey</a>&gt; <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#0d48b76e4f995110f53e0feeb23f733a">Vamp::HostExt::PluginLoader::PluginKeyList</a>          </td>
+        </tr>
+      </table>
+</div>
+<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>. 
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="d6a39aa0c79d8d9209eb0b8dfe9d1364"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::PluginCategoryHierarchy" ref="d6a39aa0c79d8d9209eb0b8dfe9d1364" 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_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364">Vamp::HostExt::PluginLoader::PluginCategoryHierarchy</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+<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>
+
+</div>
+</div><p>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="ff3ee11692ce25e0dfb904324cbe3494"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::AdapterFlags" ref="ff3ee11692ce25e0dfb904324cbe3494" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494">Vamp::HostExt::PluginLoader::AdapterFlags</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+AdapterFlags contains a set of values that may be OR'd together to indicate in which circumstances <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> should use a plugin adapter to make a plugin easier to use for a host that does not want to cater for complex features. 
+<p>
+The available flags are:<p>
+ADAPT_INPUT_DOMAIN - If the plugin expects frequency domain input, wrap it in 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> that automatically converts the plugin to one that expects time-domain input. This enables a host to accommodate time- and frequency-domain plugins without needing to do any conversion itself.<p>
+ADAPT_CHANNEL_COUNT - Wrap the plugin in 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> to handle any mismatch between the number of channels of audio the plugin can handle and the number available in the host. This enables a host to use plugins that may require the input to be mixed down to mono, etc., without having to worry about doing that itself.<p>
+ADAPT_BUFFER_SIZE - Wrap the plugin in 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> permitting the host to provide audio input using any block size, with no overlap, regardless of the plugin's preferred block size (suitable for hosts that read from non-seekable streaming media, for example). This adapter introduces some run-time overhead and also changes the semantics of the plugin slightly (see 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> header documentation for details).<p>
+ADAPT_ALL_SAFE - Perform all available adaptations that are meaningful for the plugin and "safe". Currently this means to ADAPT_INPUT_DOMAIN if the plugin wants FrequencyDomain input; ADAPT_CHANNEL_COUNT always; and ADAPT_BUFFER_SIZE never.<p>
+ADAPT_ALL - Perform all available adaptations that are meaningful for the plugin.<p>
+See <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> and <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> for more details of the classes that the loader may use if these flags are set. <dl compact><dt><b>Enumerator: </b></dt><dd>
+<table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" name="ff3ee11692ce25e0dfb904324cbe3494763a9a0caf512d9671b90c05c2808a09"></a><!-- doxytag: member="ADAPT_INPUT_DOMAIN" ref="ff3ee11692ce25e0dfb904324cbe3494763a9a0caf512d9671b90c05c2808a09" args="" -->ADAPT_INPUT_DOMAIN</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="ff3ee11692ce25e0dfb904324cbe349454c43b85382d78e8ea8da192bce3a139"></a><!-- doxytag: member="ADAPT_CHANNEL_COUNT" ref="ff3ee11692ce25e0dfb904324cbe349454c43b85382d78e8ea8da192bce3a139" args="" -->ADAPT_CHANNEL_COUNT</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="ff3ee11692ce25e0dfb904324cbe34945c0c389797922630a6b54ffd1eed21f1"></a><!-- doxytag: member="ADAPT_BUFFER_SIZE" ref="ff3ee11692ce25e0dfb904324cbe34945c0c389797922630a6b54ffd1eed21f1" args="" -->ADAPT_BUFFER_SIZE</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="ff3ee11692ce25e0dfb904324cbe34948220529e851ae30d37f413c40a389e08"></a><!-- doxytag: member="ADAPT_ALL_SAFE" ref="ff3ee11692ce25e0dfb904324cbe34948220529e851ae30d37f413c40a389e08" args="" -->ADAPT_ALL_SAFE</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="ff3ee11692ce25e0dfb904324cbe34943b1e08415c0cbc96f7900eac955ad6d0"></a><!-- doxytag: member="ADAPT_ALL" ref="ff3ee11692ce25e0dfb904324cbe34943b1e08415c0cbc96f7900eac955ad6d0" args="" -->ADAPT_ALL</em>&nbsp;</td><td>
+</td></tr>
+</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>
+
+</div>
+</div><p>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="5ab9e0281244bef7976c6c0ce1a55c24"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::PluginLoader" ref="5ab9e0281244bef7976c6c0ce1a55c24" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::HostExt::PluginLoader::PluginLoader           </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#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="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::HostExt::PluginLoader::~PluginLoader           </td>
+          <td>(</td>
+          <td class="paramname">          </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#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="()" -->
+<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>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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="()" -->
+<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>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></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. 
+<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>
+
+</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)" -->
+<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>(</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> = <code>0</code></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>
+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. 
+<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>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>adapterFlags</em>&nbsp;</td><td>a bitwise OR of the values in the AdapterFlags enumeration, indicating under which circumstances an adapter should be used to wrap the original plugin. If adapterFlags is 0, no optional adapters will be used. Otherwise, the returned plugin may be of an adapter class type which will behave identically to the original plugin, apart from any particular features implemented by the adapter itself.</td></tr>
+  </table>
+</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>
+
+</div>
+</div><p>
+<a class="anchor" name="cc6865d27825c100d7b6f9ed6ecf5207"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::composePluginKey" ref="cc6865d27825c100d7b6f9ed6ecf5207" args="(std::string libraryName, std::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">PluginKey</a> Vamp::HostExt::PluginLoader::composePluginKey           </td>
+          <td>(</td>
+          <td class="paramtype">std::string&nbsp;</td>
+          <td class="paramname"> <em>libraryName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::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>
+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>. 
+<p>
+
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="d5c594142ff058bd70e66247d45cd86e"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::getPluginCategory" ref="d5c594142ff058bd70e66247d45cd86e" 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>(</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>
+        </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. 
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="592d6b4c6edaa369407e833f56e4a4de"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::getLibraryPathForPlugin" ref="592d6b4c6edaa369407e833f56e4a4de" args="(PluginKey plugin)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="c12254d823f6d63cb8ce82a07bdcb072"></a><!-- doxytag: member="Vamp::HostExt::PluginLoader::m_impl" ref="c12254d823f6d63cb8ce82a07bdcb072" 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.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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<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>
+<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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,55 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,679 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,37 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1InstanceCleaner.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,146 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,75 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1091 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter__inherit__graph.map	Mon Sep 22 13:01:46 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="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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginLoader_1_1Impl_1_1PluginDeletionNotifyAdapter__inherit__graph.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginRateExtractor-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,71 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginRateExtractor.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,997 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginRateExtractor__inherit__graph.map	Mon Sep 22 13:01:46 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="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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginRateExtractor__inherit__graph.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+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_1PluginWrapper-members.html	Mon Sep 22 13:01:46 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.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::PluginWrapper Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html">Vamp::HostExt::PluginWrapper</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_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_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_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: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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginWrapper.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1068 @@
+<!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::PluginWrapper 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_1PluginWrapper.html">PluginWrapper</a>
+  </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>
+<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>
+<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>
+
+<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>
+<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">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">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 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_1PluginWrapper.html#35cc2d42f8322f5022e89859a79c97be">PluginWrapper</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin)</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_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::PluginWrapper::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::PluginWrapper::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::PluginWrapper::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::PluginWrapper::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::PluginWrapper::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::PluginWrapper::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="7449a364d524de75352a4719fec2e1f5"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::~PluginWrapper" ref="7449a364d524de75352a4719fec2e1f5" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::HostExt::PluginWrapper::~PluginWrapper           </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="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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::HostExt::PluginWrapper::PluginWrapper           </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="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>
+<a class="anchor" name="a5a1f8290d8e9a315695584dcb3ad137"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">m_plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="d19cc0614ba41cdc26ef3394c5146fe6"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">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 " -->
+<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]</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">m_plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="74147fda6b44ff2169bd4a1eea0d46ff"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">m_plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="4baa9e48f717c2b3e7f92496aa39d904"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">m_plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c70a3265bb25aeb03f6dd8f8a0442088"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">m_plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c334f699c0996055942785410d8a065c"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">m_plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="59d5a2298951b317995675e664b1c7bb"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">m_plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="47e1acf1696813008324a915c9ba59c5"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">m_plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="e14f6ecb78be909c4cd5f0cdaed3c566"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">m_plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="3b075b8f950b344503f0d27ac0fe332e"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">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 " -->
+<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]</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">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)" -->
+<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]</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">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::PluginWrapper::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]</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">m_plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="7a312dd42d161064b70afd7ff24c0651"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">m_plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="074978333a74fdcf336a8a1d8ea20abf"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">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::PluginWrapper::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]</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">m_plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="2c62a656313a819650656643a867ad01"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">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::PluginWrapper::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]</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">m_plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="985eb21f1827bfbc3950d6871b107a58"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">m_plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="02c8c01972affeea58b091335e791ace"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">m_plugin</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)" -->
+<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]</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">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::PluginWrapper::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]</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">m_plugin</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="be13b3997a69fbcc09e2213faa352f91"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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="b4e40ecd98b445e1a2aa9e7baa280ea2"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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]</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">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>
+
+</div>
+</div><p>
+<a class="anchor" name="59b9dd82a4f4eb946cd0474cc81abc23"></a><!-- doxytag: member="Vamp::HostExt::PluginWrapper::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 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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+0debc54b8d79aeb1dbbe5a52c0d0a0fb
\ No newline at end of file
Binary file code-doc/classVamp_1_1HostExt_1_1PluginWrapper__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1Plugin-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,69 @@
+<!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::Plugin Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1Plugin.html">Vamp::Plugin</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_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_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: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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1Plugin.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1019 @@
+<!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::Plugin 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_1Plugin.html">Plugin</a>
+  </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>
+<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>
+<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
+
+<p>
+<a href="classVamp_1_1Plugin-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
+<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. 
+<p>
+In most cases, the input will be audio and the output will be a stream of derived data at a lower sampling resolution than the input.<p>
+Note that this class inherits several abstract methods from <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>. These must be implemented by the subclass.<p>
+PLUGIN LIFECYCLE<p>
+<a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> extraction plugins are managed differently from real-time plugins (such as VST effects). The main difference is that the parameters for a feature extraction plugin are configured before the plugin is used, and do not change during use.<p>
+1. Host constructs the plugin, passing it the input sample rate. The plugin may do basic initialisation, but should not do anything computationally expensive at this point. You must make sure your plugin is cheap to construct, otherwise you'll seriously affect the startup performance of almost all hosts. If you have serious initialisation to do, the proper place is in <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> (step 5).<p>
+2. Host may query the plugin's available outputs.<p>
+3. Host queries programs and parameter descriptors, and may set some or all of them. Parameters that are not explicitly set should take their default values as specified in the parameter descriptor. When a program is set, the parameter values may change and the host will re-query them to check.<p>
+4. Host queries the preferred step size, block size and number of channels. These may all vary depending on the parameter values. (Note however that you cannot make the number of distinct outputs dependent on parameter values.)<p>
+5. <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> is properly initialised with a call to initialise. This fixes the step size, block size, and number of channels, as well as all of the parameter and program settings. If the values passed in to initialise do not match the plugin's advertised preferred values from step 4, the plugin may refuse to initialise and return false (although if possible it should accept the new values). Any computationally expensive setup code should take place here.<p>
+6. Host finally checks the number of values, resolution, extents etc per output (which may vary depending on the number of channels, step size and block size as well as the parameter values).<p>
+7. Host will repeatedly call the process method to pass in blocks of input data. This method may return features extracted from that data (if the plugin is causal).<p>
+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>
+<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">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">~Plugin</a> ()</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 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_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Plugin</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">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">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</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_1OutputDescriptor.html">OutputDescriptor</a></td></tr>
+
+</table>
+<hr><h2>Member Typedef Documentation</h2>
+<a class="anchor" name="30f531b8fb69fac41a24e3d2a6a08ed9"></a><!-- doxytag: member="Vamp::Plugin::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>          </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::Plugin::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>          </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::Plugin::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>          </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::Plugin::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::Plugin::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::Plugin::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>          </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="42d3096f9c1f58b1876024cd8d9ab80b"></a><!-- doxytag: member="Vamp::Plugin::~Plugin" ref="42d3096f9c1f58b1876024cd8d9ab80b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual Vamp::Plugin::~Plugin           </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="Plugin_8h-source.html#l00124">124</a> of file <a class="el" href="Plugin_8h-source.html">Plugin.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="1b78c4f46c72ef345ed27f0b9bf20ac9"></a><!-- doxytag: member="Vamp::Plugin::Plugin" ref="1b78c4f46c72ef345ed27f0b9bf20ac9" args="(float inputSampleRate)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::Plugin::Plugin           </td>
+          <td>(</td>
+          <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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="f26212cf5fc511b603a8b48034247822"></a><!-- doxytag: member="Vamp::Plugin::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]</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::Plugin::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]</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::Plugin::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]</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::Plugin::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]</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::Plugin::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]</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::Plugin::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]</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::Plugin::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]</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::Plugin::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]</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::Plugin::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]</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::Plugin::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]</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::Plugin::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]</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::Plugin::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::Plugin::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::Plugin::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::Plugin::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::Plugin::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::Plugin::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::Plugin::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::Plugin::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::Plugin::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::Plugin::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::Plugin::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::Plugin::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::Plugin::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::Plugin::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]</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="Plugin_8h-source.html">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;
+<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/classVamp_1_1PluginAdapter-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,40 @@
+<!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::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#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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginAdapter.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,193 @@
+<!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::PluginAdapter&lt; P &gt; Class Template 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_1PluginAdapter.html">PluginAdapter</a>
+  </div>
+</div>
+<div class="contents">
+<h1>Vamp::PluginAdapter&lt; P &gt; Class Template Reference</h1><!-- doxytag: class="Vamp::PluginAdapter" --><!-- doxytag: inherits="Vamp::PluginAdapterBase" --><code>#include &lt;<a class="el" href="PluginAdapter_8h-source.html">vamp-sdk/PluginAdapter.h</a>&gt;</code>
+<p>
+<div class="dynheader">
+Inheritance diagram for Vamp::PluginAdapter&lt; P &gt;:</div>
+<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>
+<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
+
+<p>
+<a href="classVamp_1_1PluginAdapter-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
+<h3>template&lt;typename P&gt;<br>
+ class Vamp::PluginAdapter&lt; P &gt;</h3>
+
+<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>
+<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_1PluginAdapter.html#16312efd629b7063d7b6d67889a2c15a">PluginAdapter</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_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="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 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>
+
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="16312efd629b7063d7b6d67889a2c15a"></a><!-- doxytag: member="Vamp::PluginAdapter::PluginAdapter" ref="16312efd629b7063d7b6d67889a2c15a" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename P&gt; </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1PluginAdapter.html">Vamp::PluginAdapter</a>&lt; P &gt;::<a class="el" href="classVamp_1_1PluginAdapter.html">PluginAdapter</a>           </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="PluginAdapter_8h-source.html#l00096">96</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="9612c9df7d4844959a36921d43d4bd50"></a><!-- doxytag: member="Vamp::PluginAdapter::~PluginAdapter" ref="9612c9df7d4844959a36921d43d4bd50" args="()" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename P&gt; </div>
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="classVamp_1_1PluginAdapter.html">Vamp::PluginAdapter</a>&lt; P &gt;::~<a class="el" href="classVamp_1_1PluginAdapter.html">PluginAdapter</a>           </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="PluginAdapter_8h-source.html#l00097">97</a> of file <a class="el" href="PluginAdapter_8h-source.html">PluginAdapter.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="3f387e7e37409e00d32477903b5b13d3"></a><!-- doxytag: member="Vamp::PluginAdapter::createPlugin" ref="3f387e7e37409e00d32477903b5b13d3" args="(float inputSampleRate)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename P&gt; </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a>* <a class="el" href="classVamp_1_1PluginAdapter.html">Vamp::PluginAdapter</a>&lt; P &gt;::createPlugin           </td>
+          <td>(</td>
+          <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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="7ff5c9374a8dc43f977c3707d1da45b5"></a><!-- doxytag: member="Vamp::PluginAdapter::getDescriptor" ref="7ff5c9374a8dc43f977c3707d1da45b5" 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>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="0e3594c54884efd5a7ef38030645745b"></a><!-- doxytag: member="Vamp::PluginAdapter::m_impl" ref="0e3594c54884efd5a7ef38030645745b" args="" -->
+<div class="memitem">
+<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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</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;
+<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/classVamp_1_1PluginAdapterBase-members.html	Mon Sep 22 13:01:46 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: 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 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#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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginAdapterBase.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,192 @@
+<!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 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>
+  </div>
+</div>
+<div class="contents">
+<h1>Vamp::PluginAdapterBase Class Reference</h1><!-- doxytag: class="Vamp::PluginAdapterBase" --><code>#include &lt;<a class="el" href="PluginAdapter_8h-source.html">vamp-sdk/PluginAdapter.h</a>&gt;</code>
+<p>
+<div class="dynheader">
+Inheritance diagram for Vamp::PluginAdapterBase:</div>
+<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>
+<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. 
+<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>
+
+<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>
+<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">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="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 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>
+
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="e39492abdca4b588a582962fdeab819d"></a><!-- doxytag: member="Vamp::PluginAdapterBase::~PluginAdapterBase" ref="e39492abdca4b588a582962fdeab819d" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::PluginAdapterBase::~PluginAdapterBase           </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="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="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::PluginAdapterBase::PluginAdapterBase           </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="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="()" -->
+<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>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="9116adb9b7a426f4f0ded15e45a5531b"></a><!-- doxytag: member="Vamp::PluginAdapterBase::createPlugin" ref="9116adb9b7a426f4f0ded15e45a5531b" args="(float inputSampleRate)=0" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="classVamp_1_1Plugin.html">Plugin</a>* Vamp::PluginAdapterBase::createPlugin           </td>
+          <td>(</td>
+          <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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<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>
+<a class="anchor" name="0e3594c54884efd5a7ef38030645745b"></a><!-- doxytag: member="Vamp::PluginAdapterBase::m_impl" ref="0e3594c54884efd5a7ef38030645745b" args="" -->
+<div class="memitem">
+<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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginAdapterBase_1_1Impl-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,77 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginAdapterBase_1_1Impl.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1359 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginAdapterBase__inherit__graph.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginAdapterBase__inherit__graph.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+b4ba05d1c0f8f9abdd8f988531126042
\ No newline at end of file
Binary file code-doc/classVamp_1_1PluginAdapterBase__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginAdapter__inherit__graph.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginAdapter__inherit__graph.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+f6daf5b234a9d451bebb87424c8d8af6
\ No newline at end of file
Binary file code-doc/classVamp_1_1PluginAdapter__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginBase-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,50 @@
+<!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::PluginBase Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1PluginBase.html">Vamp::PluginBase</a>, including all inherited members.<p><table>
+  <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_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_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_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_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_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">getType</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#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_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_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_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_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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginBase.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,547 @@
+<!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::PluginBase 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_1PluginBase.html">PluginBase</a>
+  </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>
+<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>
+<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>
+<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">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">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#3773b37c658cf22d7f135c575a28f5c5">~PluginBase</a> ()</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 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#2da03e9ced8dc7e4382205e6dc05dbff">getType</a> () const =0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the type of plugin.  <a href="#2da03e9ced8dc7e4382205e6dc05dbff"></a><br></td></tr>
+<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="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a></td></tr>
+
+</table>
+<hr><h2>Member Typedef Documentation</h2>
+<a class="anchor" name="3b6bb4bbd86affe1ca9deceea1aad4f8"></a><!-- doxytag: member="Vamp::PluginBase::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>          </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::PluginBase::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>          </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>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="3773b37c658cf22d7f135c575a28f5c5"></a><!-- doxytag: member="Vamp::PluginBase::~PluginBase" ref="3773b37c658cf22d7f135c575a28f5c5" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual Vamp::PluginBase::~PluginBase           </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="PluginBase_8h-source.html#l00062">62</a> of file <a class="el" href="PluginBase_8h-source.html">PluginBase.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="8fd2c48291c64b790f0efb8948508dcf"></a><!-- doxytag: member="Vamp::PluginBase::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]</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::PluginBase::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]</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::PluginBase::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]</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::PluginBase::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]</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::PluginBase::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]</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::PluginBase::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]</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::PluginBase::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]</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::PluginBase::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]</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::PluginBase::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]</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::PluginBase::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]</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::PluginBase::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]</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::PluginBase::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]</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::PluginBase::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]</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>
+<a class="anchor" name="2da03e9ced8dc7e4382205e6dc05dbff"></a><!-- doxytag: member="Vamp::PluginBase::getType" ref="2da03e9ced8dc7e4382205e6dc05dbff" args="() const =0" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual std::string Vamp::PluginBase::getType           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> const<code> [pure virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Get the type of plugin. 
+<p>
+This is to be implemented by the immediate subclass, not by actual plugins. Do not attempt to implement this in plugin code. 
+<p>Implemented in <a class="el" href="classVamp_1_1Plugin.html#be13b3997a69fbcc09e2213faa352f91">Vamp::Plugin</a>.</p>
+
+</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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginBase__inherit__graph.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,12 @@
+<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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginBase__inherit__graph.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+cfc919bcad1dd2c75ebd302bda37e09b
\ No newline at end of file
Binary file code-doc/classVamp_1_1PluginBase__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginHostAdapter-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,75 @@
+<!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::PluginHostAdapter Member List</h1>This is the complete list of members for <a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#ee417a4c9ba9dbb63777c963d5f9452a">convertFeatures</a>(VampFeatureList *, FeatureSet &amp;)</td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [protected]</code></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_1PluginHostAdapter.html#c73c9d6baad04369beee695e99584815">getCopyright</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#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#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#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#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_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>
+  <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_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a></td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a></td><td><a class="el" href="classVamp_1_1PluginHostAdapter.html">Vamp::PluginHostAdapter</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="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_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>
+  <tr class="memlist"><td><a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">setParameter</a>(std::string, float)</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#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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginHostAdapter.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1146 @@
+<!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::PluginHostAdapter 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_1PluginHostAdapter.html">PluginHostAdapter</a>
+  </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>
+<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>
+<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. 
+<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>
+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>
+<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_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">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>
+
+<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="#dd6a2f1ee7e47bd97fa599cead14b738"></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#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="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#9c5239a4da67f1a426cd059e1a2856eb"></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="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>
+<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#45f1d0377e233eeddd1b7cefb48be62a">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="#45f1d0377e233eeddd1b7cefb48be62a"></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#5eaafcef030e81b90a3e77cf16cf8ae1">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="#5eaafcef030e81b90a3e77cf16cf8ae1"></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#f572be0b175f5661559006a380a0f3db">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="#f572be0b175f5661559006a380a0f3db"></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_1PluginHostAdapter.html#6fbd94781867ca46a20368c2a3593c77">getPluginVersion</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the version number of the plugin.  <a href="#6fbd94781867ca46a20368c2a3593c77"></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#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="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin.  <a href="#bfa93b20d9b5651a32042a9bb7c8df13"></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="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin.  <a href="#7ac5681dcfe08b7b8a796bffc0aff3e3"></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>
+<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#8f5515ab34cc13d9403ccc6b4b788683">selectProgram</a> (std::string)</td></tr>
+
+<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="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="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="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">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">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="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 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>
+
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></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_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</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::PluginHostAdapter::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::PluginHostAdapter::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::PluginHostAdapter::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::PluginHostAdapter::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::PluginHostAdapter::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::PluginHostAdapter::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="6535abd551acfbbaab381bbe1268cd49"></a><!-- doxytag: member="Vamp::PluginHostAdapter::PluginHostAdapter" ref="6535abd551acfbbaab381bbe1268cd49" args="(const VampPluginDescriptor *descriptor, float inputSampleRate)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::PluginHostAdapter::PluginHostAdapter           </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *&nbsp;</td>
+          <td class="paramname"> <em>descriptor</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="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="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::PluginHostAdapter::~PluginHostAdapter           </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="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="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool Vamp::PluginHostAdapter::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]</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="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="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void Vamp::PluginHostAdapter::reset           </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>
+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="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 " -->
+<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>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> const<code> [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="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. 
+<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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int Vamp::PluginHostAdapter::getVampApiVersion           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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. 
+<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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string Vamp::PluginHostAdapter::getIdentifier           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string Vamp::PluginHostAdapter::getName           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string Vamp::PluginHostAdapter::getDescription           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string Vamp::PluginHostAdapter::getMaker           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int Vamp::PluginHostAdapter::getPluginVersion           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string Vamp::PluginHostAdapter::getCopyright           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="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 " -->
+<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>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float Vamp::PluginHostAdapter::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]</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="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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void Vamp::PluginHostAdapter::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]</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="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 " -->
+<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>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> const<code> [virtual]</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="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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string Vamp::PluginHostAdapter::getCurrentProgram           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> const<code> [virtual]</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="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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void Vamp::PluginHostAdapter::selectProgram           </td>
+          <td>(</td>
+          <td class="paramtype">std::string&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><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_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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t Vamp::PluginHostAdapter::getPreferredStepSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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. 
+<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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t Vamp::PluginHostAdapter::getPreferredBlockSize           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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). 
+<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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t Vamp::PluginHostAdapter::getMinChannelCount           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> const<code> [virtual]</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="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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t Vamp::PluginHostAdapter::getMaxChannelCount           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> const<code> [virtual]</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="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 " -->
+<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>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="classVamp_1_1PluginHostAdapter.html#82c29a512c0587ea0121eee4b0c2a684" 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)" -->
+<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>(</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]</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>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="()" -->
+<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>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><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="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;)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <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>
+        </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>
+        </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="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 " -->
+<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="0c9f252aca8ac298e30cadd0de032ec2"></a><!-- doxytag: member="Vamp::PluginHostAdapter::m_descriptor" ref="0c9f252aca8ac298e30cadd0de032ec2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a>* <a class="el" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">Vamp::PluginHostAdapter::m_descriptor</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="02ebd03b226b4a467cad747ce77e79ee"></a><!-- doxytag: member="Vamp::PluginHostAdapter::m_handle" ref="02ebd03b226b4a467cad747ce77e79ee" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> <a class="el" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">Vamp::PluginHostAdapter::m_handle</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="59b9dd82a4f4eb946cd0474cc81abc23"></a><!-- doxytag: member="Vamp::PluginHostAdapter::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 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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginHostAdapter__inherit__graph.map	Mon Sep 22 13:01:46 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="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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1PluginHostAdapter__inherit__graph.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+00b855365571195fc0797873f48188ba
\ No newline at end of file
Binary file code-doc/classVamp_1_1PluginHostAdapter__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1Plugin__inherit__graph.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,12 @@
+<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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1Plugin__inherit__graph.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+1fdc0d123de21caf38692f762b282897
\ No newline at end of file
Binary file code-doc/classVamp_1_1Plugin__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classVamp_1_1RealTime-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,60 @@
+<!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::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#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>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#6b74748d1eb4c3c751e7a12aefae0bde">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>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#f0360b5b0d23a464025a6823912c6291">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>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#f62915355c482f2e1611a52a7f17f5ed">operator-</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#c88cda961da5cb728d823b29c5456c06">operator/</a>(int d) 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#a6e50a94c81a1448ec1d61421ccf6e3f">operator/</a>(const RealTime &amp;r) 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#78e378a5dd0137a6514dca18edda6f9a">operator&lt;</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>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#cf4278eec678c558d62bbda6bc1da44e">operator&lt;=</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>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#db82f838804a9a3ad49988de5944d090">operator=</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#bc5f06b5b9973012cb7453192df3ea5e">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>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#6f0aced679e2f97133ed63c688b335e4">operator&gt;</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>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1RealTime.html#5cb785a410e3a91ed3092b7bba22afc3">operator&gt;=</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>
+  <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#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;
+<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/classZeroCrossing-members.html	Mon Sep 22 13:01:46 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: 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>ZeroCrossing Member List</h1>This is the complete list of members for <a class="el" href="classZeroCrossing.html">ZeroCrossing</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="classZeroCrossing.html#f9c41b92aa8ff8bddaebf75569ff789c">getCopyright</a>() const </td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</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="classZeroCrossing.html#710bb0b013157adaeef2a9e6867b4478">getDescription</a>() const </td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a">getIdentifier</a>() const </td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classZeroCrossing.html#afe2ce6ebd353a14c40db7e8e60f4051">getInputDomain</a>() const </td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a">getMaker</a>() const </td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</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="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498">getName</a>() const </td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classZeroCrossing.html#c9d590a6feb1fc9a37d7892aefe2b688">getOutputDescriptors</a>() const </td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</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="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb">getPluginVersion</a>() const </td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</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="classZeroCrossing.html#70996d1b7166e303903daf92a9a37ad8">getRemainingFeatures</a>()</td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</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="classZeroCrossing.html#f21bbcc87a6eb7875dfab7d86222dccc">initialise</a>(size_t channels, size_t stepSize, size_t blockSize)</td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</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="classZeroCrossing.html#0f2d9f2cab0a8a30344e1f2c0ebb8ee8">m_previousSample</a></td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">m_stepSize</a></td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</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="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da">process</a>(const float *const *inputBuffers, Vamp::RealTime timestamp)</td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</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="classZeroCrossing.html#9ae6c4a31ea027dceb1e97ead807e228">reset</a>()</td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</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="classZeroCrossing.html#9855153a54bdc9ba75cc1a705a149473">ZeroCrossing</a>(float inputSampleRate)</td><td><a class="el" href="classZeroCrossing.html">ZeroCrossing</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="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;
+<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/classZeroCrossing.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1048 @@
+<!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: ZeroCrossing 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>
+<div class="contents">
+<h1>ZeroCrossing Class Reference</h1><!-- doxytag: class="ZeroCrossing" --><!-- doxytag: inherits="Vamp::Plugin" --><code>#include &lt;<a class="el" href="ZeroCrossing_8h-source.html">ZeroCrossing.h</a>&gt;</code>
+<p>
+<div class="dynheader">
+Inheritance diagram for ZeroCrossing:</div>
+<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>
+<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
+
+<p>
+<a href="classZeroCrossing-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
+Example plugin that calculates the positions and density of zero-crossing points in an audio waveform. 
+<p>Definition at line <a class="el" href="ZeroCrossing_8h-source.html#l00047">47</a> of file <a class="el" href="ZeroCrossing_8h-source.html">ZeroCrossing.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="classZeroCrossing.html#9855153a54bdc9ba75cc1a705a149473">ZeroCrossing</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="classZeroCrossing.html#f1de0da862e6e2443581e4e16044675b">~ZeroCrossing</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#f21bbcc87a6eb7875dfab7d86222dccc">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="#f21bbcc87a6eb7875dfab7d86222dccc"></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="classZeroCrossing.html#9ae6c4a31ea027dceb1e97ead807e228">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="#9ae6c4a31ea027dceb1e97ead807e228"></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="classZeroCrossing.html#afe2ce6ebd353a14c40db7e8e60f4051">getInputDomain</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain.  <a href="#afe2ce6ebd353a14c40db7e8e60f4051"></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="classZeroCrossing.html#f2baf9e19fcdd11cfe97ace56d4f5c1a">getIdentifier</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin.  <a href="#f2baf9e19fcdd11cfe97ace56d4f5c1a"></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="classZeroCrossing.html#fa96f7ce6e7d9f03768f48c6a9d88498">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="#fa96f7ce6e7d9f03768f48c6a9d88498"></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="classZeroCrossing.html#710bb0b013157adaeef2a9e6867b4478">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="#710bb0b013157adaeef2a9e6867b4478"></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="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a">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="#c68561634a3c329a029c2fd3deaeae2a"></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="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb">getPluginVersion</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the version number of the plugin.  <a href="#d685f6c2f443f07a1634550c335571eb"></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="classZeroCrossing.html#f9c41b92aa8ff8bddaebf75569ff789c">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="#f9c41b92aa8ff8bddaebf75569ff789c"></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="classZeroCrossing.html#c9d590a6feb1fc9a37d7892aefe2b688">getOutputDescriptors</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin.  <a href="#c9d590a6feb1fc9a37d7892aefe2b688"></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="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da">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="#bf4aaa6fd8cc03de63f4e1e8942633da"></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="classZeroCrossing.html#70996d1b7166e303903daf92a9a37ad8">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="#70996d1b7166e303903daf92a9a37ad8"></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" 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 <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="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">m_stepSize</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classZeroCrossing.html#0f2d9f2cab0a8a30344e1f2c0ebb8ee8">m_previousSample</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="ZeroCrossing::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="ZeroCrossing::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="ZeroCrossing::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="ZeroCrossing::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="ZeroCrossing::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="ZeroCrossing::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="9855153a54bdc9ba75cc1a705a149473"></a><!-- doxytag: member="ZeroCrossing::ZeroCrossing" ref="9855153a54bdc9ba75cc1a705a149473" args="(float inputSampleRate)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ZeroCrossing::ZeroCrossing           </td>
+          <td>(</td>
+          <td class="paramtype">float&nbsp;</td>
+          <td class="paramname"> <em>inputSampleRate</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="ZeroCrossing_8cpp-source.html#l00045">45</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="f1de0da862e6e2443581e4e16044675b"></a><!-- doxytag: member="ZeroCrossing::~ZeroCrossing" ref="f1de0da862e6e2443581e4e16044675b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ZeroCrossing::~ZeroCrossing           </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="ZeroCrossing_8cpp-source.html#l00052">52</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="f21bbcc87a6eb7875dfab7d86222dccc"></a><!-- doxytag: member="ZeroCrossing::initialise" ref="f21bbcc87a6eb7875dfab7d86222dccc" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool ZeroCrossing::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]</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="ZeroCrossing_8cpp-source.html#l00093">93</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>
+
+</div>
+</div><p>
+<a class="anchor" name="9ae6c4a31ea027dceb1e97ead807e228"></a><!-- doxytag: member="ZeroCrossing::reset" ref="9ae6c4a31ea027dceb1e97ead807e228" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void ZeroCrossing::reset           </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>
+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="ZeroCrossing_8cpp-source.html#l00104">104</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>
+
+</div>
+</div><p>
+<a class="anchor" name="afe2ce6ebd353a14c40db7e8e60f4051"></a><!-- doxytag: member="ZeroCrossing::getInputDomain" ref="afe2ce6ebd353a14c40db7e8e60f4051" 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> ZeroCrossing::getInputDomain           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da" 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="classZeroCrossing.html#bf4aaa6fd8cc03de63f4e1e8942633da" 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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="f2baf9e19fcdd11cfe97ace56d4f5c1a"></a><!-- doxytag: member="ZeroCrossing::getIdentifier" ref="f2baf9e19fcdd11cfe97ace56d4f5c1a" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string ZeroCrossing::getIdentifier           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="ZeroCrossing_8cpp-source.html#l00057">57</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="fa96f7ce6e7d9f03768f48c6a9d88498"></a><!-- doxytag: member="ZeroCrossing::getName" ref="fa96f7ce6e7d9f03768f48c6a9d88498" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string ZeroCrossing::getName           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="ZeroCrossing_8cpp-source.html#l00063">63</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="710bb0b013157adaeef2a9e6867b4478"></a><!-- doxytag: member="ZeroCrossing::getDescription" ref="710bb0b013157adaeef2a9e6867b4478" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string ZeroCrossing::getDescription           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="ZeroCrossing_8cpp-source.html#l00069">69</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c68561634a3c329a029c2fd3deaeae2a"></a><!-- doxytag: member="ZeroCrossing::getMaker" ref="c68561634a3c329a029c2fd3deaeae2a" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string ZeroCrossing::getMaker           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="ZeroCrossing_8cpp-source.html#l00075">75</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="d685f6c2f443f07a1634550c335571eb"></a><!-- doxytag: member="ZeroCrossing::getPluginVersion" ref="d685f6c2f443f07a1634550c335571eb" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ZeroCrossing::getPluginVersion           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="ZeroCrossing_8cpp-source.html#l00081">81</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="f9c41b92aa8ff8bddaebf75569ff789c"></a><!-- doxytag: member="ZeroCrossing::getCopyright" ref="f9c41b92aa8ff8bddaebf75569ff789c" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string ZeroCrossing::getCopyright           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="ZeroCrossing_8cpp-source.html#l00087">87</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c9d590a6feb1fc9a37d7892aefe2b688"></a><!-- doxytag: member="ZeroCrossing::getOutputDescriptors" ref="c9d590a6feb1fc9a37d7892aefe2b688" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">ZeroCrossing::OutputList</a> ZeroCrossing::getOutputDescriptors           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> 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="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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="bf4aaa6fd8cc03de63f4e1e8942633da"></a><!-- doxytag: member="ZeroCrossing::process" ref="bf4aaa6fd8cc03de63f4e1e8942633da" 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">ZeroCrossing::FeatureSet</a> ZeroCrossing::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 width="100%"><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 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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="70996d1b7166e303903daf92a9a37ad8"></a><!-- doxytag: member="ZeroCrossing::getRemainingFeatures" ref="70996d1b7166e303903daf92a9a37ad8" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">ZeroCrossing::FeatureSet</a> ZeroCrossing::getRemainingFeatures           </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>
+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="ZeroCrossing_8cpp-source.html#l00190">190</a> of file <a class="el" href="ZeroCrossing_8cpp-source.html">ZeroCrossing.cpp</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="a529adf83f87a603954eb31407602aac"></a><!-- doxytag: member="ZeroCrossing::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="ZeroCrossing::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="ZeroCrossing::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">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="ZeroCrossing::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">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="be13b3997a69fbcc09e2213faa352f91"></a><!-- doxytag: member="ZeroCrossing::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="ZeroCrossing::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="ac3e49b3b66cacfbb768dfdf07444f21"></a><!-- doxytag: member="ZeroCrossing::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="ZeroCrossing::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="ZeroCrossing::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="ZeroCrossing::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="ZeroCrossing::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="ZeroCrossing::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="584f100b87c78f9af9da040d79567d52"></a><!-- doxytag: member="ZeroCrossing::m_stepSize" ref="584f100b87c78f9af9da040d79567d52" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t <a class="el" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">ZeroCrossing::m_stepSize</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="0f2d9f2cab0a8a30344e1f2c0ebb8ee8"></a><!-- doxytag: member="ZeroCrossing::m_previousSample" ref="0f2d9f2cab0a8a30344e1f2c0ebb8ee8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="classZeroCrossing.html#0f2d9f2cab0a8a30344e1f2c0ebb8ee8">ZeroCrossing::m_previousSample</a><code> [protected]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="59b9dd82a4f4eb946cd0474cc81abc23"></a><!-- doxytag: member="ZeroCrossing::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">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>
+
+</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;
+<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/classZeroCrossing__inherit__graph.map	Mon Sep 22 13:01:46 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,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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/classZeroCrossing__inherit__graph.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+f7b3baf464700cffecfdffb27175ceb1
\ No newline at end of file
Binary file code-doc/classZeroCrossing__inherit__graph.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/dir_35887283b966ca996e4ff77f459c38ce.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,60 @@
+<!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: examples/ 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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>examples Directory Reference</h1>
+<p>
+
+<p>
+<div class="dynheader">
+</div>
+<div class="dynsection">
+<p><center><img src="dir_35887283b966ca996e4ff77f459c38ce_dep.png" border="0" usemap="#dir_35887283b966ca996e4ff77f459c38ce_dep_map" alt="examples/"></center>
+<map name="dir_35887283b966ca996e4ff77f459c38ce_dep_map">
+<area shape="rect" href="dir_35887283b966ca996e4ff77f459c38ce.html" title="examples" 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>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="AmplitudeFollower_8cpp.html">AmplitudeFollower.cpp</a> <a href="AmplitudeFollower_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="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="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="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>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ZeroCrossing_8cpp.html">ZeroCrossing.cpp</a> <a href="ZeroCrossing_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="ZeroCrossing_8h.html">ZeroCrossing.h</a> <a href="ZeroCrossing_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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/dir_35887283b966ca996e4ff77f459c38ce_dep.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+<area shape="rect" href="dir_35887283b966ca996e4ff77f459c38ce.html" title="examples" alt="" coords="5,6,83,54">
Binary file code-doc/dir_35887283b966ca996e4ff77f459c38ce_dep.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/dir_5b77fce4b90561041d958141b45c7c55.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,63 @@
+<!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/ 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>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-sdk Directory Reference</h1>
+<p>
+
+<p>
+<div class="dynheader">
+</div>
+<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>
+</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="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="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="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="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>
+
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/dir_5b77fce4b90561041d958141b45c7c55_dep.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,2 @@
+<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">
Binary file code-doc/dir_5b77fce4b90561041d958141b45c7c55_dep.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/dir_b086eb10f854304ab96fb3af468374a7.html	Mon Sep 22 13:01:46 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: vamp/ 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_b086eb10f854304ab96fb3af468374a7.html">vamp</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp Directory Reference</h1>
+<p>
+
+<p>
+<div class="dynheader">
+</div>
+<div class="dynsection">
+<p><center><img src="dir_b086eb10f854304ab96fb3af468374a7_dep.png" border="0" usemap="#dir_b086eb10f854304ab96fb3af468374a7_dep_map" alt="vamp/"></center>
+<map name="dir_b086eb10f854304ab96fb3af468374a7_dep_map">
+<area shape="rect" href="dir_b086eb10f854304ab96fb3af468374a7.html" title="vamp" 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="vamp_8h.html">vamp.h</a> <a href="vamp_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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/dir_b086eb10f854304ab96fb3af468374a7_dep.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+<area shape="rect" href="dir_b086eb10f854304ab96fb3af468374a7.html" title="vamp" alt="" coords="5,6,77,54">
Binary file code-doc/dir_b086eb10f854304ab96fb3af468374a7_dep.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/dir_dc0199af6955c245f7b5a687135670df.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,46 @@
+<!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: host/ 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_dc0199af6955c245f7b5a687135670df.html">host</a>
+  </div>
+</div>
+<div class="contents">
+<h1>host Directory Reference</h1>
+<p>
+
+<p>
+<div class="dynheader">
+</div>
+<div class="dynsection">
+<p><center><img src="dir_dc0199af6955c245f7b5a687135670df_dep.png" border="0" usemap="#dir_dc0199af6955c245f7b5a687135670df_dep_map" alt="host/"></center>
+<map name="dir_dc0199af6955c245f7b5a687135670df_dep_map">
+<area shape="rect" href="dir_dc0199af6955c245f7b5a687135670df.html" title="host" 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="system_8h.html">system.h</a> <a href="system_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-simple-host_8cpp.html">vamp-simple-host.cpp</a> <a href="vamp-simple-host_8cpp-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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/dir_dc0199af6955c245f7b5a687135670df_dep.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+<area shape="rect" href="dir_dc0199af6955c245f7b5a687135670df.html" title="host" alt="" coords="5,6,77,54">
Binary file code-doc/dir_dc0199af6955c245f7b5a687135670df_dep.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/dir_fa454903fff8cd477733ebe28a3468c0.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,62 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/dir_fa454903fff8cd477733ebe28a3468c0_dep.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,2 @@
+<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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/dirs.html	Mon Sep 22 13:01:46 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: Directory Hierarchy</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 class="current"><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<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_b086eb10f854304ab96fb3af468374a7.html">vamp</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;
+<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/doc-overview-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,28 @@
+<!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: doc-overview 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>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;
+<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/doc-overview.html	Mon Sep 22 13:01:46 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: doc-overview 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>doc-overview File Reference</h1>
+<p>
+
+<p>
+<a href="doc-overview-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 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/doxygen.css	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,433 @@
+BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
+	font-family: Geneva, Arial, Helvetica, sans-serif;
+}
+BODY,TD {
+	font-size: 90%;
+}
+H1 {
+	text-align: center;
+	font-size: 160%;
+}
+H2 {
+	font-size: 120%;
+}
+H3 {
+	font-size: 100%;
+}
+CAPTION { 
+	font-weight: bold 
+}
+DIV.qindex {
+	width: 100%;
+	background-color: #e8eef2;
+	border: 1px solid #84b0c7;
+	text-align: center;
+	margin: 2px;
+	padding: 2px;
+	line-height: 140%;
+}
+DIV.navpath {
+	width: 100%;
+	background-color: #e8eef2;
+	border: 1px solid #84b0c7;
+	text-align: center;
+	margin: 2px;
+	padding: 2px;
+	line-height: 140%;
+}
+DIV.navtab {
+       background-color: #e8eef2;
+       border: 1px solid #84b0c7;
+       text-align: center;
+       margin: 2px;
+       margin-right: 15px;
+       padding: 2px;
+}
+TD.navtab {
+       font-size: 70%;
+}
+A.qindex {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D;
+}
+A.qindex:visited {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D
+}
+A.qindex:hover {
+	text-decoration: none;
+	background-color: #ddddff;
+}
+A.qindexHL {
+	text-decoration: none;
+	font-weight: bold;
+	background-color: #6666cc;
+	color: #ffffff;
+	border: 1px double #9295C2;
+}
+A.qindexHL:hover {
+	text-decoration: none;
+	background-color: #6666cc;
+	color: #ffffff;
+}
+A.qindexHL:visited { 
+	text-decoration: none; 
+	background-color: #6666cc; 
+	color: #ffffff 
+}
+A.el { 
+	text-decoration: none; 
+	font-weight: bold 
+}
+A.elRef { 
+	font-weight: bold 
+}
+A.code:link { 
+	text-decoration: none; 
+	font-weight: normal; 
+	color: #0000FF
+}
+A.code:visited { 
+	text-decoration: none; 
+	font-weight: normal; 
+	color: #0000FF
+}
+A.codeRef:link { 
+	font-weight: normal; 
+	color: #0000FF
+}
+A.codeRef:visited { 
+	font-weight: normal; 
+	color: #0000FF
+}
+A:hover { 
+	text-decoration: none; 	
+	background-color: #f2f2ff 
+}
+DL.el { 
+	margin-left: -1cm 
+}
+.fragment {
+       font-family: monospace, fixed;
+       font-size: 95%;
+}
+PRE.fragment {
+	border: 1px solid #CCCCCC;
+	background-color: #f5f5f5;
+	margin-top: 4px;
+	margin-bottom: 4px;
+	margin-left: 2px;
+	margin-right: 8px;
+	padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 4px;
+	padding-bottom: 4px;
+}
+DIV.ah { 
+	background-color: black; 
+	font-weight: bold; 
+	color: #ffffff; 
+	margin-bottom: 3px; 
+	margin-top: 3px 
+}
+
+DIV.groupHeader {
+       margin-left: 16px;
+       margin-top: 12px;
+       margin-bottom: 6px;
+       font-weight: bold;
+}
+DIV.groupText { 
+	margin-left: 16px; 
+	font-style: italic; 
+	font-size: 90% 
+}
+BODY {
+	background: white;
+	color: black;
+	margin-right: 20px;
+	margin-left: 20px;
+}
+TD.indexkey {
+	background-color: #e8eef2;
+	font-weight: bold;
+	padding-right  : 10px;
+	padding-top    : 2px;
+	padding-left   : 10px;
+	padding-bottom : 2px;
+	margin-left    : 0px;
+	margin-right   : 0px;
+	margin-top     : 2px;
+	margin-bottom  : 2px;
+	border: 1px solid #CCCCCC;
+}
+TD.indexvalue {
+	background-color: #e8eef2;
+	font-style: italic;
+	padding-right  : 10px;
+	padding-top    : 2px;
+	padding-left   : 10px;
+	padding-bottom : 2px;
+	margin-left    : 0px;
+	margin-right   : 0px;
+	margin-top     : 2px;
+	margin-bottom  : 2px;
+	border: 1px solid #CCCCCC;
+}
+TR.memlist {
+	background-color: #f0f0f0; 
+}
+P.formulaDsp { 
+	text-align: center; 
+}
+IMG.formulaDsp {
+}
+IMG.formulaInl { 
+	vertical-align: middle; 
+}
+SPAN.keyword       { color: #008000 }
+SPAN.keywordtype   { color: #604020 }
+SPAN.keywordflow   { color: #e08000 }
+SPAN.comment       { color: #800000 }
+SPAN.preprocessor  { color: #806020 }
+SPAN.stringliteral { color: #002080 }
+SPAN.charliteral   { color: #008080 }
+SPAN.vhdldigit     { color: #ff00ff }
+SPAN.vhdlchar      { color: #000000 }
+SPAN.vhdlkeyword   { color: #700070 }
+SPAN.vhdllogic     { color: #ff0000 }
+
+.mdescLeft {
+	padding: 0px 8px 4px 8px;
+	font-size: 80%;
+	font-style: italic;
+	background-color: #FAFAFA;
+	border-top: 1px none #E0E0E0;
+	border-right: 1px none #E0E0E0;
+	border-bottom: 1px none #E0E0E0;
+	border-left: 1px none #E0E0E0;
+	margin: 0px;
+}
+.mdescRight {
+        padding: 0px 8px 4px 8px;
+	font-size: 80%;
+	font-style: italic;
+	background-color: #FAFAFA;
+	border-top: 1px none #E0E0E0;
+	border-right: 1px none #E0E0E0;
+	border-bottom: 1px none #E0E0E0;
+	border-left: 1px none #E0E0E0;
+	margin: 0px;
+}
+.memItemLeft {
+	padding: 1px 0px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: solid;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memItemRight {
+	padding: 1px 8px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: solid;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memTemplItemLeft {
+	padding: 1px 0px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: none;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memTemplItemRight {
+	padding: 1px 8px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: none;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.memTemplParams {
+	padding: 1px 0px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: solid;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	color: #606060;
+	background-color: #FAFAFA;
+	font-size: 80%;
+}
+.search { 
+	color: #003399;
+	font-weight: bold;
+}
+FORM.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+INPUT.search { 
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+TD.tiny { 
+	font-size: 75%;
+}
+a {
+	color: #1A41A8;
+}
+a:visited {
+	color: #2A3798;
+}
+.dirtab { 
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #84b0c7;
+}
+TH.dirtab { 
+	background: #e8eef2;
+	font-weight: bold;
+}
+HR { 
+	height: 1px;
+	border: none;
+	border-top: 1px solid black;
+}
+
+/* Style for detailed member documentation */
+.memtemplate {
+	font-size: 80%;
+	color: #606060;
+	font-weight: normal;
+	margin-left: 3px;
+} 
+.memnav { 
+	background-color: #e8eef2;
+	border: 1px solid #84b0c7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+.memitem {
+	padding: 4px;
+	background-color: #eef3f5;
+	border-width: 1px;
+	border-style: solid;
+	border-color: #dedeee;
+	-moz-border-radius: 8px 8px 8px 8px;
+}
+.memname {
+	white-space: nowrap;
+	font-weight: bold;
+}
+.memdoc{
+	padding-left: 10px;
+}
+.memproto {
+	background-color: #d5e1e8;
+	width: 100%;
+	border-width: 1px;
+	border-style: solid;
+	border-color: #84b0c7;
+	font-weight: bold;
+	-moz-border-radius: 8px 8px 8px 8px;
+}
+.paramkey {
+	text-align: right;
+}
+.paramtype {
+	white-space: nowrap;
+}
+.paramname {
+	color: #602020;
+	font-style: italic;
+	white-space: nowrap;
+}
+/* End Styling for detailed member documentation */
+
+/* for the tree view */
+.ftvtree {
+	font-family: sans-serif;
+	margin:0.5em;
+}
+.directory { 
+	font-size: 9pt; 
+	font-weight: bold; 
+}
+.directory h3 { 
+	margin: 0px; 
+	margin-top: 1em; 
+	font-size: 11pt; 
+}
+.directory > h3 { 
+	margin-top: 0; 
+}
+.directory p { 
+	margin: 0px; 
+	white-space: nowrap; 
+}
+.directory div { 
+	display: none; 
+	margin: 0px; 
+}
+.directory img { 
+	vertical-align: -30%; 
+}
+
Binary file code-doc/doxygen.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/files.html	Mon Sep 22 13:01:46 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: File Index</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="tabs">
+    <ul>
+      <li class="current"><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>File List</h1>Here is a list of all files with brief descriptions:<table>
+  <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="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="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="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="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="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-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;
+<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>
Binary file code-doc/ftv2blank.png has changed
Binary file code-doc/ftv2doc.png has changed
Binary file code-doc/ftv2folderclosed.png has changed
Binary file code-doc/ftv2folderopen.png has changed
Binary file code-doc/ftv2lastnode.png has changed
Binary file code-doc/ftv2link.png has changed
Binary file code-doc/ftv2mlastnode.png has changed
Binary file code-doc/ftv2mnode.png has changed
Binary file code-doc/ftv2node.png has changed
Binary file code-doc/ftv2plastnode.png has changed
Binary file code-doc/ftv2pnode.png has changed
Binary file code-doc/ftv2vertline.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,91 @@
+<!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 class="current"><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><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_a">- a -</a></h3><ul>
+<li>ADAPT_ALL
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34943b1e08415c0cbc96f7900eac955ad6d0">Vamp::HostExt::PluginLoader</a>
+<li>ADAPT_ALL_SAFE
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34948220529e851ae30d37f413c40a389e08">Vamp::HostExt::PluginLoader</a>
+<li>ADAPT_BUFFER_SIZE
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34945c0c389797922630a6b54ffd1eed21f1">Vamp::HostExt::PluginLoader</a>
+<li>ADAPT_CHANNEL_COUNT
+: <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>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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_0x62.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,81 @@
+<!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 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>
+      <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_b">- b -</a></h3><ul>
+<li>binCount
+: <a class="el" href="struct__VampOutputDescriptor.html#652ee422092720e44d23d98bdb68f978">_VampOutputDescriptor</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc">Vamp::Plugin::OutputDescriptor</a>
+<li>binNames
+: <a class="el" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447">_VampOutputDescriptor</a>
+, <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;
+<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/functions_0x63.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,91 @@
+<!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 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>
+      <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_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="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>
+<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>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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_0x64.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,86 @@
+<!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 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>
+      <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_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>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__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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_0x65.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,77 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_0x66.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,97 @@
+<!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 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>
+      <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_f">- f -</a></h3><ul>
+<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>
+<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>frame2RealTime()
+: <a class="el" href="structVamp_1_1RealTime.html#3a5ecc8888b559aad3b7d96911786b3a">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>
+<li>fromSeconds()
+: <a class="el" href="structVamp_1_1RealTime.html#754901a59483036097d8111b8c02f4f3">Vamp::RealTime</a>
+<li>fromTimeval()
+: <a class="el" href="structVamp_1_1RealTime.html#ffdd22eee09b38335d3133c0e9a8f7b3">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;
+<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/functions_0x67.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,239 @@
+<!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 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>
+      <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_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>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="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="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="classPercussionOnsetDetector.html#9061d189705802a48973a7ccab6360db">PercussionOnsetDetector</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>
+<li>getIdentifier()
+: <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="classPercussionOnsetDetector.html#267c83a7533146c127e2c3be310e0154">PercussionOnsetDetector</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="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>
+, <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>
+<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>
+<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="classPercussionOnsetDetector.html#63d63f2cb7ea8d8b09d58cc13b541375">PercussionOnsetDetector</a>
+, <a class="el" href="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8">SpectralCentroid</a>
+, <a class="el" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a">ZeroCrossing</a>
+<li>getMaxChannelCount
+: <a class="el" href="struct__VampPluginDescriptor.html#d1600203418d9646332f5b917284261b">_VampPluginDescriptor</a>
+, <a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">Vamp::Plugin</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">Vamp::HostExt::PluginWrapper</a>
+<li>getMinChannelCount
+: <a class="el" href="struct__VampPluginDescriptor.html#f175ca17716db5a7545b61b01caabd92">_VampPluginDescriptor</a>
+, <a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">Vamp::Plugin</a>
+, <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_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="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="classPercussionOnsetDetector.html#a4537aa0eb58a67d6e824d46924cf782">PercussionOnsetDetector</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="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="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="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">AmplitudeFollower</a>
+, <a class="el" href="classPercussionOnsetDetector.html#bceae88cc9762b0ea310d7aad71de815">PercussionOnsetDetector</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>
+<li>getPluginPath()
+: <a class="el" href="classVamp_1_1PluginHostAdapter.html#08d7ed3a11bf4a3c30fa0f9b41a0fed6">Vamp::PluginHostAdapter</a>
+<li>getPluginVersion()
+: <a class="el" href="classAmplitudeFollower.html#8a5d7a834eb996d517c51f84b2a72250">AmplitudeFollower</a>
+, <a class="el" href="classSpectralCentroid.html#f64622e66bf678ac2b0b58aa832ca2b3">SpectralCentroid</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="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_1PluginWrapper.html#2c62a656313a819650656643a867ad01">Vamp::HostExt::PluginWrapper</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="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">Vamp::Plugin</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>
+<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>
+<li>getRemainingFeatures()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#1dce55a75a32b08fc56a52a300d9fcbe">Vamp::HostExt::PluginWrapper</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>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_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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_0x68.html	Mon Sep 22 13:01:46 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: 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 class="current"><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_h">- h -</a></h3><ul>
+<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>
+<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;
+<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/functions_0x69.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,115 @@
+<!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 class="current"><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_i">- i -</a></h3><ul>
+<li>identifier
+: <a class="el" href="struct__VampParameterDescriptor.html#26d74afd6a3341a673f15955031845ab">_VampParameterDescriptor</a>
+, <a class="el" href="struct__VampOutputDescriptor.html#461161b2010370176115967e4f58a5f5">_VampOutputDescriptor</a>
+, <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="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="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_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__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;
+<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/functions_0x6c.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,92 @@
+<!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 class="current"><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_l">- l -</a></h3><ul>
+<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>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>
+<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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_0x6d.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,218 @@
+<!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 class="current"><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_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="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>
+<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_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>
+<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_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_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>
+<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>
+<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>
+<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>
+<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_stepSize
+: <a class="el" href="classZeroCrossing.html#584f100b87c78f9af9da040d79567d52">ZeroCrossing</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="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_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>maxValue
+: <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>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="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8">Vamp::PluginBase::ParameterDescriptor</a>
+, <a class="el" href="struct__VampOutputDescriptor.html#9a28180989e3d028c12a98517479dc46">_VampOutputDescriptor</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;
+<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/functions_0x6e.html	Mon Sep 22 13:01:46 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: 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 class="current"><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_n">- n -</a></h3><ul>
+<li>name
+: <a class="el" href="struct__VampParameterDescriptor.html#bba810bce9656f6002777f6c3f655957">_VampParameterDescriptor</a>
+, <a class="el" href="struct__VampOutputDescriptor.html#f4fca576bd47167fd2bf9b43d588815f">_VampOutputDescriptor</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87">Vamp::Plugin::OutputDescriptor</a>
+, <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#0ecebb94fb4ada4aad2640e20aa57084">Vamp::PluginBase::ParameterDescriptor</a>
+, <a class="el" href="struct__VampPluginDescriptor.html#9dd5a0190e4d453ff36b5acb7000b150">_VampPluginDescriptor</a>
+<li>nsec
+: <a class="el" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">Vamp::RealTime</a>
+, <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;
+<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/functions_0x6f.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,102 @@
+<!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 class="current"><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_o">- o -</a></h3><ul>
+<li>OneSamplePerStep
+: <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca">Vamp::Plugin::OutputDescriptor</a>
+<li>operator!=()
+: <a class="el" href="structVamp_1_1RealTime.html#e9b0ea7c217163d5327b1a2a0662a90b">Vamp::RealTime</a>
+<li>operator+()
+: <a class="el" href="structVamp_1_1RealTime.html#6b74748d1eb4c3c751e7a12aefae0bde">Vamp::RealTime</a>
+<li>operator-()
+: <a class="el" href="structVamp_1_1RealTime.html#f0360b5b0d23a464025a6823912c6291">Vamp::RealTime</a>
+<li>operator/()
+: <a class="el" href="structVamp_1_1RealTime.html#c88cda961da5cb728d823b29c5456c06">Vamp::RealTime</a>
+<li>operator&lt;()
+: <a class="el" href="structVamp_1_1RealTime.html#78e378a5dd0137a6514dca18edda6f9a">Vamp::RealTime</a>
+<li>operator&lt;=()
+: <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>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;
+<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/functions_0x70.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,141 @@
+<!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 class="current"><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_p">- p -</a></h3><ul>
+<li>parameterCount
+: <a class="el" href="struct__VampPluginDescriptor.html#e6271dc3ea0cea959c84a64185492cab">_VampPluginDescriptor</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()
+: <a class="el" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Vamp::Plugin</a>
+<li>PluginAdapter()
+: <a class="el" href="classVamp_1_1PluginAdapter.html#16312efd629b7063d7b6d67889a2c15a">Vamp::PluginAdapter&lt; P &gt;</a>
+<li>PluginAdapterBase()
+: <a class="el" href="classVamp_1_1PluginAdapterBase.html#5dad6a9b4b170c0f284962e125ac988e">Vamp::PluginAdapterBase</a>
+<li>PluginBufferingAdapter()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#1276bcfcbe1414b33eeefbd7b2b702fe">Vamp::HostExt::PluginBufferingAdapter</a>
+<li>PluginCategoryHierarchy
+: <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()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#878e7275acdb77efc7a802944305039d">Vamp::HostExt::PluginInputDomainAdapter</a>
+<li>PluginKey
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">Vamp::HostExt::PluginLoader</a>
+<li>PluginKeyList
+: <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>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>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="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="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>programCount
+: <a class="el" href="struct__VampPluginDescriptor.html#1962666aa173e7a9a2c30dc82e4b2e00">_VampPluginDescriptor</a>
+<li>ProgramList
+: <a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">Vamp::PluginBase</a>
+<li>programs
+: <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;
+<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/functions_0x71.html	Mon Sep 22 13:01:46 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: 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 class="current"><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_q">- q -</a></h3><ul>
+<li>quantizeStep
+: <a class="el" href="struct__VampParameterDescriptor.html#68c91fd3fc0b0b3617c2d343fe32d0e5">_VampParameterDescriptor</a>
+, <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#01f8387e7c853d5e4e35d4e9a37353d7">Vamp::PluginBase::ParameterDescriptor</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#3bed37153067b625b95acb40b60dbf0b">Vamp::Plugin::OutputDescriptor</a>
+, <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;
+<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/functions_0x72.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,103 @@
+<!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 class="current"><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_r">- r -</a></h3><ul>
+<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>
+<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="classSpectralCentroid.html#9b5f5581691ff8f46bb7674d8d74395c">SpectralCentroid</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;
+<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/functions_0x73.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,108 @@
+<!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 class="current"><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_s">- s -</a></h3><ul>
+<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>
+<li>sampleType
+: <a class="el" href="struct__VampOutputDescriptor.html#5da1d27cc99badc214640e859b882072">_VampOutputDescriptor</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d">Vamp::Plugin::OutputDescriptor</a>
+<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>
+<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_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="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classAmplitudeFollower.html#e1fc37ece4d20e40f3066a3361a99340">AmplitudeFollower</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>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;
+<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/functions_0x74.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,83 @@
+<!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 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>TimeDomain
+: <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">Vamp::Plugin</a>
+<li>timestamp
+: <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7">Vamp::Plugin::Feature</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;
+<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/functions_0x75.html	Mon Sep 22 13:01:46 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: 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 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:
+<p>
+<h3><a class="anchor" name="index_u">- u -</a></h3><ul>
+<li>unit
+: <a class="el" href="struct__VampParameterDescriptor.html#8ca235f816b56dc99125e010eee08fc7">_VampParameterDescriptor</a>
+, <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>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;
+<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/functions_0x76.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,123 @@
+<!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 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>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>
+<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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_0x77.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,77 @@
+<!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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_0x7a.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,81 @@
+<!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><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;
+<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/functions_0x7e.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,115 @@
+<!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><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:
+<p>
+<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>~PercussionOnsetDetector()
+: <a class="el" href="classPercussionOnsetDetector.html#99f833667cf8185e879d735216c7642b">PercussionOnsetDetector</a>
+<li>~Plugin()
+: <a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">Vamp::Plugin</a>
+<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>
+<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>
+<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>
+<li>~PluginHostAdapter()
+: <a class="el" href="classVamp_1_1PluginHostAdapter.html#b0f354cb332852ab1892488f6b8e8c0e">Vamp::PluginHostAdapter</a>
+<li>~PluginInputDomainAdapter()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ec457c952155adf516dd8e3dc7739321">Vamp::HostExt::PluginInputDomainAdapter</a>
+<li>~PluginLoader()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#9e092d864efdc0f16c032bfb25e76dea">Vamp::HostExt::PluginLoader</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>
+<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;
+<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/functions_enum.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,52 @@
+<!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 - Enumerations</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><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 class="current"><a href="functions_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="functions_eval.html"><span>Enumerator</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<ul>
+<li>AdapterFlags
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe3494">Vamp::HostExt::PluginLoader</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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_eval.html	Mon Sep 22 13:01:46 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: Class Members - Enumerator</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><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 class="current"><a href="functions_eval.html"><span>Enumerator</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<ul>
+<li>ADAPT_ALL
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34943b1e08415c0cbc96f7900eac955ad6d0">Vamp::HostExt::PluginLoader</a>
+<li>ADAPT_ALL_SAFE
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34948220529e851ae30d37f413c40a389e08">Vamp::HostExt::PluginLoader</a>
+<li>ADAPT_BUFFER_SIZE
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#ff3ee11692ce25e0dfb904324cbe34945c0c389797922630a6b54ffd1eed21f1">Vamp::HostExt::PluginLoader</a>
+<li>ADAPT_CHANNEL_COUNT
+: <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>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>OneSamplePerStep
+: <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca">Vamp::Plugin::OutputDescriptor</a>
+<li>TimeDomain
+: <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">Vamp::Plugin</a>
+<li>VariableSampleRate
+: <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e">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;
+<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/functions_func.html	Mon Sep 22 13:01:46 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: 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 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>
+      <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_a">- a -</a></h3><ul>
+<li>AmplitudeFollower()
+: <a class="el" href="classAmplitudeFollower.html#29eaeffc353da2614ae508abcd0ab63f">AmplitudeFollower</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_func_0x63.html	Mon Sep 22 13:01:46 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: 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 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>
+      <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_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>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>
+<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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_func_0x64.html	Mon Sep 22 13:01:46 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: 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 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>
+      <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_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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_func_0x65.html	Mon Sep 22 13:01:46 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: 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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_func_0x66.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,81 @@
+<!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 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>
+      <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_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>frame2RealTime()
+: <a class="el" href="structVamp_1_1RealTime.html#3a5ecc8888b559aad3b7d96911786b3a">Vamp::RealTime</a>
+<li>fromMilliseconds()
+: <a class="el" href="structVamp_1_1RealTime.html#512ca91f967c1d7923456f426926a9f6">Vamp::RealTime</a>
+<li>fromSeconds()
+: <a class="el" href="structVamp_1_1RealTime.html#754901a59483036097d8111b8c02f4f3">Vamp::RealTime</a>
+<li>fromTimeval()
+: <a class="el" href="structVamp_1_1RealTime.html#ffdd22eee09b38335d3133c0e9a8f7b3">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;
+<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/functions_func_0x67.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,226 @@
+<!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 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>
+      <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_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>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="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="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="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>
+<li>getIdentifier()
+: <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="classPercussionOnsetDetector.html#267c83a7533146c127e2c3be310e0154">PercussionOnsetDetector</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="classPercussionOnsetDetector.html#4f6954267696ee5bfa7dd1c4a6cfa92a">PercussionOnsetDetector</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>
+<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>
+<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="classPercussionOnsetDetector.html#63d63f2cb7ea8d8b09d58cc13b541375">PercussionOnsetDetector</a>
+, <a class="el" href="classSpectralCentroid.html#c01ff858bf67e2e93ad5d24a6ba8c8c8">SpectralCentroid</a>
+, <a class="el" href="classZeroCrossing.html#c68561634a3c329a029c2fd3deaeae2a">ZeroCrossing</a>
+<li>getMaxChannelCount()
+: <a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">Vamp::Plugin</a>
+, <a class="el" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0">Vamp::PluginHostAdapter</a>
+, <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#985eb21f1827bfbc3950d6871b107a58">Vamp::HostExt::PluginWrapper</a>
+<li>getMinChannelCount()
+: <a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">Vamp::Plugin</a>
+, <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_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="classAmplitudeFollower.html#043e3c3db77d76267cd8069e1485bf26">AmplitudeFollower</a>
+, <a class="el" href="classPercussionOnsetDetector.html#a4537aa0eb58a67d6e824d46924cf782">PercussionOnsetDetector</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_1HostExt_1_1PluginWrapper.html#034920f56c8d7609a85447c42556048c">Vamp::HostExt::PluginWrapper</a>
+, <a class="el" href="classAmplitudeFollower.html#b278c4b6f2ca23248dc94ad775273f39">AmplitudeFollower</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="classAmplitudeFollower.html#9df01323a09e117bc12354ebe9244edf">AmplitudeFollower</a>
+, <a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">Vamp::PluginBase</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>
+<li>getPluginPath()
+: <a class="el" href="classVamp_1_1PluginHostAdapter.html#08d7ed3a11bf4a3c30fa0f9b41a0fed6">Vamp::PluginHostAdapter</a>
+<li>getPluginVersion()
+: <a class="el" href="classPercussionOnsetDetector.html#d6b818dbd81867ce7be71c99cae861be">PercussionOnsetDetector</a>
+, <a class="el" href="classZeroCrossing.html#d685f6c2f443f07a1634550c335571eb">ZeroCrossing</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>
+<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_1Plugin.html#a529adf83f87a603954eb31407602aac">Vamp::Plugin</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_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_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>
+<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_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="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>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_1HostExt_1_1PluginWrapper.html#74147fda6b44ff2169bd4a1eea0d46ff">Vamp::HostExt::PluginWrapper</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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_func_0x69.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,93 @@
+<!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 class="current"><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_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_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="classSpectralCentroid.html#ab1ae16f5c68e2b319668f447908cedb">SpectralCentroid</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;
+<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/functions_func_0x6c.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,85 @@
+<!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 class="current"><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_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>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>
+<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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_func_0x6d.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,75 @@
+<!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 class="current"><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_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;
+<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/functions_func_0x6f.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,92 @@
+<!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 class="current"><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_o">- o -</a></h3><ul>
+<li>operator!=()
+: <a class="el" href="structVamp_1_1RealTime.html#e9b0ea7c217163d5327b1a2a0662a90b">Vamp::RealTime</a>
+<li>operator+()
+: <a class="el" href="structVamp_1_1RealTime.html#6b74748d1eb4c3c751e7a12aefae0bde">Vamp::RealTime</a>
+<li>operator-()
+: <a class="el" href="structVamp_1_1RealTime.html#f62915355c482f2e1611a52a7f17f5ed">Vamp::RealTime</a>
+<li>operator/()
+: <a class="el" href="structVamp_1_1RealTime.html#c88cda961da5cb728d823b29c5456c06">Vamp::RealTime</a>
+<li>operator&lt;()
+: <a class="el" href="structVamp_1_1RealTime.html#78e378a5dd0137a6514dca18edda6f9a">Vamp::RealTime</a>
+<li>operator&lt;=()
+: <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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_func_0x70.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,116 @@
+<!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 class="current"><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_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>PercussionOnsetDetector()
+: <a class="el" href="classPercussionOnsetDetector.html#9f700579805ee5105758d847baab3511">PercussionOnsetDetector</a>
+<li>Plugin()
+: <a class="el" href="classVamp_1_1Plugin.html#1b78c4f46c72ef345ed27f0b9bf20ac9">Vamp::Plugin</a>
+<li>PluginAdapter()
+: <a class="el" href="classVamp_1_1PluginAdapter.html#16312efd629b7063d7b6d67889a2c15a">Vamp::PluginAdapter&lt; P &gt;</a>
+<li>PluginAdapterBase()
+: <a class="el" href="classVamp_1_1PluginAdapterBase.html#5dad6a9b4b170c0f284962e125ac988e">Vamp::PluginAdapterBase</a>
+<li>PluginBufferingAdapter()
+: <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>PluginWrapper()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#35cc2d42f8322f5022e89859a79c97be">Vamp::HostExt::PluginWrapper</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_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</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="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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_func_0x72.html	Mon Sep 22 13:01:46 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: 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 class="current"><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_r">- r -</a></h3><ul>
+<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>
+<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="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#131fd9fe8a1795d7370d8a721176868a">Vamp::HostExt::PluginBufferingAdapter</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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_func_0x73.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,91 @@
+<!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 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;
+<p>
+<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_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="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>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;
+<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/functions_func_0x74.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,75 @@
+<!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 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>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;
+<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/functions_func_0x75.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,75 @@
+<!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 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;
+<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/functions_func_0x76.html	Mon Sep 22 13:01:46 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: 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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_func_0x77.html	Mon Sep 22 13:01:46 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: 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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_func_0x7a.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,75 @@
+<!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><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;
+<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/functions_func_0x7e.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,111 @@
+<!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><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;
+<p>
+<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>~PercussionOnsetDetector()
+: <a class="el" href="classPercussionOnsetDetector.html#99f833667cf8185e879d735216c7642b">PercussionOnsetDetector</a>
+<li>~Plugin()
+: <a class="el" href="classVamp_1_1Plugin.html#42d3096f9c1f58b1876024cd8d9ab80b">Vamp::Plugin</a>
+<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>
+<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>
+<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>
+<li>~PluginHostAdapter()
+: <a class="el" href="classVamp_1_1PluginHostAdapter.html#b0f354cb332852ab1892488f6b8e8c0e">Vamp::PluginHostAdapter</a>
+<li>~PluginInputDomainAdapter()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#ec457c952155adf516dd8e3dc7739321">Vamp::HostExt::PluginInputDomainAdapter</a>
+<li>~PluginLoader()
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#9e092d864efdc0f16c032bfb25e76dea">Vamp::HostExt::PluginLoader</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>
+<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;
+<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/functions_type.html	Mon Sep 22 13:01:46 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: Class Members - Typedefs</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><a href="functions_func.html"><span>Functions</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+      <li class="current"><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>
+<div class="contents">
+&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
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#d6a39aa0c79d8d9209eb0b8dfe9d1364">Vamp::HostExt::PluginLoader</a>
+<li>PluginKey
+: <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#473645bbb3ac5c1a0da2f0f482947c4d">Vamp::HostExt::PluginLoader</a>
+<li>PluginKeyList
+: <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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/functions_vars.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,377 @@
+<!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 - Variables</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><a href="functions_func.html"><span>Functions</span></a></li>
+      <li class="current"><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="#index_b"><span>b</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_f"><span>f</span></a></li>
+      <li><a href="#index_g"><span>g</span></a></li>
+      <li><a href="#index_h"><span>h</span></a></li>
+      <li><a href="#index_i"><span>i</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_n"><span>n</span></a></li>
+      <li><a href="#index_p"><span>p</span></a></li>
+      <li><a href="#index_q"><span>q</span></a></li>
+      <li><a href="#index_r"><span>r</span></a></li>
+      <li><a href="#index_s"><span>s</span></a></li>
+      <li><a href="#index_t"><span>t</span></a></li>
+      <li><a href="#index_u"><span>u</span></a></li>
+      <li><a href="#index_v"><span>v</span></a></li>
+      <li><a href="#index_z"><span>z</span></a></li>
+    </ul>
+  </div>
+
+<p>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<h3><a class="anchor" name="index_b">- b -</a></h3><ul>
+<li>binCount
+: <a class="el" href="struct__VampOutputDescriptor.html#652ee422092720e44d23d98bdb68f978">_VampOutputDescriptor</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc">Vamp::Plugin::OutputDescriptor</a>
+<li>binNames
+: <a class="el" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447">_VampOutputDescriptor</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#31d9b79e2d8241344f551a22fcb5c8c7">Vamp::Plugin::OutputDescriptor</a>
+</ul>
+<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
+<li>cleanup
+: <a class="el" href="struct__VampPluginDescriptor.html#0e4522c33e59c3c518b9262f2477bc27">_VampPluginDescriptor</a>
+<li>copyright
+: <a class="el" href="struct__VampPluginDescriptor.html#e704bba384af0de056a26da1b13ee521">_VampPluginDescriptor</a>
+</ul>
+<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
+<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="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1">Vamp::Plugin::OutputDescriptor</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="struct__VampParameterDescriptor.html#95489272d6cf5a5b487e949da8e4fac6">_VampParameterDescriptor</a>
+, <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#780ddad41e433d85c82f9ea4d959cbaf">Vamp::PluginBase::ParameterDescriptor</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>
+</ul>
+<h3><a class="anchor" name="index_g">- g -</a></h3><ul>
+<li>getCurrentProgram
+: <a class="el" href="struct__VampPluginDescriptor.html#861a77525a95d424cb846820b018af53">_VampPluginDescriptor</a>
+<li>getMaxChannelCount
+: <a class="el" href="struct__VampPluginDescriptor.html#d1600203418d9646332f5b917284261b">_VampPluginDescriptor</a>
+<li>getMinChannelCount
+: <a class="el" href="struct__VampPluginDescriptor.html#f175ca17716db5a7545b61b01caabd92">_VampPluginDescriptor</a>
+<li>getOutputCount
+: <a class="el" href="struct__VampPluginDescriptor.html#a8fc88da704e24b2b5f674821dd380c1">_VampPluginDescriptor</a>
+<li>getOutputDescriptor
+: <a class="el" href="struct__VampPluginDescriptor.html#92c58b8ff99ad0c23a42333aa55c144d">_VampPluginDescriptor</a>
+<li>getParameter
+: <a class="el" href="struct__VampPluginDescriptor.html#07174981875b55ee2ec7521a7f4fc395">_VampPluginDescriptor</a>
+<li>getPreferredBlockSize
+: <a class="el" href="struct__VampPluginDescriptor.html#c626e42554ab1532c8d8b5132a0faee8">_VampPluginDescriptor</a>
+<li>getPreferredStepSize
+: <a class="el" href="struct__VampPluginDescriptor.html#2beddf2ce156c05dd24477ac663adcbb">_VampPluginDescriptor</a>
+<li>getRemainingFeatures
+: <a class="el" href="struct__VampPluginDescriptor.html#d22c666188aadab83c354a0edb18fcf0">_VampPluginDescriptor</a>
+</ul>
+<h3><a class="anchor" name="index_h">- h -</a></h3><ul>
+<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>
+<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>
+<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
+<li>identifier
+: <a class="el" href="struct__VampParameterDescriptor.html#26d74afd6a3341a673f15955031845ab">_VampParameterDescriptor</a>
+, <a class="el" href="struct__VampOutputDescriptor.html#461161b2010370176115967e4f58a5f5">_VampOutputDescriptor</a>
+, <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>initialise
+: <a class="el" href="struct__VampPluginDescriptor.html#d0978f17a5e568079470a1978a9aad22">_VampPluginDescriptor</a>
+<li>inputDomain
+: <a class="el" href="struct__VampPluginDescriptor.html#ffc4d1796da7ced2c0cbb2cc2c4a22f4">_VampPluginDescriptor</a>
+<li>instantiate
+: <a class="el" href="struct__VampPluginDescriptor.html#19c4ce36fdeb88eeedb539efc544b8ee">_VampPluginDescriptor</a>
+<li>isQuantized
+: <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1b4858928d23bfd7d5bc557c82a83fb4">Vamp::Plugin::OutputDescriptor</a>
+, <a class="el" href="struct__VampOutputDescriptor.html#b56cf0bbb17136819024574d5cc65e30">_VampOutputDescriptor</a>
+, <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#7c556d58d552f737ee5a34efdf7f9425">Vamp::PluginBase::ParameterDescriptor</a>
+, <a class="el" href="struct__VampParameterDescriptor.html#3f41e3b6b69c7a95ff0ce8625794f83a">_VampParameterDescriptor</a>
+</ul>
+<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
+<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>
+</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="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>
+<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_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>
+<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_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_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>
+<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>
+<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>
+<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>
+<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_stepSize
+: <a class="el" href="classPercussionOnsetDetector.html#abac0cf7e961482b075777e5f0686e6c">PercussionOnsetDetector</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_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="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>
+<li>minValue
+: <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8">Vamp::PluginBase::ParameterDescriptor</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="struct__VampParameterDescriptor.html#b59c84f0bbe0d4d0c578d893c087b0db">_VampParameterDescriptor</a>
+</ul>
+<h3><a class="anchor" name="index_n">- n -</a></h3><ul>
+<li>name
+: <a class="el" href="struct__VampParameterDescriptor.html#bba810bce9656f6002777f6c3f655957">_VampParameterDescriptor</a>
+, <a class="el" href="struct__VampOutputDescriptor.html#f4fca576bd47167fd2bf9b43d588815f">_VampOutputDescriptor</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87">Vamp::Plugin::OutputDescriptor</a>
+, <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#0ecebb94fb4ada4aad2640e20aa57084">Vamp::PluginBase::ParameterDescriptor</a>
+, <a class="el" href="struct__VampPluginDescriptor.html#9dd5a0190e4d453ff36b5acb7000b150">_VampPluginDescriptor</a>
+<li>nsec
+: <a class="el" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">Vamp::RealTime</a>
+, <a class="el" href="struct__VampFeature.html#8874cb23600c6b10ca6e8a40920d999e">_VampFeature</a>
+</ul>
+<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
+<li>parameterCount
+: <a class="el" href="struct__VampPluginDescriptor.html#e6271dc3ea0cea959c84a64185492cab">_VampPluginDescriptor</a>
+<li>parameters
+: <a class="el" href="struct__VampPluginDescriptor.html#64d614862604c31d6b84c49005f51913">_VampPluginDescriptor</a>
+<li>pluginVersion
+: <a class="el" href="struct__VampPluginDescriptor.html#04427c420d9252c7796c0bf5101345ae">_VampPluginDescriptor</a>
+<li>process
+: <a class="el" href="struct__VampPluginDescriptor.html#c5a0a75b6e68b22fed536765d1f2f254">_VampPluginDescriptor</a>
+<li>programCount
+: <a class="el" href="struct__VampPluginDescriptor.html#1962666aa173e7a9a2c30dc82e4b2e00">_VampPluginDescriptor</a>
+<li>programs
+: <a class="el" href="struct__VampPluginDescriptor.html#d488470c582d8472d86455889d71c5ec">_VampPluginDescriptor</a>
+</ul>
+<h3><a class="anchor" name="index_q">- q -</a></h3><ul>
+<li>quantizeStep
+: <a class="el" href="struct__VampParameterDescriptor.html#68c91fd3fc0b0b3617c2d343fe32d0e5">_VampParameterDescriptor</a>
+, <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#01f8387e7c853d5e4e35d4e9a37353d7">Vamp::PluginBase::ParameterDescriptor</a>
+, <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#3bed37153067b625b95acb40b60dbf0b">Vamp::Plugin::OutputDescriptor</a>
+, <a class="el" href="struct__VampOutputDescriptor.html#71aa40222dda4321030cccd0bb655fe3">_VampOutputDescriptor</a>
+</ul>
+<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
+<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="struct__VampPluginDescriptor.html#12267f6b506aeda3792ff7c982b02336">_VampPluginDescriptor</a>
+</ul>
+<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
+<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>
+<li>sampleType
+: <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d">Vamp::Plugin::OutputDescriptor</a>
+, <a class="el" href="struct__VampOutputDescriptor.html#5da1d27cc99badc214640e859b882072">_VampOutputDescriptor</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>
+<li>selectProgram
+: <a class="el" href="struct__VampPluginDescriptor.html#d9af40cb165ca187e49250964af5f5cf">_VampPluginDescriptor</a>
+<li>setParameter
+: <a class="el" href="struct__VampPluginDescriptor.html#ad3cfc7a3b432df40bd9db13eee6a481">_VampPluginDescriptor</a>
+</ul>
+<h3><a class="anchor" name="index_t">- t -</a></h3><ul>
+<li>timestamp
+: <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#caa605f36839c07e76f4882f5e22d8d7">Vamp::Plugin::Feature</a>
+</ul>
+<h3><a class="anchor" name="index_u">- u -</a></h3><ul>
+<li>unit
+: <a class="el" href="struct__VampParameterDescriptor.html#8ca235f816b56dc99125e010eee08fc7">_VampParameterDescriptor</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>
+, <a class="el" href="struct__VampOutputDescriptor.html#d038caa8e596dfd037035637202f1d63">_VampOutputDescriptor</a>
+</ul>
+<h3><a class="anchor" name="index_v">- v -</a></h3><ul>
+<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>
+<li>vampApiVersion
+: <a class="el" href="struct__VampPluginDescriptor.html#b6c87760e87ddaa9ac3491bccaaa28c2">_VampPluginDescriptor</a>
+</ul>
+<h3><a class="anchor" name="index_z">- z -</a></h3><ul>
+<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;
+<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/globals.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,191 @@
+<!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><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="#index_a"><span>a</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>
+      <li><a href="#index_t"><span>t</span></a></li>
+      <li><a href="#index_u"><span>u</span></a></li>
+      <li><a href="#index_v"><span>v</span></a></li>
+      <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">- a -</a></h3><ul>
+<li>amplitudeAdapter
+: <a class="el" href="plugins_8cpp.html#4e60bb6a99451da5deb18b969e6b16cd">plugins.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>DLCLOSE
+: <a class="el" href="system_8h.html#1defcae089d0d937682cc78981a0ef99">system.h</a>
+<li>DLERROR
+: <a class="el" href="system_8h.html#690562dc6c92cb811f90e8391bfeb801">system.h</a>
+<li>DLOPEN
+: <a class="el" href="system_8h.html#0a14867c4f7ccec2b5a804bd0fd66a53">system.h</a>
+<li>DLSYM
+: <a class="el" href="system_8h.html#4e0f5c42b68801054532c293169317d8">system.h</a>
+</ul>
+<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
+<li>enumeratePlugins()
+: <a class="el" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">vamp-simple-host.cpp</a>
+</ul>
+<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>
+</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>HOST_VERSION
+: <a class="el" href="vamp-simple-host_8cpp.html#a8bc193818940a8954ef0e0e5a8e16d6">vamp-simple-host.cpp</a>
+</ul>
+<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
+<li>listPluginsInLibrary()
+: <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>PluginOutputIds
+: <a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e">vamp-simple-host.cpp</a>
+<li>printFeatures()
+: <a class="el" href="vamp-simple-host_8cpp.html#81f8bc89ed9194159bfb1f2b4d7a7ac4">vamp-simple-host.cpp</a>
+<li>printPluginCategoryList()
+: <a class="el" href="vamp-simple-host_8cpp.html#f771864c41f23e5755ed99e8ac6609a5">vamp-simple-host.cpp</a>
+<li>printPluginPath()
+: <a class="el" href="vamp-simple-host_8cpp.html#4767f8c142ee0b61ba414df1b0376a01">vamp-simple-host.cpp</a>
+</ul>
+<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
+<li>runPlugin()
+: <a class="el" href="vamp-simple-host_8cpp.html#54e0185f4b6ff507cb42c29a04f76397">vamp-simple-host.cpp</a>
+</ul>
+<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>transformInput()
+: <a class="el" href="vamp-simple-host_8cpp.html#e610372882497afdeaf180a7e53eb00b">vamp-simple-host.cpp</a>
+</ul>
+<h3><a class="anchor" name="index_u">- u -</a></h3><ul>
+<li>usage()
+: <a class="el" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">vamp-simple-host.cpp</a>
+</ul>
+<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_VERSION
+: <a class="el" href="PluginBase_8h.html#9b7a8e1ac1c91366bec5f2f33c137a2f">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>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>
+<li>VampGetPluginDescriptorFunction
+: <a class="el" href="vamp_8h.html#551bb7e0d8c970c2202be5f881817478">vamp.h</a>
+<li>VampInputDomain
+: <a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765">vamp.h</a>
+<li>vampOneSamplePerStep
+: <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821b546deafd57f175fb1e7f9cbea1c5113">vamp.h</a>
+<li>VampOutputDescriptor
+: <a class="el" href="vamp_8h.html#a8429dd9c60d65800c58574c2b06bf66">vamp.h</a>
+<li>VampParameterDescriptor
+: <a class="el" href="vamp_8h.html#e26a9d54a92f1c083a1b209a25a8e44e">vamp.h</a>
+<li>VampPluginDescriptor
+: <a class="el" href="vamp_8h.html#a1d6e0792099b9516a89b5fb7ed2ad2b">vamp.h</a>
+<li>VampPluginHandle
+: <a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">vamp.h</a>
+<li>VampSampleType
+: <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821">vamp.h</a>
+<li>vampTimeDomain
+: <a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765e3dbb77ff3e8f292966fd3748888e1a1">vamp.h</a>
+<li>vampVariableSampleRate
+: <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821bae8a21a9e30eb73e16d6abc6c7415e8">vamp.h</a>
+<li>Verbosity
+: <a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b313">vamp-simple-host.cpp</a>
+</ul>
+<h3><a class="anchor" name="index_z">- z -</a></h3><ul>
+<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;
+<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/globals_defs.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,75 @@
+<!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><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li class="current"><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<ul>
+<li>DEFAULT_VAMP_PATH
+: <a class="el" href="PluginHostAdapter_8cpp.html#a7a9ce1e832e4f26cd5197ed38d4a58d">PluginHostAdapter.cpp</a>
+<li>DLCLOSE
+: <a class="el" href="system_8h.html#1defcae089d0d937682cc78981a0ef99">system.h</a>
+<li>DLERROR
+: <a class="el" href="system_8h.html#690562dc6c92cb811f90e8391bfeb801">system.h</a>
+<li>DLOPEN
+: <a class="el" href="system_8h.html#0a14867c4f7ccec2b5a804bd0fd66a53">system.h</a>
+<li>DLSYM
+: <a class="el" href="system_8h.html#4e0f5c42b68801054532c293169317d8">system.h</a>
+<li>HAVE_OPENDIR
+: <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_VERSION
+: <a class="el" href="PluginBase_8h.html#9b7a8e1ac1c91366bec5f2f33c137a2f">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;
+<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/globals_enum.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,52 @@
+<!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><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<ul>
+<li>VampInputDomain
+: <a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765">vamp.h</a>
+<li>VampSampleType
+: <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821">vamp.h</a>
+<li>Verbosity
+: <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;
+<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/globals_eval.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,62 @@
+<!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><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<ul>
+<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>PluginOutputIds
+: <a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e">vamp-simple-host.cpp</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>vampOneSamplePerStep
+: <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821b546deafd57f175fb1e7f9cbea1c5113">vamp.h</a>
+<li>vampTimeDomain
+: <a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765e3dbb77ff3e8f292966fd3748888e1a1">vamp.h</a>
+<li>vampVariableSampleRate
+: <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;
+<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/globals_func.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,69 @@
+<!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><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<ul>
+<li>enumeratePlugins()
+: <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>listPluginsInLibrary()
+: <a class="el" href="vamp-simple-host_8cpp.html#4d02c3d9ebe7bedb3a4c3a116479e334">vamp-simple-host.cpp</a>
+<li>main()
+: <a class="el" href="vamp-simple-host_8cpp.html#3c04138a5bfe5d72780bb7e82a18e627">vamp-simple-host.cpp</a>
+<li>printFeatures()
+: <a class="el" href="vamp-simple-host_8cpp.html#81f8bc89ed9194159bfb1f2b4d7a7ac4">vamp-simple-host.cpp</a>
+<li>printPluginCategoryList()
+: <a class="el" href="vamp-simple-host_8cpp.html#f771864c41f23e5755ed99e8ac6609a5">vamp-simple-host.cpp</a>
+<li>printPluginPath()
+: <a class="el" href="vamp-simple-host_8cpp.html#4767f8c142ee0b61ba414df1b0376a01">vamp-simple-host.cpp</a>
+<li>runPlugin()
+: <a class="el" href="vamp-simple-host_8cpp.html#54e0185f4b6ff507cb42c29a04f76397">vamp-simple-host.cpp</a>
+<li>transformInput()
+: <a class="el" href="vamp-simple-host_8cpp.html#e610372882497afdeaf180a7e53eb00b">vamp-simple-host.cpp</a>
+<li>usage()
+: <a class="el" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">vamp-simple-host.cpp</a>
+<li>vampGetPluginDescriptor()
+: <a class="el" href="vamp_8h.html#50cf6f17d0718f02093be6c7f63fcf30">vamp.h</a>
+, <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;
+<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/globals_type.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,60 @@
+<!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><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<ul>
+<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>VampGetPluginDescriptorFunction
+: <a class="el" href="vamp_8h.html#551bb7e0d8c970c2202be5f881817478">vamp.h</a>
+<li>VampOutputDescriptor
+: <a class="el" href="vamp_8h.html#a8429dd9c60d65800c58574c2b06bf66">vamp.h</a>
+<li>VampParameterDescriptor
+: <a class="el" href="vamp_8h.html#e26a9d54a92f1c083a1b209a25a8e44e">vamp.h</a>
+<li>VampPluginDescriptor
+: <a class="el" href="vamp_8h.html#a1d6e0792099b9516a89b5fb7ed2ad2b">vamp.h</a>
+<li>VampPluginHandle
+: <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;
+<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/globals_vars.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,54 @@
+<!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><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li><a href="dirs.html"><span>Directories</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>File&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Defines</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<ul>
+<li>amplitudeAdapter
+: <a class="el" href="plugins_8cpp.html#4e60bb6a99451da5deb18b969e6b16cd">plugins.cpp</a>
+<li>percussionOnsetAdapter
+: <a class="el" href="plugins_8cpp.html#cee3823cb6a43281a2ecf923b69613dd">plugins.cpp</a>
+<li>spectralCentroidAdapter
+: <a class="el" href="plugins_8cpp.html#c96bdfb6356a153341b29b43c4961cd5">plugins.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;
+<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/graph_legend.dot	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,22 @@
+digraph G
+{
+  edge [fontname="FreeSans",fontsize=10,labelfontname="FreeSans",labelfontsize=10];
+  node [fontname="FreeSans",fontsize=10,shape=record];
+  Node9 [shape="box",label="Inherited",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",fillcolor="grey75",style="filled" fontcolor="black"];
+  Node10 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans"];
+  Node10 [shape="box",label="PublicBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classPublicBase.html"];
+  Node11 -> Node10 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans"];
+  Node11 [shape="box",label="Truncated",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="red",URL="$classTruncated.html"];
+  Node13 -> Node9 [dir=back,color="darkgreen",fontsize=10,style="solid",fontname="FreeSans"];
+  Node13 [shape="box",label="ProtectedBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classProtectedBase.html"];
+  Node14 -> Node9 [dir=back,color="firebrick4",fontsize=10,style="solid",fontname="FreeSans"];
+  Node14 [shape="box",label="PrivateBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classPrivateBase.html"];
+  Node15 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans"];
+  Node15 [shape="box",label="Undocumented",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="grey75"];
+  Node16 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans"];
+  Node16 [shape="box",label="Templ< int >",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classTempl.html"];
+  Node17 -> Node16 [dir=back,color="orange",fontsize=10,style="dashed",label="< int >",fontname="FreeSans"];
+  Node17 [shape="box",label="Templ< T >",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classTempl.html"];
+  Node18 -> Node9 [dir=back,color="darkorchid3",fontsize=10,style="dashed",label="m_usedClass",fontname="FreeSans"];
+  Node18 [shape="box",label="Used",fontsize=10,height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classUsed.html"];
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/graph_legend.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,87 @@
+<!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: Graph Legend</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>
+<div class="contents">
+<h1>Graph Legend</h1>This page explains how to interpret the graphs that are generated by doxygen.<p>
+Consider the following example: <div class="fragment"><pre class="fragment"><span class="comment">/*! Invisible class because of truncation */</span>
+<span class="keyword">class </span>Invisible { };
+<span class="comment"></span>
+<span class="comment">/*! Truncated class, inheritance relation is hidden */</span>
+<span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };
+
+<span class="comment">/* Class not documented with doxygen comments */</span>
+<span class="keyword">class </span>Undocumented { };
+<span class="comment"></span>
+<span class="comment">/*! Class that is inherited using public inheritance */</span>
+<span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };
+<span class="comment"></span>
+<span class="comment">/*! A template class */</span>
+<span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>Templ { };
+<span class="comment"></span>
+<span class="comment">/*! Class that is inherited using protected inheritance */</span>
+<span class="keyword">class </span>ProtectedBase { };
+<span class="comment"></span>
+<span class="comment">/*! Class that is inherited using private inheritance */</span>
+<span class="keyword">class </span>PrivateBase { };
+<span class="comment"></span>
+<span class="comment">/*! Class that is used by the Inherited class */</span>
+<span class="keyword">class </span>Used { };
+<span class="comment"></span>
+<span class="comment">/*! Super class that inherits a number of other classes */</span>
+<span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,
+                  <span class="keyword">protected</span> ProtectedBase,
+                  <span class="keyword">private</span> PrivateBase,
+                  <span class="keyword">public</span> Undocumented,
+                  <span class="keyword">public</span> Templ&lt;int&gt;
+{
+  <span class="keyword">private</span>:
+    Used *m_usedClass;
+};
+</pre></div> If the <code>MAX_DOT_GRAPH_HEIGHT</code> tag in the configuration file is set to 240 this will result in the following graph:<p>
+<center><div align="center">
+<img src="graph_legend.png" alt="graph_legend.png">
+</div>
+</center> <p>
+The boxes in the above graph have the following meaning: <ul>
+<li>
+A filled gray box represents the struct or class for which the graph is generated. </li>
+<li>
+A box with a black border denotes a documented struct or class. </li>
+<li>
+A box with a grey border denotes an undocumented struct or class. </li>
+<li>
+A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
+</ul>
+The arrows have the following meaning: <ul>
+<li>
+A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
+<li>
+A dark green arrow is used for protected inheritance. </li>
+<li>
+A dark red arrow is used for private inheritance. </li>
+<li>
+A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible. </li>
+<li>
+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;
+<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>
Binary file code-doc/graph_legend.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/hierarchy.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,76 @@
+<!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: Hierarchical Index</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 class="current"><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>Class Hierarchy</h1><a href="inherits.html">Go to the graphical class hierarchy</a>
+<p>
+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="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="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="classPercussionOnsetDetector.html">PercussionOnsetDetector</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>
+</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;
+<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/index.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,11 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>VampPluginSDK</title></head>
+<frameset cols="250,*">
+  <frame src="tree.html" name="treefrm">
+  <frame src="main.html" name="basefrm">
+  <noframes>
+    <a href="main.html">Frames are disabled. Click here to go to the main page.</a>
+  </noframes>
+</frameset>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__0.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+<area shape="rect" href="$struct__VampFeature.html" title="_VampFeature" alt="" coords="7,6,111,30">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__0.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+b3bae374b4ca25c94ac3ebdf08e5ab34
\ No newline at end of file
Binary file code-doc/inherit__graph__0.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__1.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+<area shape="rect" href="$struct__VampFeatureList.html" title="_VampFeatureList" alt="" coords="7,6,132,30">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__1.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+83d8a50b91faa3cf5221274409eab503
\ No newline at end of file
Binary file code-doc/inherit__graph__1.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__10.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__10.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+e33d78024195a4f8c17cb6f382727045
\ No newline at end of file
Binary file code-doc/inherit__graph__10.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__11.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+<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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__11.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+57293355388bbbe792c359d868a44685
\ No newline at end of file
Binary file code-doc/inherit__graph__11.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__12.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+<area shape="rect" href="$structVamp_1_1Plugin_1_1Feature.html" title="Vamp::Plugin::Feature" alt="" coords="7,6,156,30">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__12.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+3803f2e0307a3fa94bc7d3a7cfa004d3
\ No newline at end of file
Binary file code-doc/inherit__graph__12.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__13.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+<area shape="rect" href="$structVamp_1_1Plugin_1_1OutputDescriptor.html" title="Vamp::Plugin::OutputDescriptor" alt="" coords="7,6,209,30">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__13.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+eb3a049e7a539dc7ea3b996e01f6d8ae
\ No newline at end of file
Binary file code-doc/inherit__graph__13.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__14.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,2 @@
+<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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__14.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+696eb0c07198d925f443051ca5b2ff62
\ No newline at end of file
Binary file code-doc/inherit__graph__14.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__15.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+<area shape="rect" href="$classVamp_1_1PluginAdapterBase_1_1Impl.html" title="Vamp::PluginAdapterBase::Impl" alt="" coords="7,6,212,30">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__15.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+f39e919e0fedaaf36e423ebe6f61fd95
\ No newline at end of file
Binary file code-doc/inherit__graph__15.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__16.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,13 @@
+<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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__16.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+bb3c731313c6440e970313ccae33ca01
\ No newline at end of file
Binary file code-doc/inherit__graph__16.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__17.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+<area shape="rect" href="$structVamp_1_1PluginBase_1_1ParameterDescriptor.html" title="Vamp::PluginBase::ParameterDescriptor" alt="" coords="5,6,261,30">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__17.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+966ebb93521b0691dfed3cbbde42cb6b
\ No newline at end of file
Binary file code-doc/inherit__graph__17.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__18.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+<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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__18.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+bd8cff1d7ef507a3bf311c2fbb3028a2
\ No newline at end of file
Binary file code-doc/inherit__graph__18.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__2.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+<area shape="rect" href="$struct__VampOutputDescriptor.html" title="_VampOutputDescriptor" alt="" coords="5,6,165,30">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__2.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+18e2f0ce1ec21536a7a5c89bd64fe390
\ No newline at end of file
Binary file code-doc/inherit__graph__2.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__3.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+<area shape="rect" href="$struct__VampParameterDescriptor.html" title="C language API for Vamp plugins." alt="" coords="7,6,185,30">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__3.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+99c60365e6b2f3acc52dc0d242fd453e
\ No newline at end of file
Binary file code-doc/inherit__graph__3.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__4.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+<area shape="rect" href="$struct__VampPluginDescriptor.html" title="_VampPluginDescriptor" alt="" coords="7,6,161,30">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__4.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+fbf391a442cdb1baf1643f52bca101bf
\ No newline at end of file
Binary file code-doc/inherit__graph__4.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__5.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__5.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+700412a398f12875cc8ccda8aa272c1d
\ No newline at end of file
Binary file code-doc/inherit__graph__5.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__6.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__6.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+d1a5008bc53b8f893523da9996cf72de
\ No newline at end of file
Binary file code-doc/inherit__graph__6.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__7.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__7.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+823d416e2800507992c030f5c27736f3
\ No newline at end of file
Binary file code-doc/inherit__graph__7.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__8.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__8.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+0b980fc49f7e69c188a21bb09802360f
\ No newline at end of file
Binary file code-doc/inherit__graph__8.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__9.map	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +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">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherit__graph__9.md5	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,1 @@
+f827615905fd7114530104c342afbc77
\ No newline at end of file
Binary file code-doc/inherit__graph__9.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/inherits.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,93 @@
+<!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: Graphical Class Hierarchy</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 class="current"><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>Graphical Class Hierarchy</h1><a href="hierarchy.html">Go to the textual class hierarchy</a>
+<p>
+<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>
+<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">
+<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">
+<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">
+<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">
+<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">
+<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">
+<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">
+<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">
+<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">
+<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">
+<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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/main.html	Mon Sep 22 13:01:46 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 Plugin SDK</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 class="current"><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>
+<div class="contents">
+<h1>Vamp Plugin SDK</h1>
+<p>
+<h3 align="center">1.2 </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">
+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>
+<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>
+<ul>
+<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>
+<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>
+<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>
+<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>
+<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>
+<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>
+<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>
+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>
+<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">
+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;
+<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/namespaceVamp.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,103 @@
+<!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 Namespace 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 class="current"><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="tabs">
+    <ul>
+      <li><a href="namespaces.html"><span>Namespace List</span></a></li>
+      <li><a href="namespacemembers.html"><span>Namespace&nbsp;Members</span></a></li>
+    </ul>
+  </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). 
+<p>
+
+<p>
+<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="classVamp_1_1Plugin.html">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">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="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 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>
+
+</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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <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>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const RealTime &amp;&nbsp;</td>
+          <td class="paramname"> <em>rt</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="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;
+<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/namespaceVamp_1_1HostExt.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,58 @@
+<!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 Namespace 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 class="current"><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="tabs">
+    <ul>
+      <li><a href="namespaces.html"><span>Namespace List</span></a></li>
+      <li><a href="namespacemembers.html"><span>Namespace&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>
+  </div>
+</div>
+<div class="contents">
+<h1>Vamp::HostExt Namespace Reference</h1>
+<p>
+
+<p>
+<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="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="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="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="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="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;
+<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/namespacemembers.html	Mon Sep 22 13:01:46 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: 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 class="current"><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="tabs">
+    <ul>
+      <li><a href="namespaces.html"><span>Namespace List</span></a></li>
+      <li class="current"><a href="namespacemembers.html"><span>Namespace&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
+      <li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+Here is a list of all namespace members with links to the namespace documentation for each member:
+<p>
+<ul>
+<li>operator&lt;&lt;()
+: <a class="el" href="namespaceVamp.html#84f347b339c111e035f4f0d6ed37f4e0">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;
+<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/namespacemembers_func.html	Mon Sep 22 13:01:46 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: 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 class="current"><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="tabs">
+    <ul>
+      <li><a href="namespaces.html"><span>Namespace List</span></a></li>
+      <li class="current"><a href="namespacemembers.html"><span>Namespace&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="namespacemembers.html"><span>All</span></a></li>
+      <li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+&nbsp;
+<p>
+<ul>
+<li>operator&lt;&lt;()
+: <a class="el" href="namespaceVamp.html#84f347b339c111e035f4f0d6ed37f4e0">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;
+<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/namespaces.html	Mon Sep 22 13:01:46 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: Namespace Index</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 class="current"><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="tabs">
+    <ul>
+      <li class="current"><a href="namespaces.html"><span>Namespace List</span></a></li>
+      <li><a href="namespacemembers.html"><span>Namespace&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</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_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;
+<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/plugins_8cpp-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,90 @@
+<!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: plugins.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+</div>
+<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>
+<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="vamp_8h.html">vamp/vamp.h</a>"</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="PluginAdapter_8h.html">vamp-sdk/PluginAdapter.h</a>"</span>
+<a name="l00039"></a>00039 
+<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 
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/plugins_8cpp.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,158 @@
+<!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: plugins.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_35887283b966ca996e4ff77f459c38ce.html">examples</a>
+  </div>
+</div>
+<div class="contents">
+<h1>plugins.cpp File Reference</h1>
+<p>
+
+<p>
+<a href="plugins_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>Functions</h2></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="plugins_8cpp.html#bb0fd6db76ddd39698bc370e0fd0ea78">vampGetPluginDescriptor</a> (unsigned int version, unsigned int index)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the descriptor for a given plugin index in this library.  <a href="#bb0fd6db76ddd39698bc370e0fd0ea78"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Variables</h2></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="classZeroCrossing.html">ZeroCrossing</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugins_8cpp.html#01871ad1ab2bb64e2c53fe5cce19b780">zeroCrossingAdapter</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="classSpectralCentroid.html">SpectralCentroid</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugins_8cpp.html#c96bdfb6356a153341b29b43c4961cd5">spectralCentroidAdapter</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="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="classAmplitudeFollower.html">AmplitudeFollower</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugins_8cpp.html#4e60bb6a99451da5deb18b969e6b16cd">amplitudeAdapter</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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a>* vampGetPluginDescriptor           </td>
+          <td>(</td>
+          <td class="paramtype">unsigned int&nbsp;</td>
+          <td class="paramname"> <em>hostApiVersion</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned int&nbsp;</td>
+          <td class="paramname"> <em>index</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>
+Get the descriptor for a given plugin index in this library. 
+<p>
+Return NULL if the index is outside the range of valid indices for this plugin library.<p>
+The hostApiVersion argument tells the library code the highest <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> API version supported by the host. The function should return a plugin descriptor compatible with the highest API version supported by the library that is no higher than that supported by the host. Provided the descriptor has the correct vampApiVersion field for its actual compatibility level, the host should be able to do the right thing with it: use it if possible, discard it otherwise.<p>
+This is the only symbol that a <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> plugin actually needs to export from its shared object; all others can be hidden. See the accompanying documentation for notes on how to achieve this with certain compilers. 
+<p>Definition at line <a class="el" href="plugins_8cpp-source.html#l00050">50</a> of file <a class="el" href="plugins_8cpp-source.html">plugins.cpp</a>.</p>
+
+<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00138">Vamp::PluginAdapterBase::getDescriptor()</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Variable Documentation</h2>
+<a class="anchor" name="01871ad1ab2bb64e2c53fe5cce19b780"></a><!-- doxytag: member="plugins.cpp::zeroCrossingAdapter" ref="01871ad1ab2bb64e2c53fe5cce19b780" 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="classZeroCrossing.html">ZeroCrossing</a>&gt; <a class="el" href="plugins_8cpp.html#01871ad1ab2bb64e2c53fe5cce19b780">zeroCrossingAdapter</a><code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="c96bdfb6356a153341b29b43c4961cd5"></a><!-- doxytag: member="plugins.cpp::spectralCentroidAdapter" ref="c96bdfb6356a153341b29b43c4961cd5" 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="classSpectralCentroid.html">SpectralCentroid</a>&gt; <a class="el" href="plugins_8cpp.html#c96bdfb6356a153341b29b43c4961cd5">spectralCentroidAdapter</a><code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="cee3823cb6a43281a2ecf923b69613dd"></a><!-- doxytag: member="plugins.cpp::percussionOnsetAdapter" ref="cee3823cb6a43281a2ecf923b69613dd" 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="classPercussionOnsetDetector.html">PercussionOnsetDetector</a>&gt; <a class="el" href="plugins_8cpp.html#cee3823cb6a43281a2ecf923b69613dd">percussionOnsetAdapter</a><code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+<a class="anchor" name="4e60bb6a99451da5deb18b969e6b16cd"></a><!-- doxytag: member="plugins.cpp::amplitudeAdapter" ref="4e60bb6a99451da5deb18b969e6b16cd" 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="classAmplitudeFollower.html">AmplitudeFollower</a>&gt; <a class="el" href="plugins_8cpp.html#4e60bb6a99451da5deb18b969e6b16cd">amplitudeAdapter</a><code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+</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/structVamp_1_1PluginBase_1_1ParameterDescriptor-members.html	Mon Sep 22 13:01:46 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: 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::PluginBase::ParameterDescriptor Member List</h1>This is the complete list of members for <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">Vamp::PluginBase::ParameterDescriptor</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc">defaultValue</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#780ddad41e433d85c82f9ea4d959cbaf">description</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#116fd9f0dc94c2bc4bbc60b5443c598c">identifier</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#7c556d58d552f737ee5a34efdf7f9425">isQuantized</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#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#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;
+<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/structVamp_1_1PluginBase_1_1ParameterDescriptor.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,289 @@
+<!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::PluginBase::ParameterDescriptor 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.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_1PluginBase.html">PluginBase</a>::<a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a>
+  </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>
+<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>
+<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">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#116fd9f0dc94c2bc4bbc60b5443c598c">identifier</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The name of the parameter, in computer-usable form.  <a href="#116fd9f0dc94c2bc4bbc60b5443c598c"></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="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#0ecebb94fb4ada4aad2640e20aa57084">name</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The human-readable name of the parameter.  <a href="#0ecebb94fb4ada4aad2640e20aa57084"></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="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#780ddad41e433d85c82f9ea4d959cbaf">description</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A human-readable short text describing the parameter.  <a href="#780ddad41e433d85c82f9ea4d959cbaf"></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="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#3bc3df322e4c02e17e96bc6d44982d7b">unit</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The unit of the parameter, in human-readable form.  <a href="#3bc3df322e4c02e17e96bc6d44982d7b"></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="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8">minValue</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The minimum value of the parameter.  <a href="#b3e4d84f5bc199eea8b642b27e425ec8"></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="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4">maxValue</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The maximum value of the parameter.  <a href="#b934b20dd708228a0e3c2811a3e2cec4"></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="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc">defaultValue</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The default value of the parameter.  <a href="#ec4ef77451ec02193ecc4a0856673fbc"></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_1PluginBase_1_1ParameterDescriptor.html#7c556d58d552f737ee5a34efdf7f9425">isQuantized</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True if the parameter values are quantized to a particular resolution.  <a href="#7c556d58d552f737ee5a34efdf7f9425"></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="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#01f8387e7c853d5e4e35d4e9a37353d7">quantizeStep</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Quantization resolution of the parameter values (e.g.  <a href="#01f8387e7c853d5e4e35d4e9a37353d7"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#94df96f53835980b4739965007ff222b">valueNames</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Names for the quantized values.  <a href="#94df96f53835980b4739965007ff222b"></a><br></td></tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="116fd9f0dc94c2bc4bbc60b5443c598c"></a><!-- doxytag: member="Vamp::PluginBase::ParameterDescriptor::identifier" ref="116fd9f0dc94c2bc4bbc60b5443c598c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#116fd9f0dc94c2bc4bbc60b5443c598c">Vamp::PluginBase::ParameterDescriptor::identifier</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="0ecebb94fb4ada4aad2640e20aa57084"></a><!-- doxytag: member="Vamp::PluginBase::ParameterDescriptor::name" ref="0ecebb94fb4ada4aad2640e20aa57084" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#0ecebb94fb4ada4aad2640e20aa57084">Vamp::PluginBase::ParameterDescriptor::name</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="780ddad41e433d85c82f9ea4d959cbaf"></a><!-- doxytag: member="Vamp::PluginBase::ParameterDescriptor::description" ref="780ddad41e433d85c82f9ea4d959cbaf" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#780ddad41e433d85c82f9ea4d959cbaf">Vamp::PluginBase::ParameterDescriptor::description</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="3bc3df322e4c02e17e96bc6d44982d7b"></a><!-- doxytag: member="Vamp::PluginBase::ParameterDescriptor::unit" ref="3bc3df322e4c02e17e96bc6d44982d7b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#3bc3df322e4c02e17e96bc6d44982d7b">Vamp::PluginBase::ParameterDescriptor::unit</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="b3e4d84f5bc199eea8b642b27e425ec8"></a><!-- doxytag: member="Vamp::PluginBase::ParameterDescriptor::minValue" ref="b3e4d84f5bc199eea8b642b27e425ec8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b3e4d84f5bc199eea8b642b27e425ec8">Vamp::PluginBase::ParameterDescriptor::minValue</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="b934b20dd708228a0e3c2811a3e2cec4"></a><!-- doxytag: member="Vamp::PluginBase::ParameterDescriptor::maxValue" ref="b934b20dd708228a0e3c2811a3e2cec4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#b934b20dd708228a0e3c2811a3e2cec4">Vamp::PluginBase::ParameterDescriptor::maxValue</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="ec4ef77451ec02193ecc4a0856673fbc"></a><!-- doxytag: member="Vamp::PluginBase::ParameterDescriptor::defaultValue" ref="ec4ef77451ec02193ecc4a0856673fbc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#ec4ef77451ec02193ecc4a0856673fbc">Vamp::PluginBase::ParameterDescriptor::defaultValue</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="7c556d58d552f737ee5a34efdf7f9425"></a><!-- doxytag: member="Vamp::PluginBase::ParameterDescriptor::isQuantized" ref="7c556d58d552f737ee5a34efdf7f9425" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#7c556d58d552f737ee5a34efdf7f9425">Vamp::PluginBase::ParameterDescriptor::isQuantized</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="01f8387e7c853d5e4e35d4e9a37353d7"></a><!-- doxytag: member="Vamp::PluginBase::ParameterDescriptor::quantizeStep" ref="01f8387e7c853d5e4e35d4e9a37353d7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#01f8387e7c853d5e4e35d4e9a37353d7">Vamp::PluginBase::ParameterDescriptor::quantizeStep</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="94df96f53835980b4739965007ff222b"></a><!-- doxytag: member="Vamp::PluginBase::ParameterDescriptor::valueNames" ref="94df96f53835980b4739965007ff222b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt;std::string&gt; <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html#94df96f53835980b4739965007ff222b">Vamp::PluginBase::ParameterDescriptor::valueNames</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Names for the quantized values. 
+<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>
+
+</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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/structVamp_1_1Plugin_1_1Feature-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,37 @@
+<!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::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#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;
+<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/structVamp_1_1Plugin_1_1Feature.html	Mon Sep 22 13:01:46 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: Vamp::Plugin::Feature 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.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_1Plugin.html">Plugin</a>::<a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a>
+  </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>
+<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>
+<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">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1Feature.html#98907091d0b6a589720ae35ae588a82b">hasTimestamp</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True if an output feature has its own timestamp.  <a href="#98907091d0b6a589720ae35ae588a82b"></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#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">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>
+<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_1Feature.html#8eb1fb35f73b247ed13de9527c18f036">label</a></td></tr>
+
+<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>Member Data Documentation</h2>
+<a class="anchor" name="98907091d0b6a589720ae35ae588a82b"></a><!-- doxytag: member="Vamp::Plugin::Feature::hasTimestamp" ref="98907091d0b6a589720ae35ae588a82b" 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#98907091d0b6a589720ae35ae588a82b">Vamp::Plugin::Feature::hasTimestamp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="caa605f36839c07e76f4882f5e22d8d7"></a><!-- doxytag: member="Vamp::Plugin::Feature::timestamp" ref="caa605f36839c07e76f4882f5e22d8d7" 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#caa605f36839c07e76f4882f5e22d8d7">Vamp::Plugin::Feature::timestamp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="60b9f3057386820dbcaec0eb1189ce71"></a><!-- doxytag: member="Vamp::Plugin::Feature::values" ref="60b9f3057386820dbcaec0eb1189ce71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt;float&gt; <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#60b9f3057386820dbcaec0eb1189ce71">Vamp::Plugin::Feature::values</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="8eb1fb35f73b247ed13de9527c18f036"></a><!-- doxytag: member="Vamp::Plugin::Feature::label" ref="8eb1fb35f73b247ed13de9527c18f036" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string <a class="el" href="structVamp_1_1Plugin_1_1Feature.html#8eb1fb35f73b247ed13de9527c18f036">Vamp::Plugin::Feature::label</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>Referenced by <a class="el" href="PluginHostAdapter_8cpp-source.html#l00385">Vamp::PluginHostAdapter::convertFeatures()</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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/structVamp_1_1Plugin_1_1OutputDescriptor-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,51 @@
+<!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::Plugin::OutputDescriptor Member List</h1>This is the complete list of members for <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">Vamp::Plugin::OutputDescriptor</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc">binCount</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#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#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>
+  <tr class="memlist"><td><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#1b4858928d23bfd7d5bc557c82a83fb4">isQuantized</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#907b4e8fbb48a46ac5a05f880d72719f">maxValue</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#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#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#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;
+<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/structVamp_1_1Plugin_1_1OutputDescriptor.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,419 @@
+<!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::Plugin::OutputDescriptor 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.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_1Plugin.html">Plugin</a>::<a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a>
+  </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>
+<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>
+<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="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c">SampleType</a> { <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca">OneSamplePerStep</a>, 
+<a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c4c74bd2fc96dfe2815623f94b40e5629">FixedSampleRate</a>, 
+<a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e">VariableSampleRate</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>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The name of the output, in computer-usable form.  <a href="#e2c893ddb1860589517ab7eaa989a18b"></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="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87">name</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The human-readable name of the output.  <a href="#b824b2b34ee50f897a30901c620e8d87"></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="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1">description</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A human-readable short text describing the output.  <a href="#f9b4fe8f78e7126ead820ba5dc55efd1"></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="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4">unit</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The unit of the output, in human-readable form.  <a href="#a057a8833fa037f06ac9f7b85b85d5e4"></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#f0e577e1a256ff6eed6ea42133fec77d">hasFixedBinCount</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True if the output has the same number of values per sample for every output sample.  <a href="#f0e577e1a256ff6eed6ea42133fec77d"></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="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc">binCount</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The number of values per result of the output.  <a href="#fdd006959a995e40ef7d565a3a4df6dc"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#31d9b79e2d8241344f551a22fcb5c8c7">binNames</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The (human-readable) names of each of the bins, if appropriate.  <a href="#31d9b79e2d8241344f551a22fcb5c8c7"></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#e9ccb65f99f477096b65dd031f4c5e31">hasKnownExtents</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True if the results in each output bin fall within a fixed numeric range (minimum and maximum values).  <a href="#e9ccb65f99f477096b65dd031f4c5e31"></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="structVamp_1_1Plugin_1_1OutputDescriptor.html#c9f5924c0be7571bba8e7ae7e7a921f4">minValue</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Minimum value of the results in the output.  <a href="#c9f5924c0be7571bba8e7ae7e7a921f4"></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="structVamp_1_1Plugin_1_1OutputDescriptor.html#907b4e8fbb48a46ac5a05f880d72719f">maxValue</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maximum value of the results in the output.  <a href="#907b4e8fbb48a46ac5a05f880d72719f"></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#1b4858928d23bfd7d5bc557c82a83fb4">isQuantized</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True if the output values are quantized to a particular resolution.  <a href="#1b4858928d23bfd7d5bc557c82a83fb4"></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="structVamp_1_1Plugin_1_1OutputDescriptor.html#3bed37153067b625b95acb40b60dbf0b">quantizeStep</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Quantization resolution of the output values (e.g.  <a href="#3bed37153067b625b95acb40b60dbf0b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c">SampleType</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d">sampleType</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Positioning in time of the output results.  <a href="#0d1194980d44e31b25ef3b4b070d6b5d"></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="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>
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="bffa9ed50cd756df70fd51f0355f448c"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::SampleType" ref="bffa9ed50cd756df70fd51f0355f448c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c">Vamp::Plugin::OutputDescriptor::SampleType</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="bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca"></a><!-- doxytag: member="OneSamplePerStep" ref="bffa9ed50cd756df70fd51f0355f448c0459d5d0d2198d21e8bc90abe4fdccca" args="" -->OneSamplePerStep</em>&nbsp;</td><td>
+Results from each <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996" title="Process a single block of input data.">process()</a> align with that call's block start. </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="bffa9ed50cd756df70fd51f0355f448c4c74bd2fc96dfe2815623f94b40e5629"></a><!-- doxytag: member="FixedSampleRate" ref="bffa9ed50cd756df70fd51f0355f448c4c74bd2fc96dfe2815623f94b40e5629" args="" -->FixedSampleRate</em>&nbsp;</td><td>
+Results are evenly spaced in time (sampleRate specified below). </td></tr>
+<tr><td valign="top"><em><a class="anchor" name="bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e"></a><!-- doxytag: member="VariableSampleRate" ref="bffa9ed50cd756df70fd51f0355f448cdea995a737867f7b22b52f1c43c5432e" args="" -->VariableSampleRate</em>&nbsp;</td><td>
+Results are unevenly spaced and have individual timestamps. </td></tr>
+</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>
+
+</div>
+</div><p>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="e2c893ddb1860589517ab7eaa989a18b"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::identifier" ref="e2c893ddb1860589517ab7eaa989a18b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#e2c893ddb1860589517ab7eaa989a18b">Vamp::Plugin::OutputDescriptor::identifier</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="b824b2b34ee50f897a30901c620e8d87"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::name" ref="b824b2b34ee50f897a30901c620e8d87" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#b824b2b34ee50f897a30901c620e8d87">Vamp::Plugin::OutputDescriptor::name</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="f9b4fe8f78e7126ead820ba5dc55efd1"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::description" ref="f9b4fe8f78e7126ead820ba5dc55efd1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#f9b4fe8f78e7126ead820ba5dc55efd1">Vamp::Plugin::OutputDescriptor::description</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="a057a8833fa037f06ac9f7b85b85d5e4"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::unit" ref="a057a8833fa037f06ac9f7b85b85d5e4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#a057a8833fa037f06ac9f7b85b85d5e4">Vamp::Plugin::OutputDescriptor::unit</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="f0e577e1a256ff6eed6ea42133fec77d"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::hasFixedBinCount" ref="f0e577e1a256ff6eed6ea42133fec77d" 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#f0e577e1a256ff6eed6ea42133fec77d">Vamp::Plugin::OutputDescriptor::hasFixedBinCount</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="fdd006959a995e40ef7d565a3a4df6dc"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::binCount" ref="fdd006959a995e40ef7d565a3a4df6dc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#fdd006959a995e40ef7d565a3a4df6dc">Vamp::Plugin::OutputDescriptor::binCount</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="31d9b79e2d8241344f551a22fcb5c8c7"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::binNames" ref="31d9b79e2d8241344f551a22fcb5c8c7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt;std::string&gt; <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#31d9b79e2d8241344f551a22fcb5c8c7">Vamp::Plugin::OutputDescriptor::binNames</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="e9ccb65f99f477096b65dd031f4c5e31"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::hasKnownExtents" ref="e9ccb65f99f477096b65dd031f4c5e31" 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#e9ccb65f99f477096b65dd031f4c5e31">Vamp::Plugin::OutputDescriptor::hasKnownExtents</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="c9f5924c0be7571bba8e7ae7e7a921f4"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::minValue" ref="c9f5924c0be7571bba8e7ae7e7a921f4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#c9f5924c0be7571bba8e7ae7e7a921f4">Vamp::Plugin::OutputDescriptor::minValue</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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="907b4e8fbb48a46ac5a05f880d72719f"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::maxValue" ref="907b4e8fbb48a46ac5a05f880d72719f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#907b4e8fbb48a46ac5a05f880d72719f">Vamp::Plugin::OutputDescriptor::maxValue</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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="1b4858928d23bfd7d5bc557c82a83fb4"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::isQuantized" ref="1b4858928d23bfd7d5bc557c82a83fb4" 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#1b4858928d23bfd7d5bc557c82a83fb4">Vamp::Plugin::OutputDescriptor::isQuantized</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="3bed37153067b625b95acb40b60dbf0b"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::quantizeStep" ref="3bed37153067b625b95acb40b60dbf0b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#3bed37153067b625b95acb40b60dbf0b">Vamp::Plugin::OutputDescriptor::quantizeStep</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="0d1194980d44e31b25ef3b4b070d6b5d"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::sampleType" ref="0d1194980d44e31b25ef3b4b070d6b5d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#bffa9ed50cd756df70fd51f0355f448c">SampleType</a> <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#0d1194980d44e31b25ef3b4b070d6b5d">Vamp::Plugin::OutputDescriptor::sampleType</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="dd0cbbdfa9c91764037c39365b1d42af"></a><!-- doxytag: member="Vamp::Plugin::OutputDescriptor::sampleRate" ref="dd0cbbdfa9c91764037c39365b1d42af" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html#dd0cbbdfa9c91764037c39365b1d42af">Vamp::Plugin::OutputDescriptor::sampleRate</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sample rate of the output results, as samples per second. 
+<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>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>
+
+</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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/structVamp_1_1RealTime.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,781 @@
+<!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::RealTime 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="structVamp_1_1RealTime.html">RealTime</a>
+  </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>
+<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>
+<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">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#ace9e2c60af62273e45ccd98d623914c">usec</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="structVamp_1_1RealTime.html#76e22815db51ae180c38021110da9947">msec</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#d703be11b7beb07af08ddf133aa2ae79">RealTime</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#75b2f0af2f9c49e649f8d30b452b049d">RealTime</a> (int s, int n)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#8f4dbd8ef24a0ec6a77dce67fff5434e">RealTime</a> (const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;r)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#db82f838804a9a3ad49988de5944d090">operator=</a> (const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;r)</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_1RealTime.html#6b74748d1eb4c3c751e7a12aefae0bde">operator+</a> (const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;r) const </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_1RealTime.html#f0360b5b0d23a464025a6823912c6291">operator-</a> (const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;r) const </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_1RealTime.html#f62915355c482f2e1611a52a7f17f5ed">operator-</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="structVamp_1_1RealTime.html#78e378a5dd0137a6514dca18edda6f9a">operator&lt;</a> (const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;r) const </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_1RealTime.html#6f0aced679e2f97133ed63c688b335e4">operator&gt;</a> (const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;r) const </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_1RealTime.html#bc5f06b5b9973012cb7453192df3ea5e">operator==</a> (const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;r) const </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_1RealTime.html#e9b0ea7c217163d5327b1a2a0662a90b">operator!=</a> (const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;r) const </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_1RealTime.html#5cb785a410e3a91ed3092b7bba22afc3">operator&gt;=</a> (const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;r) const </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_1RealTime.html#cf4278eec678c558d62bbda6bc1da44e">operator&lt;=</a> (const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;r) const </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_1RealTime.html#c88cda961da5cb728d823b29c5456c06">operator/</a> (int d) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVamp_1_1RealTime.html#a6e50a94c81a1448ec1d61421ccf6e3f">operator/</a> (const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &amp;r) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the ratio of two times.  <a href="#a6e50a94c81a1448ec1d61421ccf6e3f"></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="structVamp_1_1RealTime.html#d44476618183bd736996a87292d03c07">toString</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a human-readable debug-type string to full precision (probably not a format to show to a user directly).  <a href="#d44476618183bd736996a87292d03c07"></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="structVamp_1_1RealTime.html#d75b927afadfa422ae512d169ccda0aa">toText</a> (bool fixedDp=false) const </td></tr>
+
+<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#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#ffdd22eee09b38335d3133c0e9a8f7b3">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="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 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 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>
+
+<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#2078835bef7bb92514a65b6051cfc6c8">nsec</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">static const <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#be453371597710148b0fd19bb452f8a9">zeroTime</a></td></tr>
+
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="d703be11b7beb07af08ddf133aa2ae79"></a><!-- doxytag: member="Vamp::RealTime::RealTime" ref="d703be11b7beb07af08ddf133aa2ae79" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::RealTime::RealTime           </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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="75b2f0af2f9c49e649f8d30b452b049d"></a><!-- doxytag: member="Vamp::RealTime::RealTime" ref="75b2f0af2f9c49e649f8d30b452b049d" args="(int s, int n)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::RealTime::RealTime           </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>s</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%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">Vamp::RealTime::RealTime           </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>
+          <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="RealTime_8h-source.html#l00074">74</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="ace9e2c60af62273e45ccd98d623914c"></a><!-- doxytag: member="Vamp::RealTime::usec" ref="ace9e2c60af62273e45ccd98d623914c" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int Vamp::RealTime::usec           </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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="76e22815db51ae180c38021110da9947"></a><!-- doxytag: member="Vamp::RealTime::msec" ref="76e22815db51ae180c38021110da9947" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int Vamp::RealTime::msec           </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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="754901a59483036097d8111b8c02f4f3"></a><!-- doxytag: member="Vamp::RealTime::fromSeconds" ref="754901a59483036097d8111b8c02f4f3" 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>(</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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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)" -->
+<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>(</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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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;)" -->
+<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>(</td>
+          <td class="paramtype">const struct timeval &amp;&nbsp;</td>
+          <td class="paramname"> <em>tv</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="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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&amp; Vamp::RealTime::operator=           </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>
+          <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="RealTime_8h-source.html#l00084">84</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>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="6b74748d1eb4c3c751e7a12aefae0bde"></a><!-- doxytag: member="Vamp::RealTime::operator+" ref="6b74748d1eb4c3c751e7a12aefae0bde" args="(const RealTime &amp;r) 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::RealTime::operator+           </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>
+          <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="RealTime_8h-source.html#l00088">88</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>
+
+</div>
+</div><p>
+<a class="anchor" name="f0360b5b0d23a464025a6823912c6291"></a><!-- doxytag: member="Vamp::RealTime::operator-" ref="f0360b5b0d23a464025a6823912c6291" args="(const RealTime &amp;r) 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::RealTime::operator-           </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>
+          <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="RealTime_8h-source.html#l00091">91</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>
+
+</div>
+</div><p>
+<a class="anchor" name="f62915355c482f2e1611a52a7f17f5ed"></a><!-- doxytag: member="Vamp::RealTime::operator-" ref="f62915355c482f2e1611a52a7f17f5ed" 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::RealTime::operator-           </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="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>
+
+</div>
+</div><p>
+<a class="anchor" name="78e378a5dd0137a6514dca18edda6f9a"></a><!-- doxytag: member="Vamp::RealTime::operator&lt;" ref="78e378a5dd0137a6514dca18edda6f9a" args="(const RealTime &amp;r) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool Vamp::RealTime::operator&lt;           </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>
+          <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="RealTime_8h-source.html#l00098">98</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>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="6f0aced679e2f97133ed63c688b335e4"></a><!-- doxytag: member="Vamp::RealTime::operator&gt;" ref="6f0aced679e2f97133ed63c688b335e4" args="(const RealTime &amp;r) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool Vamp::RealTime::operator&gt;           </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>
+          <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="RealTime_8h-source.html#l00103">103</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>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="bc5f06b5b9973012cb7453192df3ea5e"></a><!-- doxytag: member="Vamp::RealTime::operator==" ref="bc5f06b5b9973012cb7453192df3ea5e" args="(const RealTime &amp;r) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool Vamp::RealTime::operator==           </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>
+          <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="RealTime_8h-source.html#l00108">108</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>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="e9b0ea7c217163d5327b1a2a0662a90b"></a><!-- doxytag: member="Vamp::RealTime::operator!=" ref="e9b0ea7c217163d5327b1a2a0662a90b" args="(const RealTime &amp;r) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool Vamp::RealTime::operator!=           </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>
+          <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="RealTime_8h-source.html#l00112">112</a> of file <a class="el" href="RealTime_8h-source.html">RealTime.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="5cb785a410e3a91ed3092b7bba22afc3"></a><!-- doxytag: member="Vamp::RealTime::operator&gt;=" ref="5cb785a410e3a91ed3092b7bba22afc3" args="(const RealTime &amp;r) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool Vamp::RealTime::operator&gt;=           </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>
+          <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="RealTime_8h-source.html#l00116">116</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>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="cf4278eec678c558d62bbda6bc1da44e"></a><!-- doxytag: member="Vamp::RealTime::operator&lt;=" ref="cf4278eec678c558d62bbda6bc1da44e" args="(const RealTime &amp;r) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool Vamp::RealTime::operator&lt;=           </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>
+          <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="RealTime_8h-source.html#l00121">121</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>, and <a class="el" href="RealTime_8h-source.html#l00065">sec</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="c88cda961da5cb728d823b29c5456c06"></a><!-- doxytag: member="Vamp::RealTime::operator/" ref="c88cda961da5cb728d823b29c5456c06" args="(int d) 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::RealTime::operator/           </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>d</em>          </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="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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double Vamp::RealTime::operator/           </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>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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 " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string Vamp::RealTime::toString           </td>
+          <td>(</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"> const</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="d75b927afadfa422ae512d169ccda0aa"></a><!-- doxytag: member="Vamp::RealTime::toText" ref="d75b927afadfa422ae512d169ccda0aa" args="(bool fixedDp=false) const " -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string Vamp::RealTime::toText           </td>
+          <td>(</td>
+          <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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">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>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned int&nbsp;</td>
+          <td class="paramname"> <em>sampleRate</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<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>(</td>
+          <td class="paramtype">long&nbsp;</td>
+          <td class="paramname"> <em>frame</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned int&nbsp;</td>
+          <td class="paramname"> <em>sampleRate</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [static]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="b4d81983384a9f57ce064e6c343f2267"></a><!-- doxytag: member="Vamp::RealTime::sec" ref="b4d81983384a9f57ce064e6c343f2267" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structVamp_1_1RealTime.html#b4d81983384a9f57ce064e6c343f2267">Vamp::RealTime::sec</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="2078835bef7bb92514a65b6051cfc6c8"></a><!-- doxytag: member="Vamp::RealTime::nsec" ref="2078835bef7bb92514a65b6051cfc6c8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="structVamp_1_1RealTime.html#2078835bef7bb92514a65b6051cfc6c8">Vamp::RealTime::nsec</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>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>
+
+</div>
+</div><p>
+<a class="anchor" name="be453371597710148b0fd19bb452f8a9"></a><!-- doxytag: member="Vamp::RealTime::zeroTime" ref="be453371597710148b0fd19bb452f8a9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> <a class="el" href="structVamp_1_1RealTime.html#be453371597710148b0fd19bb452f8a9">Vamp::RealTime::zeroTime</a><code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/struct__VampFeature-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,39 @@
+<!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>_VampFeature Member List</h1>This is the complete list of members for <a class="el" href="struct__VampFeature.html">_VampFeature</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="struct__VampFeature.html#be6aa7a08185beeb9deca2d08d99859f">hasTimestamp</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#6662b7489a7890cae713bf4e8f6d52cd">label</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#8874cb23600c6b10ca6e8a40920d999e">nsec</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#31f0b57050e33d082692536097953d9c">sec</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#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;
+<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/struct__VampFeature.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,190 @@
+<!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: _VampFeature 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.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>_VampFeature Struct Reference</h1><!-- doxytag: class="_VampFeature" --><code>#include &lt;<a class="el" href="vamp_8h-source.html">vamp.h</a>&gt;</code>
+<p>
+
+<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>
+<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__VampFeature.html#be6aa7a08185beeb9deca2d08d99859f">hasTimestamp</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">1 if the feature has a timestamp (i.e.  <a href="#be6aa7a08185beeb9deca2d08d99859f"></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__VampFeature.html#31f0b57050e33d082692536097953d9c">sec</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Seconds component of timestamp.  <a href="#31f0b57050e33d082692536097953d9c"></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__VampFeature.html#8874cb23600c6b10ca6e8a40920d999e">nsec</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nanoseconds component of timestamp.  <a href="#8874cb23600c6b10ca6e8a40920d999e"></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="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd">valueCount</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of values.  <a href="#b1ce7c8a2b489e9b0694a967497a29fd"></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="struct__VampFeature.html#e4030f941ddb2bab8bc147b88e1f1c15">values</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Values for this returned sample.  <a href="#e4030f941ddb2bab8bc147b88e1f1c15"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampFeature.html#6662b7489a7890cae713bf4e8f6d52cd">label</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Label for this returned sample.  <a href="#6662b7489a7890cae713bf4e8f6d52cd"></a><br></td></tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="be6aa7a08185beeb9deca2d08d99859f"></a><!-- doxytag: member="_VampFeature::hasTimestamp" ref="be6aa7a08185beeb9deca2d08d99859f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="struct__VampFeature.html#be6aa7a08185beeb9deca2d08d99859f">_VampFeature::hasTimestamp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="31f0b57050e33d082692536097953d9c"></a><!-- doxytag: member="_VampFeature::sec" ref="31f0b57050e33d082692536097953d9c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="struct__VampFeature.html#31f0b57050e33d082692536097953d9c">_VampFeature::sec</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="8874cb23600c6b10ca6e8a40920d999e"></a><!-- doxytag: member="_VampFeature::nsec" ref="8874cb23600c6b10ca6e8a40920d999e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="struct__VampFeature.html#8874cb23600c6b10ca6e8a40920d999e">_VampFeature::nsec</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="b1ce7c8a2b489e9b0694a967497a29fd"></a><!-- doxytag: member="_VampFeature::valueCount" ref="b1ce7c8a2b489e9b0694a967497a29fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int <a class="el" href="struct__VampFeature.html#b1ce7c8a2b489e9b0694a967497a29fd">_VampFeature::valueCount</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="e4030f941ddb2bab8bc147b88e1f1c15"></a><!-- doxytag: member="_VampFeature::values" ref="e4030f941ddb2bab8bc147b88e1f1c15" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float* <a class="el" href="struct__VampFeature.html#e4030f941ddb2bab8bc147b88e1f1c15">_VampFeature::values</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="6662b7489a7890cae713bf4e8f6d52cd"></a><!-- doxytag: member="_VampFeature::label" ref="6662b7489a7890cae713bf4e8f6d52cd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* <a class="el" href="struct__VampFeature.html#6662b7489a7890cae713bf4e8f6d52cd">_VampFeature::label</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</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;
+<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/struct__VampFeatureList-members.html	Mon Sep 22 13:01:46 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.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>_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>
+</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/struct__VampFeatureList.html	Mon Sep 22 13:01:46 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: _VampFeatureList 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.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>_VampFeatureList Struct Reference</h1><!-- doxytag: class="_VampFeatureList" --><code>#include &lt;<a class="el" href="vamp_8h-source.html">vamp.h</a>&gt;</code>
+<p>
+
+<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>
+<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="mdescLeft">&nbsp;</td><td class="mdescRight">Features in this feature list.  <a href="#a2d18873fd5e58354460ea77fc48692f"></a><br></td></tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="01db33a31ae5e04a4bd097f4b6aa75f1"></a><!-- doxytag: member="_VampFeatureList::featureCount" ref="01db33a31ae5e04a4bd097f4b6aa75f1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int <a class="el" href="struct__VampFeatureList.html#01db33a31ae5e04a4bd097f4b6aa75f1">_VampFeatureList::featureCount</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="a2d18873fd5e58354460ea77fc48692f"></a><!-- doxytag: member="_VampFeatureList::features" ref="a2d18873fd5e58354460ea77fc48692f" 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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</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;
+<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/struct__VampOutputDescriptor-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,47 @@
+<!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>_VampOutputDescriptor Member List</h1>This is the complete list of members for <a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a>, including all inherited members.<p><table>
+  <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#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>
+  <tr class="memlist"><td><a class="el" href="struct__VampOutputDescriptor.html#b56cf0bbb17136819024574d5cc65e30">isQuantized</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#4cbe540a247df60f85b00b2aa16461ee">maxValue</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#9a28180989e3d028c12a98517479dc46">minValue</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#f4fca576bd47167fd2bf9b43d588815f">name</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#71aa40222dda4321030cccd0bb655fe3">quantizeStep</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#1ccf193317b2b9c2eb0dbd8dcf61d26e">sampleRate</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#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;
+<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/struct__VampOutputDescriptor.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,382 @@
+<!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: _VampOutputDescriptor 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.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>_VampOutputDescriptor Struct Reference</h1><!-- doxytag: class="_VampOutputDescriptor" --><code>#include &lt;<a class="el" href="vamp_8h-source.html">vamp.h</a>&gt;</code>
+<p>
+
+<p>
+<a href="struct__VampOutputDescriptor-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#l00118">118</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">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampOutputDescriptor.html#461161b2010370176115967e4f58a5f5">identifier</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computer-usable name of the output.  <a href="#461161b2010370176115967e4f58a5f5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampOutputDescriptor.html#f4fca576bd47167fd2bf9b43d588815f">name</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Human-readable name of the output.  <a href="#f4fca576bd47167fd2bf9b43d588815f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampOutputDescriptor.html#bfa911b138cfb80cf63e8f2e0fa0fb89">description</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Human-readable short text about the output.  <a href="#bfa911b138cfb80cf63e8f2e0fa0fb89"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampOutputDescriptor.html#d038caa8e596dfd037035637202f1d63">unit</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Human-readable name of the unit of the output.  <a href="#d038caa8e596dfd037035637202f1d63"></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#e8571f5a2bc740738af0cb7dda0c4749">hasFixedBinCount</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">1 if output has equal number of values for each returned result.  <a href="#e8571f5a2bc740738af0cb7dda0c4749"></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="struct__VampOutputDescriptor.html#652ee422092720e44d23d98bdb68f978">binCount</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of values per result, if hasFixedBinCount.  <a href="#652ee422092720e44d23d98bdb68f978"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447">binNames</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Names of returned value bins, if hasFixedBinCount.  <a href="#10fffaa32bd894843ff7592240dfe447"></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#f6b512d772023b4e852216689c1c4465">hasKnownExtents</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">1 if each returned value falls within the same fixed min/max range.  <a href="#f6b512d772023b4e852216689c1c4465"></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="struct__VampOutputDescriptor.html#9a28180989e3d028c12a98517479dc46">minValue</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Minimum value for a returned result in any bin, if hasKnownExtents.  <a href="#9a28180989e3d028c12a98517479dc46"></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="struct__VampOutputDescriptor.html#4cbe540a247df60f85b00b2aa16461ee">maxValue</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maximum value for a returned result in any bin, if hasKnownExtents.  <a href="#4cbe540a247df60f85b00b2aa16461ee"></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#b56cf0bbb17136819024574d5cc65e30">isQuantized</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">1 if returned results are quantized to a particular resolution.  <a href="#b56cf0bbb17136819024574d5cc65e30"></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="struct__VampOutputDescriptor.html#71aa40222dda4321030cccd0bb655fe3">quantizeStep</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Quantization resolution for returned results, if isQuantized.  <a href="#71aa40222dda4321030cccd0bb655fe3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821">VampSampleType</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampOutputDescriptor.html#5da1d27cc99badc214640e859b882072">sampleType</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Time positioning method for returned results (see VampSampleType).  <a href="#5da1d27cc99badc214640e859b882072"></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="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>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="461161b2010370176115967e4f58a5f5"></a><!-- doxytag: member="_VampOutputDescriptor::identifier" ref="461161b2010370176115967e4f58a5f5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* <a class="el" href="struct__VampOutputDescriptor.html#461161b2010370176115967e4f58a5f5">_VampOutputDescriptor::identifier</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Computer-usable name of the output. 
+<p>
+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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* <a class="el" href="struct__VampOutputDescriptor.html#f4fca576bd47167fd2bf9b43d588815f">_VampOutputDescriptor::name</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Human-readable name of the output. 
+<p>
+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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* <a class="el" href="struct__VampOutputDescriptor.html#bfa911b138cfb80cf63e8f2e0fa0fb89">_VampOutputDescriptor::description</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Human-readable short text about the output. 
+<p>
+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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* <a class="el" href="struct__VampOutputDescriptor.html#d038caa8e596dfd037035637202f1d63">_VampOutputDescriptor::unit</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Human-readable name of the unit of the output. 
+<p>
+
+<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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="struct__VampOutputDescriptor.html#e8571f5a2bc740738af0cb7dda0c4749">_VampOutputDescriptor::hasFixedBinCount</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+1 if output has equal number of values for each returned result. 
+<p>
+
+<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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int <a class="el" href="struct__VampOutputDescriptor.html#652ee422092720e44d23d98bdb68f978">_VampOutputDescriptor::binCount</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Number of values per result, if hasFixedBinCount. 
+<p>
+
+<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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char** <a class="el" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447">_VampOutputDescriptor::binNames</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Names of returned value bins, if hasFixedBinCount. 
+<p>
+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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="struct__VampOutputDescriptor.html#f6b512d772023b4e852216689c1c4465">_VampOutputDescriptor::hasKnownExtents</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+1 if each returned value falls within the same fixed min/max range. 
+<p>
+
+<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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="struct__VampOutputDescriptor.html#9a28180989e3d028c12a98517479dc46">_VampOutputDescriptor::minValue</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Minimum value for a returned result in any bin, if hasKnownExtents. 
+<p>
+
+<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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="struct__VampOutputDescriptor.html#4cbe540a247df60f85b00b2aa16461ee">_VampOutputDescriptor::maxValue</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Maximum value for a returned result in any bin, if hasKnownExtents. 
+<p>
+
+<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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="struct__VampOutputDescriptor.html#b56cf0bbb17136819024574d5cc65e30">_VampOutputDescriptor::isQuantized</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+1 if returned results are quantized to a particular resolution. 
+<p>
+
+<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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="struct__VampOutputDescriptor.html#71aa40222dda4321030cccd0bb655fe3">_VampOutputDescriptor::quantizeStep</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Quantization resolution for returned results, if isQuantized. 
+<p>
+
+<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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821">VampSampleType</a> <a class="el" href="struct__VampOutputDescriptor.html#5da1d27cc99badc214640e859b882072">_VampOutputDescriptor::sampleType</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Time positioning method for returned results (see VampSampleType). 
+<p>
+
+<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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="struct__VampOutputDescriptor.html#1ccf193317b2b9c2eb0dbd8dcf61d26e">_VampOutputDescriptor::sampleRate</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sample rate of returned results, if sampleType is vampFixedSampleRate. 
+<p>
+"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>
+<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;
+<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/struct__VampParameterDescriptor-members.html	Mon Sep 22 13:01:46 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: 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>_VampParameterDescriptor Member List</h1>This is the complete list of members for <a class="el" href="struct__VampParameterDescriptor.html">_VampParameterDescriptor</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="struct__VampParameterDescriptor.html#3d37f986ee152ab55feb9902b35f7aca">defaultValue</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#95489272d6cf5a5b487e949da8e4fac6">description</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#26d74afd6a3341a673f15955031845ab">identifier</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#3f41e3b6b69c7a95ff0ce8625794f83a">isQuantized</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#6e7646babdb265c4abfc107ba4350d80">maxValue</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#b59c84f0bbe0d4d0c578d893c087b0db">minValue</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#bba810bce9656f6002777f6c3f655957">name</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#68c91fd3fc0b0b3617c2d343fe32d0e5">quantizeStep</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#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;
+<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/struct__VampParameterDescriptor.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,289 @@
+<!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: _VampParameterDescriptor 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.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>_VampParameterDescriptor Struct Reference</h1><!-- doxytag: class="_VampParameterDescriptor" --><code>#include &lt;<a class="el" href="vamp_8h-source.html">vamp.h</a>&gt;</code>
+<p>
+
+<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. 
+<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. 
+<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>
+<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampParameterDescriptor.html#26d74afd6a3341a673f15955031845ab">identifier</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computer-usable name of the parameter.  <a href="#26d74afd6a3341a673f15955031845ab"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampParameterDescriptor.html#bba810bce9656f6002777f6c3f655957">name</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Human-readable name of the parameter.  <a href="#bba810bce9656f6002777f6c3f655957"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampParameterDescriptor.html#95489272d6cf5a5b487e949da8e4fac6">description</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Human-readable short text about the parameter.  <a href="#95489272d6cf5a5b487e949da8e4fac6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampParameterDescriptor.html#8ca235f816b56dc99125e010eee08fc7">unit</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Human-readable unit of the parameter.  <a href="#8ca235f816b56dc99125e010eee08fc7"></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="struct__VampParameterDescriptor.html#b59c84f0bbe0d4d0c578d893c087b0db">minValue</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Minimum value.  <a href="#b59c84f0bbe0d4d0c578d893c087b0db"></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="struct__VampParameterDescriptor.html#6e7646babdb265c4abfc107ba4350d80">maxValue</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maximum value.  <a href="#6e7646babdb265c4abfc107ba4350d80"></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="struct__VampParameterDescriptor.html#3d37f986ee152ab55feb9902b35f7aca">defaultValue</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default value.  <a href="#3d37f986ee152ab55feb9902b35f7aca"></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__VampParameterDescriptor.html#3f41e3b6b69c7a95ff0ce8625794f83a">isQuantized</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">1 if parameter values are quantized to a particular resolution.  <a href="#3f41e3b6b69c7a95ff0ce8625794f83a"></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="struct__VampParameterDescriptor.html#68c91fd3fc0b0b3617c2d343fe32d0e5">quantizeStep</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Quantization resolution, if isQuantized.  <a href="#68c91fd3fc0b0b3617c2d343fe32d0e5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d">valueNames</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Human-readable names of the values, if isQuantized.  <a href="#188883325ab1e4a898e3dc53a8f88f9d"></a><br></td></tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="26d74afd6a3341a673f15955031845ab"></a><!-- doxytag: member="_VampParameterDescriptor::identifier" ref="26d74afd6a3341a673f15955031845ab" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* <a class="el" href="struct__VampParameterDescriptor.html#26d74afd6a3341a673f15955031845ab">_VampParameterDescriptor::identifier</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Computer-usable name of the parameter. 
+<p>
+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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* <a class="el" href="struct__VampParameterDescriptor.html#bba810bce9656f6002777f6c3f655957">_VampParameterDescriptor::name</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Human-readable name of the parameter. 
+<p>
+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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* <a class="el" href="struct__VampParameterDescriptor.html#95489272d6cf5a5b487e949da8e4fac6">_VampParameterDescriptor::description</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Human-readable short text about the parameter. 
+<p>
+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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* <a class="el" href="struct__VampParameterDescriptor.html#8ca235f816b56dc99125e010eee08fc7">_VampParameterDescriptor::unit</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Human-readable unit of the parameter. 
+<p>
+
+<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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="struct__VampParameterDescriptor.html#b59c84f0bbe0d4d0c578d893c087b0db">_VampParameterDescriptor::minValue</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Minimum value. 
+<p>
+
+<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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="struct__VampParameterDescriptor.html#6e7646babdb265c4abfc107ba4350d80">_VampParameterDescriptor::maxValue</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Maximum value. 
+<p>
+
+<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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="struct__VampParameterDescriptor.html#3d37f986ee152ab55feb9902b35f7aca">_VampParameterDescriptor::defaultValue</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Default value. 
+<p>
+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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="struct__VampParameterDescriptor.html#3f41e3b6b69c7a95ff0ce8625794f83a">_VampParameterDescriptor::isQuantized</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+1 if parameter values are quantized to a particular resolution. 
+<p>
+
+<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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float <a class="el" href="struct__VampParameterDescriptor.html#68c91fd3fc0b0b3617c2d343fe32d0e5">_VampParameterDescriptor::quantizeStep</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Quantization resolution, if isQuantized. 
+<p>
+
+<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="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char** <a class="el" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d">_VampParameterDescriptor::valueNames</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Human-readable names of the values, if isQuantized. 
+<p>
+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;
+<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/struct__VampPluginDescriptor-members.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,63 @@
+<!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>_VampPluginDescriptor Member List</h1>This is the complete list of members for <a class="el" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="struct__VampPluginDescriptor.html#0e4522c33e59c3c518b9262f2477bc27">cleanup</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#e704bba384af0de056a26da1b13ee521">copyright</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#9ff8050f92f1a04a68bb34a9d368295e">description</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#861a77525a95d424cb846820b018af53">getCurrentProgram</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#d1600203418d9646332f5b917284261b">getMaxChannelCount</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#f175ca17716db5a7545b61b01caabd92">getMinChannelCount</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#a8fc88da704e24b2b5f674821dd380c1">getOutputCount</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#92c58b8ff99ad0c23a42333aa55c144d">getOutputDescriptor</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#07174981875b55ee2ec7521a7f4fc395">getParameter</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#c626e42554ab1532c8d8b5132a0faee8">getPreferredBlockSize</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#2beddf2ce156c05dd24477ac663adcbb">getPreferredStepSize</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#d22c666188aadab83c354a0edb18fcf0">getRemainingFeatures</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#4915ec8276749cb505c01d25a6d02219">identifier</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#d0978f17a5e568079470a1978a9aad22">initialise</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#ffc4d1796da7ced2c0cbb2cc2c4a22f4">inputDomain</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#19c4ce36fdeb88eeedb539efc544b8ee">instantiate</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#4dca3d57331802964716edfa80580c9b">maker</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#9dd5a0190e4d453ff36b5acb7000b150">name</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#e6271dc3ea0cea959c84a64185492cab">parameterCount</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#64d614862604c31d6b84c49005f51913">parameters</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#04427c420d9252c7796c0bf5101345ae">pluginVersion</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#c5a0a75b6e68b22fed536765d1f2f254">process</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#1962666aa173e7a9a2c30dc82e4b2e00">programCount</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#d488470c582d8472d86455889d71c5ec">programs</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#c4bafe8ad2734d21a433d745b18e7d63">releaseFeatureSet</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#8cc38edc921616e67e551aa03397ec79">releaseOutputDescriptor</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#12267f6b506aeda3792ff7c982b02336">reset</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#d9af40cb165ca187e49250964af5f5cf">selectProgram</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#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;
+<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/struct__VampPluginDescriptor.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,730 @@
+<!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: _VampPluginDescriptor 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.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>_VampPluginDescriptor Struct Reference</h1><!-- doxytag: class="_VampPluginDescriptor" --><code>#include &lt;<a class="el" href="vamp_8h-source.html">vamp.h</a>&gt;</code>
+<p>
+
+<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>
+<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__VampPluginDescriptor.html#b6c87760e87ddaa9ac3491bccaaa28c2">vampApiVersion</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">API version with which this descriptor is compatible.  <a href="#b6c87760e87ddaa9ac3491bccaaa28c2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampPluginDescriptor.html#4915ec8276749cb505c01d25a6d02219">identifier</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computer-usable name of the plugin.  <a href="#4915ec8276749cb505c01d25a6d02219"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampPluginDescriptor.html#9dd5a0190e4d453ff36b5acb7000b150">name</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Human-readable name of the plugin.  <a href="#9dd5a0190e4d453ff36b5acb7000b150"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampPluginDescriptor.html#9ff8050f92f1a04a68bb34a9d368295e">description</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Human-readable short text about the plugin.  <a href="#9ff8050f92f1a04a68bb34a9d368295e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampPluginDescriptor.html#4dca3d57331802964716edfa80580c9b">maker</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Human-readable name of plugin's author or vendor.  <a href="#4dca3d57331802964716edfa80580c9b"></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__VampPluginDescriptor.html#04427c420d9252c7796c0bf5101345ae">pluginVersion</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Version number of the plugin.  <a href="#04427c420d9252c7796c0bf5101345ae"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampPluginDescriptor.html#e704bba384af0de056a26da1b13ee521">copyright</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Human-readable summary of copyright or licensing for plugin.  <a href="#e704bba384af0de056a26da1b13ee521"></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="struct__VampPluginDescriptor.html#e6271dc3ea0cea959c84a64185492cab">parameterCount</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of parameter inputs.  <a href="#e6271dc3ea0cea959c84a64185492cab"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="struct__VampParameterDescriptor.html">VampParameterDescriptor</a> **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampPluginDescriptor.html#64d614862604c31d6b84c49005f51913">parameters</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fixed descriptors for parameter inputs.  <a href="#64d614862604c31d6b84c49005f51913"></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="struct__VampPluginDescriptor.html#1962666aa173e7a9a2c30dc82e4b2e00">programCount</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of programs.  <a href="#1962666aa173e7a9a2c30dc82e4b2e00"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampPluginDescriptor.html#d488470c582d8472d86455889d71c5ec">programs</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fixed names for programs.  <a href="#d488470c582d8472d86455889d71c5ec"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765">VampInputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampPluginDescriptor.html#ffc4d1796da7ced2c0cbb2cc2c4a22f4">inputDomain</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Preferred input domain for audio input (time or frequency).  <a href="#ffc4d1796da7ced2c0cbb2cc2c4a22f4"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__VampPluginDescriptor.html#19c4ce36fdeb88eeedb539efc544b8ee">instantiate</a> )(const struct <a class="el" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a> *, float inputSampleRate)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create and return a new instance of this plugin.  <a href="#19c4ce36fdeb88eeedb539efc544b8ee"></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="struct__VampPluginDescriptor.html#0e4522c33e59c3c518b9262f2477bc27">cleanup</a> )(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroy an instance of this plugin.  <a href="#0e4522c33e59c3c518b9262f2477bc27"></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__VampPluginDescriptor.html#d0978f17a5e568079470a1978a9aad22">initialise</a> )(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>, unsigned int inputChannels, unsigned int stepSize, unsigned int blockSize)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialise an instance following parameter configuration.  <a href="#d0978f17a5e568079470a1978a9aad22"></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="struct__VampPluginDescriptor.html#12267f6b506aeda3792ff7c982b02336">reset</a> )(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset an instance, ready to use again on new input data.  <a href="#12267f6b506aeda3792ff7c982b02336"></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="struct__VampPluginDescriptor.html#07174981875b55ee2ec7521a7f4fc395">getParameter</a> )(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>, int)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a parameter value.  <a href="#07174981875b55ee2ec7521a7f4fc395"></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="struct__VampPluginDescriptor.html#ad3cfc7a3b432df40bd9db13eee6a481">setParameter</a> )(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>, int, float)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a parameter value.  <a href="#ad3cfc7a3b432df40bd9db13eee6a481"></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="struct__VampPluginDescriptor.html#861a77525a95d424cb846820b018af53">getCurrentProgram</a> )(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current program (if programCount &gt; 0).  <a href="#861a77525a95d424cb846820b018af53"></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="struct__VampPluginDescriptor.html#d9af40cb165ca187e49250964af5f5cf">selectProgram</a> )(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>, unsigned int)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the current program.  <a href="#d9af40cb165ca187e49250964af5f5cf"></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="struct__VampPluginDescriptor.html#2beddf2ce156c05dd24477ac663adcbb">getPreferredStepSize</a> )(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's preferred processing window increment in samples.  <a href="#2beddf2ce156c05dd24477ac663adcbb"></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="struct__VampPluginDescriptor.html#c626e42554ab1532c8d8b5132a0faee8">getPreferredBlockSize</a> )(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's preferred processing window size in samples.  <a href="#c626e42554ab1532c8d8b5132a0faee8"></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="struct__VampPluginDescriptor.html#f175ca17716db5a7545b61b01caabd92">getMinChannelCount</a> )(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum number of input channels this plugin can handle.  <a href="#f175ca17716db5a7545b61b01caabd92"></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="struct__VampPluginDescriptor.html#d1600203418d9646332f5b917284261b">getMaxChannelCount</a> )(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum number of input channels this plugin can handle.  <a href="#d1600203418d9646332f5b917284261b"></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="struct__VampPluginDescriptor.html#a8fc88da704e24b2b5f674821dd380c1">getOutputCount</a> )(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the number of feature outputs (distinct sets of results).  <a href="#a8fc88da704e24b2b5f674821dd380c1"></a><br></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="struct__VampPluginDescriptor.html#92c58b8ff99ad0c23a42333aa55c144d">getOutputDescriptor</a> )(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>, unsigned int)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a descriptor for a given feature output.  <a href="#92c58b8ff99ad0c23a42333aa55c144d"></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="struct__VampPluginDescriptor.html#8cc38edc921616e67e551aa03397ec79">releaseOutputDescriptor</a> )(<a class="el" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroy a descriptor for a feature output.  <a href="#8cc38edc921616e67e551aa03397ec79"></a><br></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="struct__VampPluginDescriptor.html#c5a0a75b6e68b22fed536765d1f2f254">process</a> )(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>, const float *const *inputBuffers, int sec, int nsec)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process an input block and return a set of features.  <a href="#c5a0a75b6e68b22fed536765d1f2f254"></a><br></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="struct__VampPluginDescriptor.html#d22c666188aadab83c354a0edb18fcf0">getRemainingFeatures</a> )(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return any remaining features at the end of processing.  <a href="#d22c666188aadab83c354a0edb18fcf0"></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="struct__VampPluginDescriptor.html#c4bafe8ad2734d21a433d745b18e7d63">releaseFeatureSet</a> )(<a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> *)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release a feature set returned from process or getRemainingFeatures.  <a href="#c4bafe8ad2734d21a433d745b18e7d63"></a><br></td></tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="b6c87760e87ddaa9ac3491bccaaa28c2"></a><!-- doxytag: member="_VampPluginDescriptor::vampApiVersion" ref="b6c87760e87ddaa9ac3491bccaaa28c2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int <a class="el" href="struct__VampPluginDescriptor.html#b6c87760e87ddaa9ac3491bccaaa28c2">_VampPluginDescriptor::vampApiVersion</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="4915ec8276749cb505c01d25a6d02219"></a><!-- doxytag: member="_VampPluginDescriptor::identifier" ref="4915ec8276749cb505c01d25a6d02219" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* <a class="el" href="struct__VampPluginDescriptor.html#4915ec8276749cb505c01d25a6d02219">_VampPluginDescriptor::identifier</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="9dd5a0190e4d453ff36b5acb7000b150"></a><!-- doxytag: member="_VampPluginDescriptor::name" ref="9dd5a0190e4d453ff36b5acb7000b150" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* <a class="el" href="struct__VampPluginDescriptor.html#9dd5a0190e4d453ff36b5acb7000b150">_VampPluginDescriptor::name</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="9ff8050f92f1a04a68bb34a9d368295e"></a><!-- doxytag: member="_VampPluginDescriptor::description" ref="9ff8050f92f1a04a68bb34a9d368295e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* <a class="el" href="struct__VampPluginDescriptor.html#9ff8050f92f1a04a68bb34a9d368295e">_VampPluginDescriptor::description</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="4dca3d57331802964716edfa80580c9b"></a><!-- doxytag: member="_VampPluginDescriptor::maker" ref="4dca3d57331802964716edfa80580c9b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* <a class="el" href="struct__VampPluginDescriptor.html#4dca3d57331802964716edfa80580c9b">_VampPluginDescriptor::maker</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="04427c420d9252c7796c0bf5101345ae"></a><!-- doxytag: member="_VampPluginDescriptor::pluginVersion" ref="04427c420d9252c7796c0bf5101345ae" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="struct__VampPluginDescriptor.html#04427c420d9252c7796c0bf5101345ae">_VampPluginDescriptor::pluginVersion</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="e704bba384af0de056a26da1b13ee521"></a><!-- doxytag: member="_VampPluginDescriptor::copyright" ref="e704bba384af0de056a26da1b13ee521" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* <a class="el" href="struct__VampPluginDescriptor.html#e704bba384af0de056a26da1b13ee521">_VampPluginDescriptor::copyright</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="e6271dc3ea0cea959c84a64185492cab"></a><!-- doxytag: member="_VampPluginDescriptor::parameterCount" ref="e6271dc3ea0cea959c84a64185492cab" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int <a class="el" href="struct__VampPluginDescriptor.html#e6271dc3ea0cea959c84a64185492cab">_VampPluginDescriptor::parameterCount</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="64d614862604c31d6b84c49005f51913"></a><!-- doxytag: member="_VampPluginDescriptor::parameters" ref="64d614862604c31d6b84c49005f51913" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="struct__VampParameterDescriptor.html">VampParameterDescriptor</a>** <a class="el" href="struct__VampPluginDescriptor.html#64d614862604c31d6b84c49005f51913">_VampPluginDescriptor::parameters</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="1962666aa173e7a9a2c30dc82e4b2e00"></a><!-- doxytag: member="_VampPluginDescriptor::programCount" ref="1962666aa173e7a9a2c30dc82e4b2e00" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int <a class="el" href="struct__VampPluginDescriptor.html#1962666aa173e7a9a2c30dc82e4b2e00">_VampPluginDescriptor::programCount</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="d488470c582d8472d86455889d71c5ec"></a><!-- doxytag: member="_VampPluginDescriptor::programs" ref="d488470c582d8472d86455889d71c5ec" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char** <a class="el" href="struct__VampPluginDescriptor.html#d488470c582d8472d86455889d71c5ec">_VampPluginDescriptor::programs</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="ffc4d1796da7ced2c0cbb2cc2c4a22f4"></a><!-- doxytag: member="_VampPluginDescriptor::inputDomain" ref="ffc4d1796da7ced2c0cbb2cc2c4a22f4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765">VampInputDomain</a> <a class="el" href="struct__VampPluginDescriptor.html#ffc4d1796da7ced2c0cbb2cc2c4a22f4">_VampPluginDescriptor::inputDomain</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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>
+
+</div>
+</div><p>
+<a class="anchor" name="19c4ce36fdeb88eeedb539efc544b8ee"></a><!-- doxytag: member="_VampPluginDescriptor::instantiate" ref="19c4ce36fdeb88eeedb539efc544b8ee" args=")(const struct _VampPluginDescriptor *, 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>(* <a class="el" href="struct__VampPluginDescriptor.html#19c4ce36fdeb88eeedb539efc544b8ee">_VampPluginDescriptor::instantiate</a>)(const struct <a class="el" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a> *, float inputSampleRate)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* <a class="el" href="struct__VampPluginDescriptor.html#0e4522c33e59c3c518b9262f2477bc27">_VampPluginDescriptor::cleanup</a>)(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int(* <a class="el" href="struct__VampPluginDescriptor.html#d0978f17a5e568079470a1978a9aad22">_VampPluginDescriptor::initialise</a>)(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>, unsigned int inputChannels, unsigned int stepSize, unsigned int blockSize)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* <a class="el" href="struct__VampPluginDescriptor.html#12267f6b506aeda3792ff7c982b02336">_VampPluginDescriptor::reset</a>)(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float(* <a class="el" href="struct__VampPluginDescriptor.html#07174981875b55ee2ec7521a7f4fc395">_VampPluginDescriptor::getParameter</a>)(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>, int)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* <a class="el" href="struct__VampPluginDescriptor.html#ad3cfc7a3b432df40bd9db13eee6a481">_VampPluginDescriptor::setParameter</a>)(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>, int, float)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int(* <a class="el" href="struct__VampPluginDescriptor.html#861a77525a95d424cb846820b018af53">_VampPluginDescriptor::getCurrentProgram</a>)(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* <a class="el" href="struct__VampPluginDescriptor.html#d9af40cb165ca187e49250964af5f5cf">_VampPluginDescriptor::selectProgram</a>)(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>, unsigned int)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int(* <a class="el" href="struct__VampPluginDescriptor.html#2beddf2ce156c05dd24477ac663adcbb">_VampPluginDescriptor::getPreferredStepSize</a>)(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int(* <a class="el" href="struct__VampPluginDescriptor.html#c626e42554ab1532c8d8b5132a0faee8">_VampPluginDescriptor::getPreferredBlockSize</a>)(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int(* <a class="el" href="struct__VampPluginDescriptor.html#f175ca17716db5a7545b61b01caabd92">_VampPluginDescriptor::getMinChannelCount</a>)(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int(* <a class="el" href="struct__VampPluginDescriptor.html#d1600203418d9646332f5b917284261b">_VampPluginDescriptor::getMaxChannelCount</a>)(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int(* <a class="el" href="struct__VampPluginDescriptor.html#a8fc88da704e24b2b5f674821dd380c1">_VampPluginDescriptor::getOutputCount</a>)(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a>*(* <a class="el" href="struct__VampPluginDescriptor.html#92c58b8ff99ad0c23a42333aa55c144d">_VampPluginDescriptor::getOutputDescriptor</a>)(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>, unsigned int)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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 *)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* <a class="el" href="struct__VampPluginDescriptor.html#8cc38edc921616e67e551aa03397ec79">_VampPluginDescriptor::releaseOutputDescriptor</a>)(<a class="el" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a> *)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="struct__VampFeatureList.html">VampFeatureList</a>*(* <a class="el" href="struct__VampPluginDescriptor.html#c5a0a75b6e68b22fed536765d1f2f254">_VampPluginDescriptor::process</a>)(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>, const float *const *inputBuffers, int sec, int nsec)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="struct__VampFeatureList.html">VampFeatureList</a>*(* <a class="el" href="struct__VampPluginDescriptor.html#d22c666188aadab83c354a0edb18fcf0">_VampPluginDescriptor::getRemainingFeatures</a>)(<a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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 *)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* <a class="el" href="struct__VampPluginDescriptor.html#c4bafe8ad2734d21a433d745b18e7d63">_VampPluginDescriptor::releaseFeatureSet</a>)(<a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> *)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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;
+<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/system_8h-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,102 @@
+<!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: system.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_dc0199af6955c245f7b5a687135670df.html">host</a>
+  </div>
+</div>
+</div>
+<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>
+<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 _SYSTEM_H_</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _SYSTEM_H_</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#ifdef _WIN32</span>
+<a name="l00041"></a>00041 <span class="preprocessor"></span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;windows.h&gt;</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="preprocessor">#define DLOPEN(a,b)  LoadLibrary((a).c_str())</span>
+<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#define DLSYM(a,b)   GetProcAddress((HINSTANCE)(a),(b))</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#define DLCLOSE(a)   FreeLibrary((HINSTANCE)(a))</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#define DLERROR()    ""</span>
+<a name="l00048"></a>00048 <span class="preprocessor"></span>
+<a name="l00049"></a>00049 <span class="preprocessor">#define PLUGIN_SUFFIX "dll"</span>
+<a name="l00050"></a>00050 <span class="preprocessor"></span>
+<a name="l00051"></a>00051 <span class="preprocessor">#else</span>
+<a name="l00052"></a>00052 <span class="preprocessor"></span>
+<a name="l00053"></a>00053 <span class="preprocessor">#include &lt;dlfcn.h&gt;</span>
+<a name="l00054"></a>00054 
+<a name="l00055"></a><a class="code" href="system_8h.html#0a14867c4f7ccec2b5a804bd0fd66a53">00055</a> <span class="preprocessor">#define DLOPEN(a,b)  dlopen((a).c_str(),(b))</span>
+<a name="l00056"></a><a class="code" href="system_8h.html#4e0f5c42b68801054532c293169317d8">00056</a> <span class="preprocessor"></span><span class="preprocessor">#define DLSYM(a,b)   dlsym((a),(b))</span>
+<a name="l00057"></a><a class="code" href="system_8h.html#1defcae089d0d937682cc78981a0ef99">00057</a> <span class="preprocessor"></span><span class="preprocessor">#define DLCLOSE(a)   dlclose((a))</span>
+<a name="l00058"></a><a class="code" href="system_8h.html#690562dc6c92cb811f90e8391bfeb801">00058</a> <span class="preprocessor"></span><span class="preprocessor">#define DLERROR()    dlerror()</span>
+<a name="l00059"></a>00059 <span class="preprocessor"></span>
+<a name="l00060"></a>00060 <span class="preprocessor">#ifdef __APPLE__</span>
+<a name="l00061"></a>00061 <span class="preprocessor"></span>
+<a name="l00062"></a>00062 <span class="preprocessor">#define PLUGIN_SUFFIX  "dylib"</span>
+<a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor">#define HAVE_OPENDIR 1</span>
+<a name="l00064"></a>00064 <span class="preprocessor"></span>
+<a name="l00065"></a>00065 <span class="preprocessor">#else </span>
+<a name="l00066"></a>00066 <span class="preprocessor"></span>
+<a name="l00067"></a><a class="code" href="system_8h.html#1efbc9bb9a9f2837d3f7386af8607abf">00067</a> <span class="preprocessor">#define PLUGIN_SUFFIX  "so"</span>
+<a name="l00068"></a><a class="code" href="system_8h.html#7cbcd5e9e882451e8c93a78b06f563c4">00068</a> <span class="preprocessor"></span><span class="preprocessor">#define HAVE_OPENDIR 1</span>
+<a name="l00069"></a>00069 <span class="preprocessor"></span>
+<a name="l00070"></a>00070 <span class="preprocessor">#endif </span><span class="comment">/* __APPLE__ */</span>
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072 <span class="preprocessor">#endif </span><span class="comment">/* ! _WIN32 */</span>
+<a name="l00073"></a>00073 
+<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;
+<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/system_8h.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,176 @@
+<!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: system.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_dc0199af6955c245f7b5a687135670df.html">host</a>
+  </div>
+</div>
+<div class="contents">
+<h1>system.h File Reference</h1>
+<p>
+
+<p>
+<a href="system_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="system_8h.html#0a14867c4f7ccec2b5a804bd0fd66a53">DLOPEN</a>(a, b)&nbsp;&nbsp;&nbsp;dlopen((a).c_str(),(b))</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="system_8h.html#4e0f5c42b68801054532c293169317d8">DLSYM</a>(a, b)&nbsp;&nbsp;&nbsp;dlsym((a),(b))</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="system_8h.html#1defcae089d0d937682cc78981a0ef99">DLCLOSE</a>(a)&nbsp;&nbsp;&nbsp;dlclose((a))</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="system_8h.html#690562dc6c92cb811f90e8391bfeb801">DLERROR</a>()&nbsp;&nbsp;&nbsp;dlerror()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="system_8h.html#1efbc9bb9a9f2837d3f7386af8607abf">PLUGIN_SUFFIX</a>&nbsp;&nbsp;&nbsp;&quot;so&quot;</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="system_8h.html#7cbcd5e9e882451e8c93a78b06f563c4">HAVE_OPENDIR</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+</table>
+<hr><h2>Define Documentation</h2>
+<a class="anchor" name="0a14867c4f7ccec2b5a804bd0fd66a53"></a><!-- doxytag: member="system.h::DLOPEN" ref="0a14867c4f7ccec2b5a804bd0fd66a53" args="(a, b)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DLOPEN          </td>
+          <td>(</td>
+          <td class="paramtype">a,         <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="system_8h-source.html#l00055">55</a> of file <a class="el" href="system_8h-source.html">system.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="4e0f5c42b68801054532c293169317d8"></a><!-- doxytag: member="system.h::DLSYM" ref="4e0f5c42b68801054532c293169317d8" args="(a, b)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DLSYM          </td>
+          <td>(</td>
+          <td class="paramtype">a,         <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">b&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%">&nbsp;&nbsp;&nbsp;dlsym((a),(b))</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="system_8h-source.html#l00056">56</a> of file <a class="el" href="system_8h-source.html">system.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="1defcae089d0d937682cc78981a0ef99"></a><!-- doxytag: member="system.h::DLCLOSE" ref="1defcae089d0d937682cc78981a0ef99" args="(a)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DLCLOSE          </td>
+          <td>(</td>
+          <td class="paramtype">a&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%">&nbsp;&nbsp;&nbsp;dlclose((a))</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="system_8h-source.html#l00057">57</a> of file <a class="el" href="system_8h-source.html">system.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="690562dc6c92cb811f90e8391bfeb801"></a><!-- doxytag: member="system.h::DLERROR" ref="690562dc6c92cb811f90e8391bfeb801" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DLERROR          </td>
+          <td>(</td>
+&nbsp;</td>
+          <td class="paramname">          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%">&nbsp;&nbsp;&nbsp;dlerror()</td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="system_8h-source.html#l00058">58</a> of file <a class="el" href="system_8h-source.html">system.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="1efbc9bb9a9f2837d3f7386af8607abf"></a><!-- doxytag: member="system.h::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="system_8h-source.html#l00067">67</a> of file <a class="el" href="system_8h-source.html">system.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="7cbcd5e9e882451e8c93a78b06f563c4"></a><!-- doxytag: member="system.h::HAVE_OPENDIR" ref="7cbcd5e9e882451e8c93a78b06f563c4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define HAVE_OPENDIR&nbsp;&nbsp;&nbsp;1          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="system_8h-source.html#l00068">68</a> of file <a class="el" href="system_8h-source.html">system.h</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>
Binary file code-doc/tab_b.gif has changed
Binary file code-doc/tab_l.gif has changed
Binary file code-doc/tab_r.gif has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/tabs.css	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,102 @@
+/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
+
+DIV.tabs
+{
+   float            : left;
+   width            : 100%;
+   background       : url("tab_b.gif") repeat-x bottom;
+   margin-bottom    : 4px;
+}
+
+DIV.tabs UL
+{
+   margin           : 0px;
+   padding-left     : 10px;
+   list-style       : none;
+}
+
+DIV.tabs LI, DIV.tabs FORM
+{
+   display          : inline;
+   margin           : 0px;
+   padding          : 0px;
+}
+
+DIV.tabs FORM
+{
+   float            : right;
+}
+
+DIV.tabs A
+{
+   float            : left;
+   background       : url("tab_r.gif") no-repeat right top;
+   border-bottom    : 1px solid #84B0C7;
+   font-size        : x-small;
+   font-weight      : bold;
+   text-decoration  : none;
+}
+
+DIV.tabs A:hover
+{
+   background-position: 100% -150px;
+}
+
+DIV.tabs A:link, DIV.tabs A:visited,
+DIV.tabs A:active, DIV.tabs A:hover
+{
+       color: #1A419D;
+}
+
+DIV.tabs SPAN
+{
+   float            : left;
+   display          : block;
+   background       : url("tab_l.gif") no-repeat left top;
+   padding          : 5px 9px;
+   white-space      : nowrap;
+}
+
+DIV.tabs INPUT
+{
+   float            : right;
+   display          : inline;
+   font-size        : 1em;
+}
+
+DIV.tabs TD
+{
+   font-size        : x-small;
+   font-weight      : bold;
+   text-decoration  : none;
+}
+
+
+
+/* Commented Backslash Hack hides rule from IE5-Mac \*/
+DIV.tabs SPAN {float : none;}
+/* End IE5-Mac hack */
+
+DIV.tabs A:hover SPAN
+{
+   background-position: 0% -150px;
+}
+
+DIV.tabs LI.current A
+{
+   background-position: 100% -150px;
+   border-width     : 0px;
+}
+
+DIV.tabs LI.current SPAN
+{
+   background-position: 0% -150px;
+   padding-bottom   : 6px;
+}
+
+DIV.navpath
+{
+   background       : none;
+   border           : none;
+   border-bottom    : 1px solid #84B0C7;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/tree.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,201 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8" />
+    <meta http-equiv="Content-Style-Type" content="text/css" />
+    <meta http-equiv="Content-Language" content="en" />
+    <link rel="stylesheet" href="doxygen.css">
+    <title>TreeView</title>
+    <script type="text/javascript">
+    <!-- // Hide script from old browsers
+    
+    function toggleFolder(id, imageNode) 
+    {
+      var folder = document.getElementById(id);
+      var l = imageNode.src.length;
+      if (imageNode.src.substring(l-20,l)=="ftv2folderclosed.png" || 
+          imageNode.src.substring(l-18,l)=="ftv2folderopen.png")
+      {
+        imageNode = imageNode.previousSibling;
+        l = imageNode.src.length;
+      }
+      if (folder == null) 
+      {
+      } 
+      else if (folder.style.display == "block") 
+      {
+        if (imageNode != null) 
+        {
+          imageNode.nextSibling.src = "ftv2folderclosed.png";
+          if (imageNode.src.substring(l-13,l) == "ftv2mnode.png")
+          {
+            imageNode.src = "ftv2pnode.png";
+          }
+          else if (imageNode.src.substring(l-17,l) == "ftv2mlastnode.png")
+          {
+            imageNode.src = "ftv2plastnode.png";
+          }
+        }
+        folder.style.display = "none";
+      } 
+      else 
+      {
+        if (imageNode != null) 
+        {
+          imageNode.nextSibling.src = "ftv2folderopen.png";
+          if (imageNode.src.substring(l-13,l) == "ftv2pnode.png")
+          {
+            imageNode.src = "ftv2mnode.png";
+          }
+          else if (imageNode.src.substring(l-17,l) == "ftv2plastnode.png")
+          {
+            imageNode.src = "ftv2mlastnode.png";
+          }
+        }
+        folder.style.display = "block";
+      }
+    }
+
+    // End script hiding -->        
+    </script>
+  </head>
+
+  <body class="ftvtree">
+    <div class="directory">
+      <h3>VampPluginSDK</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="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="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_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="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>
+        </div>
+        <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder2', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder2', this)"/><a class="el" href="hierarchy.html" target="basefrm">Class Hierarchy</a></p>
+        <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="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="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="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="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>
+              </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>
+        <p><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="inherits.html" target="basefrm">Graphical Class Hierarchy</a></p>
+        <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder7', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder7', this)"/><a class="el" href="namespaces.html" target="basefrm">Namespace List</a></p>
+        <div id="folder7">
+          <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="namespaceVamp.html" target="basefrm">Vamp</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="namespaceVamp_1_1HostExt.html" target="basefrm">Vamp::HostExt</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="namespacemembers.html" target="basefrm">Namespace Members</a></p>
+        <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder8', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder8', this)"/><a class="el" href="files.html" target="basefrm">File List</a></p>
+        <div id="folder8">
+          <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="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="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="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="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="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-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>
+          <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="ZeroCrossing_8h.html" target="basefrm">ZeroCrossing.h</a></p>
+        </div>
+        <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder9', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder9', this)"/><a class="el" href="dirs.html" target="basefrm">Directory Hierarchy</a></p>
+        <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_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>
+        </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/vamp-simple-host_8cpp-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,639 @@
+<!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-simple-host.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_dc0199af6955c245f7b5a687135670df.html">host</a>
+  </div>
+</div>
+</div>
+<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>
+<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">    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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="l00455"></a>00455     }
+<a name="l00456"></a>00456 }
+<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="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="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="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="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="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="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="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="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="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="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 
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp-simple-host_8cpp.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,479 @@
+<!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-simple-host.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_dc0199af6955c245f7b5a687135670df.html">host</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp-simple-host.cpp File Reference</h1>
+<p>
+
+<p>
+<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 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>
+ }</td></tr>
+
+<tr><td colspan="2"><br><h2>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="vamp-simple-host_8cpp.html#81f8bc89ed9194159bfb1f2b4d7a7ac4">printFeatures</a> (int, int, int, Plugin::FeatureSet, ofstream *, bool frames)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-simple-host_8cpp.html#e610372882497afdeaf180a7e53eb00b">transformInput</a> (float *, size_t)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-simple-host_8cpp.html#b40a86a032d0cf473d15fed3616ccc57">fft</a> (unsigned int, bool, double *, double *, double *, double *)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-simple-host_8cpp.html#4767f8c142ee0b61ba414df1b0376a01">printPluginPath</a> (bool verbose)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-simple-host_8cpp.html#f771864c41f23e5755ed99e8ac6609a5">printPluginCategoryList</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-simple-host_8cpp.html#80dad9e80d85fdf86b7714bf1b3c1017">enumeratePlugins</a> (<a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b313">Verbosity</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-simple-host_8cpp.html#4d02c3d9ebe7bedb3a4c3a116479e334">listPluginsInLibrary</a> (string soname)</td></tr>
+
+<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#54e0185f4b6ff507cb42c29a04f76397">runPlugin</a> (string myname, string soname, string id, string output, int outputNo, string inputFile, string outfilename, bool frames)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp-simple-host_8cpp.html#7cac13da282785878351e0a820104851">usage</a> (const char *name)</td></tr>
+
+<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>
+
+</table>
+<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a8bc193818940a8954ef0e0e5a8e16d6"></a><!-- doxytag: member="vamp-simple-host.cpp::HOST_VERSION" ref="a8bc193818940a8954ef0e0e5a8e16d6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define HOST_VERSION&nbsp;&nbsp;&nbsp;&quot;1.1&quot;          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">main()</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Enumeration Type Documentation</h2>
+<a class="anchor" name="bf3be10d03894afb391f3a2935e3b313"></a><!-- doxytag: member="vamp-simple-host.cpp::Verbosity" ref="bf3be10d03894afb391f3a2935e3b313" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="vamp-simple-host_8cpp.html#bf3be10d03894afb391f3a2935e3b313">Verbosity</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="bf3be10d03894afb391f3a2935e3b3134cf6a0dfdb6864356feab9d9ca230d16"></a><!-- doxytag: member="PluginIds" ref="bf3be10d03894afb391f3a2935e3b3134cf6a0dfdb6864356feab9d9ca230d16" args="" -->PluginIds</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e"></a><!-- doxytag: member="PluginOutputIds" ref="bf3be10d03894afb391f3a2935e3b31330eab122efa9537df4ecb2fc27fc354e" args="" -->PluginOutputIds</em>&nbsp;</td><td>
+</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>
+</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>
+
+</div>
+</div><p>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="81f8bc89ed9194159bfb1f2b4d7a7ac4"></a><!-- doxytag: member="vamp-simple-host.cpp::printFeatures" ref="81f8bc89ed9194159bfb1f2b4d7a7ac4" args="(int, int, int, Plugin::FeatureSet, ofstream *, bool frames)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void printFeatures           </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>frame</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>sr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></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">Plugin::FeatureSet&nbsp;</td>
+          <td class="paramname"> <em>features</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">ofstream *&nbsp;</td>
+          <td class="paramname"> <em>out</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&nbsp;</td>
+          <td class="paramname"> <em>frames</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="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>References <a class="el" href="RealTime_8cpp-source.html#l00135">Vamp::RealTime::toString()</a>.</p>
+
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00244">runPlugin()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="e610372882497afdeaf180a7e53eb00b"></a><!-- doxytag: member="vamp-simple-host.cpp::transformInput" ref="e610372882497afdeaf180a7e53eb00b" args="(float *, size_t)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void transformInput           </td>
+          <td>(</td>
+          <td class="paramtype">float *&nbsp;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&nbsp;</td>
+          <td class="paramname"></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>
+
+</div>
+</div><p>
+<a class="anchor" name="b40a86a032d0cf473d15fed3616ccc57"></a><!-- doxytag: member="vamp-simple-host.cpp::fft" ref="b40a86a032d0cf473d15fed3616ccc57" args="(unsigned int, bool, double *, double *, double *, double *)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void fft           </td>
+          <td>(</td>
+          <td class="paramtype">unsigned&nbsp;</td>
+          <td class="paramname"> <em>int</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&nbsp;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double *&nbsp;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double *&nbsp;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double *&nbsp;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double *&nbsp;</td>
+          <td class="paramname"></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>
+
+</div>
+</div><p>
+<a class="anchor" name="4767f8c142ee0b61ba414df1b0376a01"></a><!-- doxytag: member="vamp-simple-host.cpp::printPluginPath" ref="4767f8c142ee0b61ba414df1b0376a01" args="(bool verbose)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void printPluginPath           </td>
+          <td>(</td>
+          <td class="paramtype">bool&nbsp;</td>
+          <td class="paramname"> <em>verbose</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="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>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">main()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="f771864c41f23e5755ed99e8ac6609a5"></a><!-- doxytag: member="vamp-simple-host.cpp::printPluginCategoryList" ref="f771864c41f23e5755ed99e8ac6609a5" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void printPluginCategoryList           </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="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>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>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">main()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="80dad9e80d85fdf86b7714bf1b3c1017"></a><!-- doxytag: member="vamp-simple-host.cpp::enumeratePlugins" ref="80dad9e80d85fdf86b7714bf1b3c1017" args="(Verbosity)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void enumeratePlugins           </td>
+          <td>(</td>
+          <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>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>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>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">main()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="4d02c3d9ebe7bedb3a4c3a116479e334"></a><!-- doxytag: member="vamp-simple-host.cpp::listPluginsInLibrary" ref="4d02c3d9ebe7bedb3a4c3a116479e334" args="(string soname)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void listPluginsInLibrary           </td>
+          <td>(</td>
+          <td class="paramtype">string&nbsp;</td>
+          <td class="paramname"> <em>soname</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="54e0185f4b6ff507cb42c29a04f76397"></a><!-- doxytag: member="vamp-simple-host.cpp::runPlugin" ref="54e0185f4b6ff507cb42c29a04f76397" args="(string myname, string soname, string id, string output, int outputNo, string inputFile, string outfilename, bool frames)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int runPlugin           </td>
+          <td>(</td>
+          <td class="paramtype">string&nbsp;</td>
+          <td class="paramname"> <em>myname</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">string&nbsp;</td>
+          <td class="paramname"> <em>soname</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></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">string&nbsp;</td>
+          <td class="paramname"> <em>output</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>outputNo</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">string&nbsp;</td>
+          <td class="paramname"> <em>inputFile</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">string&nbsp;</td>
+          <td class="paramname"> <em>outfilename</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&nbsp;</td>
+          <td class="paramname"> <em>frames</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="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>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>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">main()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="7cac13da282785878351e0a820104851"></a><!-- doxytag: member="vamp-simple-host.cpp::usage" ref="7cac13da282785878351e0a820104851" args="(const char *name)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void usage           </td>
+          <td>(</td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>name</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="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>References <a class="el" href="PluginLoader_8cpp-source.html#l00062">PLUGIN_SUFFIX</a>.</p>
+
+<p>Referenced by <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">main()</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="3c04138a5bfe5d72780bb7e82a18e627"></a><!-- doxytag: member="vamp-simple-host.cpp::main" ref="3c04138a5bfe5d72780bb7e82a18e627" args="(int argc, char **argv)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int main           </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>argc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&nbsp;</td>
+          <td class="paramname"> <em>argv</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="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>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>
+
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp_8h-source.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,256 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>VampPluginSDK: vamp.h 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_b086eb10f854304ab96fb3af468374a7.html">vamp</a>
+  </div>
+</div>
+</div>
+<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>
+<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_HEADER_INCLUDED</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define VAMP_HEADER_INCLUDED</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#ifdef __cplusplus</span>
+<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="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 {
+<a name="l00074"></a><a class="code" href="struct__VampParameterDescriptor.html#26d74afd6a3341a673f15955031845ab">00074</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampParameterDescriptor.html#26d74afd6a3341a673f15955031845ab" title="Computer-usable name of the parameter.">identifier</a>;
+<a name="l00075"></a>00075 
+<a name="l00077"></a><a class="code" href="struct__VampParameterDescriptor.html#bba810bce9656f6002777f6c3f655957">00077</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampParameterDescriptor.html#bba810bce9656f6002777f6c3f655957" title="Human-readable name of the parameter.">name</a>;
+<a name="l00078"></a>00078 
+<a name="l00080"></a><a class="code" href="struct__VampParameterDescriptor.html#95489272d6cf5a5b487e949da8e4fac6">00080</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampParameterDescriptor.html#95489272d6cf5a5b487e949da8e4fac6" title="Human-readable short text about the parameter.">description</a>;
+<a name="l00081"></a>00081 
+<a name="l00083"></a><a class="code" href="struct__VampParameterDescriptor.html#8ca235f816b56dc99125e010eee08fc7">00083</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampParameterDescriptor.html#8ca235f816b56dc99125e010eee08fc7" title="Human-readable unit of the parameter.">unit</a>;
+<a name="l00084"></a>00084 
+<a name="l00086"></a><a class="code" href="struct__VampParameterDescriptor.html#b59c84f0bbe0d4d0c578d893c087b0db">00086</a>     <span class="keywordtype">float</span> <a class="code" href="struct__VampParameterDescriptor.html#b59c84f0bbe0d4d0c578d893c087b0db" title="Minimum value.">minValue</a>;
+<a name="l00087"></a>00087 
+<a name="l00089"></a><a class="code" href="struct__VampParameterDescriptor.html#6e7646babdb265c4abfc107ba4350d80">00089</a>     <span class="keywordtype">float</span> <a class="code" href="struct__VampParameterDescriptor.html#6e7646babdb265c4abfc107ba4350d80" title="Maximum value.">maxValue</a>;
+<a name="l00090"></a>00090 
+<a name="l00092"></a><a class="code" href="struct__VampParameterDescriptor.html#3d37f986ee152ab55feb9902b35f7aca">00092</a>     <span class="keywordtype">float</span> <a class="code" href="struct__VampParameterDescriptor.html#3d37f986ee152ab55feb9902b35f7aca" title="Default value.">defaultValue</a>;
+<a name="l00093"></a>00093 
+<a name="l00095"></a><a class="code" href="struct__VampParameterDescriptor.html#3f41e3b6b69c7a95ff0ce8625794f83a">00095</a>     <span class="keywordtype">int</span> <a class="code" href="struct__VampParameterDescriptor.html#3f41e3b6b69c7a95ff0ce8625794f83a" title="1 if parameter values are quantized to a particular resolution.">isQuantized</a>;
+<a name="l00096"></a>00096 
+<a name="l00098"></a><a class="code" href="struct__VampParameterDescriptor.html#68c91fd3fc0b0b3617c2d343fe32d0e5">00098</a>     <span class="keywordtype">float</span> <a class="code" href="struct__VampParameterDescriptor.html#68c91fd3fc0b0b3617c2d343fe32d0e5" title="Quantization resolution, if isQuantized.">quantizeStep</a>;
+<a name="l00099"></a>00099 
+<a name="l00101"></a><a class="code" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d">00101</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code" href="struct__VampParameterDescriptor.html#188883325ab1e4a898e3dc53a8f88f9d" title="Human-readable names of the values, if isQuantized.">valueNames</a>;
+<a name="l00102"></a>00102 
+<a name="l00103"></a>00103 } <a class="code" href="struct__VampParameterDescriptor.html" title="C language API for Vamp plugins.">VampParameterDescriptor</a>;
+<a name="l00104"></a>00104 
+<a name="l00105"></a><a class="code" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821">00105</a> <span class="keyword">typedef</span> <span class="keyword">enum</span>
+<a name="l00106"></a>00106 {
+<a name="l00108"></a><a class="code" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821b546deafd57f175fb1e7f9cbea1c5113">00108</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>,
+<a name="l00109"></a>00109 
+<a name="l00111"></a><a class="code" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821afc8a05f722bc83ecce227e12e838cf8">00111</a>     <a class="code" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821afc8a05f722bc83ecce227e12e838cf8" title="Returned results are evenly spaced at samplerate specified below.">vampFixedSampleRate</a>,
+<a name="l00112"></a>00112 
+<a name="l00114"></a><a class="code" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821bae8a21a9e30eb73e16d6abc6c7415e8">00114</a>     <a class="code" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821bae8a21a9e30eb73e16d6abc6c7415e8" title="Returned results have their own individual timestamps.">vampVariableSampleRate</a>
+<a name="l00115"></a>00115 
+<a name="l00116"></a>00116 } <a class="code" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821">VampSampleType</a>;
+<a name="l00117"></a>00117 
+<a name="l00118"></a><a class="code" href="struct__VampOutputDescriptor.html">00118</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a>
+<a name="l00119"></a>00119 {
+<a name="l00121"></a><a class="code" href="struct__VampOutputDescriptor.html#461161b2010370176115967e4f58a5f5">00121</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampOutputDescriptor.html#461161b2010370176115967e4f58a5f5" title="Computer-usable name of the output.">identifier</a>;
+<a name="l00122"></a>00122 
+<a name="l00124"></a><a class="code" href="struct__VampOutputDescriptor.html#f4fca576bd47167fd2bf9b43d588815f">00124</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampOutputDescriptor.html#f4fca576bd47167fd2bf9b43d588815f" title="Human-readable name of the output.">name</a>;
+<a name="l00125"></a>00125 
+<a name="l00127"></a><a class="code" href="struct__VampOutputDescriptor.html#bfa911b138cfb80cf63e8f2e0fa0fb89">00127</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampOutputDescriptor.html#bfa911b138cfb80cf63e8f2e0fa0fb89" title="Human-readable short text about the output.">description</a>;
+<a name="l00128"></a>00128 
+<a name="l00130"></a><a class="code" href="struct__VampOutputDescriptor.html#d038caa8e596dfd037035637202f1d63">00130</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="struct__VampOutputDescriptor.html#d038caa8e596dfd037035637202f1d63" title="Human-readable name of the unit of the output.">unit</a>;
+<a name="l00131"></a>00131 
+<a name="l00133"></a><a class="code" href="struct__VampOutputDescriptor.html#e8571f5a2bc740738af0cb7dda0c4749">00133</a>     <span class="keywordtype">int</span> <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="l00134"></a>00134 
+<a name="l00136"></a><a class="code" href="struct__VampOutputDescriptor.html#652ee422092720e44d23d98bdb68f978">00136</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct__VampOutputDescriptor.html#652ee422092720e44d23d98bdb68f978" title="Number of values per result, if hasFixedBinCount.">binCount</a>;
+<a name="l00137"></a>00137 
+<a name="l00139"></a><a class="code" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447">00139</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code" href="struct__VampOutputDescriptor.html#10fffaa32bd894843ff7592240dfe447" title="Names of returned value bins, if hasFixedBinCount.">binNames</a>;
+<a name="l00140"></a>00140 
+<a name="l00142"></a><a class="code" href="struct__VampOutputDescriptor.html#f6b512d772023b4e852216689c1c4465">00142</a>     <span class="keywordtype">int</span> <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="l00143"></a>00143     
+<a name="l00145"></a><a class="code" href="struct__VampOutputDescriptor.html#9a28180989e3d028c12a98517479dc46">00145</a>     <span class="keywordtype">float</span> <a class="code" href="struct__VampOutputDescriptor.html#9a28180989e3d028c12a98517479dc46" title="Minimum value for a returned result in any bin, if hasKnownExtents.">minValue</a>;
+<a name="l00146"></a>00146 
+<a name="l00148"></a><a class="code" href="struct__VampOutputDescriptor.html#4cbe540a247df60f85b00b2aa16461ee">00148</a>     <span class="keywordtype">float</span> <a class="code" href="struct__VampOutputDescriptor.html#4cbe540a247df60f85b00b2aa16461ee" title="Maximum value for a returned result in any bin, if hasKnownExtents.">maxValue</a>;
+<a name="l00149"></a>00149 
+<a name="l00151"></a><a class="code" href="struct__VampOutputDescriptor.html#b56cf0bbb17136819024574d5cc65e30">00151</a>     <span class="keywordtype">int</span> <a class="code" href="struct__VampOutputDescriptor.html#b56cf0bbb17136819024574d5cc65e30" title="1 if returned results are quantized to a particular resolution.">isQuantized</a>;
+<a name="l00152"></a>00152 
+<a name="l00154"></a><a class="code" href="struct__VampOutputDescriptor.html#71aa40222dda4321030cccd0bb655fe3">00154</a>     <span class="keywordtype">float</span> <a class="code" href="struct__VampOutputDescriptor.html#71aa40222dda4321030cccd0bb655fe3" title="Quantization resolution for returned results, if isQuantized.">quantizeStep</a>;
+<a name="l00155"></a>00155 
+<a name="l00157"></a><a class="code" href="struct__VampOutputDescriptor.html#5da1d27cc99badc214640e859b882072">00157</a>     <a class="code" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821">VampSampleType</a> <a class="code" href="struct__VampOutputDescriptor.html#5da1d27cc99badc214640e859b882072" title="Time positioning method for returned results (see VampSampleType).">sampleType</a>;
+<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="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="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="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="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="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="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="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>
+</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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code-doc/vamp_8h.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,316 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>VampPluginSDK: vamp.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.5 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="main.html"><span>Main&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_b086eb10f854304ab96fb3af468374a7.html">vamp</a>
+  </div>
+</div>
+<div class="contents">
+<h1>vamp.h File Reference</h1>
+<p>
+
+<p>
+<a href="vamp_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &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="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__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="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="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__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>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <br>
+<a class="el" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#a1d6e0792099b9516a89b5fb7ed2ad2b">VampPluginDescriptor</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef const <br>
+<a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#551bb7e0d8c970c2202be5f881817478">VampGetPluginDescriptorFunction</a> )(unsigned int, unsigned int)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Function pointer type for vampGetPluginDescriptor.  <a href="#551bb7e0d8c970c2202be5f881817478"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821">VampSampleType</a> { <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821b546deafd57f175fb1e7f9cbea1c5113">vampOneSamplePerStep</a>, 
+<a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821afc8a05f722bc83ecce227e12e838cf8">vampFixedSampleRate</a>, 
+<a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821bae8a21a9e30eb73e16d6abc6c7415e8">vampVariableSampleRate</a>
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765">VampInputDomain</a> { <a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765e3dbb77ff3e8f292966fd3748888e1a1">vampTimeDomain</a>, 
+<a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d">vampFrequencyDomain</a>
+ }</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vamp_8h.html#50cf6f17d0718f02093be6c7f63fcf30">vampGetPluginDescriptor</a> (unsigned int hostApiVersion, unsigned int index)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the descriptor for a given plugin index in this library.  <a href="#50cf6f17d0718f02093be6c7f63fcf30"></a><br></td></tr>
+</table>
+<hr><h2>Define Documentation</h2>
+<a class="anchor" name="6d6c8c755dbabf161f72712e0e2143c7"></a><!-- doxytag: member="vamp.h::VAMP_API_VERSION" ref="6d6c8c755dbabf161f72712e0e2143c7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define VAMP_API_VERSION&nbsp;&nbsp;&nbsp;1          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Plugin API version. 
+<p>
+This is incremented when a change is made that changes the binary layout of the descriptor records. When this happens, there should be a mechanism for retaining compatibility with older hosts and/or plugins.<p>
+See also the vampApiVersion field in the plugin descriptor, and the hostApiVersion argument to the vampGetPluginDescriptor function. 
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00053">53</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
+
+<p>Referenced by <a class="el" href="PluginLoader_8cpp-source.html#l00226">Vamp::HostExt::PluginLoader::Impl::enumeratePlugins()</a>, <a class="el" href="PluginAdapter_8cpp-source.html#l00153">Vamp::PluginAdapterBase::Impl::getDescriptor()</a>, <a class="el" href="PluginLoader_8cpp-source.html#l00355">Vamp::HostExt::PluginLoader::Impl::loadPlugin()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00121">main()</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Typedef Documentation</h2>
+<a class="anchor" name="e26a9d54a92f1c083a1b209a25a8e44e"></a><!-- doxytag: member="vamp.h::VampParameterDescriptor" ref="e26a9d54a92f1c083a1b209a25a8e44e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="struct__VampParameterDescriptor.html">_VampParameterDescriptor</a>  <a class="el" href="struct__VampParameterDescriptor.html">VampParameterDescriptor</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="a8429dd9c60d65800c58574c2b06bf66"></a><!-- doxytag: member="vamp.h::VampOutputDescriptor" ref="a8429dd9c60d65800c58574c2b06bf66" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="struct__VampOutputDescriptor.html">_VampOutputDescriptor</a>  <a class="el" href="struct__VampOutputDescriptor.html">VampOutputDescriptor</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="8d04355c13e5ff7a146abcb168cb919f"></a><!-- doxytag: member="vamp.h::VampFeature" ref="8d04355c13e5ff7a146abcb168cb919f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="struct__VampFeature.html">_VampFeature</a>  <a class="el" href="struct__VampFeature.html">VampFeature</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="5f257e3f8b5ca1ca4c159d486e219078"></a><!-- doxytag: member="vamp.h::VampFeatureList" ref="5f257e3f8b5ca1ca4c159d486e219078" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="struct__VampFeatureList.html">_VampFeatureList</a>  <a class="el" href="struct__VampFeatureList.html">VampFeatureList</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="d3be2952b1f4ad7d775940a6db75c79b"></a><!-- doxytag: member="vamp.h::VampPluginHandle" ref="d3be2952b1f4ad7d775940a6db75c79b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void* <a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00204">204</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="a1d6e0792099b9516a89b5fb7ed2ad2b"></a><!-- doxytag: member="vamp.h::VampPluginDescriptor" ref="a1d6e0792099b9516a89b5fb7ed2ad2b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="struct__VampPluginDescriptor.html">_VampPluginDescriptor</a>  <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="551bb7e0d8c970c2202be5f881817478"></a><!-- doxytag: member="vamp.h::VampGetPluginDescriptorFunction" ref="551bb7e0d8c970c2202be5f881817478" args=")(unsigned int, unsigned int)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a>*(* <a class="el" href="vamp_8h.html#551bb7e0d8c970c2202be5f881817478">VampGetPluginDescriptorFunction</a>)(unsigned int, unsigned int)          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Function pointer type for vampGetPluginDescriptor. 
+<p>
+
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00340">340</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Enumeration Type Documentation</h2>
+<a class="anchor" name="a24a8cee023d8b7659d25cbe0584b821"></a><!-- doxytag: member="vamp.h::VampSampleType" ref="a24a8cee023d8b7659d25cbe0584b821" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="vamp_8h.html#a24a8cee023d8b7659d25cbe0584b821">VampSampleType</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Enumerator: </b></dt><dd>
+<table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" name="a24a8cee023d8b7659d25cbe0584b821b546deafd57f175fb1e7f9cbea1c5113"></a><!-- doxytag: member="vampOneSamplePerStep" ref="a24a8cee023d8b7659d25cbe0584b821b546deafd57f175fb1e7f9cbea1c5113" args="" -->vampOneSamplePerStep</em>&nbsp;</td><td>
+Each process call returns results aligned with call's block start. 
+<p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="a24a8cee023d8b7659d25cbe0584b821afc8a05f722bc83ecce227e12e838cf8"></a><!-- doxytag: member="vampFixedSampleRate" ref="a24a8cee023d8b7659d25cbe0584b821afc8a05f722bc83ecce227e12e838cf8" args="" -->vampFixedSampleRate</em>&nbsp;</td><td>
+Returned results are evenly spaced at samplerate specified below. 
+<p>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="a24a8cee023d8b7659d25cbe0584b821bae8a21a9e30eb73e16d6abc6c7415e8"></a><!-- doxytag: member="vampVariableSampleRate" ref="a24a8cee023d8b7659d25cbe0584b821bae8a21a9e30eb73e16d6abc6c7415e8" args="" -->vampVariableSampleRate</em>&nbsp;</td><td>
+Returned results have their own individual timestamps. 
+<p>
+</td></tr>
+</table>
+</dl>
+
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00105">105</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
+
+</div>
+</div><p>
+<a class="anchor" name="b107386a5f042feddf6446bea23bb765"></a><!-- doxytag: member="vamp.h::VampInputDomain" ref="b107386a5f042feddf6446bea23bb765" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="vamp_8h.html#b107386a5f042feddf6446bea23bb765">VampInputDomain</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Enumerator: </b></dt><dd>
+<table border="0" cellspacing="2" cellpadding="0">
+<tr><td valign="top"><em><a class="anchor" name="b107386a5f042feddf6446bea23bb765e3dbb77ff3e8f292966fd3748888e1a1"></a><!-- doxytag: member="vampTimeDomain" ref="b107386a5f042feddf6446bea23bb765e3dbb77ff3e8f292966fd3748888e1a1" args="" -->vampTimeDomain</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign="top"><em><a class="anchor" name="b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d"></a><!-- doxytag: member="vampFrequencyDomain" ref="b107386a5f042feddf6446bea23bb765ee0c1c0d429276f071b8c0730b7bd87d" args="" -->vampFrequencyDomain</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>Definition at line <a class="el" href="vamp_8h-source.html#l00197">197</a> of file <a class="el" href="vamp_8h-source.html">vamp.h</a>.</p>
+
+</div>
+</div><p>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="50cf6f17d0718f02093be6c7f63fcf30"></a><!-- doxytag: member="vamp.h::vampGetPluginDescriptor" ref="50cf6f17d0718f02093be6c7f63fcf30" args="(unsigned int hostApiVersion, unsigned int index)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a>* vampGetPluginDescriptor           </td>
+          <td>(</td>
+          <td class="paramtype">unsigned int&nbsp;</td>
+          <td class="paramname"> <em>hostApiVersion</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">unsigned int&nbsp;</td>
+          <td class="paramname"> <em>index</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>
+Get the descriptor for a given plugin index in this library. 
+<p>
+Return NULL if the index is outside the range of valid indices for this plugin library.<p>
+The hostApiVersion argument tells the library code the highest <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> API version supported by the host. The function should return a plugin descriptor compatible with the highest API version supported by the library that is no higher than that supported by the host. Provided the descriptor has the correct vampApiVersion field for its actual compatibility level, the host should be able to do the right thing with it: use it if possible, discard it otherwise.<p>
+This is the only symbol that a <a class="el" href="namespaceVamp.html" title="If you want to compile using FFTW instead of the built-in FFT implementation for...">Vamp</a> plugin actually needs to export from its shared object; all others can be hidden. See the accompanying documentation for notes on how to achieve this with certain compilers. 
+<p>Definition at line <a class="el" href="plugins_8cpp-source.html#l00050">50</a> of file <a class="el" href="plugins_8cpp-source.html">plugins.cpp</a>.</p>
+
+<p>References <a class="el" href="PluginAdapter_8cpp-source.html#l00138">Vamp::PluginAdapterBase::getDescriptor()</a>.</p>
+
+</div>
+</div><p>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jul 9 11:36:07 2008 for VampPluginSDK by&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/develop.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+  <head>
+    <link rel="stylesheet" media="screen" type="text/css" href="screen.css"/>
+    <link rel="icon" type="image/png" href="images/waveform.png"/>
+    <link rel="shortcut" type="image/png" href="images/waveform.png"/>
+    <title>Vamp Plugins</title>
+    <meta name="robots" content="index"/>
+    <meta name="keywords" content="vamp plugin api plugins sonic visualiser visualizer visualise visualize audio music spectrogram feature extraction feapi vsi dssi"/>
+    <meta name="description" content="Vamp is a system for plugins that extract feature information from audio data."/>
+  </head>
+  <body>
+      <h1 id="header"><span>Vamp Plugins</span></h1>
+
+      <div id="nav">
+      <ul>
+      <li class="first"><a href="index.html">Home</a></li>
+      <li><a href="rationale.html">Rationale</a></li>
+      <li><a href="download.html">Download Plugins</a></li>
+      <li><a href="develop.html">Make Plugins</a></li>
+      <li><a href="http://vamp-plugins.org/forum/">Forum</a></li>
+      </ul></div>
+
+      <h2 id="firstpara">Developing Vamp plugins and hosts</h2>
+
+	<p><i>Hosted by <a href="http://sourceforge.net/projects/vamp/"><img align="center"
+	      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
+      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>
+
+      <p>The formal Vamp API is defined in C for the greatest level of
+      binary compatibility.  However, plugins and hosts are strongly
+      encouraged to make use of the set of C++ base classes provided.
+      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>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>
+
+      <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><a href="http://downloads.sourceforge.net/vamp/vamp-plugin-sdk-1.3-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><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>
+
+      </ul>
+
+      <br>
+
+      <li><b>New!</b> Read the Vamp plugin SDK <a href="guide.pdf">Programmers
+      Guide</a>!</li>
+
+      <li>Read <a href="vamp-programmer-presentation.pdf">a presentation</a> about the principles of Vamp plugins for
+      potential developers.</li>
+
+      <li><a href="code-doc/index.html">Read the API documentation online</a>.  Your plugins will normally derive from <a href="code-doc/classVamp_1_1Plugin.html">the Vamp::Plugin class</a>.</li>
+
+      <li><a href="http://vamp.svn.sourceforge.net/viewvc/vamp/vamp-plugin-sdk/trunk/README?view=markup">Read the README file for the SDK</a>.</li>
+
+      <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><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>
+
+      <p>The entire SDK is published under a very permissive BSD-style
+      <a
+      href="http://vamp.svn.sourceforge.net/viewvc/vamp/vamp-plugin-sdk/trunk/COPYING">license</a>.
+      You are encouraged to copy from it wholesale, whether developing
+      open-source or proprietary plugin or host software.</p>
+
+      <h3>Mailing list and forum</h3>
+
+      <p>Vamp plugin and host development may be discussed on the <a href="http://sourceforge.net/mail/?group_id=192001">vamp-devel list</a> and the <a href="http://vamp-plugins.org/forum/">Vamp plugins forum</a>.</p>
+
+    </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/download.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+  <head>
+    <link rel="stylesheet" media="screen" type="text/css" href="screen.css"/>
+    <link rel="icon" type="image/png" href="images/waveform.png"/>
+    <link rel="shortcut" type="image/png" href="images/waveform.png"/>
+    <title>Vamp Plugins</title>
+    <meta name="robots" content="index"/>
+    <meta name="keywords" content="vamp plugin api plugins sonic visualiser visualizer visualise visualize audio music spectrogram feature extraction feapi vsi dssi"/>
+    <meta name="description" content="Vamp is a system for plugins that extract feature information from audio data."/>
+  </head>
+  <body>
+      <h1 id="header"><span>Vamp Plugins</span></h1>
+
+      <div id="nav">
+      <ul>
+      <li class="first"><a href="index.html">Home</a></li>
+      <li><a href="rationale.html">Rationale</a></li>
+      <li><a href="download.html">Download Plugins</a></li>
+      <li><a href="develop.html">Make Plugins</a></li>
+      <li><a href="http://vamp-plugins.org/forum/">Forum</a></li>
+      </ul></div>
+
+      <h2 id="firstpara">Download Vamp Plugins</h2>
+
+      <p>Several useful Vamp plugins are linked below, and you'll find
+      <a href="#install">installation instructions</a> at the bottom
+      of the page.</p>
+
+      <p>Some of these may be ready to download and run straight away
+      on your platform.  Some are open source; others are not.  Please
+      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>
+
+      <tr><td>Queen Mary plugin set<br><i><small>Note onset detector, beat tracker, tempo estimator, key estimator, tonal change detector, structural segmenter, timbral and rhythmic similarity estimator, chromagram, constant Q spectrogram and MFCC calculation plugins from the <a href="http://www.elec.qmul.ac.uk/digitalmusic/">Centre for Digital Music</a> at Queen Mary, University of London</small></i></td>
+
+      <td><small>1.4</small></td><td><small><a href="http://www.elec.qmul.ac.uk/digitalmusic/downloads/index.html#qm-vamp-plugins">Download</a><br>(32&nbsp;and&nbsp;64&nbsp;bit)</small></td><td><small><a href="http://www.elec.qmul.ac.uk/digitalmusic/downloads/index.html#qm-vamp-plugins">Download</a></small></td><td><small><a href="http://www.elec.qmul.ac.uk/digitalmusic/downloads/index.html#qm-vamp-plugins">Download</a></small></td>
+
+      <td><small>N/A</small></td></tr>
+
+      <tr><td>Vamp Aubio plugins<br><i><small>Onset detection, pitch tracking, note tracking and tempo tracking plugins using Paul Brossier's <a href="http://aubio.piem.org/">aubio</a> library.</small></i></td><td><small>0.3.2b</small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/vamp-aubio-plugins-0.3.2b-i686-linux.tar.gz">Download</a><!-- <br><a href="http://downloads.sourceforge.net/vamp/vamp-aubio-plugins_0.3.2-1_i386.deb">Download&nbsp;.deb</a> --></small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/vamp-aubio-plugins-0.3.2b.1-osx-universal.tar.gz">Download</a></small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/vamp-aubio-plugins-0.3.2b-win32.zip">Download</a></small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/vamp-aubio-plugins-0.3.2b.tar.gz">Download</a><br><a href="http://vamp.svn.sourceforge.net/viewvc/vamp/vamp-aubio-plugins/trunk/">Browse&nbsp;SVN</a></small></td>
+
+      </tr>
+
+      <tr><td>Mazurka plugins<br><i><small>Spectral visualisation and feature extraction plugins from the <a href="http://www.mazurka.org.uk/">Mazurka project</a>.</small></i></td>
+
+      <td><small>2007-05-08</small></td>
+
+      <td><small><a href="http://www.mazurka.org.uk/software/sv/plugin/download/#linux">Download</a></small></td>
+
+      <td><small>&nbsp;</small></td>
+
+      <td><small><a href="http://www.mazurka.org.uk/software/sv/plugin/download/#windows">Download</a></small></td>
+
+      <td><small><a href="http://www.mazurka.org.uk/software/sv/plugin/">Browse</a></small></td>
+
+      </tr>
+
+      <tr>
+
+      <td>Vamp libxtract plugins<br><i><small>Low-level feature extraction plugins using Jamie Bullock's <a href="http://libxtract.sourceforge.net/">libxtract</a> library to provide around 50 spectral and other features.</small></i></td>
+
+      <td><small>0.4.2.20071019</small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/vamp-libxtract-plugins-0.4.2.20071019-i686-linux.tar.gz">Download</a></small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/vamp-libxtract-plugins-0.4.2.20071019-osx-universal.tar.gz">Download</a></small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/vamp-libxtract-plugins-0.4.2.20071019-win32.zip">Download</a></small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/vamp-libxtract-plugins-0.4.2.20071019.tar.gz">Download</a><br><a href="http://vamp.svn.sourceforge.net/viewvc/vamp/vamp-libxtract-plugins/trunk/">Browse&nbsp;SVN</a>
+
+      </tr>
+
+      <tr>
+
+      <td>MATCH Vamp plugin<br><i><small>Vamp implementation of the <a
+      href="http://www.elec.qmul.ac.uk/people/simond/match/index.html">MATCH</a>
+      audio alignment algorithm from Simon Dixon.  Sonic Visualiser
+      v1.2 can use this for automatic alignment (see <a href="http://www.sonicvisualiser.org/doc/tutorial/en/sv-alignment.pdf">tutorial</a>).</small></i></td>
+
+      <td><small>0.2</small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/match-vamp-plugin-0.2-i686-linux.tar.bz2">Download</a> (32 bit)<br><a href="http://downloads.sourceforge.net/vamp/match-vamp-plugin-0.2-amd64-linux.tar.bz2">Download</a> (64 bit)</small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/match-vamp-plugin-0.2-osx-universal.tar.bz2">Download</a></small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/match-vamp-plugin-0.2-win32.zip">Download</a></small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/match-vamp-plugin-0.2.tar.bz2">Download</a></small></td>
+
+      </tr>
+
+      <tr><td>MARSYAS Vamp plugins<br><i><small>Low-level feature extraction plugins containing functionality from the <a href="http://marsyas.sness.net/">MARSYAS</a> batch feature extractor.</small></i></td>
+
+      <td><small>0.01</small></td>
+
+      <td><small><a href="http://marsyas.sness.net/download/vamp_plugins">Download</a></small></td>
+
+      <td><small>&nbsp;</small></td>
+
+      <td><small>&nbsp;</small></td>
+
+      <td><small><a href="http://marsyas.sness.net/download/vamp_plugins">Download</a></small></td>
+
+      </tr>
+
+      <tr>
+
+      <td>OFA Vamp plugin<br><i><small>Plugin that performs audio fingerprinting and lookup using the <a href="http://www.musicip.com/dns/">MusicIP</a> OFA library.</small></i></td>
+
+      <td><small>20080128</small></td>
+
+      <td><small>&nbsp;</small></td>
+      <td><small>&nbsp;</small></td>
+      <td><small>&nbsp;</small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/ofa-vamp-plugin-20080128.tar.gz">Download</a></small></td>
+
+      </tr>
+
+      <tr>
+
+      <td>OnsetsDS plugin<br><i><small>Note onset detector using Dan Stowell's <a href="http://onsetsds.sourceforge.net/">OnsetsDS</a> library.</small></i></td>
+
+      <td><small>0.2</small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/vamp-onsetsds-plugin-0.2-i686-linux.tar.gz">Download</a></small></td>
+      <td><small><a href="http://downloads.sourceforge.net/vamp/vamp-onsetsds-plugin-0.2-osx-universal.tar.gz">Download</a></small></td>
+      <td><small><a href="http://downloads.sourceforge.net/vamp/vamp-onsetsds-plugin-0.2-win32.zip">Download</a></small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/vamp-onsetsds-plugin-0.2.tar.gz">Download</a></small></td>
+
+      </tr>
+
+      <tr>
+
+      <td>Vamp example plugins<br><i><small>A small set of simple plugins as included with the <a href="develop.html">Vamp developers kit</a>.  Amplitude tracker, simple percussion onset detector, spectral centroid, and zero-crossing counter.</i></td>
+
+      <td><small>1.3</small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/vamp-example-plugins-1.3-i686-linux.tar.gz">Download</a></small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/vamp-example-plugins-1.3-osx-universal.tar.gz">Download</a></small></td>
+
+      <td><small><a href="http://downloads.sourceforge.net/vamp/vamp-example-plugins-1.3-win32.zip">Download</a></small></td>
+
+      <td><small><a href="http://vamp.svn.sourceforge.net/viewvc/vamp/vamp-plugin-sdk/trunk/examples/">Browse&nbsp;SVN</a>
+
+      </tr></table>
+
+      <a name="install"></a><h3>How to Install</h3>
+
+      <p>A Vamp plugin set consists of a single dynamic library (DLL)
+      file containing one or more plugins, and an optional category
+      file (.cat).  To install a plugin set, just copy the plugin's
+      library file and category file (if supplied) into your system or
+      personal Vamp plugin location.</p>
+
+      <p>The plugin file extension and the location to
+      copy into depend on your platform:</p>
+
+      <table align=center border=1 cellpadding=5>
+      <tr><td>&nbsp;</td><td><b>File extension</b></td><td><b>System plugin folder</b></td><td><b>Personal plugin folder</b></td></tr>
+      <tr><td>Linux</td><td><code>.so</code></td><td><code>/usr/local/lib/vamp</code></td><td><code>$HOME/vamp</code></td></tr>
+      <tr><td>OS/X</td><td><code>.dylib</code></td><td><code>/Library/Audio/Plug-Ins/Vamp</code></td><td><code>$HOME/Library/Audio/Plug-Ins/Vamp</code></td></tr>
+      <tr><td>Windows</td><td><code>.dll</code></td><td><code>C:\Program Files\Vamp Plugins</code></td><td>&nbsp;</td></tr>
+      </table>
+
+      <p>You can alternatively set the <code>VAMP_PATH</code>
+      environment variable to list the locations a host should look in
+      for Vamp plugins.</p>
+
+      <p><code>VAMP_PATH</code> should contain a semicolon-separated
+      (on Windows) or colon-separated (OS/X, Linux) list of paths.  If
+      it is set, it will completely override the standard locations
+      listed above.</p>
+
+    </body>
+</html>
Binary file guide.odt has changed
Binary file guide.pdf has changed
Binary file images/chromagram.png has changed
Binary file images/easaier-logo.png has changed
Binary file images/forum-title.png has changed
Binary file images/qm-logo.png has changed
Binary file images/simac-logo.png has changed
Binary file images/vamp-overview-webscale.png has changed
Binary file images/vamp-title.png has changed
Binary file images/waveform.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/index.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+  <head>
+    <link rel="stylesheet" media="screen" type="text/css" href="screen.css"/>
+    <link rel="icon" type="image/png" href="images/waveform.png"/>
+    <link rel="shortcut" type="image/png" href="images/waveform.png"/>
+    <title>Vamp Plugins</title>
+    <meta name="robots" content="index"/>
+    <meta name="keywords" content="vamp plugin api plugins sonic visualiser visualizer visualise visualize audio music spectrogram feature extraction feapi vsi dssi"/>
+    <meta name="description" content="Vamp is a system for plugins that extract feature information from audio data."/>
+  </head>
+  <body>
+      <h1 id="header"><span>Vamp Plugins</span></h1>
+
+      <div id="nav">
+      <ul>
+      <li class="first"><a href="index.html">Home</a></li>
+      <li><a href="rationale.html">Rationale</a></li>
+      <li><a href="download.html">Download Plugins</a></li>
+      <li><a href="develop.html">Make Plugins</a></li>
+      <li><a href="http://vamp-plugins.org/forum/">Forum</a></li>
+      </ul></div>
+
+      <h2 id="firstpara">The Vamp audio analysis plugin system</h2>
+      
+      <p >Vamp is an audio processing plugin system for
+      plugins that extract descriptive information from audio data
+      &mdash; typically referred to as <i>audio analysis plugins</i>
+      or <i>audio feature extraction plugins</i>.</p>
+
+      <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
+      available.<br>See the <a
+      href="develop.html">developers</a> page for more
+      information.</p>
+
+      <ul>
+
+      <li><b>Get some plugins!</b><br><a href="download.html">Find links to downloadable Vamp plugins here</a>.</li>
+
+      <li><b>Do something with them!</b><br>  Vamp plugins are used for audio analysis in <a href="http://www.sonicvisualiser.org/">Sonic Visualiser</a> and <a href="http://audacity.sourceforge.net/">Audacity beta releases</a>, and may be run from a command line with the host included with the Vamp SDK.</li>
+
+      <li><b>Developers and DSP researchers!</b><br>Vamp is a nice API to develop with.  <a href="develop.html">Read more and get the SDK here</a>.</li>
+      </ul>    
+
+      <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>
+
+	<div id="logoblock">
+
+	<table width="100%" border="0" cellpadding="0" cellspacing="10"/>
+	<tr>
+	<td><a href="http://www.elec.qmul.ac.uk/digitalmusic/"><img src="images/qm-logo.png" width="224" height="95" alt="Queen Mary logo" border=0/></a></td>
+	<td><a href="http://www.semanticaudio.org/"><img src="images/simac-logo.png" width="232" height="96" alt="SIMAC logo" border=0/></a></td>
+	<td><a href="http://www.easaier.org/"><img src="images/easaier-logo.png" width="232" height="71" alt="EASAIER logo" border=0/></a></td>
+	</tr>
+	<tr><td>Developed at the Centre for Digital
+	    Music, Queen Mary, University of London.</td>
+	<td>Partially funded
+	    by the European Commission through the SIMAC project
+	    IST-FP6-507142.</td>
+	<td>Partially funded
+	    by the European Commission through the EASAIER project
+	    IST-FP6-033902.</td>
+	</tr>
+	</table>
+	</div>
+    </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rationale.html	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+  <head>
+    <link rel="stylesheet" media="screen" type="text/css" href="screen.css"/>
+    <link rel="icon" type="image/png" href="images/waveform.png"/>
+    <link rel="shortcut" type="image/png" href="images/waveform.png"/>
+    <title>Vamp Plugins</title>
+    <meta name="robots" content="index"/>
+    <meta name="keywords" content="vamp plugin api plugins sonic visualiser visualizer visualise visualize audio music spectrogram feature extraction feapi vsi dssi"/>
+    <meta name="description" content="Vamp is a system for plugins that extract feature information from audio data."/>
+  </head>
+  <body>
+      <h1 id="header"><span>Vamp Plugins</span></h1>
+
+      <div id="nav">
+      <ul>
+      <li class="first"><a href="index.html">Home</a></li>
+      <li><a href="rationale.html">Rationale</a></li>
+      <li><a href="download.html">Download Plugins</a></li>
+      <li><a href="develop.html">Make Plugins</a></li>
+      <li><a href="http://vamp-plugins.org/forum/">Forum</a></li>
+      </ul></div>
+
+      <h2 id="firstpara">Comparing Vamp and VST</h2>
+
+      <p>The principal technical differences between Vamp and a real-time audio
+       plugin system such as VST are:</p>
+
+      <ul>
+      
+      <li>Vamp plugins may output complex multidimensional data with
+      labels.  As a consequence, they are likely to work best when the
+      output data has a much lower sampling rate than the input.</li>
+
+      <li>While Vamp plugins receive their data block-by-block, they
+      are not required to return output immediately on receiving the
+      input.  A Vamp plugin may be non-causal, preferring to store up
+      data based on its input until the end of a processing run and
+      then return all results at once.</li>
+
+      <li>Vamp plugins have more control over their inputs than a
+      typical real-time processing plugin.  For example, they can
+      indicate to the host their preferred processing block and step
+      sizes, and these do not have to be equal.</li>
+
+      <li>Vamp plugins may ask to receive data in the frequency domain
+      instead of the time domain.  The host takes the responsibility
+      for converting the input data using an FFT of windowed frames.
+      This simplifies plugins that do straightforward frequency-domain
+      processing and permits the host to cache frequency-domain data
+      when possible.</li>
+      
+      <li>A Vamp plugin is configured once before each processing run,
+      and receives no further parameter changes during use &ndash;
+      unlike real time plugin APIs in which the input parameters may
+      change at any time.  This means that fundamental properties such
+      as the number of values per output or the preferred processing
+      block size may depend on the input parameters.  Many Vamp
+      plugins would be unable to work without this guarantee.</li>
+
+      <li>Vamp plugins do not have to be able to run in real time.</li>
+
+      </ul>
+
+
+    </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rdf/plugins/vamp-example-plugins.n3	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,214 @@
+@prefix rdfs:     <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd:      <http://www.w3.org/2001/XMLSchema#> .
+@prefix vamp:     <http://purl.org/ontology/vamp/> .
+@prefix plugbase: <http://vamp-plugins.org/rdf/plugins/vamp-example-plugins#> .
+@prefix owl:      <http://www.w3.org/2002/07/owl#> .
+@prefix dc:       <http://purl.org/dc/elements/1.1/> .
+@prefix af:       <http://purl.org/ontology/af/> .
+@prefix foaf:     <http://xmlns.com/foaf/0.1/> .
+@prefix cc:       <http://web.resource.org/cc/> .
+@prefix :         <> .
+
+<>  a   vamp:PluginDescription ;
+    foaf:maker          <x> ;
+    foaf:maker          <http://www.vamp-plugins.org/doap.rdf#template-generator> ;
+    foaf:primaryTopic   <http://vamp-plugins.org/rdf/plugins/vamp-example-plugins> .
+
+:vamp-example-plugins a  vamp:PluginLibrary ;
+    vamp:identifier "vamp-example-plugins" ; 
+    vamp:available_plugin plugbase:amplitudefollower; 
+    vamp:available_plugin plugbase:percussiononsets; 
+    vamp:available_plugin plugbase:spectralcentroid; 
+    vamp:available_plugin plugbase:zerocrossing .
+
+plugbase:amplitudefollower a   vamp:Plugin ;
+    dc:title              "Amplitude Follower" ;
+    vamp:name             "Amplitude Follower" ;
+    dc:description        "Track the amplitude of the audio signal" ;
+    foaf:maker            [ foaf:name "Vamp SDK Example Plugins" ] ; # FIXME could give plugin author's URI here
+#   cc:license            <Place plugin license URI here and uncomment> ; 
+    vamp:identifier       "amplitudefollower" ;
+    vamp:vamp_API_version vamp:api_version_1 ;
+    owl:versionInfo       "1" ;
+    vamp:input_domain     vamp:TimeDomain ;
+
+    vamp:parameter   plugbase:amplitudefollower_param_attack ;
+    vamp:parameter   plugbase:amplitudefollower_param_release ;
+
+    vamp:output     plugbase:amplitudefollower_output_amplitude ;
+    .
+plugbase:amplitudefollower_param_attack a  vamp:Parameter ;
+    vamp:identifier     "attack" ;
+    dc:title            "Attack time" ;
+    dc:format           "s" ;
+    vamp:min_value       0 ;
+    vamp:max_value       1 ;
+    vamp:unit           "s"  ;
+    vamp:default_value   0.01 ;
+    vamp:value_names     ();
+    .
+plugbase:amplitudefollower_param_release a  vamp:Parameter ;
+    vamp:identifier     "release" ;
+    dc:title            "Release time" ;
+    dc:format           "s" ;
+    vamp:min_value       0 ;
+    vamp:max_value       1 ;
+    vamp:unit           "s"  ;
+    vamp:default_value   0.01 ;
+    vamp:value_names     ();
+    .
+plugbase:amplitudefollower_output_amplitude a  vamp:DenseOutput ;
+    vamp:identifier       "amplitude" ;
+    dc:title              "Amplitude" ;
+    dc:description        ""  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "V" ;
+    vamp:bin_count        1 ;
+    vamp:bin_names        ( "");
+#   vamp:computes_feature_type  <Place feature type URI here and uncomment> ;
+#   vamp:computes_event_type    <Place event type URI here and uncomment> ;
+    .
+plugbase:percussiononsets a   vamp:Plugin ;
+    dc:title              "Simple Percussion Onset Detector" ;
+    vamp:name             "Simple Percussion Onset Detector" ;
+    dc:description        "Detect percussive note onsets by identifying broadband energy rises" ;
+    foaf:maker            [ foaf:name "Vamp SDK Example Plugins" ] ; # FIXME could give plugin author's URI here
+#   cc:license            <Place plugin license URI here and uncomment> ; 
+    vamp:identifier       "percussiononsets" ;
+    vamp:vamp_API_version vamp:api_version_1 ;
+    owl:versionInfo       "2" ;
+    vamp:input_domain     vamp:FrequencyDomain ;
+
+    vamp:parameter   plugbase:percussiononsets_param_threshold ;
+    vamp:parameter   plugbase:percussiononsets_param_sensitivity ;
+
+    vamp:output     plugbase:percussiononsets_output_onsets ;
+    vamp:output     plugbase:percussiononsets_output_detectionfunction ;
+    .
+plugbase:percussiononsets_param_threshold a  vamp:Parameter ;
+    vamp:identifier     "threshold" ;
+    dc:title            "Energy rise threshold" ;
+    dc:format           "dB" ;
+    vamp:min_value       0 ;
+    vamp:max_value       20 ;
+    vamp:unit           "dB"  ;
+    vamp:default_value   3 ;
+    vamp:value_names     ();
+    .
+plugbase:percussiononsets_param_sensitivity a  vamp:Parameter ;
+    vamp:identifier     "sensitivity" ;
+    dc:title            "Sensitivity" ;
+    dc:format           "%" ;
+    vamp:min_value       0 ;
+    vamp:max_value       100 ;
+    vamp:unit           "%"  ;
+    vamp:default_value   40 ;
+    vamp:value_names     ();
+    .
+plugbase:percussiononsets_output_onsets a  vamp:SparseOutput ;
+    vamp:identifier       "onsets" ;
+    dc:title              "Onsets" ;
+    dc:description        "Percussive note onset locations"  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "" ;
+    vamp:bin_count        0 ;
+    vamp:bin_names        ();
+    vamp:sample_type      vamp:VariableSampleRate ;
+    vamp:sample_rate      44100 ;
+#   vamp:computes_feature_type  <Place feature type URI here and uncomment> ;
+#   vamp:computes_event_type    <Place event type URI here and uncomment> ;
+    .
+plugbase:percussiononsets_output_detectionfunction a  vamp:DenseOutput ;
+    vamp:identifier       "detectionfunction" ;
+    dc:title              "Detection Function" ;
+    dc:description        "Broadband energy rise detection function"  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "" ;
+    a                     vamp:QuantizedOutput ;
+    vamp:quantize_step    1  ;
+    vamp:bin_count        1 ;
+    vamp:bin_names        ( "");
+#   vamp:computes_feature_type  <Place feature type URI here and uncomment> ;
+#   vamp:computes_event_type    <Place event type URI here and uncomment> ;
+    .
+plugbase:spectralcentroid a   vamp:Plugin ;
+    dc:title              "Spectral Centroid" ;
+    vamp:name             "Spectral Centroid" ;
+    dc:description        "Calculate the centroid frequency of the spectrum of the input signal" ;
+    foaf:maker            [ foaf:name "Vamp SDK Example Plugins" ] ; # FIXME could give plugin author's URI here
+#   cc:license            <Place plugin license URI here and uncomment> ; 
+    vamp:identifier       "spectralcentroid" ;
+    vamp:vamp_API_version vamp:api_version_1 ;
+    owl:versionInfo       "2" ;
+    vamp:input_domain     vamp:FrequencyDomain ;
+
+
+    vamp:output     plugbase:spectralcentroid_output_logcentroid ;
+    vamp:output     plugbase:spectralcentroid_output_linearcentroid ;
+    .
+plugbase:spectralcentroid_output_logcentroid a  vamp:DenseOutput ;
+    vamp:identifier       "logcentroid" ;
+    dc:title              "Log Frequency Centroid" ;
+    dc:description        "Centroid of the log weighted frequency spectrum"  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "Hz" ;
+    vamp:bin_count        1 ;
+    vamp:bin_names        ( "");
+#   vamp:computes_feature_type  <Place feature type URI here and uncomment> ;
+#   vamp:computes_event_type    <Place event type URI here and uncomment> ;
+    .
+plugbase:spectralcentroid_output_linearcentroid a  vamp:DenseOutput ;
+    vamp:identifier       "linearcentroid" ;
+    dc:title              "Linear Frequency Centroid" ;
+    dc:description        "Centroid of the linear frequency spectrum"  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "Hz" ;
+    vamp:bin_count        1 ;
+    vamp:bin_names        ( "");
+#   vamp:computes_feature_type  <Place feature type URI here and uncomment> ;
+#   vamp:computes_event_type    <Place event type URI here and uncomment> ;
+    .
+plugbase:zerocrossing a   vamp:Plugin ;
+    dc:title              "Zero Crossings" ;
+    vamp:name             "Zero Crossings" ;
+    dc:description        "Detect and count zero crossing points" ;
+    foaf:maker            [ foaf:name "Vamp SDK Example Plugins" ] ; # FIXME could give plugin author's URI here
+#   cc:license            <Place plugin license URI here and uncomment> ; 
+    vamp:identifier       "zerocrossing" ;
+    vamp:vamp_API_version vamp:api_version_1 ;
+    owl:versionInfo       "2" ;
+    vamp:input_domain     vamp:TimeDomain ;
+
+
+    vamp:output     plugbase:zerocrossing_output_counts ;
+    vamp:output     plugbase:zerocrossing_output_zerocrossings ;
+    .
+plugbase:zerocrossing_output_counts a  vamp:DenseOutput ;
+    vamp:identifier       "counts" ;
+    dc:title              "Zero Crossing Counts" ;
+    dc:description        "The number of zero crossing points per processing block"  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "crossings" ;
+    a                     vamp:QuantizedOutput ;
+    vamp:quantize_step    1  ;
+    vamp:bin_count        1 ;
+    vamp:bin_names        ( "");
+#   vamp:computes_feature_type  <Place feature type URI here and uncomment> ;
+#   vamp:computes_event_type    <Place event type URI here and uncomment> ;
+    .
+plugbase:zerocrossing_output_zerocrossings a  vamp:SparseOutput ;
+    vamp:identifier       "zerocrossings" ;
+    dc:title              "Zero Crossings" ;
+    dc:description        "The locations of zero crossing points"  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "" ;
+    a                     vamp:QuantizedOutput ;
+    vamp:quantize_step    1  ;
+    vamp:bin_count        0 ;
+    vamp:bin_names        ();
+    vamp:sample_type      vamp:VariableSampleRate ;
+    vamp:sample_rate      44100 ;
+#   vamp:computes_feature_type  <Place feature type URI here and uncomment> ;
+#   vamp:computes_event_type    <Place event type URI here and uncomment> ;
+    .
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rdf/plugins/vamp-example-plugins.rdf	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rdf:RDF xmlns:af="http://purl.org/ontology/af/" xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:plugbase="http://vamp-plugins.org/rdf/plugins/vamp-example-plugins#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:vamp="http://purl.org/ontology/vamp/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xml:base="http://vamp-plugins.org/rdf/plugins/vamp-example-plugins#">
+  <vamp:PluginDescription rdf:about="">
+    <foaf:maker rdf:resource="x"/>
+    <foaf:maker rdf:resource="http://www.vamp-plugins.org/doap.rdf#template-generator"/>
+    <foaf:primaryTopic rdf:resource=""/>
+  </vamp:PluginDescription>
+  <vamp:PluginLibrary rdf:about="#vamp-example-plugins">
+    <vamp:identifier>vamp-example-plugins</vamp:identifier>
+    <vamp:available_plugin rdf:resource="#amplitudefollower"/>
+    <vamp:available_plugin rdf:resource="#percussiononsets"/>
+    <vamp:available_plugin rdf:resource="#spectralcentroid"/>
+    <vamp:available_plugin rdf:resource="#zerocrossing"/>
+  </vamp:PluginLibrary>
+  <vamp:Plugin rdf:about="#amplitudefollower">
+    <dc:title>Amplitude Follower</dc:title>
+    <vamp:name>Amplitude Follower</vamp:name>
+    <dc:description>Track the amplitude of the audio signal</dc:description>
+    <foaf:maker>
+      <rdf:Description>
+        <foaf:name>Vamp SDK Example Plugins</foaf:name>
+      </rdf:Description>
+    </foaf:maker>
+    <vamp:identifier>amplitudefollower</vamp:identifier>
+    <vamp:vamp_API_version rdf:resource="http://purl.org/ontology/vamp/api_version_1"/>
+    <owl:versionInfo>1</owl:versionInfo>
+    <vamp:input_domain rdf:resource="http://purl.org/ontology/vamp/TimeDomain"/>
+    <vamp:parameter rdf:resource="#amplitudefollower_param_attack"/>
+    <vamp:parameter rdf:resource="#amplitudefollower_param_release"/>
+    <vamp:output rdf:resource="#amplitudefollower_output_amplitude"/>
+  </vamp:Plugin>
+  <vamp:Parameter rdf:about="#amplitudefollower_param_attack">
+    <vamp:identifier>attack</vamp:identifier>
+    <dc:title>Attack time</dc:title>
+    <dc:format>s</dc:format>
+    <vamp:min_value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</vamp:min_value>
+    <vamp:max_value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</vamp:max_value>
+    <vamp:unit>s</vamp:unit>
+    <vamp:default_value rdf:datatype="http://www.w3.org/2001/XMLSchema#decimal">0.01</vamp:default_value>
+    <vamp:value_names rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
+  </vamp:Parameter>
+  <vamp:Parameter rdf:about="#amplitudefollower_param_release">
+    <vamp:identifier>release</vamp:identifier>
+    <dc:title>Release time</dc:title>
+    <dc:format>s</dc:format>
+    <vamp:min_value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</vamp:min_value>
+    <vamp:max_value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</vamp:max_value>
+    <vamp:unit>s</vamp:unit>
+    <vamp:default_value rdf:datatype="http://www.w3.org/2001/XMLSchema#decimal">0.01</vamp:default_value>
+    <vamp:value_names rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
+  </vamp:Parameter>
+  <vamp:DenseOutput rdf:about="#amplitudefollower_output_amplitude">
+    <vamp:identifier>amplitude</vamp:identifier>
+    <dc:title>Amplitude</dc:title>
+    <dc:description></dc:description>
+    <vamp:fixed_bin_count>true</vamp:fixed_bin_count>
+    <vamp:unit>V</vamp:unit>
+    <vamp:bin_count rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</vamp:bin_count>
+    <vamp:bin_names>
+      <rdf:Description>
+        <rdf:first></rdf:first>
+        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
+      </rdf:Description>
+    </vamp:bin_names>
+  </vamp:DenseOutput>
+  <vamp:Plugin rdf:about="#percussiononsets">
+    <dc:title>Simple Percussion Onset Detector</dc:title>
+    <vamp:name>Simple Percussion Onset Detector</vamp:name>
+    <dc:description>Detect percussive note onsets by identifying broadband energy rises</dc:description>
+    <foaf:maker>
+      <rdf:Description>
+        <foaf:name>Vamp SDK Example Plugins</foaf:name>
+      </rdf:Description>
+    </foaf:maker>
+    <vamp:identifier>percussiononsets</vamp:identifier>
+    <vamp:vamp_API_version rdf:resource="http://purl.org/ontology/vamp/api_version_1"/>
+    <owl:versionInfo>2</owl:versionInfo>
+    <vamp:input_domain rdf:resource="http://purl.org/ontology/vamp/FrequencyDomain"/>
+    <vamp:parameter rdf:resource="#percussiononsets_param_threshold"/>
+    <vamp:parameter rdf:resource="#percussiononsets_param_sensitivity"/>
+    <vamp:output rdf:resource="#percussiononsets_output_onsets"/>
+    <vamp:output rdf:resource="#percussiononsets_output_detectionfunction"/>
+  </vamp:Plugin>
+  <vamp:Parameter rdf:about="#percussiononsets_param_threshold">
+    <vamp:identifier>threshold</vamp:identifier>
+    <dc:title>Energy rise threshold</dc:title>
+    <dc:format>dB</dc:format>
+    <vamp:min_value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</vamp:min_value>
+    <vamp:max_value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">20</vamp:max_value>
+    <vamp:unit>dB</vamp:unit>
+    <vamp:default_value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">3</vamp:default_value>
+    <vamp:value_names rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
+  </vamp:Parameter>
+  <vamp:Parameter rdf:about="#percussiononsets_param_sensitivity">
+    <vamp:identifier>sensitivity</vamp:identifier>
+    <dc:title>Sensitivity</dc:title>
+    <dc:format>%</dc:format>
+    <vamp:min_value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</vamp:min_value>
+    <vamp:max_value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">100</vamp:max_value>
+    <vamp:unit>%</vamp:unit>
+    <vamp:default_value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">40</vamp:default_value>
+    <vamp:value_names rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
+  </vamp:Parameter>
+  <vamp:SparseOutput rdf:about="#percussiononsets_output_onsets">
+    <vamp:identifier>onsets</vamp:identifier>
+    <dc:title>Onsets</dc:title>
+    <dc:description>Percussive note onset locations</dc:description>
+    <vamp:fixed_bin_count>true</vamp:fixed_bin_count>
+    <vamp:unit></vamp:unit>
+    <vamp:bin_count rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</vamp:bin_count>
+    <vamp:bin_names rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
+    <vamp:sample_type rdf:resource="http://purl.org/ontology/vamp/VariableSampleRate"/>
+    <vamp:sample_rate rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">44100</vamp:sample_rate>
+  </vamp:SparseOutput>
+  <vamp:DenseOutput rdf:about="#percussiononsets_output_detectionfunction">
+    <vamp:identifier>detectionfunction</vamp:identifier>
+    <dc:title>Detection Function</dc:title>
+    <dc:description>Broadband energy rise detection function</dc:description>
+    <vamp:fixed_bin_count>true</vamp:fixed_bin_count>
+    <vamp:unit></vamp:unit>
+    <rdf:type rdf:resource="http://purl.org/ontology/vamp/QuantizedOutput"/>
+    <vamp:quantize_step rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</vamp:quantize_step>
+    <vamp:bin_count rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</vamp:bin_count>
+    <vamp:bin_names>
+      <rdf:Description>
+        <rdf:first></rdf:first>
+        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
+      </rdf:Description>
+    </vamp:bin_names>
+  </vamp:DenseOutput>
+  <vamp:Plugin rdf:about="#spectralcentroid">
+    <dc:title>Spectral Centroid</dc:title>
+    <vamp:name>Spectral Centroid</vamp:name>
+    <dc:description>Calculate the centroid frequency of the spectrum of the input signal</dc:description>
+    <foaf:maker>
+      <rdf:Description>
+        <foaf:name>Vamp SDK Example Plugins</foaf:name>
+      </rdf:Description>
+    </foaf:maker>
+    <vamp:identifier>spectralcentroid</vamp:identifier>
+    <vamp:vamp_API_version rdf:resource="http://purl.org/ontology/vamp/api_version_1"/>
+    <owl:versionInfo>2</owl:versionInfo>
+    <vamp:input_domain rdf:resource="http://purl.org/ontology/vamp/FrequencyDomain"/>
+    <vamp:output rdf:resource="#spectralcentroid_output_logcentroid"/>
+    <vamp:output rdf:resource="#spectralcentroid_output_linearcentroid"/>
+  </vamp:Plugin>
+  <vamp:DenseOutput rdf:about="#spectralcentroid_output_logcentroid">
+    <vamp:identifier>logcentroid</vamp:identifier>
+    <dc:title>Log Frequency Centroid</dc:title>
+    <dc:description>Centroid of the log weighted frequency spectrum</dc:description>
+    <vamp:fixed_bin_count>true</vamp:fixed_bin_count>
+    <vamp:unit>Hz</vamp:unit>
+    <vamp:bin_count rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</vamp:bin_count>
+    <vamp:bin_names>
+      <rdf:Description>
+        <rdf:first></rdf:first>
+        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
+      </rdf:Description>
+    </vamp:bin_names>
+  </vamp:DenseOutput>
+  <vamp:DenseOutput rdf:about="#spectralcentroid_output_linearcentroid">
+    <vamp:identifier>linearcentroid</vamp:identifier>
+    <dc:title>Linear Frequency Centroid</dc:title>
+    <dc:description>Centroid of the linear frequency spectrum</dc:description>
+    <vamp:fixed_bin_count>true</vamp:fixed_bin_count>
+    <vamp:unit>Hz</vamp:unit>
+    <vamp:bin_count rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</vamp:bin_count>
+    <vamp:bin_names>
+      <rdf:Description>
+        <rdf:first></rdf:first>
+        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
+      </rdf:Description>
+    </vamp:bin_names>
+  </vamp:DenseOutput>
+  <vamp:Plugin rdf:about="#zerocrossing">
+    <dc:title>Zero Crossings</dc:title>
+    <vamp:name>Zero Crossings</vamp:name>
+    <dc:description>Detect and count zero crossing points</dc:description>
+    <foaf:maker>
+      <rdf:Description>
+        <foaf:name>Vamp SDK Example Plugins</foaf:name>
+      </rdf:Description>
+    </foaf:maker>
+    <vamp:identifier>zerocrossing</vamp:identifier>
+    <vamp:vamp_API_version rdf:resource="http://purl.org/ontology/vamp/api_version_1"/>
+    <owl:versionInfo>2</owl:versionInfo>
+    <vamp:input_domain rdf:resource="http://purl.org/ontology/vamp/TimeDomain"/>
+    <vamp:output rdf:resource="#zerocrossing_output_counts"/>
+    <vamp:output rdf:resource="#zerocrossing_output_zerocrossings"/>
+  </vamp:Plugin>
+  <vamp:DenseOutput rdf:about="#zerocrossing_output_counts">
+    <vamp:identifier>counts</vamp:identifier>
+    <dc:title>Zero Crossing Counts</dc:title>
+    <dc:description>The number of zero crossing points per processing block</dc:description>
+    <vamp:fixed_bin_count>true</vamp:fixed_bin_count>
+    <vamp:unit>crossings</vamp:unit>
+    <rdf:type rdf:resource="http://purl.org/ontology/vamp/QuantizedOutput"/>
+    <vamp:quantize_step rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</vamp:quantize_step>
+    <vamp:bin_count rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</vamp:bin_count>
+    <vamp:bin_names>
+      <rdf:Description>
+        <rdf:first></rdf:first>
+        <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
+      </rdf:Description>
+    </vamp:bin_names>
+  </vamp:DenseOutput>
+  <vamp:SparseOutput rdf:about="#zerocrossing_output_zerocrossings">
+    <vamp:identifier>zerocrossings</vamp:identifier>
+    <dc:title>Zero Crossings</dc:title>
+    <dc:description>The locations of zero crossing points</dc:description>
+    <vamp:fixed_bin_count>true</vamp:fixed_bin_count>
+    <vamp:unit></vamp:unit>
+    <rdf:type rdf:resource="http://purl.org/ontology/vamp/QuantizedOutput"/>
+    <vamp:quantize_step rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</vamp:quantize_step>
+    <vamp:bin_count rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</vamp:bin_count>
+    <vamp:bin_names rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
+    <vamp:sample_type rdf:resource="http://purl.org/ontology/vamp/VariableSampleRate"/>
+    <vamp:sample_rate rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">44100</vamp:sample_rate>
+  </vamp:SparseOutput>
+</rdf:RDF>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rdf/vamp.n3	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,705 @@
+@prefix owl: <http://www.w3.org/2002/07/owl#>.
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
+@prefix foaf: <http://xmlns.com/foaf/0.1/>.
+@prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#>.
+@prefix dc: <http://purl.org/dc/elements/1.1/>.
+@prefix event: <http://purl.org/NET/c4dm/event.owl#>.
+@prefix af: <http://purl.org/ontology/af/>.
+@prefix vamp: <http://purl.org/ontology/vamp/>.
+@prefix :         <> .
+
+<> 
+	a owl:Ontology;
+	dc:title "Vamp Plugins Ontology";
+	rdfs:label "Vamp Plugins Ontology";
+	rdfs:comment """
+			Vamp Ontology. This ontology includes the following descriptions:
+			
+				- OWL description of the Vamp API
+				- OWL description of the Transform environment necessary to set up the execution of any plugin 
+			
+			This Ontology provides semantics to describe and control Vamp plugins in RDF. Any "RDF-speaker" host is therefore able to 
+			use this ontology to read, set up and execute plugins.
+			The extracted features are expressed in terms of the Audio Features Ontology: http://purl.org/ontology/af/.
+			For more information, please visit the Vamp Plugins website: http://www.vamp-plugins.org/
+	""";
+	foaf:maker "Chris Cannam";
+	foaf:maker "Chris Sutton";
+	foaf:maker "Yves Raimond";
+	foaf:maker "David Pastor Escuredo";
+        dc:date "$Date: 2008/05/21 17:05:11 $";
+	.
+
+vs:term_status a owl:AnnotationProperty.
+
+#Authors foaf
+
+#############################################
+# Part 1: Describing a Vamp plugin
+#############################################
+
+#########################################
+# CLASSES
+#########################################
+
+# Note: we don't include a Feature concept because we rely on the Audio Feature ontology
+# Note: we additionally define a Transform concept to link the running context
+
+vamp:Plugin
+	a owl:Class;
+	rdfs:label "Vamp Plugin";
+	rdfs:comment """
+		A Vamp plugin is an implementation of an audio feature extraction algorithm using the Vamp API.
+	""";
+	vs:term_status "stable";
+	.
+
+vamp:PluginLibrary
+	a owl:Class;
+	rdfs:label "Vamp Plugin Library";
+	rdfs:comment """
+		Library of Vamp Plugins. This may need to include rights.
+	""";
+	vs:term_status "stable";
+	.
+
+vamp:Parameter
+	a owl:Class;
+	rdfs:label "Vamp Plugin Parameter";
+	rdfs:comment """
+		Descriptor for a plugin parameter. Hosts need to know about the specific type and form of the parameters of a particular plugin for a correct transform setup.
+	""";
+	vs:term_status "stable";
+	.
+
+vamp:QuantizedParameter
+	a owl:Class;
+	rdfs:label "Quantized Parameter";
+	rdfs:subClassOf	vamp:Parameter;
+	rdfs:comment """
+			Descriptor of a parameter that does have quantized values. The property quantize_step is just defined for this subclass and not for the general Parameter.
+	""";
+	vs:term_status "stable";
+	.
+
+vamp:PluginOutput
+	a owl:Class;
+	rdfs:label "Vamp Plugin output descriptor";
+	rdfs:comment """
+		Descriptor for an output of a plugin. This descriptor provides information that is necessary to correctly interpret the output features. The output type will determine how to read the temporal information of the extracted features and how to manage the burden of ouput data.
+	""";
+	vs:term_status "unstable";
+	.
+
+#3 classifications of outputs: 
+#-density of data
+#-quantised
+#-known extents
+
+#there is not classification for fix_bin_count
+
+vamp:QuantizedOutput
+	a owl:Class;
+	rdfs:label "Quantized Output";
+	rdfs:subClassOf	vamp:PluginOutput;
+	rdfs:comment """
+			Descriptor of an output that does have quantized values.
+	""";
+	vs:term_status "stable";
+	.
+
+vamp:KnownExtentsOutput
+	a owl:Class;
+	rdfs:label "Known Extents Output";
+	rdfs:subClassOf	vamp:PluginOutput;
+	rdfs:comment """
+			Descriptor of an output that does have known extents.
+	""";
+	vs:term_status "stable";
+	.
+
+vamp:DenseOutput
+	a owl:Class;
+	rdfs:subClassOf vamp:PluginOutput;
+	rdfs:label "Dense output";
+	rdfs:comment """
+		Specific output type for data evenly spaced in time, which may be of high volume and which it is usually desirable to represent in a compact form.
+	""";
+	vs:term_status "unstable";
+	.
+
+vamp:SparseOutput 
+	a owl:Class;
+	rdfs:label "Sparse output";
+	rdfs:subClassOf vamp:PluginOutput;
+	rdfs:comment """
+		Specific output type for data that consist of features that require their own individual temporal information.
+	""";
+	vs:term_status "unstable";
+	.
+
+vamp:TrackLevelOutput
+	a owl:Class;
+	rdfs:label "track level output";
+	rdfs:subClassOf vamp:PluginOutput;
+	rdfs:comment """
+		Specific output type for track level information.  The Vamp API does not provide for this sort of output directly, so this will require a "hacky" interpretation of the feature timestamp to establish that it reflects track metadata instead of temporal data.
+	""";
+	vs:term_status "unstable";
+	.
+
+vamp:PluginProgram
+	a owl:Class;
+	rdfs:label "Plugin program";
+	rdfs:comment """
+		The program is a predefined context of parameters. We may not need a concept for this and just a property linking a string representing the program name.
+	""";
+	vs:term_status "unstable";
+	.
+
+vamp:Feature
+	a owl:Class;
+	rdfs:label "Vamp Feature";
+	rdfs:comment "This may be removed mighty soon as we rely on the Audio Features Ontology for this";
+	vs:term_status "deprecated";
+	.
+
+# Classes for enumerations in the Vamp API
+
+vamp:InputDomain
+	a owl:Class;
+	rdfs:label "Plugin input domain";
+	rdfs:comment """
+		Plugins declare the input domain they require, so the host can convert the input data properly. Hosts using the Vamp SDK PluginAdapter to wrap plugins should see this work done for them automatically - see the Vamp documentation.
+	""";
+	vs:term_status "stable";
+	.
+
+vamp:SampleType
+	a owl:Class;
+	rdfs:label "sample type";
+	rdfs:comment """
+		The sample type specifies the temporal information of the plugin output. This information should be combined with the output type for a correct interpretation.
+	""";
+	vs:term_status "stable";
+	.
+
+##################################################################
+# PROPERTIES. 
+##################################################################
+
+##### Plugin properties
+
+
+
+##!!! lacking plugin version?
+
+vamp:parameter
+	a rdf:Property;
+	a owl:ObjectProperty;
+	rdfs:label "parameter descriptor";
+	rdfs:comment """
+		Links each parameter descriptor to the plugin.
+	""";
+	rdfs:range vamp:Parameter;
+	rdfs:domain vamp:ParameterBinding;
+	rdfs:domain vamp:Plugin;
+	vs:term_status "stable";
+	.
+
+vamp:output
+	a rdf:Property;
+	a owl:ObjectProperty;
+	rdfs:label "output";
+	rdfs:comment """
+		Links each output type to the plugin.
+	""";
+	rdfs:range vamp:PluginOutput;
+	rdfs:domain vamp:Plugin;
+	rdfs:domain vamp:Transform;
+	vs:term_status "stable";
+	.
+
+##### Plugin Library properties (could include affiliation, rights...)
+
+vamp:available_plugin 
+	a rdf:Property;
+	a owl:ObjectProperty;
+	rdfs:label "available plugin";
+	rdfs:comment """
+		Available plugins in the library
+	""";
+	rdfs:range vamp:Plugin;
+	rdfs:domain vamp:PluginLibrary;
+	vs:term_status "stable";
+	.
+
+#### Plugin Descriptor properties
+
+vamp:identifier
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	rdfs:label "plugin identifier";
+	rdfs:comment """
+		Machine-readable identifier for a Vamp plugin within the scope of its library, or for a plugin descriptor within the scope of the plugin.
+	""";
+	rdfs:domain vamp:Plugin;
+	rdfs:domain vamp:PluginLibrary;
+	rdfs:domain vamp:PluginProgram;
+	rdfs:domain vamp:PluginOutput;
+	rdfs:domain vamp:Parameter;
+	rdfs:domain vamp:Transform;
+	vs:term_status "stable";
+	.
+
+vamp:name
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	rdfs:label "plugin name";
+	rdfs:comment """
+		Human-readable identifier for the plugin.
+	""";
+	rdfs:domain vamp:Plugin;
+	vs:term_status "stable";
+	.
+
+vamp:vamp_API_version
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	rdfs:label "vamp API version";
+	rdfs:comment """
+		Version of the Vamp API used to implement this plugin.
+	""";
+	rdfs:domain vamp:Plugin;
+	vs:term_status "stable";
+	.
+
+vamp:input_domain
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	rdfs:label "input domain";
+	rdfs:comment """
+		Input domain required by the plugin (time or frequency).
+	""";
+	rdfs:domain vamp:Plugin;
+	rdfs:range vamp:InputDomain;
+	vs:term_status "stable";
+	.
+
+# Note that other properties like maker can be linked to the plugin descriptor using other namespaces
+
+##### Parameter Descriptor properties (and some common with PluginOutput)
+
+# Note: Identifier has been already defined
+
+vamp:max_value
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	a owl:FunctionalProperty;
+	rdfs:label "max value";
+	rdfs:comment """
+		Maximum value of the parameter range
+	""";
+	rdfs:range vamp:Parameter;
+	rdfs:range vamp:KnownExtentsOutput;
+	vs:term_status "unstable";
+	.
+
+vamp:min_value
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	a owl:FunctionalProperty;
+	rdfs:label "min value";
+	rdfs:comment """
+		Minimum value of the parameter range
+	""";
+	rdfs:range vamp:Parameter;
+	rdfs:range vamp:KnownExtentsOutput;
+	vs:term_status "unstable";
+	.
+
+vamp:default_value
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	a owl:FunctionalProperty;
+	rdfs:label "default value";
+	rdfs:comment """
+		Default value of the parameter
+	""";
+	rdfs:range vamp:Parameter;
+	vs:term_status "unstable";
+	.
+
+vamp:quantize_step
+	a rdf:Property;
+	a owl:FunctionalProperty;
+	a owl:DatatypeProperty;
+	rdfs:label "quantized step";
+	rdfs:comment """
+		Quantize step. Only defined if is_quantized is true
+	""";
+	rdfs:domain vamp:QuantizedOutput;
+	rdfs:domain vamp:QuantizedParameter;
+	vs:term_status "unstable";
+	.
+
+vamp:unit 
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	a owl:FunctionalProperty;
+	rdfs:label "unit";
+	rdfs:comment """
+		Unit of the output/parameter. A string type
+	""";
+	rdfs:domain vamp:PluginOutput;
+	rdfs:domain vamp:Parameter;
+	vs:term_status "unstable";
+	.
+
+vamp:value_names  
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	rdfs:label "value names";
+	rdfs:comment """
+		List of value names if available
+	""";
+	rdfs:domain vamp:Parameter;
+	vs:term_status "unstable";
+	.
+
+########Output Descriptor properties
+
+vamp:fixed_bin_count 
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	rdfs:label "fixed bin count";
+	rdfs:comment """
+		Fixed bin count. A boolean type.
+	""";
+	rdfs:domain vamp:PluginOutput;
+	vs:term_status "unstable";
+	.
+
+vamp:sample_rate
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	rdfs:label "sample rate";
+	rdfs:comment """
+		Sample rate of the output if any. Should be read depending on SampleType and Output classes.
+	""";
+	rdfs:domain vamp:PluginOutput;
+	vs:term_status "unstable";
+	.
+	
+vamp:bin_count      
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	rdfs:label "bin count";
+	rdfs:comment """
+		Number of elements of the bin output. This information is necessary to define the output as belonging to a specific subclass of Plugin Output.
+	""";
+	rdfs:domain vamp:PluginOutput;
+	vs:term_status "unstable";
+	.
+
+vamp:bin_names  
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	rdfs:label "bin names";
+	rdfs:comment """
+		List of bin names if available.
+	""";
+	rdfs:domain vamp:PluginOutput;
+	vs:term_status "unstable";
+	.
+
+vamp:sample_type  
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	a owl:FunctionalProperty;
+	rdfs:label "sample type";
+	rdfs:comment """
+		The sample type specifies the temporal information of the output.
+	""";
+	rdfs:domain vamp:PluginOutput;
+	rdfs:range vamp:SampleType;
+	vs:term_status "unstable";
+	.
+
+#These last 2 properties are included to match the Audio Features Ontology (not estrictly from the Vamp API).
+
+vamp:computes_feature_type
+	a rdf:Property;
+	a owl:ObjectProperty;
+	rdfs:label "feature type";
+	rdfs:comment """
+			Feature Types output by the plugin. Links the vamp ontology to the audio features ontology.
+	""";
+	rdfs:domain vamp:PluginOutput;
+	rdfs:range af:AudioFeature;
+	vs:term_status "unstable";
+	.
+
+vamp:computes_event_type
+	a rdf:Property;
+	a owl:ObjectProperty;
+	rdfs:label "event type";
+	rdfs:comment """
+			Event Type output by the plugin.
+	""";
+	rdfs:domain vamp:PluginOutput;
+	rdfs:range event:Event;
+	vs:term_status "unstable";
+	.
+	
+########################
+# INDIVIDUALS
+########################
+
+vamp:TimeDomain 
+	a vamp:InputDomain;
+	.
+
+vamp:FrequencyDomain
+	a vamp:InputDomain;
+	.
+
+vamp:OneSamplePerStep
+	a vamp:SampleType;
+	.
+
+vamp:FixedSampleRate
+	a vamp:SampleType;
+	.
+
+vamp:VariableSampleRate
+	a vamp:SampleType; 
+	.
+
+################################################### END OF THE VAMP API DESCRIPTION ############################################################
+
+
+#############################################
+# Part 2: Classes to describe plugin execution. TRANSFORM
+#############################################
+
+# Note: we need to define this part of the ontology to give a minimun common standard for hosts.
+# Note: this may split up in some other ontology or become part of the DSP namespace
+
+vamp:Transform
+	a owl:Class;
+	rdfs:label "Transform";
+	vs:term_status "stable";
+	rdfs:comment """
+		The Transform defines the environment of any audio processing computation. 
+	""";
+	.
+
+vamp:ParameterBinding
+	a owl:Class;
+	rdfs:label "Parameter binding";
+	vs:term_status "unstable";
+	rdfs:comment """
+		Parameter setting used by the plugin transform to set up the plugin.
+	""";
+	.
+
+vamp:Configuration
+	a owl:Class;
+	rdfs:label "Configuration";
+	vs:term_status "unstable";
+	rdfs:comment """
+		For extension (key/value data provided to DSSI plugins, not relevant to Vamp)
+	""";
+	.
+
+vamp:TransformType
+	a owl:Class;
+	rdfs:label "Transform Type";
+	vs:term_status "unstable";
+	rdfs:comment """
+		Specifies the type of transform. May be feature extraction, effect...
+	""";
+	.
+
+##individuals of transformtype
+vamp:FeatureExtraction
+	a vamp:TransformType;
+	rdfs:label "Feature Extraction";
+	vs:term_status "unstable";
+	rdfs:comment """
+		Feature extraction transform. This may be just a subclass of Transform...
+	""";
+	.
+
+vamp:Effect
+	a vamp:TransformType;
+	rdfs:label "Effect";
+	vs:term_status "unstable";
+	rdfs:comment """
+		Effect transform. This may be just a subclass of Transform...
+	""";
+	.
+
+################
+# Properties
+################
+
+##### Plugin Transform properties
+
+#identifier and output are declared above
+
+vamp:engine
+	a rdf:Property;
+	a owl:ObjectProperty;
+	rdfs:label "plugin";
+	vs:term_status "stable";
+	rdfs:comment """
+		Specifies the sort of plugin in execution. This is an extension to use Transform with other plugin libraries
+	""";
+	rdfs:domain vamp:Transform;
+	rdfs:range vamp:Plugin;
+	.
+
+vamp:program
+	a rdf:Property;
+	a owl:ObjectProperty;
+	a owl:FunctionalProperty;
+	rdfs:label "program";
+	vs:term_status "stable";
+	rdfs:comment """
+		Specifies the program to set the plugin in execution.  Here the plugin program matches with the one in the plugin descriptor. There is not descriptor required for the program (just a string), is it?
+	""";
+	rdfs:domain vamp:Transform;
+	rdfs:range vamp:PluginProgram;
+	.
+
+vamp:configuration
+	a rdf:Property;
+	a owl:ObjectProperty;
+	a owl:FunctionalProperty;
+	rdfs:label "program";
+	vs:term_status "stable";
+	rdfs:comment """
+		Extension for configuration. 
+	""";
+	rdfs:domain vamp:Transform;
+	rdfs:range vamp:Configuration;
+	.
+
+vamp:parameter_binding
+	a rdf:Property;
+	a owl:ObjectProperty;
+	rdfs:label "parameter";
+	vs:term_status "stable";
+	rdfs:comment """
+			Specifies the parameter to set the plugin in execution. 
+	""";
+	rdfs:domain vamp:Transform;
+	rdfs:range vamp:ParameterBinding;
+	.
+
+vamp:step_size
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	a owl:FunctionalProperty;
+	rdfs:label "step size";
+	vs:term_status "stable";
+	rdfs:comment """
+			Specifies the step size for the framing. 
+	""";
+	rdfs:domain vamp:Transform;
+	.
+
+vamp:block_size
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	a owl:FunctionalProperty;
+	rdfs:label "block size";
+	vs:term_status "stable";
+	rdfs:comment """
+			Specifies the block size for the framing. 
+	""";
+	rdfs:domain vamp:Transform;
+	.
+
+vamp:sample_rate
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	a owl:FunctionalProperty;
+	rdfs:label "sample rate";
+	vs:term_status "stable";
+	rdfs:comment """
+			Specifies the sample rate if it is not constant.
+	""";
+	rdfs:domain vamp:Transform;
+	.
+
+vamp:transform_type
+	a rdf:Property;
+	a owl:ObjectProperty;
+	a owl:FunctionalProperty;
+	rdfs:label "transform type";
+	vs:term_status "unstable";
+	rdfs:comment """
+			Specifies the transform type (we could do this by subclassin transform instead of using a property). 
+	""";
+	rdfs:domain vamp:Transform;
+	.
+
+vamp:window_type
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	a owl:FunctionalProperty;
+	rdfs:label "window type";
+	vs:term_status "unstable";
+	rdfs:comment """
+			Specifies the window type (they should be individuals and clearly not here). 
+	""";
+	rdfs:domain vamp:Transform;
+	.
+
+vamp:start
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	a owl:FunctionalProperty;
+	rdfs:label "start";
+	vs:term_status "unstable";
+	rdfs:comment """
+			Specifies temporal information when processing a data stream. 
+	""";
+	rdfs:domain vamp:Transform;
+	.
+
+vamp:duration
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	a owl:FunctionalProperty;
+	rdfs:label "start";
+	vs:term_status "unstable";
+	rdfs:comment """
+			Specifies temporal information when processing a data stream. 
+	""";
+	rdfs:domain vamp:Transform;
+	.
+	
+##### Parameter properties
+
+vamp:value
+	a rdf:Property;
+	a owl:DatatypeProperty;
+	a owl:FunctionalProperty;
+	rdfs:label "value";
+	vs:term_status "stable";
+	rdfs:comment """
+			Specifies the current value of the parameter. 
+	""";
+	rdfs:domain vamp:ParameterBinding;
+	.
+
+#parameter declared above
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rdf/vamp.rdf	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,498 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rdf:RDF xmlns:af="http://purl.org/ontology/af/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:event="http://purl.org/NET/c4dm/event.owl#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:vamp="http://purl.org/ontology/vamp/" xmlns:vs="http://www.w3.org/2003/06/sw-vocab-status/ns#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xml:base="http://purl.org/ontology/vamp/">
+  <owl:Ontology rdf:about="">
+    <dc:title>Vamp Plugins Ontology</dc:title>
+    <rdfs:label>Vamp Plugins Ontology</rdfs:label>
+    <rdfs:comment>
+			Vamp Ontology. This ontology includes the following descriptions:
+			
+				- OWL description of the Vamp API
+				- OWL description of the Transform environment necessary to set up the execution of any plugin 
+			
+			This Ontology provides semantics to describe and control Vamp plugins in RDF. Any "RDF-speaker" host is therefore able to 
+			use this ontology to read, set up and execute plugins.
+			The extracted features are expressed in terms of the Audio Features Ontology: http://purl.org/ontology/af/.
+			For more information, please visit the Vamp Plugins website: http://www.vamp-plugins.org/
+	</rdfs:comment>
+    <foaf:maker>Chris Cannam</foaf:maker>
+    <foaf:maker>Chris Sutton</foaf:maker>
+    <foaf:maker>Yves Raimond</foaf:maker>
+    <foaf:maker>David Pastor Escuredo</foaf:maker>
+    <dc:date>$Date: 2008/05/21 17:05:11 $</dc:date>
+  </owl:Ontology>
+  <owl:AnnotationProperty rdf:about="http://www.w3.org/2003/06/sw-vocab-status/ns#term_status"/>
+  <owl:Class rdf:about="Plugin">
+    <rdfs:label>Vamp Plugin</rdfs:label>
+    <rdfs:comment>
+		A Vamp plugin is an implementation of an audio feature extraction algorithm using the Vamp API.
+	</rdfs:comment>
+    <vs:term_status>stable</vs:term_status>
+  </owl:Class>
+  <owl:Class rdf:about="PluginLibrary">
+    <rdfs:label>Vamp Plugin Library</rdfs:label>
+    <rdfs:comment>
+		Library of Vamp Plugins. This may need to include rights.
+	</rdfs:comment>
+    <vs:term_status>stable</vs:term_status>
+  </owl:Class>
+  <owl:Class rdf:about="Parameter">
+    <rdfs:label>Vamp Plugin Parameter</rdfs:label>
+    <rdfs:comment>
+		Descriptor for a plugin parameter. Hosts need to know about the specific type and form of the parameters of a particular plugin for a correct transform setup.
+	</rdfs:comment>
+    <vs:term_status>stable</vs:term_status>
+  </owl:Class>
+  <owl:Class rdf:about="QuantizedParameter">
+    <rdfs:label>Quantized Parameter</rdfs:label>
+    <rdfs:subClassOf rdf:resource="Parameter"/>
+    <rdfs:comment>
+			Descriptor of a parameter that does have quantized values. The property quantize_step is just defined for this subclass and not for the general Parameter.
+	</rdfs:comment>
+    <vs:term_status>stable</vs:term_status>
+  </owl:Class>
+  <owl:Class rdf:about="PluginOutput">
+    <rdfs:label>Vamp Plugin output descriptor</rdfs:label>
+    <rdfs:comment>
+		Descriptor for an output of a plugin. This descriptor provides information that is necessary to correctly interpret the output features. The output type will determine how to read the temporal information of the extracted features and how to manage the burden of ouput data.
+	</rdfs:comment>
+    <vs:term_status>unstable</vs:term_status>
+  </owl:Class>
+  <owl:Class rdf:about="QuantizedOutput">
+    <rdfs:label>Quantized Output</rdfs:label>
+    <rdfs:subClassOf rdf:resource="PluginOutput"/>
+    <rdfs:comment>
+			Descriptor of an output that does have quantized values.
+	</rdfs:comment>
+    <vs:term_status>stable</vs:term_status>
+  </owl:Class>
+  <owl:Class rdf:about="KnownExtentsOutput">
+    <rdfs:label>Known Extents Output</rdfs:label>
+    <rdfs:subClassOf rdf:resource="PluginOutput"/>
+    <rdfs:comment>
+			Descriptor of an output that does have known extents.
+	</rdfs:comment>
+    <vs:term_status>stable</vs:term_status>
+  </owl:Class>
+  <owl:Class rdf:about="DenseOutput">
+    <rdfs:subClassOf rdf:resource="PluginOutput"/>
+    <rdfs:label>Dense output</rdfs:label>
+    <rdfs:comment>
+		Specific output type for data evenly spaced in time, which may be of high volume and which it is usually desirable to represent in a compact form.
+	</rdfs:comment>
+    <vs:term_status>unstable</vs:term_status>
+  </owl:Class>
+  <owl:Class rdf:about="SparseOutput">
+    <rdfs:label>Sparse output</rdfs:label>
+    <rdfs:subClassOf rdf:resource="PluginOutput"/>
+    <rdfs:comment>
+		Specific output type for data that consist of features that require their own individual temporal information.
+	</rdfs:comment>
+    <vs:term_status>unstable</vs:term_status>
+  </owl:Class>
+  <owl:Class rdf:about="TrackLevelOutput">
+    <rdfs:label>track level output</rdfs:label>
+    <rdfs:subClassOf rdf:resource="PluginOutput"/>
+    <rdfs:comment>
+		Specific output type for track level information.  The Vamp API does not provide for this sort of output directly, so this will require a "hacky" interpretation of the feature timestamp to establish that it reflects track metadata instead of temporal data.
+	</rdfs:comment>
+    <vs:term_status>unstable</vs:term_status>
+  </owl:Class>
+  <owl:Class rdf:about="PluginProgram">
+    <rdfs:label>Plugin program</rdfs:label>
+    <rdfs:comment>
+		The program is a predefined context of parameters. We may not need a concept for this and just a property linking a string representing the program name.
+	</rdfs:comment>
+    <vs:term_status>unstable</vs:term_status>
+  </owl:Class>
+  <owl:Class rdf:about="Feature">
+    <rdfs:label>Vamp Feature</rdfs:label>
+    <rdfs:comment>This may be removed mighty soon as we rely on the Audio Features Ontology for this</rdfs:comment>
+    <vs:term_status>deprecated</vs:term_status>
+  </owl:Class>
+  <owl:Class rdf:about="InputDomain">
+    <rdfs:label>Plugin input domain</rdfs:label>
+    <rdfs:comment>
+		Plugins declare the input domain they require, so the host can convert the input data properly. Hosts using the Vamp SDK PluginAdapter to wrap plugins should see this work done for them automatically - see the Vamp documentation.
+	</rdfs:comment>
+    <vs:term_status>stable</vs:term_status>
+  </owl:Class>
+  <owl:Class rdf:about="SampleType">
+    <rdfs:label>sample type</rdfs:label>
+    <rdfs:comment>
+		The sample type specifies the temporal information of the plugin output. This information should be combined with the output type for a correct interpretation.
+	</rdfs:comment>
+    <vs:term_status>stable</vs:term_status>
+  </owl:Class>
+  <rdf:Property rdf:about="parameter">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:label>parameter descriptor</rdfs:label>
+    <rdfs:comment>
+		Links each parameter descriptor to the plugin.
+	</rdfs:comment>
+    <rdfs:range rdf:resource="Parameter"/>
+    <rdfs:domain rdf:resource="ParameterBinding"/>
+    <rdfs:domain rdf:resource="Plugin"/>
+    <vs:term_status>stable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="output">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:label>output</rdfs:label>
+    <rdfs:comment>
+		Links each output type to the plugin.
+	</rdfs:comment>
+    <rdfs:range rdf:resource="PluginOutput"/>
+    <rdfs:domain rdf:resource="Plugin"/>
+    <rdfs:domain rdf:resource="Transform"/>
+    <vs:term_status>stable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="available_plugin">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:label>available plugin</rdfs:label>
+    <rdfs:comment>
+		Available plugins in the library
+	</rdfs:comment>
+    <rdfs:range rdf:resource="Plugin"/>
+    <rdfs:domain rdf:resource="PluginLibrary"/>
+    <vs:term_status>stable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="identifier">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:label>plugin identifier</rdfs:label>
+    <rdfs:comment>
+		Machine-readable identifier for a Vamp plugin within the scope of its library, or for a plugin descriptor within the scope of the plugin.
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Plugin"/>
+    <rdfs:domain rdf:resource="PluginLibrary"/>
+    <rdfs:domain rdf:resource="PluginProgram"/>
+    <rdfs:domain rdf:resource="PluginOutput"/>
+    <rdfs:domain rdf:resource="Parameter"/>
+    <rdfs:domain rdf:resource="Transform"/>
+    <vs:term_status>stable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="name">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:label>plugin name</rdfs:label>
+    <rdfs:comment>
+		Human-readable identifier for the plugin.
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Plugin"/>
+    <vs:term_status>stable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="vamp_API_version">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:label>vamp API version</rdfs:label>
+    <rdfs:comment>
+		Version of the Vamp API used to implement this plugin.
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Plugin"/>
+    <vs:term_status>stable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="input_domain">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:label>input domain</rdfs:label>
+    <rdfs:comment>
+		Input domain required by the plugin (time or frequency).
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Plugin"/>
+    <rdfs:range rdf:resource="InputDomain"/>
+    <vs:term_status>stable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="max_value">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdfs:label>max value</rdfs:label>
+    <rdfs:comment>
+		Maximum value of the parameter range
+	</rdfs:comment>
+    <rdfs:range rdf:resource="Parameter"/>
+    <rdfs:range rdf:resource="KnownExtentsOutput"/>
+    <vs:term_status>unstable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="min_value">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdfs:label>min value</rdfs:label>
+    <rdfs:comment>
+		Minimum value of the parameter range
+	</rdfs:comment>
+    <rdfs:range rdf:resource="Parameter"/>
+    <rdfs:range rdf:resource="KnownExtentsOutput"/>
+    <vs:term_status>unstable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="default_value">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdfs:label>default value</rdfs:label>
+    <rdfs:comment>
+		Default value of the parameter
+	</rdfs:comment>
+    <rdfs:range rdf:resource="Parameter"/>
+    <vs:term_status>unstable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="quantize_step">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:label>quantized step</rdfs:label>
+    <rdfs:comment>
+		Quantize step. Only defined if is_quantized is true
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="QuantizedOutput"/>
+    <rdfs:domain rdf:resource="QuantizedParameter"/>
+    <vs:term_status>unstable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="unit">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdfs:label>unit</rdfs:label>
+    <rdfs:comment>
+		Unit of the output/parameter. A string type
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="PluginOutput"/>
+    <rdfs:domain rdf:resource="Parameter"/>
+    <vs:term_status>unstable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="value_names">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:label>value names</rdfs:label>
+    <rdfs:comment>
+		List of value names if available
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Parameter"/>
+    <vs:term_status>unstable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="fixed_bin_count">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:label>fixed bin count</rdfs:label>
+    <rdfs:comment>
+		Fixed bin count. A boolean type.
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="PluginOutput"/>
+    <vs:term_status>unstable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="sample_rate">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:label>sample rate</rdfs:label>
+    <rdfs:comment>
+		Sample rate of the output if any. Should be read depending on SampleType and Output classes.
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="PluginOutput"/>
+    <vs:term_status>unstable</vs:term_status>
+    <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdfs:label>sample rate</rdfs:label>
+    <vs:term_status>stable</vs:term_status>
+    <rdfs:comment>
+			Specifies the sample rate if it is not constant.
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Transform"/>
+  </rdf:Property>
+  <rdf:Property rdf:about="bin_count">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:label>bin count</rdfs:label>
+    <rdfs:comment>
+		Number of elements of the bin output. This information is necessary to define the output as belonging to a specific subclass of Plugin Output.
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="PluginOutput"/>
+    <vs:term_status>unstable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="bin_names">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:label>bin names</rdfs:label>
+    <rdfs:comment>
+		List of bin names if available.
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="PluginOutput"/>
+    <vs:term_status>unstable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="sample_type">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdfs:label>sample type</rdfs:label>
+    <rdfs:comment>
+		The sample type specifies the temporal information of the output.
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="PluginOutput"/>
+    <rdfs:range rdf:resource="SampleType"/>
+    <vs:term_status>unstable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="computes_feature_type">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:label>feature type</rdfs:label>
+    <rdfs:comment>
+			Feature Types output by the plugin. Links the vamp ontology to the audio features ontology.
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="PluginOutput"/>
+    <rdfs:range rdf:resource="../af/AudioFeature"/>
+    <vs:term_status>unstable</vs:term_status>
+  </rdf:Property>
+  <rdf:Property rdf:about="computes_event_type">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:label>event type</rdfs:label>
+    <rdfs:comment>
+			Event Type output by the plugin.
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="PluginOutput"/>
+    <rdfs:range rdf:resource="../../NET/c4dm/event.owl#Event"/>
+    <vs:term_status>unstable</vs:term_status>
+  </rdf:Property>
+  <vamp:InputDomain rdf:about="TimeDomain"/>
+  <vamp:InputDomain rdf:about="FrequencyDomain"/>
+  <vamp:SampleType rdf:about="OneSamplePerStep"/>
+  <vamp:SampleType rdf:about="FixedSampleRate"/>
+  <vamp:SampleType rdf:about="VariableSampleRate"/>
+  <owl:Class rdf:about="Transform">
+    <rdfs:label>Transform</rdfs:label>
+    <vs:term_status>stable</vs:term_status>
+    <rdfs:comment>
+		The Transform defines the environment of any audio processing computation. 
+	</rdfs:comment>
+  </owl:Class>
+  <owl:Class rdf:about="ParameterBinding">
+    <rdfs:label>Parameter binding</rdfs:label>
+    <vs:term_status>unstable</vs:term_status>
+    <rdfs:comment>
+		Parameter setting used by the plugin transform to set up the plugin.
+	</rdfs:comment>
+  </owl:Class>
+  <owl:Class rdf:about="Configuration">
+    <rdfs:label>Configuration</rdfs:label>
+    <vs:term_status>unstable</vs:term_status>
+    <rdfs:comment>
+		For extension (key/value data provided to DSSI plugins, not relevant to Vamp)
+	</rdfs:comment>
+  </owl:Class>
+  <owl:Class rdf:about="TransformType">
+    <rdfs:label>Transform Type</rdfs:label>
+    <vs:term_status>unstable</vs:term_status>
+    <rdfs:comment>
+		Specifies the type of transform. May be feature extraction, effect...
+	</rdfs:comment>
+  </owl:Class>
+  <vamp:TransformType rdf:about="FeatureExtraction">
+    <rdfs:label>Feature Extraction</rdfs:label>
+    <vs:term_status>unstable</vs:term_status>
+    <rdfs:comment>
+		Feature extraction transform. This may be just a subclass of Transform...
+	</rdfs:comment>
+  </vamp:TransformType>
+  <vamp:TransformType rdf:about="Effect">
+    <rdfs:label>Effect</rdfs:label>
+    <vs:term_status>unstable</vs:term_status>
+    <rdfs:comment>
+		Effect transform. This may be just a subclass of Transform...
+	</rdfs:comment>
+  </vamp:TransformType>
+  <rdf:Property rdf:about="engine">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:label>plugin</rdfs:label>
+    <vs:term_status>stable</vs:term_status>
+    <rdfs:comment>
+		Specifies the sort of plugin in execution. This is an extension to use Transform with other plugin libraries
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Transform"/>
+    <rdfs:range rdf:resource="Plugin"/>
+  </rdf:Property>
+  <rdf:Property rdf:about="program">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdfs:label>program</rdfs:label>
+    <vs:term_status>stable</vs:term_status>
+    <rdfs:comment>
+		Specifies the program to set the plugin in execution.  Here the plugin program matches with the one in the plugin descriptor. There is not descriptor required for the program (just a string), is it?
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Transform"/>
+    <rdfs:range rdf:resource="PluginProgram"/>
+  </rdf:Property>
+  <rdf:Property rdf:about="configuration">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdfs:label>program</rdfs:label>
+    <vs:term_status>stable</vs:term_status>
+    <rdfs:comment>
+		Extension for configuration. 
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Transform"/>
+    <rdfs:range rdf:resource="Configuration"/>
+  </rdf:Property>
+  <rdf:Property rdf:about="parameter_binding">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:label>parameter</rdfs:label>
+    <vs:term_status>stable</vs:term_status>
+    <rdfs:comment>
+			Specifies the parameter to set the plugin in execution. 
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Transform"/>
+    <rdfs:range rdf:resource="ParameterBinding"/>
+  </rdf:Property>
+  <rdf:Property rdf:about="step_size">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdfs:label>step size</rdfs:label>
+    <vs:term_status>stable</vs:term_status>
+    <rdfs:comment>
+			Specifies the step size for the framing. 
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Transform"/>
+  </rdf:Property>
+  <rdf:Property rdf:about="block_size">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdfs:label>block size</rdfs:label>
+    <vs:term_status>stable</vs:term_status>
+    <rdfs:comment>
+			Specifies the block size for the framing. 
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Transform"/>
+  </rdf:Property>
+  <rdf:Property rdf:about="transform_type">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdfs:label>transform type</rdfs:label>
+    <vs:term_status>unstable</vs:term_status>
+    <rdfs:comment>
+			Specifies the transform type (we could do this by subclassin transform instead of using a property). 
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Transform"/>
+  </rdf:Property>
+  <rdf:Property rdf:about="window_type">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdfs:label>window type</rdfs:label>
+    <vs:term_status>unstable</vs:term_status>
+    <rdfs:comment>
+			Specifies the window type (they should be individuals and clearly not here). 
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Transform"/>
+  </rdf:Property>
+  <rdf:Property rdf:about="start">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdfs:label>start</rdfs:label>
+    <vs:term_status>unstable</vs:term_status>
+    <rdfs:comment>
+			Specifies temporal information when processing a data stream. 
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Transform"/>
+  </rdf:Property>
+  <rdf:Property rdf:about="duration">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdfs:label>start</rdfs:label>
+    <vs:term_status>unstable</vs:term_status>
+    <rdfs:comment>
+			Specifies temporal information when processing a data stream. 
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="Transform"/>
+  </rdf:Property>
+  <rdf:Property rdf:about="value">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdfs:label>value</rdfs:label>
+    <vs:term_status>stable</vs:term_status>
+    <rdfs:comment>
+			Specifies the current value of the parameter. 
+	</rdfs:comment>
+    <rdfs:domain rdf:resource="ParameterBinding"/>
+  </rdf:Property>
+</rdf:RDF>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/screen.css	Mon Sep 22 13:01:46 2008 +0000
@@ -0,0 +1,110 @@
+#header {
+  width: 596px;
+  height: 35px;
+  position: relative;
+  background: url(images/vamp-title.png) no-repeat;
+}
+#header span {
+  display: block;
+  width: 0;
+  height: 0;
+  overflow: hidden;
+}
+body {
+  margin: 0;
+  border-top-width: 0;
+  border-bottom-width: 0;
+  border-left-width: 2em;
+  border-right-width: 2em;
+  border-left-style: solid;
+  border-right-style: solid;
+  border-left-color: #ef6a35;
+  border-right-color: #ef6a35;
+  background-color: #ffffff;
+  padding-top: 1.4em;
+  padding-bottom: 20em;
+  padding-left: 2em;
+  padding-right: 2em;
+  color: #303030;
+}
+p,td,ul,ol,li,blockquote { 
+    font-size: 1em;
+    font-style: normal;
+    font-family: 'Lucida Sans Unicode', 'Lucida Grande', sans-serif;
+}
+h1,h2,h3,h4 { 
+    font-family: 'Lucida Sans Unicode', 'Lucida Grande', sans-serif;
+}
+#firstpara {
+  border-top-width: 2px;
+  border-top-style: solid;
+  border-top-color: #ef6a35;
+  padding-top: 1em;
+}
+#logoblock {
+  border-top-width: 2px;
+  border-top-style: solid;
+  border-top-color: #ef6a35;
+  font-size: 0.9em;
+}
+#nav {
+  position: relative;
+  float: right;
+  top: 1.8em;
+  color: #ef6a35;
+  margin-left: 1em;
+  padding-left: 1em;
+  margin-bottom: 3em;
+  border-left-width: 2px;
+  border-left-style: solid;
+  border-left-color: #ef6a35;
+/*  text-align: right;*/
+}
+#nav ul {
+/*  display: inline; */
+  margin: 0;
+  padding: 0;
+  font-size: 0.9em;
+  text-transform: uppercase;
+  font-weight: bold;
+}
+#nav ul li {
+  list-style: none;
+}
+a {
+  text-decoration: none;
+  color: #ef6a35;
+}
+a:visited {
+  text-decoration: none;
+  color: #ef6a35;
+}
+a:hover {
+  text-decoration: underline;
+  color: #ef6a35;
+}
+.logoleft { 
+  float: left;
+  padding-right: 2em;
+  padding-bottom: 2em;
+}
+.logoright { 
+  float: right;
+  padding-left: 2em;
+  padding-bottom: 2em;
+}
+.toc1,.toc2,.toc3,.toc4 { 
+    font-size: 0.8em;
+    font-style: normal;
+    font-weight: bold;
+    font-family: 'Lucida Sans Unicode', 'Lucida Grande', sans-serif;
+}
+.toc2 { 
+  padding-left: 2em;
+}
+.toc3 { 
+  padding-left: 4em;
+}
+.toc4 { 
+  padding-left: 6em;
+}
Binary file vamp-programmer-presentation.odp has changed
Binary file vamp-programmer-presentation.pdf has changed