annotate code-doc/classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html @ 39:01f34bbd799b website

* Add VamPy page
author cannam
date Mon, 12 Oct 2009 16:16:52 +0000
parents 0976232e353b
children 8260c0f4e05b
rev   line source
cannam@21 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
cannam@21 2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
cannam@21 3 <title>VampPluginSDK: Vamp::HostExt::PluginSummarisingAdapter Class Reference</title>
cannam@35 4 <link href="tabs.css" rel="stylesheet" type="text/css">
cannam@21 5 <link href="doxygen.css" rel="stylesheet" type="text/css">
cannam@21 6 </head><body>
cannam@35 7 <!-- Generated by Doxygen 1.5.8 -->
cannam@21 8 <div class="navigation" id="top">
cannam@21 9 <div class="tabs">
cannam@21 10 <ul>
cannam@21 11 <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
cannam@21 12 <li><a href="namespaces.html"><span>Namespaces</span></a></li>
cannam@21 13 <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
cannam@21 14 <li><a href="files.html"><span>Files</span></a></li>
cannam@21 15 <li><a href="dirs.html"><span>Directories</span></a></li>
cannam@21 16 </ul>
cannam@21 17 </div>
cannam@21 18 <div class="tabs">
cannam@21 19 <ul>
cannam@21 20 <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
cannam@21 21 <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
cannam@21 22 <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
cannam@21 23 </ul>
cannam@21 24 </div>
cannam@21 25 <div class="navpath"><a class="el" href="namespaceVamp.html">Vamp</a>::<a class="el" href="namespaceVamp_1_1HostExt.html">HostExt</a>::<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html">PluginSummarisingAdapter</a>
cannam@21 26 </div>
cannam@21 27 </div>
cannam@21 28 <div class="contents">
cannam@35 29 <h1>Vamp::HostExt::PluginSummarisingAdapter Class Reference</h1><!-- doxytag: class="Vamp::HostExt::PluginSummarisingAdapter" --><!-- doxytag: inherits="Vamp::HostExt::PluginWrapper" --><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that provides summarisation methods such as mean and median averages of output features, for use in any context where an available plugin produces individual values but the result that is actually needed is some sort of aggregate.
cannam@35 30 <a href="#_details">More...</a>
cannam@35 31 <p>
cannam@35 32 <code>#include &lt;<a class="el" href="PluginSummarisingAdapter_8h-source.html">vamp-hostsdk/PluginSummarisingAdapter.h</a>&gt;</code>
cannam@21 33 <p>
cannam@21 34 <div class="dynheader">
cannam@21 35 Inheritance diagram for Vamp::HostExt::PluginSummarisingAdapter:</div>
cannam@21 36 <div class="dynsection">
cannam@21 37 <p><center><img src="classVamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__graph.png" border="0" usemap="#Vamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__map" alt="Inheritance graph"></center>
cannam@21 38 <map name="Vamp_1_1HostExt_1_1PluginSummarisingAdapter__inherit__map">
cannam@35 39 <area shape="rect" href="classVamp_1_1HostExt_1_1PluginWrapper.html" title="PluginWrapper is a simple base class for adapter plugins." alt="" coords="40,156,229,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="88,81,181,105"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="75,7,195,31"></map>
cannam@21 40 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
cannam@21 41
cannam@21 42 <p>
cannam@35 43 <a href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
cannam@21 44 <tr><td></td></tr>
cannam@21 45 <tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
cannam@21 46 <tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">SummaryType</a> { <br>
cannam@21 47 &nbsp;&nbsp;<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705320b8a4cd0c3d492aeb17f7fc4ed930c">Minimum</a> = 0,
cannam@21 48 <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705defff4e5073aa298a96d99b92025b7f9">Maximum</a> = 1,
cannam@21 49 <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705e8a03f013397d08c85734e47524f5a75">Mean</a> = 2,
cannam@21 50 <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705adde1f9a5a6557f25223279433699195">Median</a> = 3,
cannam@21 51 <br>
cannam@21 52 &nbsp;&nbsp;<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717051688d03811a2268daa062220f5be0614">Mode</a> = 4,
cannam@21 53 <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717059496664a605b3aa706f909070d73060b">Sum</a> = 5,
cannam@21 54 <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705e965a9e5381745e6e3a75342d7c8e075">Variance</a> = 6,
cannam@21 55 <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717059342cd2209e20b93843cd389d9511ec7">StandardDeviation</a> = 7,
cannam@21 56 <br>
cannam@21 57 &nbsp;&nbsp;<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b65724717052395772fa2e74b3f617e20c76d579ad6">Count</a> = 8,
cannam@21 58 <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705eed3a16d665eb789053b82fdd386ee7c">UnknownSummaryType</a> = 999
cannam@21 59 <br>
cannam@21 60 }</td></tr>
cannam@21 61
cannam@21 62 <tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">AveragingMethod</a> { <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76e8833d866dec593d29f1f4e3cd1e6e36">SampleAverage</a> = 0,
cannam@21 63 <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac766af6316c12e29bdbdff90c5fec764baa">ContinuousTimeAverage</a> = 1
cannam@21 64 }</td></tr>
cannam@21 65
cannam@21 66 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">AveragingMethod indicates how the adapter should handle average-based summaries of features whose results are not equally spaced in time. <a href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">More...</a><br></td></tr>
cannam@21 67 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::set&lt; <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#74e7f93c745802a2409185b63922466b">SegmentBoundaries</a></td></tr>
cannam@21 68
cannam@21 69 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
cannam@21 70 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#31b41f54560a2ae6c3ec1a945f3f1d68">PluginSummarisingAdapter</a> (<a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *plugin)</td></tr>
cannam@21 71
cannam@21 72 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> wrapping the given plugin. <a href="#31b41f54560a2ae6c3ec1a945f3f1d68"></a><br></td></tr>
cannam@21 73 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#47846e7cc0ef4a29335e08b9645316d0">~PluginSummarisingAdapter</a> ()</td></tr>
cannam@21 74
cannam@21 75 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#1e994576d43efe103bf8f83b69716745">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
cannam@21 76
cannam@21 77 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames). <a href="#1e994576d43efe103bf8f83b69716745"></a><br></td></tr>
cannam@35 78 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#3402381d145d507bd26d1a67e3616911">reset</a> ()</td></tr>
cannam@35 79
cannam@35 80 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the plugin after use, to prepare it for another clean run. <a href="#3402381d145d507bd26d1a67e3616911"></a><br></td></tr>
cannam@21 81 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#3314b456a4780601c021dac25b478846">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
cannam@21 82
cannam@21 83 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data. <a href="#3314b456a4780601c021dac25b478846"></a><br></td></tr>
cannam@21 84 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#e9dcbd1ba8197ff90b4fc6bf7ade7688">getRemainingFeatures</a> ()</td></tr>
cannam@21 85
cannam@21 86 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input. <a href="#e9dcbd1ba8197ff90b4fc6bf7ade7688"></a><br></td></tr>
cannam@21 87 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#1a659500ca1290a228c0b9b91f6ac0b7">setSummarySegmentBoundaries</a> (const <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#74e7f93c745802a2409185b63922466b">SegmentBoundaries</a> &amp;)</td></tr>
cannam@21 88
cannam@21 89 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specify a series of segment boundaries, such that one summary will be returned for each of the contiguous intra-boundary segments. <a href="#1a659500ca1290a228c0b9b91f6ac0b7"></a><br></td></tr>
cannam@21 90 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#be13faa68d3244b962dbd362671e23f9">getSummaryForOutput</a> (int output, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">SummaryType</a> type, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">AveragingMethod</a> method=SampleAverage)</td></tr>
cannam@21 91
cannam@21 92 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return summaries of the features that were returned on the given output, using the given SummaryType and AveragingMethod. <a href="#be13faa68d3244b962dbd362671e23f9"></a><br></td></tr>
cannam@21 93 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#c3f93d9ca2d25c9fdc80d0ba10eaaa6b">getSummaryForAllOutputs</a> (<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">SummaryType</a> type, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">AveragingMethod</a> method=SampleAverage)</td></tr>
cannam@21 94
cannam@21 95 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return summaries of the features that were returned on all of the plugin's outputs, using the given SummaryType and AveragingMethod. <a href="#c3f93d9ca2d25c9fdc80d0ba10eaaa6b"></a><br></td></tr>
cannam@21 96 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e203faf8384c9e1fddc381409aa8a214">getInputDomain</a> () const </td></tr>
cannam@21 97
cannam@21 98 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain. <a href="#e203faf8384c9e1fddc381409aa8a214"></a><br></td></tr>
cannam@21 99 <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>
cannam@21 100
cannam@21 101 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. <a href="#74147fda6b44ff2169bd4a1eea0d46ff"></a><br></td></tr>
cannam@21 102 <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>
cannam@21 103
cannam@21 104 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin. <a href="#4baa9e48f717c2b3e7f92496aa39d904"></a><br></td></tr>
cannam@21 105 <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>
cannam@21 106
cannam@21 107 <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>
cannam@21 108 <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>
cannam@21 109
cannam@21 110 <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>
cannam@21 111 <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>
cannam@21 112
cannam@21 113 <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>
cannam@21 114 <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>
cannam@21 115
cannam@21 116 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the version number of the plugin. <a href="#47e1acf1696813008324a915c9ba59c5"></a><br></td></tr>
cannam@21 117 <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>
cannam@21 118
cannam@21 119 <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>
cannam@21 120 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#9be71561265c2e6e43b7feaddaa91f36">getParameterDescriptors</a> () const </td></tr>
cannam@21 121
cannam@21 122 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin. <a href="#9be71561265c2e6e43b7feaddaa91f36"></a><br></td></tr>
cannam@21 123 <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>
cannam@21 124
cannam@21 125 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of a named parameter. <a href="#034920f56c8d7609a85447c42556048c"></a><br></td></tr>
cannam@21 126 <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>
cannam@21 127
cannam@21 128 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter. <a href="#651b15a5dc4c27942ac0c87c6092bfe5"></a><br></td></tr>
cannam@21 129 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#131fbe1df81215020b9aa8cecef4c802">getPrograms</a> () const </td></tr>
cannam@21 130
cannam@21 131 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin. <a href="#131fbe1df81215020b9aa8cecef4c802"></a><br></td></tr>
cannam@21 132 <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>
cannam@21 133
cannam@21 134 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current program. <a href="#7a312dd42d161064b70afd7ff24c0651"></a><br></td></tr>
cannam@21 135 <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>
cannam@21 136
cannam@21 137 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select a program. <a href="#074978333a74fdcf336a8a1d8ea20abf"></a><br></td></tr>
cannam@21 138 <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>
cannam@21 139
cannam@21 140 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function) for the plugin. <a href="#0137d93d7019bacc31104836fb4d352e"></a><br></td></tr>
cannam@21 141 <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>
cannam@21 142
cannam@21 143 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function). <a href="#2c62a656313a819650656643a867ad01"></a><br></td></tr>
cannam@21 144 <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>
cannam@21 145
cannam@21 146 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum supported number of input channels. <a href="#2b28f1cf37d46a514f1e1411a6037bf8"></a><br></td></tr>
cannam@21 147 <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>
cannam@21 148
cannam@21 149 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum supported number of input channels. <a href="#985eb21f1827bfbc3950d6871b107a58"></a><br></td></tr>
cannam@21 150 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#5a9411305f713b4c9827844b89acd270">getOutputDescriptors</a> () const </td></tr>
cannam@21 151
cannam@21 152 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin. <a href="#5a9411305f713b4c9827844b89acd270"></a><br></td></tr>
cannam@35 153 <tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename WrapperType &gt; </td></tr>
cannam@21 154 <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">WrapperType *&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#e9d79bed7237d55a73018a6b982a55b3">getWrapper</a> ()</td></tr>
cannam@21 155
cannam@21 156 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present. <a href="#e9d79bed7237d55a73018a6b982a55b3"></a><br></td></tr>
cannam@21 157 <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>
cannam@21 158
cannam@21 159 <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>
cannam@21 160 <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
cannam@21 161 <tr><td class="memItemLeft" nowrap align="right" valign="top">Impl *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f131140817d9f131650af98b6b8d7a94">m_impl</a></td></tr>
cannam@21 162
cannam@21 163 <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>
cannam@21 164
cannam@21 165 <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>
cannam@21 166
cannam@21 167 </table>
cannam@35 168 <hr><a name="_details"></a><h2>Detailed Description</h2>
cannam@35 169 <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> is a <a class="el" href="namespaceVamp.html">Vamp</a> plugin adapter that provides summarisation methods such as mean and median averages of output features, for use in any context where an available plugin produces individual values but the result that is actually needed is some sort of aggregate.
cannam@35 170 <p>
cannam@35 171 To make use of <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a>, the host should configure, initialise and run the plugin through the adapter interface just as normal. Then, after the process and getRemainingFeatures methods have been properly called and processing is complete, the host may call getSummaryForOutput or getSummaryForAllOutputs to obtain summarised features: averages, maximum values, etc, depending on the SummaryType passed to the function.<p>
cannam@35 172 By default <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> calculates a single summary of each output's feature across the whole duration of processed audio. A host needing summaries of sub-segments of the whole audio may call setSummarySegmentBoundaries before retrieving the summaries, providing a list of times such that one summary will be provided for each segment between two consecutive times.<p>
cannam@35 173 <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> is straightforward rather than fast. It calculates all of the summary types for all outputs always, and then returns only the ones that are requested. It is designed on the basis that, for most features, summarising and storing summarised results is far cheaper than calculating the results in the first place. If this is not true for your particular feature, <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> may not be the best approach for you.<p>
cannam@35 174 <dl class="note" compact><dt><b>Note:</b></dt><dd>This class was introduced in version 2.0 of the <a class="el" href="namespaceVamp.html">Vamp</a> plugin SDK. </dd></dl>
cannam@35 175
cannam@35 176 <p>Definition at line <a class="el" href="PluginSummarisingAdapter_8h-source.html#l00086">86</a> of file <a class="el" href="PluginSummarisingAdapter_8h-source.html">PluginSummarisingAdapter.h</a>.</p>
cannam@21 177 <hr><h2>Member Typedef Documentation</h2>
cannam@21 178 <a class="anchor" name="74e7f93c745802a2409185b63922466b"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::SegmentBoundaries" ref="74e7f93c745802a2409185b63922466b" args="" -->
cannam@21 179 <div class="memitem">
cannam@21 180 <div class="memproto">
cannam@21 181 <table class="memname">
cannam@21 182 <tr>
cannam@21 183 <td class="memname">typedef std::set&lt;<a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&gt; <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#74e7f93c745802a2409185b63922466b">Vamp::HostExt::PluginSummarisingAdapter::SegmentBoundaries</a> </td>
cannam@21 184 </tr>
cannam@21 185 </table>
cannam@21 186 </div>
cannam@21 187 <div class="memdoc">
cannam@21 188
cannam@21 189 <p>
cannam@21 190
cannam@35 191 <p>Definition at line <a class="el" href="PluginSummarisingAdapter_8h-source.html#l00104">104</a> of file <a class="el" href="PluginSummarisingAdapter_8h-source.html">PluginSummarisingAdapter.h</a>.</p>
cannam@21 192
cannam@21 193 </div>
cannam@21 194 </div><p>
cannam@21 195 <a class="anchor" name="30f531b8fb69fac41a24e3d2a6a08ed9"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::OutputList" ref="30f531b8fb69fac41a24e3d2a6a08ed9" args="" -->
cannam@21 196 <div class="memitem">
cannam@21 197 <div class="memproto">
cannam@21 198 <table class="memname">
cannam@21 199 <tr>
cannam@21 200 <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>
cannam@21 201 </tr>
cannam@21 202 </table>
cannam@21 203 </div>
cannam@21 204 <div class="memdoc">
cannam@21 205
cannam@21 206 <p>
cannam@21 207
cannam@35 208 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00327">327</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@21 209
cannam@21 210 </div>
cannam@21 211 </div><p>
cannam@21 212 <a class="anchor" name="0730bc72c87fa02eb8d2854b233f7be1"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::FeatureList" ref="0730bc72c87fa02eb8d2854b233f7be1" args="" -->
cannam@21 213 <div class="memitem">
cannam@21 214 <div class="memproto">
cannam@21 215 <table class="memname">
cannam@21 216 <tr>
cannam@21 217 <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>
cannam@21 218 </tr>
cannam@21 219 </table>
cannam@21 220 </div>
cannam@21 221 <div class="memdoc">
cannam@21 222
cannam@21 223 <p>
cannam@21 224
cannam@35 225 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00385">385</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@21 226
cannam@21 227 </div>
cannam@21 228 </div><p>
cannam@21 229 <a class="anchor" name="448fb57dc245d47923ec9eeaf9856c5f"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::FeatureSet" ref="448fb57dc245d47923ec9eeaf9856c5f" args="" -->
cannam@21 230 <div class="memitem">
cannam@21 231 <div class="memproto">
cannam@21 232 <table class="memname">
cannam@21 233 <tr>
cannam@21 234 <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>
cannam@21 235 </tr>
cannam@21 236 </table>
cannam@21 237 </div>
cannam@21 238 <div class="memdoc">
cannam@21 239
cannam@21 240 <p>
cannam@21 241
cannam@35 242 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00387">387</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@21 243
cannam@21 244 </div>
cannam@21 245 </div><p>
cannam@21 246 <a class="anchor" name="3b6bb4bbd86affe1ca9deceea1aad4f8"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::ParameterList" ref="3b6bb4bbd86affe1ca9deceea1aad4f8" args="" -->
cannam@21 247 <div class="memitem">
cannam@21 248 <div class="memproto">
cannam@21 249 <table class="memname">
cannam@21 250 <tr>
cannam@21 251 <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>
cannam@21 252 </tr>
cannam@21 253 </table>
cannam@21 254 </div>
cannam@21 255 <div class="memdoc">
cannam@21 256
cannam@21 257 <p>
cannam@21 258
cannam@21 259 <p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00203">203</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
cannam@21 260
cannam@21 261 </div>
cannam@21 262 </div><p>
cannam@21 263 <a class="anchor" name="7f66f00437b21e5f694fe02356b12f20"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::ProgramList" ref="7f66f00437b21e5f694fe02356b12f20" args="" -->
cannam@21 264 <div class="memitem">
cannam@21 265 <div class="memproto">
cannam@21 266 <table class="memname">
cannam@21 267 <tr>
cannam@21 268 <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>
cannam@21 269 </tr>
cannam@21 270 </table>
cannam@21 271 </div>
cannam@21 272 <div class="memdoc">
cannam@21 273
cannam@21 274 <p>
cannam@21 275
cannam@21 276 <p>Definition at line <a class="el" href="vamp-sdk_2PluginBase_8h-source.html#l00225">225</a> of file <a class="el" href="vamp-sdk_2PluginBase_8h-source.html">vamp-sdk/PluginBase.h</a>.</p>
cannam@21 277
cannam@21 278 </div>
cannam@21 279 </div><p>
cannam@21 280 <hr><h2>Member Enumeration Documentation</h2>
cannam@21 281 <a class="anchor" name="f504f810448961fc489e9b6572471705"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::SummaryType" ref="f504f810448961fc489e9b6572471705" args="" -->
cannam@21 282 <div class="memitem">
cannam@21 283 <div class="memproto">
cannam@21 284 <table class="memname">
cannam@21 285 <tr>
cannam@21 286 <td class="memname">enum <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">Vamp::HostExt::PluginSummarisingAdapter::SummaryType</a> </td>
cannam@21 287 </tr>
cannam@21 288 </table>
cannam@21 289 </div>
cannam@21 290 <div class="memdoc">
cannam@21 291
cannam@21 292 <p>
cannam@21 293 <dl compact><dt><b>Enumerator: </b></dt><dd>
cannam@21 294 <table border="0" cellspacing="2" cellpadding="0">
cannam@21 295 <tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b6572471705320b8a4cd0c3d492aeb17f7fc4ed930c"></a><!-- doxytag: member="Minimum" ref="f504f810448961fc489e9b6572471705320b8a4cd0c3d492aeb17f7fc4ed930c" args="" -->Minimum</em>&nbsp;</td><td>
cannam@21 296 </td></tr>
cannam@21 297 <tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b6572471705defff4e5073aa298a96d99b92025b7f9"></a><!-- doxytag: member="Maximum" ref="f504f810448961fc489e9b6572471705defff4e5073aa298a96d99b92025b7f9" args="" -->Maximum</em>&nbsp;</td><td>
cannam@21 298 </td></tr>
cannam@21 299 <tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b6572471705e8a03f013397d08c85734e47524f5a75"></a><!-- doxytag: member="Mean" ref="f504f810448961fc489e9b6572471705e8a03f013397d08c85734e47524f5a75" args="" -->Mean</em>&nbsp;</td><td>
cannam@21 300 </td></tr>
cannam@21 301 <tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b6572471705adde1f9a5a6557f25223279433699195"></a><!-- doxytag: member="Median" ref="f504f810448961fc489e9b6572471705adde1f9a5a6557f25223279433699195" args="" -->Median</em>&nbsp;</td><td>
cannam@21 302 </td></tr>
cannam@21 303 <tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b65724717051688d03811a2268daa062220f5be0614"></a><!-- doxytag: member="Mode" ref="f504f810448961fc489e9b65724717051688d03811a2268daa062220f5be0614" args="" -->Mode</em>&nbsp;</td><td>
cannam@21 304 </td></tr>
cannam@21 305 <tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b65724717059496664a605b3aa706f909070d73060b"></a><!-- doxytag: member="Sum" ref="f504f810448961fc489e9b65724717059496664a605b3aa706f909070d73060b" args="" -->Sum</em>&nbsp;</td><td>
cannam@21 306 </td></tr>
cannam@21 307 <tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b6572471705e965a9e5381745e6e3a75342d7c8e075"></a><!-- doxytag: member="Variance" ref="f504f810448961fc489e9b6572471705e965a9e5381745e6e3a75342d7c8e075" args="" -->Variance</em>&nbsp;</td><td>
cannam@21 308 </td></tr>
cannam@21 309 <tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b65724717059342cd2209e20b93843cd389d9511ec7"></a><!-- doxytag: member="StandardDeviation" ref="f504f810448961fc489e9b65724717059342cd2209e20b93843cd389d9511ec7" args="" -->StandardDeviation</em>&nbsp;</td><td>
cannam@21 310 </td></tr>
cannam@21 311 <tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b65724717052395772fa2e74b3f617e20c76d579ad6"></a><!-- doxytag: member="Count" ref="f504f810448961fc489e9b65724717052395772fa2e74b3f617e20c76d579ad6" args="" -->Count</em>&nbsp;</td><td>
cannam@21 312 </td></tr>
cannam@21 313 <tr><td valign="top"><em><a class="anchor" name="f504f810448961fc489e9b6572471705eed3a16d665eb789053b82fdd386ee7c"></a><!-- doxytag: member="UnknownSummaryType" ref="f504f810448961fc489e9b6572471705eed3a16d665eb789053b82fdd386ee7c" args="" -->UnknownSummaryType</em>&nbsp;</td><td>
cannam@21 314 </td></tr>
cannam@21 315 </table>
cannam@21 316 </dl>
cannam@21 317
cannam@35 318 <p>Definition at line <a class="el" href="PluginSummarisingAdapter_8h-source.html#l00121">121</a> of file <a class="el" href="PluginSummarisingAdapter_8h-source.html">PluginSummarisingAdapter.h</a>.</p>
cannam@21 319
cannam@21 320 </div>
cannam@21 321 </div><p>
cannam@21 322 <a class="anchor" name="294e9eed9c541dcedbaa4f2dfda1ac76"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::AveragingMethod" ref="294e9eed9c541dcedbaa4f2dfda1ac76" args="" -->
cannam@21 323 <div class="memitem">
cannam@21 324 <div class="memproto">
cannam@21 325 <table class="memname">
cannam@21 326 <tr>
cannam@21 327 <td class="memname">enum <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">Vamp::HostExt::PluginSummarisingAdapter::AveragingMethod</a> </td>
cannam@21 328 </tr>
cannam@21 329 </table>
cannam@21 330 </div>
cannam@21 331 <div class="memdoc">
cannam@21 332
cannam@21 333 <p>
cannam@21 334 AveragingMethod indicates how the adapter should handle average-based summaries of features whose results are not equally spaced in time.
cannam@21 335 <p>
cannam@21 336 If SampleAverage is specified, summary types based on averages will be calculated by treating each result individually without regard to its time: for example, the mean will be the sum of all values divided by the number of values.<p>
cannam@21 337 If ContinuousTimeAverage is specified, each feature will be considered to have a duration, either as specified in the feature's duration field, or until the following feature: thus, for example, the mean will be the sum of the products of values and durations, divided by the total duration.<p>
cannam@21 338 Although SampleAverage is useful for many types of feature, ContinuousTimeAverage is essential for some situations, for example finding the result that spans the largest proportion of the input given a feature that emits a new result only when the value changes (the modal value integrated over time). <dl compact><dt><b>Enumerator: </b></dt><dd>
cannam@21 339 <table border="0" cellspacing="2" cellpadding="0">
cannam@21 340 <tr><td valign="top"><em><a class="anchor" name="294e9eed9c541dcedbaa4f2dfda1ac76e8833d866dec593d29f1f4e3cd1e6e36"></a><!-- doxytag: member="SampleAverage" ref="294e9eed9c541dcedbaa4f2dfda1ac76e8833d866dec593d29f1f4e3cd1e6e36" args="" -->SampleAverage</em>&nbsp;</td><td>
cannam@21 341 </td></tr>
cannam@21 342 <tr><td valign="top"><em><a class="anchor" name="294e9eed9c541dcedbaa4f2dfda1ac766af6316c12e29bdbdff90c5fec764baa"></a><!-- doxytag: member="ContinuousTimeAverage" ref="294e9eed9c541dcedbaa4f2dfda1ac766af6316c12e29bdbdff90c5fec764baa" args="" -->ContinuousTimeAverage</em>&nbsp;</td><td>
cannam@21 343 </td></tr>
cannam@21 344 </table>
cannam@21 345 </dl>
cannam@21 346
cannam@35 347 <p>Definition at line <a class="el" href="PluginSummarisingAdapter_8h-source.html#l00157">157</a> of file <a class="el" href="PluginSummarisingAdapter_8h-source.html">PluginSummarisingAdapter.h</a>.</p>
cannam@21 348
cannam@21 349 </div>
cannam@21 350 </div><p>
cannam@21 351 <a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bc"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::InputDomain" ref="39cb7649d6dcc20e4cb1640cd55907bc" args="" -->
cannam@21 352 <div class="memitem">
cannam@21 353 <div class="memproto">
cannam@21 354 <table class="memname">
cannam@21 355 <tr>
cannam@21 356 <td class="memname">enum <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Vamp::Plugin::InputDomain</a><code> [inherited]</code> </td>
cannam@21 357 </tr>
cannam@21 358 </table>
cannam@21 359 </div>
cannam@21 360 <div class="memdoc">
cannam@21 361
cannam@21 362 <p>
cannam@21 363 <dl compact><dt><b>Enumerator: </b></dt><dd>
cannam@21 364 <table border="0" cellspacing="2" cellpadding="0">
cannam@21 365 <tr><td valign="top"><em><a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff"></a><!-- doxytag: member="TimeDomain" ref="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff" args="" -->TimeDomain</em>&nbsp;</td><td>
cannam@21 366 </td></tr>
cannam@21 367 <tr><td valign="top"><em><a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53"></a><!-- doxytag: member="FrequencyDomain" ref="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53" args="" -->FrequencyDomain</em>&nbsp;</td><td>
cannam@21 368 </td></tr>
cannam@21 369 </table>
cannam@21 370 </dl>
cannam@21 371
cannam@21 372 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00152">152</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@21 373
cannam@21 374 </div>
cannam@21 375 </div><p>
cannam@21 376 <hr><h2>Constructor &amp; Destructor Documentation</h2>
cannam@21 377 <a class="anchor" name="31b41f54560a2ae6c3ec1a945f3f1d68"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::PluginSummarisingAdapter" ref="31b41f54560a2ae6c3ec1a945f3f1d68" args="(Plugin *plugin)" -->
cannam@21 378 <div class="memitem">
cannam@21 379 <div class="memproto">
cannam@21 380 <table class="memname">
cannam@21 381 <tr>
cannam@21 382 <td class="memname">Vamp::HostExt::PluginSummarisingAdapter::PluginSummarisingAdapter </td>
cannam@21 383 <td>(</td>
cannam@21 384 <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html">Plugin</a> *&nbsp;</td>
cannam@21 385 <td class="paramname"> <em>plugin</em> </td>
cannam@21 386 <td>&nbsp;)&nbsp;</td>
cannam@21 387 <td></td>
cannam@21 388 </tr>
cannam@21 389 </table>
cannam@21 390 </div>
cannam@21 391 <div class="memdoc">
cannam@21 392
cannam@21 393 <p>
cannam@21 394 Construct a <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html" title="PluginSummarisingAdapter is a Vamp plugin adapter that provides summarisation methods...">PluginSummarisingAdapter</a> wrapping the given plugin.
cannam@21 395 <p>
cannam@21 396 The adapter takes ownership of the plugin, which will be deleted when the adapter is deleted.
cannam@21 397 </div>
cannam@21 398 </div><p>
cannam@21 399 <a class="anchor" name="47846e7cc0ef4a29335e08b9645316d0"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::~PluginSummarisingAdapter" ref="47846e7cc0ef4a29335e08b9645316d0" args="()" -->
cannam@21 400 <div class="memitem">
cannam@21 401 <div class="memproto">
cannam@21 402 <table class="memname">
cannam@21 403 <tr>
cannam@21 404 <td class="memname">virtual Vamp::HostExt::PluginSummarisingAdapter::~PluginSummarisingAdapter </td>
cannam@21 405 <td>(</td>
cannam@21 406 <td class="paramname"> </td>
cannam@21 407 <td>&nbsp;)&nbsp;</td>
cannam@21 408 <td><code> [virtual]</code></td>
cannam@21 409 </tr>
cannam@21 410 </table>
cannam@21 411 </div>
cannam@21 412 <div class="memdoc">
cannam@21 413
cannam@21 414 <p>
cannam@21 415
cannam@21 416 </div>
cannam@21 417 </div><p>
cannam@21 418 <hr><h2>Member Function Documentation</h2>
cannam@21 419 <a class="anchor" name="1e994576d43efe103bf8f83b69716745"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::initialise" ref="1e994576d43efe103bf8f83b69716745" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
cannam@21 420 <div class="memitem">
cannam@21 421 <div class="memproto">
cannam@21 422 <table class="memname">
cannam@21 423 <tr>
cannam@21 424 <td class="memname">bool Vamp::HostExt::PluginSummarisingAdapter::initialise </td>
cannam@21 425 <td>(</td>
cannam@21 426 <td class="paramtype">size_t&nbsp;</td>
cannam@21 427 <td class="paramname"> <em>inputChannels</em>, </td>
cannam@21 428 </tr>
cannam@21 429 <tr>
cannam@21 430 <td class="paramkey"></td>
cannam@21 431 <td></td>
cannam@21 432 <td class="paramtype">size_t&nbsp;</td>
cannam@21 433 <td class="paramname"> <em>stepSize</em>, </td>
cannam@21 434 </tr>
cannam@21 435 <tr>
cannam@21 436 <td class="paramkey"></td>
cannam@21 437 <td></td>
cannam@21 438 <td class="paramtype">size_t&nbsp;</td>
cannam@21 439 <td class="paramname"> <em>blockSize</em></td><td>&nbsp;</td>
cannam@21 440 </tr>
cannam@21 441 <tr>
cannam@21 442 <td></td>
cannam@21 443 <td>)</td>
cannam@21 444 <td></td><td></td><td><code> [virtual]</code></td>
cannam@21 445 </tr>
cannam@21 446 </table>
cannam@21 447 </div>
cannam@21 448 <div class="memdoc">
cannam@21 449
cannam@21 450 <p>
cannam@21 451 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).
cannam@21 452 <p>
cannam@21 453 The input sample rate should have been already specified at construction time.<p>
cannam@21 454 Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported.
cannam@21 455 <p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#a5a1f8290d8e9a315695584dcb3ad137">Vamp::HostExt::PluginWrapper</a>.</p>
cannam@21 456
cannam@21 457 </div>
cannam@21 458 </div><p>
cannam@35 459 <a class="anchor" name="3402381d145d507bd26d1a67e3616911"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::reset" ref="3402381d145d507bd26d1a67e3616911" args="()" -->
cannam@35 460 <div class="memitem">
cannam@35 461 <div class="memproto">
cannam@35 462 <table class="memname">
cannam@35 463 <tr>
cannam@35 464 <td class="memname">void Vamp::HostExt::PluginSummarisingAdapter::reset </td>
cannam@35 465 <td>(</td>
cannam@35 466 <td class="paramname"> </td>
cannam@35 467 <td>&nbsp;)&nbsp;</td>
cannam@35 468 <td><code> [virtual]</code></td>
cannam@35 469 </tr>
cannam@35 470 </table>
cannam@35 471 </div>
cannam@35 472 <div class="memdoc">
cannam@35 473
cannam@35 474 <p>
cannam@35 475 Reset the plugin after use, to prepare it for another clean run.
cannam@35 476 <p>
cannam@35 477 Not called for the first initialisation (i.e. initialise must also do a reset).
cannam@35 478 <p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#d19cc0614ba41cdc26ef3394c5146fe6">Vamp::HostExt::PluginWrapper</a>.</p>
cannam@35 479
cannam@35 480 </div>
cannam@35 481 </div><p>
cannam@21 482 <a class="anchor" name="3314b456a4780601c021dac25b478846"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::process" ref="3314b456a4780601c021dac25b478846" args="(const float *const *inputBuffers, RealTime timestamp)" -->
cannam@21 483 <div class="memitem">
cannam@21 484 <div class="memproto">
cannam@21 485 <table class="memname">
cannam@21 486 <tr>
cannam@21 487 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::HostExt::PluginSummarisingAdapter::process </td>
cannam@21 488 <td>(</td>
cannam@21 489 <td class="paramtype">const float *const *&nbsp;</td>
cannam@21 490 <td class="paramname"> <em>inputBuffers</em>, </td>
cannam@21 491 </tr>
cannam@21 492 <tr>
cannam@21 493 <td class="paramkey"></td>
cannam@21 494 <td></td>
cannam@21 495 <td class="paramtype"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td>
cannam@21 496 <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
cannam@21 497 </tr>
cannam@21 498 <tr>
cannam@21 499 <td></td>
cannam@21 500 <td>)</td>
cannam@21 501 <td></td><td></td><td><code> [virtual]</code></td>
cannam@21 502 </tr>
cannam@21 503 </table>
cannam@21 504 </div>
cannam@21 505 <div class="memdoc">
cannam@21 506
cannam@21 507 <p>
cannam@21 508 Process a single block of input data.
cannam@21 509 <p>
cannam@21 510 If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.<p>
cannam@21 511 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>
cannam@21 512 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.)
cannam@21 513 <p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf">Vamp::HostExt::PluginWrapper</a>.</p>
cannam@21 514
cannam@21 515 </div>
cannam@21 516 </div><p>
cannam@21 517 <a class="anchor" name="e9dcbd1ba8197ff90b4fc6bf7ade7688"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getRemainingFeatures" ref="e9dcbd1ba8197ff90b4fc6bf7ade7688" args="()" -->
cannam@21 518 <div class="memitem">
cannam@21 519 <div class="memproto">
cannam@21 520 <table class="memname">
cannam@21 521 <tr>
cannam@21 522 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::HostExt::PluginSummarisingAdapter::getRemainingFeatures </td>
cannam@21 523 <td>(</td>
cannam@21 524 <td class="paramname"> </td>
cannam@21 525 <td>&nbsp;)&nbsp;</td>
cannam@21 526 <td><code> [virtual]</code></td>
cannam@21 527 </tr>
cannam@21 528 </table>
cannam@21 529 </div>
cannam@21 530 <div class="memdoc">
cannam@21 531
cannam@21 532 <p>
cannam@21 533 After all blocks have been processed, calculate and return any remaining features derived from the complete input.
cannam@21 534 <p>
cannam@21 535
cannam@21 536 <p>Reimplemented from <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#2bc8c0992e64f06991fb7cf89f99857e">Vamp::HostExt::PluginWrapper</a>.</p>
cannam@21 537
cannam@21 538 </div>
cannam@21 539 </div><p>
cannam@21 540 <a class="anchor" name="1a659500ca1290a228c0b9b91f6ac0b7"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::setSummarySegmentBoundaries" ref="1a659500ca1290a228c0b9b91f6ac0b7" args="(const SegmentBoundaries &amp;)" -->
cannam@21 541 <div class="memitem">
cannam@21 542 <div class="memproto">
cannam@21 543 <table class="memname">
cannam@21 544 <tr>
cannam@21 545 <td class="memname">void Vamp::HostExt::PluginSummarisingAdapter::setSummarySegmentBoundaries </td>
cannam@21 546 <td>(</td>
cannam@21 547 <td class="paramtype">const <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#74e7f93c745802a2409185b63922466b">SegmentBoundaries</a> &amp;&nbsp;</td>
cannam@21 548 <td class="paramname"> </td>
cannam@21 549 <td>&nbsp;)&nbsp;</td>
cannam@21 550 <td></td>
cannam@21 551 </tr>
cannam@21 552 </table>
cannam@21 553 </div>
cannam@21 554 <div class="memdoc">
cannam@21 555
cannam@21 556 <p>
cannam@21 557 Specify a series of segment boundaries, such that one summary will be returned for each of the contiguous intra-boundary segments.
cannam@21 558 <p>
cannam@21 559 This function must be called before getSummaryForOutput or getSummaryForAllOutputs.<p>
cannam@21 560 Note that you cannot retrieve results with multiple different segmentations by repeatedly calling this function followed by one of the getSummary functions. The summaries are all calculated at the first call to any getSummary function, and once the summaries have been calculated, they remain calculated.
cannam@21 561 </div>
cannam@21 562 </div><p>
cannam@21 563 <a class="anchor" name="be13faa68d3244b962dbd362671e23f9"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getSummaryForOutput" ref="be13faa68d3244b962dbd362671e23f9" args="(int output, SummaryType type, AveragingMethod method=SampleAverage)" -->
cannam@21 564 <div class="memitem">
cannam@21 565 <div class="memproto">
cannam@21 566 <table class="memname">
cannam@21 567 <tr>
cannam@21 568 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> Vamp::HostExt::PluginSummarisingAdapter::getSummaryForOutput </td>
cannam@21 569 <td>(</td>
cannam@21 570 <td class="paramtype">int&nbsp;</td>
cannam@21 571 <td class="paramname"> <em>output</em>, </td>
cannam@21 572 </tr>
cannam@21 573 <tr>
cannam@21 574 <td class="paramkey"></td>
cannam@21 575 <td></td>
cannam@21 576 <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">SummaryType</a>&nbsp;</td>
cannam@21 577 <td class="paramname"> <em>type</em>, </td>
cannam@21 578 </tr>
cannam@21 579 <tr>
cannam@21 580 <td class="paramkey"></td>
cannam@21 581 <td></td>
cannam@21 582 <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">AveragingMethod</a>&nbsp;</td>
cannam@21 583 <td class="paramname"> <em>method</em> = <code>SampleAverage</code></td><td>&nbsp;</td>
cannam@21 584 </tr>
cannam@21 585 <tr>
cannam@21 586 <td></td>
cannam@21 587 <td>)</td>
cannam@21 588 <td></td><td></td><td></td>
cannam@21 589 </tr>
cannam@21 590 </table>
cannam@21 591 </div>
cannam@21 592 <div class="memdoc">
cannam@21 593
cannam@21 594 <p>
cannam@21 595 Return summaries of the features that were returned on the given output, using the given SummaryType and AveragingMethod.
cannam@21 596 <p>
cannam@21 597 The plugin must have been fully run (<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#3314b456a4780601c021dac25b478846" title="Process a single block of input data.">process()</a> and <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#e9dcbd1ba8197ff90b4fc6bf7ade7688" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures()</a> calls all made as appropriate) before this function is called.
cannam@21 598 </div>
cannam@21 599 </div><p>
cannam@21 600 <a class="anchor" name="c3f93d9ca2d25c9fdc80d0ba10eaaa6b"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getSummaryForAllOutputs" ref="c3f93d9ca2d25c9fdc80d0ba10eaaa6b" args="(SummaryType type, AveragingMethod method=SampleAverage)" -->
cannam@21 601 <div class="memitem">
cannam@21 602 <div class="memproto">
cannam@21 603 <table class="memname">
cannam@21 604 <tr>
cannam@21 605 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::HostExt::PluginSummarisingAdapter::getSummaryForAllOutputs </td>
cannam@21 606 <td>(</td>
cannam@21 607 <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f504f810448961fc489e9b6572471705">SummaryType</a>&nbsp;</td>
cannam@21 608 <td class="paramname"> <em>type</em>, </td>
cannam@21 609 </tr>
cannam@21 610 <tr>
cannam@21 611 <td class="paramkey"></td>
cannam@21 612 <td></td>
cannam@21 613 <td class="paramtype"><a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#294e9eed9c541dcedbaa4f2dfda1ac76">AveragingMethod</a>&nbsp;</td>
cannam@21 614 <td class="paramname"> <em>method</em> = <code>SampleAverage</code></td><td>&nbsp;</td>
cannam@21 615 </tr>
cannam@21 616 <tr>
cannam@21 617 <td></td>
cannam@21 618 <td>)</td>
cannam@21 619 <td></td><td></td><td></td>
cannam@21 620 </tr>
cannam@21 621 </table>
cannam@21 622 </div>
cannam@21 623 <div class="memdoc">
cannam@21 624
cannam@21 625 <p>
cannam@21 626 Return summaries of the features that were returned on all of the plugin's outputs, using the given SummaryType and AveragingMethod.
cannam@21 627 <p>
cannam@21 628 The plugin must have been fully run (<a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#3314b456a4780601c021dac25b478846" title="Process a single block of input data.">process()</a> and <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#e9dcbd1ba8197ff90b4fc6bf7ade7688" title="After all blocks have been processed, calculate and return any remaining features...">getRemainingFeatures()</a> calls all made as appropriate) before this function is called.
cannam@21 629 </div>
cannam@21 630 </div><p>
cannam@21 631 <a class="anchor" name="e203faf8384c9e1fddc381409aa8a214"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getInputDomain" ref="e203faf8384c9e1fddc381409aa8a214" args="() const " -->
cannam@21 632 <div class="memitem">
cannam@21 633 <div class="memproto">
cannam@21 634 <table class="memname">
cannam@21 635 <tr>
cannam@21 636 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> Vamp::HostExt::PluginWrapper::getInputDomain </td>
cannam@21 637 <td>(</td>
cannam@21 638 <td class="paramname"> </td>
cannam@21 639 <td>&nbsp;)&nbsp;</td>
cannam@21 640 <td> const<code> [virtual, inherited]</code></td>
cannam@21 641 </tr>
cannam@21 642 </table>
cannam@21 643 </div>
cannam@21 644 <div class="memdoc">
cannam@21 645
cannam@21 646 <p>
cannam@21 647 Get the plugin's required input domain.
cannam@21 648 <p>
cannam@35 649 If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin.<p>
cannam@35 650 If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a>. The input data for the FFT will be rotated so as to place the origin in the centre of the block. 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.
cannam@21 651 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>.</p>
cannam@21 652
cannam@21 653 <p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#47ff1ed72889f323da63f8abc9ea581a">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
cannam@21 654
cannam@21 655 </div>
cannam@21 656 </div><p>
cannam@21 657 <a class="anchor" name="74147fda6b44ff2169bd4a1eea0d46ff"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getVampApiVersion" ref="74147fda6b44ff2169bd4a1eea0d46ff" args="() const " -->
cannam@21 658 <div class="memitem">
cannam@21 659 <div class="memproto">
cannam@21 660 <table class="memname">
cannam@21 661 <tr>
cannam@21 662 <td class="memname">unsigned int Vamp::HostExt::PluginWrapper::getVampApiVersion </td>
cannam@21 663 <td>(</td>
cannam@21 664 <td class="paramname"> </td>
cannam@21 665 <td>&nbsp;)&nbsp;</td>
cannam@21 666 <td> const<code> [virtual, inherited]</code></td>
cannam@21 667 </tr>
cannam@21 668 </table>
cannam@21 669 </div>
cannam@21 670 <div class="memdoc">
cannam@21 671
cannam@21 672 <p>
cannam@21 673 Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin.
cannam@21 674 <p>
cannam@21 675
cannam@21 676 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">Vamp::PluginBase</a>.</p>
cannam@21 677
cannam@21 678 </div>
cannam@21 679 </div><p>
cannam@21 680 <a class="anchor" name="4baa9e48f717c2b3e7f92496aa39d904"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getIdentifier" ref="4baa9e48f717c2b3e7f92496aa39d904" args="() const " -->
cannam@21 681 <div class="memitem">
cannam@21 682 <div class="memproto">
cannam@21 683 <table class="memname">
cannam@21 684 <tr>
cannam@21 685 <td class="memname">std::string Vamp::HostExt::PluginWrapper::getIdentifier </td>
cannam@21 686 <td>(</td>
cannam@21 687 <td class="paramname"> </td>
cannam@21 688 <td>&nbsp;)&nbsp;</td>
cannam@21 689 <td> const<code> [virtual, inherited]</code></td>
cannam@21 690 </tr>
cannam@21 691 </table>
cannam@21 692 </div>
cannam@21 693 <div class="memdoc">
cannam@21 694
cannam@21 695 <p>
cannam@21 696 Get the computer-usable name of the plugin.
cannam@21 697 <p>
cannam@21 698 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>
cannam@21 699 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>
cannam@21 700 Example: "zero_crossings"
cannam@21 701 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>.</p>
cannam@21 702
cannam@21 703 </div>
cannam@21 704 </div><p>
cannam@21 705 <a class="anchor" name="c70a3265bb25aeb03f6dd8f8a0442088"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getName" ref="c70a3265bb25aeb03f6dd8f8a0442088" args="() const " -->
cannam@21 706 <div class="memitem">
cannam@21 707 <div class="memproto">
cannam@21 708 <table class="memname">
cannam@21 709 <tr>
cannam@21 710 <td class="memname">std::string Vamp::HostExt::PluginWrapper::getName </td>
cannam@21 711 <td>(</td>
cannam@21 712 <td class="paramname"> </td>
cannam@21 713 <td>&nbsp;)&nbsp;</td>
cannam@21 714 <td> const<code> [virtual, inherited]</code></td>
cannam@21 715 </tr>
cannam@21 716 </table>
cannam@21 717 </div>
cannam@21 718 <div class="memdoc">
cannam@21 719
cannam@21 720 <p>
cannam@21 721 Get a human-readable name or title of the plugin.
cannam@21 722 <p>
cannam@21 723 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>
cannam@21 724 Example: "Zero Crossings"
cannam@21 725 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>.</p>
cannam@21 726
cannam@21 727 </div>
cannam@21 728 </div><p>
cannam@21 729 <a class="anchor" name="c334f699c0996055942785410d8a065c"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getDescription" ref="c334f699c0996055942785410d8a065c" args="() const " -->
cannam@21 730 <div class="memitem">
cannam@21 731 <div class="memproto">
cannam@21 732 <table class="memname">
cannam@21 733 <tr>
cannam@21 734 <td class="memname">std::string Vamp::HostExt::PluginWrapper::getDescription </td>
cannam@21 735 <td>(</td>
cannam@21 736 <td class="paramname"> </td>
cannam@21 737 <td>&nbsp;)&nbsp;</td>
cannam@21 738 <td> const<code> [virtual, inherited]</code></td>
cannam@21 739 </tr>
cannam@21 740 </table>
cannam@21 741 </div>
cannam@21 742 <div class="memdoc">
cannam@21 743
cannam@21 744 <p>
cannam@21 745 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".
cannam@21 746 <p>
cannam@21 747 May be empty if the name has said it all already.<p>
cannam@21 748 Example: "Detect and count zero crossing points"
cannam@21 749 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>.</p>
cannam@21 750
cannam@21 751 </div>
cannam@21 752 </div><p>
cannam@21 753 <a class="anchor" name="59d5a2298951b317995675e664b1c7bb"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getMaker" ref="59d5a2298951b317995675e664b1c7bb" args="() const " -->
cannam@21 754 <div class="memitem">
cannam@21 755 <div class="memproto">
cannam@21 756 <table class="memname">
cannam@21 757 <tr>
cannam@21 758 <td class="memname">std::string Vamp::HostExt::PluginWrapper::getMaker </td>
cannam@21 759 <td>(</td>
cannam@21 760 <td class="paramname"> </td>
cannam@21 761 <td>&nbsp;)&nbsp;</td>
cannam@21 762 <td> const<code> [virtual, inherited]</code></td>
cannam@21 763 </tr>
cannam@21 764 </table>
cannam@21 765 </div>
cannam@21 766 <div class="memdoc">
cannam@21 767
cannam@21 768 <p>
cannam@21 769 Get the name of the author or vendor of the plugin in human-readable form.
cannam@21 770 <p>
cannam@21 771 This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar.
cannam@21 772 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>.</p>
cannam@21 773
cannam@21 774 </div>
cannam@21 775 </div><p>
cannam@21 776 <a class="anchor" name="47e1acf1696813008324a915c9ba59c5"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getPluginVersion" ref="47e1acf1696813008324a915c9ba59c5" args="() const " -->
cannam@21 777 <div class="memitem">
cannam@21 778 <div class="memproto">
cannam@21 779 <table class="memname">
cannam@21 780 <tr>
cannam@21 781 <td class="memname">int Vamp::HostExt::PluginWrapper::getPluginVersion </td>
cannam@21 782 <td>(</td>
cannam@21 783 <td class="paramname"> </td>
cannam@21 784 <td>&nbsp;)&nbsp;</td>
cannam@21 785 <td> const<code> [virtual, inherited]</code></td>
cannam@21 786 </tr>
cannam@21 787 </table>
cannam@21 788 </div>
cannam@21 789 <div class="memdoc">
cannam@21 790
cannam@21 791 <p>
cannam@21 792 Get the version number of the plugin.
cannam@21 793 <p>
cannam@21 794
cannam@21 795 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>.</p>
cannam@21 796
cannam@21 797 </div>
cannam@21 798 </div><p>
cannam@21 799 <a class="anchor" name="e14f6ecb78be909c4cd5f0cdaed3c566"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getCopyright" ref="e14f6ecb78be909c4cd5f0cdaed3c566" args="() const " -->
cannam@21 800 <div class="memitem">
cannam@21 801 <div class="memproto">
cannam@21 802 <table class="memname">
cannam@21 803 <tr>
cannam@21 804 <td class="memname">std::string Vamp::HostExt::PluginWrapper::getCopyright </td>
cannam@21 805 <td>(</td>
cannam@21 806 <td class="paramname"> </td>
cannam@21 807 <td>&nbsp;)&nbsp;</td>
cannam@21 808 <td> const<code> [virtual, inherited]</code></td>
cannam@21 809 </tr>
cannam@21 810 </table>
cannam@21 811 </div>
cannam@21 812 <div class="memdoc">
cannam@21 813
cannam@21 814 <p>
cannam@21 815 Get the copyright statement or licensing summary for the plugin.
cannam@21 816 <p>
cannam@21 817 This can be an informative text, without the same presentation constraints as mentioned for getMaker above.
cannam@21 818 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>.</p>
cannam@21 819
cannam@21 820 </div>
cannam@21 821 </div><p>
cannam@21 822 <a class="anchor" name="9be71561265c2e6e43b7feaddaa91f36"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getParameterDescriptors" ref="9be71561265c2e6e43b7feaddaa91f36" args="() const " -->
cannam@21 823 <div class="memitem">
cannam@21 824 <div class="memproto">
cannam@21 825 <table class="memname">
cannam@21 826 <tr>
cannam@21 827 <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> Vamp::HostExt::PluginWrapper::getParameterDescriptors </td>
cannam@21 828 <td>(</td>
cannam@21 829 <td class="paramname"> </td>
cannam@21 830 <td>&nbsp;)&nbsp;</td>
cannam@21 831 <td> const<code> [virtual, inherited]</code></td>
cannam@21 832 </tr>
cannam@21 833 </table>
cannam@21 834 </div>
cannam@21 835 <div class="memdoc">
cannam@21 836
cannam@21 837 <p>
cannam@21 838 Get the controllable parameters of this plugin.
cannam@21 839 <p>
cannam@21 840
cannam@21 841 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">Vamp::PluginBase</a>.</p>
cannam@21 842
cannam@21 843 </div>
cannam@21 844 </div><p>
cannam@21 845 <a class="anchor" name="034920f56c8d7609a85447c42556048c"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getParameter" ref="034920f56c8d7609a85447c42556048c" args="(std::string) const " -->
cannam@21 846 <div class="memitem">
cannam@21 847 <div class="memproto">
cannam@21 848 <table class="memname">
cannam@21 849 <tr>
cannam@21 850 <td class="memname">float Vamp::HostExt::PluginWrapper::getParameter </td>
cannam@21 851 <td>(</td>
cannam@21 852 <td class="paramtype">std::string&nbsp;</td>
cannam@21 853 <td class="paramname"> </td>
cannam@21 854 <td>&nbsp;)&nbsp;</td>
cannam@21 855 <td> const<code> [virtual, inherited]</code></td>
cannam@21 856 </tr>
cannam@21 857 </table>
cannam@21 858 </div>
cannam@21 859 <div class="memdoc">
cannam@21 860
cannam@21 861 <p>
cannam@21 862 Get the value of a named parameter.
cannam@21 863 <p>
cannam@21 864 The argument is the identifier field from that parameter's descriptor.
cannam@21 865 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">Vamp::PluginBase</a>.</p>
cannam@21 866
cannam@21 867 </div>
cannam@21 868 </div><p>
cannam@21 869 <a class="anchor" name="651b15a5dc4c27942ac0c87c6092bfe5"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::setParameter" ref="651b15a5dc4c27942ac0c87c6092bfe5" args="(std::string, float)" -->
cannam@21 870 <div class="memitem">
cannam@21 871 <div class="memproto">
cannam@21 872 <table class="memname">
cannam@21 873 <tr>
cannam@21 874 <td class="memname">void Vamp::HostExt::PluginWrapper::setParameter </td>
cannam@21 875 <td>(</td>
cannam@21 876 <td class="paramtype">std::string&nbsp;</td>
cannam@21 877 <td class="paramname">, </td>
cannam@21 878 </tr>
cannam@21 879 <tr>
cannam@21 880 <td class="paramkey"></td>
cannam@21 881 <td></td>
cannam@21 882 <td class="paramtype">float&nbsp;</td>
cannam@21 883 <td class="paramname"></td><td>&nbsp;</td>
cannam@21 884 </tr>
cannam@21 885 <tr>
cannam@21 886 <td></td>
cannam@21 887 <td>)</td>
cannam@21 888 <td></td><td></td><td><code> [virtual, inherited]</code></td>
cannam@21 889 </tr>
cannam@21 890 </table>
cannam@21 891 </div>
cannam@21 892 <div class="memdoc">
cannam@21 893
cannam@21 894 <p>
cannam@21 895 Set a named parameter.
cannam@21 896 <p>
cannam@21 897 The first argument is the identifier field from that parameter's descriptor.
cannam@21 898 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">Vamp::PluginBase</a>.</p>
cannam@21 899
cannam@21 900 <p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#7a979b20c169d37adbd7b7d8b8a077b3">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
cannam@21 901
cannam@21 902 </div>
cannam@21 903 </div><p>
cannam@21 904 <a class="anchor" name="131fbe1df81215020b9aa8cecef4c802"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getPrograms" ref="131fbe1df81215020b9aa8cecef4c802" args="() const " -->
cannam@21 905 <div class="memitem">
cannam@21 906 <div class="memproto">
cannam@21 907 <table class="memname">
cannam@21 908 <tr>
cannam@21 909 <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> Vamp::HostExt::PluginWrapper::getPrograms </td>
cannam@21 910 <td>(</td>
cannam@21 911 <td class="paramname"> </td>
cannam@21 912 <td>&nbsp;)&nbsp;</td>
cannam@21 913 <td> const<code> [virtual, inherited]</code></td>
cannam@21 914 </tr>
cannam@21 915 </table>
cannam@21 916 </div>
cannam@21 917 <div class="memdoc">
cannam@21 918
cannam@21 919 <p>
cannam@21 920 Get the program settings available in this plugin.
cannam@21 921 <p>
cannam@21 922 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>
cannam@21 923 The programs must have unique names.
cannam@21 924 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">Vamp::PluginBase</a>.</p>
cannam@21 925
cannam@21 926 </div>
cannam@21 927 </div><p>
cannam@21 928 <a class="anchor" name="7a312dd42d161064b70afd7ff24c0651"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getCurrentProgram" ref="7a312dd42d161064b70afd7ff24c0651" args="() const " -->
cannam@21 929 <div class="memitem">
cannam@21 930 <div class="memproto">
cannam@21 931 <table class="memname">
cannam@21 932 <tr>
cannam@21 933 <td class="memname">std::string Vamp::HostExt::PluginWrapper::getCurrentProgram </td>
cannam@21 934 <td>(</td>
cannam@21 935 <td class="paramname"> </td>
cannam@21 936 <td>&nbsp;)&nbsp;</td>
cannam@21 937 <td> const<code> [virtual, inherited]</code></td>
cannam@21 938 </tr>
cannam@21 939 </table>
cannam@21 940 </div>
cannam@21 941 <div class="memdoc">
cannam@21 942
cannam@21 943 <p>
cannam@21 944 Get the current program.
cannam@21 945 <p>
cannam@21 946
cannam@21 947 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">Vamp::PluginBase</a>.</p>
cannam@21 948
cannam@21 949 </div>
cannam@21 950 </div><p>
cannam@21 951 <a class="anchor" name="074978333a74fdcf336a8a1d8ea20abf"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::selectProgram" ref="074978333a74fdcf336a8a1d8ea20abf" args="(std::string)" -->
cannam@21 952 <div class="memitem">
cannam@21 953 <div class="memproto">
cannam@21 954 <table class="memname">
cannam@21 955 <tr>
cannam@21 956 <td class="memname">void Vamp::HostExt::PluginWrapper::selectProgram </td>
cannam@21 957 <td>(</td>
cannam@21 958 <td class="paramtype">std::string&nbsp;</td>
cannam@21 959 <td class="paramname"> </td>
cannam@21 960 <td>&nbsp;)&nbsp;</td>
cannam@21 961 <td><code> [virtual, inherited]</code></td>
cannam@21 962 </tr>
cannam@21 963 </table>
cannam@21 964 </div>
cannam@21 965 <div class="memdoc">
cannam@21 966
cannam@21 967 <p>
cannam@21 968 Select a program.
cannam@21 969 <p>
cannam@21 970 (If the given program name is not one of the available programs, do nothing.)
cannam@21 971 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">Vamp::PluginBase</a>.</p>
cannam@21 972
cannam@21 973 <p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#3cc7000e0aff525950e0a286b87f8927">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
cannam@21 974
cannam@21 975 </div>
cannam@21 976 </div><p>
cannam@21 977 <a class="anchor" name="0137d93d7019bacc31104836fb4d352e"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getPreferredStepSize" ref="0137d93d7019bacc31104836fb4d352e" args="() const " -->
cannam@21 978 <div class="memitem">
cannam@21 979 <div class="memproto">
cannam@21 980 <table class="memname">
cannam@21 981 <tr>
cannam@21 982 <td class="memname">size_t Vamp::HostExt::PluginWrapper::getPreferredStepSize </td>
cannam@21 983 <td>(</td>
cannam@21 984 <td class="paramname"> </td>
cannam@21 985 <td>&nbsp;)&nbsp;</td>
cannam@21 986 <td> const<code> [virtual, inherited]</code></td>
cannam@21 987 </tr>
cannam@21 988 </table>
cannam@21 989 </div>
cannam@21 990 <div class="memdoc">
cannam@21 991
cannam@21 992 <p>
cannam@21 993 Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function) for the plugin.
cannam@21 994 <p>
cannam@21 995 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>
cannam@21 996 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.
cannam@21 997 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">Vamp::Plugin</a>.</p>
cannam@21 998
cannam@21 999 <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>
cannam@21 1000
cannam@21 1001 </div>
cannam@21 1002 </div><p>
cannam@21 1003 <a class="anchor" name="2c62a656313a819650656643a867ad01"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getPreferredBlockSize" ref="2c62a656313a819650656643a867ad01" args="() const " -->
cannam@21 1004 <div class="memitem">
cannam@21 1005 <div class="memproto">
cannam@21 1006 <table class="memname">
cannam@21 1007 <tr>
cannam@21 1008 <td class="memname">size_t Vamp::HostExt::PluginWrapper::getPreferredBlockSize </td>
cannam@21 1009 <td>(</td>
cannam@21 1010 <td class="paramname"> </td>
cannam@21 1011 <td>&nbsp;)&nbsp;</td>
cannam@21 1012 <td> const<code> [virtual, inherited]</code></td>
cannam@21 1013 </tr>
cannam@21 1014 </table>
cannam@21 1015 </div>
cannam@21 1016 <div class="memdoc">
cannam@21 1017
cannam@21 1018 <p>
cannam@21 1019 Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> function).
cannam@21 1020 <p>
cannam@21 1021 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>
cannam@21 1022 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.
cannam@21 1023 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">Vamp::Plugin</a>.</p>
cannam@21 1024
cannam@21 1025 <p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#21e45180b19873f9ab69fe7a4e184a03">Vamp::HostExt::PluginBufferingAdapter</a>, and <a class="el" href="classVamp_1_1HostExt_1_1PluginInputDomainAdapter.html#4cf40d09d02022b1962ff17bb0324ea5">Vamp::HostExt::PluginInputDomainAdapter</a>.</p>
cannam@21 1026
cannam@21 1027 </div>
cannam@21 1028 </div><p>
cannam@21 1029 <a class="anchor" name="2b28f1cf37d46a514f1e1411a6037bf8"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getMinChannelCount" ref="2b28f1cf37d46a514f1e1411a6037bf8" args="() const " -->
cannam@21 1030 <div class="memitem">
cannam@21 1031 <div class="memproto">
cannam@21 1032 <table class="memname">
cannam@21 1033 <tr>
cannam@21 1034 <td class="memname">size_t Vamp::HostExt::PluginWrapper::getMinChannelCount </td>
cannam@21 1035 <td>(</td>
cannam@21 1036 <td class="paramname"> </td>
cannam@21 1037 <td>&nbsp;)&nbsp;</td>
cannam@21 1038 <td> const<code> [virtual, inherited]</code></td>
cannam@21 1039 </tr>
cannam@21 1040 </table>
cannam@21 1041 </div>
cannam@21 1042 <div class="memdoc">
cannam@21 1043
cannam@21 1044 <p>
cannam@21 1045 Get the minimum supported number of input channels.
cannam@21 1046 <p>
cannam@21 1047
cannam@21 1048 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">Vamp::Plugin</a>.</p>
cannam@21 1049
cannam@21 1050 </div>
cannam@21 1051 </div><p>
cannam@21 1052 <a class="anchor" name="985eb21f1827bfbc3950d6871b107a58"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getMaxChannelCount" ref="985eb21f1827bfbc3950d6871b107a58" args="() const " -->
cannam@21 1053 <div class="memitem">
cannam@21 1054 <div class="memproto">
cannam@21 1055 <table class="memname">
cannam@21 1056 <tr>
cannam@21 1057 <td class="memname">size_t Vamp::HostExt::PluginWrapper::getMaxChannelCount </td>
cannam@21 1058 <td>(</td>
cannam@21 1059 <td class="paramname"> </td>
cannam@21 1060 <td>&nbsp;)&nbsp;</td>
cannam@21 1061 <td> const<code> [virtual, inherited]</code></td>
cannam@21 1062 </tr>
cannam@21 1063 </table>
cannam@21 1064 </div>
cannam@21 1065 <div class="memdoc">
cannam@21 1066
cannam@21 1067 <p>
cannam@21 1068 Get the maximum supported number of input channels.
cannam@21 1069 <p>
cannam@21 1070
cannam@21 1071 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">Vamp::Plugin</a>.</p>
cannam@21 1072
cannam@21 1073 </div>
cannam@21 1074 </div><p>
cannam@21 1075 <a class="anchor" name="5a9411305f713b4c9827844b89acd270"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getOutputDescriptors" ref="5a9411305f713b4c9827844b89acd270" args="() const " -->
cannam@21 1076 <div class="memitem">
cannam@21 1077 <div class="memproto">
cannam@21 1078 <table class="memname">
cannam@21 1079 <tr>
cannam@21 1080 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> Vamp::HostExt::PluginWrapper::getOutputDescriptors </td>
cannam@21 1081 <td>(</td>
cannam@21 1082 <td class="paramname"> </td>
cannam@21 1083 <td>&nbsp;)&nbsp;</td>
cannam@21 1084 <td> const<code> [virtual, inherited]</code></td>
cannam@21 1085 </tr>
cannam@21 1086 </table>
cannam@21 1087 </div>
cannam@21 1088 <div class="memdoc">
cannam@21 1089
cannam@21 1090 <p>
cannam@21 1091 Get the outputs of this plugin.
cannam@21 1092 <p>
cannam@21 1093 An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1HostExt_1_1PluginWrapper.html#6bd72d6dfb3047524dbe8ae3294527cf" title="Process a single block of input data.">process()</a> call.
cannam@21 1094 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>.</p>
cannam@21 1095
cannam@21 1096 <p>Reimplemented in <a class="el" href="classVamp_1_1HostExt_1_1PluginBufferingAdapter.html#f8cc914897a284433de220f1153f3845">Vamp::HostExt::PluginBufferingAdapter</a>.</p>
cannam@21 1097
cannam@21 1098 </div>
cannam@21 1099 </div><p>
cannam@21 1100 <a class="anchor" name="e9d79bed7237d55a73018a6b982a55b3"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getWrapper" ref="e9d79bed7237d55a73018a6b982a55b3" args="()" -->
cannam@21 1101 <div class="memitem">
cannam@21 1102 <div class="memproto">
cannam@21 1103 <div class="memtemplate">
cannam@35 1104 template&lt;typename WrapperType &gt; </div>
cannam@21 1105 <table class="memname">
cannam@21 1106 <tr>
cannam@21 1107 <td class="memname">WrapperType* Vamp::HostExt::PluginWrapper::getWrapper </td>
cannam@21 1108 <td>(</td>
cannam@21 1109 <td class="paramname"> </td>
cannam@21 1110 <td>&nbsp;)&nbsp;</td>
cannam@21 1111 <td><code> [inline, inherited]</code></td>
cannam@21 1112 </tr>
cannam@21 1113 </table>
cannam@21 1114 </div>
cannam@21 1115 <div class="memdoc">
cannam@21 1116
cannam@21 1117 <p>
cannam@21 1118 Return a pointer to the plugin wrapper of type WrapperType surrounding this wrapper's plugin, if present.
cannam@21 1119 <p>
cannam@21 1120 This is useful in situations where a plugin is wrapped by multiple different wrappers (one inside another) and the host wants to call some wrapper-specific function on one of the layers without having to care about the order in which they are wrapped. For example, the plugin returned by <a class="el" href="classVamp_1_1HostExt_1_1PluginLoader.html#964689eb9688cd7e58e8c82ebb0d305f" title="Load a Vamp plugin, given its identifying key.">PluginLoader::loadPlugin</a> may have more than one wrapper; if the host wanted to query or fine-tune some property of one of them, it would be hard to do so without knowing the order of the wrappers. This function therefore gives direct access to the wrapper of a particular type.
cannam@21 1121 <p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00116">116</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
cannam@21 1122
cannam@21 1123 <p>References <a class="el" href="PluginWrapper_8h-source.html#l00116">Vamp::HostExt::PluginWrapper::getWrapper()</a>.</p>
cannam@21 1124
cannam@21 1125 <p>Referenced by <a class="el" href="PluginWrapper_8h-source.html#l00116">Vamp::HostExt::PluginWrapper::getWrapper()</a>, and <a class="el" href="vamp-simple-host_8cpp-source.html#l00265">runPlugin()</a>.</p>
cannam@21 1126
cannam@21 1127 </div>
cannam@21 1128 </div><p>
cannam@21 1129 <a class="anchor" name="be13b3997a69fbcc09e2213faa352f91"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::getType" ref="be13b3997a69fbcc09e2213faa352f91" args="() const " -->
cannam@21 1130 <div class="memitem">
cannam@21 1131 <div class="memproto">
cannam@21 1132 <table class="memname">
cannam@21 1133 <tr>
cannam@21 1134 <td class="memname">virtual std::string Vamp::Plugin::getType </td>
cannam@21 1135 <td>(</td>
cannam@21 1136 <td class="paramname"> </td>
cannam@21 1137 <td>&nbsp;)&nbsp;</td>
cannam@21 1138 <td> const<code> [inline, virtual, inherited]</code></td>
cannam@21 1139 </tr>
cannam@21 1140 </table>
cannam@21 1141 </div>
cannam@21 1142 <div class="memdoc">
cannam@21 1143
cannam@21 1144 <p>
cannam@21 1145 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>.
cannam@21 1146 <p>
cannam@21 1147 Do not reimplement this function in your subclass.
cannam@21 1148 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
cannam@21 1149
cannam@35 1150 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00430">430</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@21 1151
cannam@21 1152 </div>
cannam@21 1153 </div><p>
cannam@21 1154 <hr><h2>Member Data Documentation</h2>
cannam@21 1155 <a class="anchor" name="f131140817d9f131650af98b6b8d7a94"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::m_impl" ref="f131140817d9f131650af98b6b8d7a94" args="" -->
cannam@21 1156 <div class="memitem">
cannam@21 1157 <div class="memproto">
cannam@21 1158 <table class="memname">
cannam@21 1159 <tr>
cannam@21 1160 <td class="memname">Impl* <a class="el" href="classVamp_1_1HostExt_1_1PluginSummarisingAdapter.html#f131140817d9f131650af98b6b8d7a94">Vamp::HostExt::PluginSummarisingAdapter::m_impl</a><code> [protected]</code> </td>
cannam@21 1161 </tr>
cannam@21 1162 </table>
cannam@21 1163 </div>
cannam@21 1164 <div class="memdoc">
cannam@21 1165
cannam@21 1166 <p>
cannam@21 1167
cannam@35 1168 <p>Definition at line <a class="el" href="PluginSummarisingAdapter_8h-source.html#l00187">187</a> of file <a class="el" href="PluginSummarisingAdapter_8h-source.html">PluginSummarisingAdapter.h</a>.</p>
cannam@21 1169
cannam@21 1170 </div>
cannam@21 1171 </div><p>
cannam@21 1172 <a class="anchor" name="b4e40ecd98b445e1a2aa9e7baa280ea2"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::m_plugin" ref="b4e40ecd98b445e1a2aa9e7baa280ea2" args="" -->
cannam@21 1173 <div class="memitem">
cannam@21 1174 <div class="memproto">
cannam@21 1175 <table class="memname">
cannam@21 1176 <tr>
cannam@21 1177 <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>
cannam@21 1178 </tr>
cannam@21 1179 </table>
cannam@21 1180 </div>
cannam@21 1181 <div class="memdoc">
cannam@21 1182
cannam@21 1183 <p>
cannam@21 1184
cannam@21 1185 <p>Definition at line <a class="el" href="PluginWrapper_8h-source.html#l00126">126</a> of file <a class="el" href="PluginWrapper_8h-source.html">PluginWrapper.h</a>.</p>
cannam@21 1186
cannam@21 1187 </div>
cannam@21 1188 </div><p>
cannam@21 1189 <a class="anchor" name="59b9dd82a4f4eb946cd0474cc81abc23"></a><!-- doxytag: member="Vamp::HostExt::PluginSummarisingAdapter::m_inputSampleRate" ref="59b9dd82a4f4eb946cd0474cc81abc23" args="" -->
cannam@21 1190 <div class="memitem">
cannam@21 1191 <div class="memproto">
cannam@21 1192 <table class="memname">
cannam@21 1193 <tr>
cannam@21 1194 <td class="memname">float <a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">Vamp::Plugin::m_inputSampleRate</a><code> [protected, inherited]</code> </td>
cannam@21 1195 </tr>
cannam@21 1196 </table>
cannam@21 1197 </div>
cannam@21 1198 <div class="memdoc">
cannam@21 1199
cannam@21 1200 <p>
cannam@21 1201
cannam@35 1202 <p>Definition at line <a class="el" href="vamp-sdk_2Plugin_8h-source.html#l00436">436</a> of file <a class="el" href="vamp-sdk_2Plugin_8h-source.html">vamp-sdk/Plugin.h</a>.</p>
cannam@21 1203
cannam@35 1204 <p>Referenced by <a class="el" href="ZeroCrossing_8cpp-source.html#l00111">ZeroCrossing::getOutputDescriptors()</a>, <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00196">PercussionOnsetDetector::getOutputDescriptors()</a>, <a class="el" href="AmplitudeFollower_8cpp-source.html#l00105">AmplitudeFollower::initialise()</a>, <a class="el" href="ZeroCrossing_8cpp-source.html#l00142">ZeroCrossing::process()</a>, <a class="el" href="SpectralCentroid_8cpp-source.html#l00146">SpectralCentroid::process()</a>, and <a class="el" href="PercussionOnsetDetector_8cpp-source.html#l00226">PercussionOnsetDetector::process()</a>.</p>
cannam@21 1205
cannam@21 1206 </div>
cannam@21 1207 </div><p>
cannam@21 1208 <hr>The documentation for this class was generated from the following file:<ul>
cannam@21 1209 <li><a class="el" href="PluginSummarisingAdapter_8h-source.html">PluginSummarisingAdapter.h</a></ul>
cannam@21 1210 </div>
cannam@35 1211 <hr size="1"><address style="text-align: right;"><small>Generated on Thu Sep 24 13:40:14 2009 for VampPluginSDK by&nbsp;
cannam@21 1212 <a href="http://www.doxygen.org/index.html">
cannam@35 1213 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
cannam@21 1214 </body>
cannam@21 1215 </html>