comparison code-doc/classVamp_1_1PluginHostAdapter.html @ 50:8260c0f4e05b website

Update code docs for 2.3
author cannam
date Tue, 04 Oct 2011 13:47:23 +0000
parents 0976232e353b
children
comparison
equal deleted inserted replaced
49:f75f330aa130 50:8260c0f4e05b
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
3 <title>VampPluginSDK: Vamp::PluginHostAdapter Class Reference</title> 5 <title>VampPluginSDK: Vamp::PluginHostAdapter Class Reference</title>
4 <link href="tabs.css" rel="stylesheet" type="text/css"> 6
5 <link href="doxygen.css" rel="stylesheet" type="text/css"> 7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
6 </head><body> 8 <link href="doxygen.css" rel="stylesheet" type="text/css" />
7 <!-- Generated by Doxygen 1.5.8 --> 9 <link href="navtree.css" rel="stylesheet" type="text/css"/>
8 <div class="navigation" id="top"> 10 <script type="text/javascript" src="jquery.js"></script>
9 <div class="tabs"> 11 <script type="text/javascript" src="resize.js"></script>
10 <ul> 12 <script type="text/javascript" src="navtree.js"></script>
11 <li><a href="main.html"><span>Main&nbsp;Page</span></a></li> 13 <script type="text/javascript">
14 $(document).ready(initResizable);
15 </script>
16
17
18 </head>
19 <body>
20 <div id="top"><!-- do not remove this div! -->
21
22
23 <div id="titlearea">
24 <table cellspacing="0" cellpadding="0">
25 <tbody>
26 <tr style="height: 56px;">
27
28
29 <td style="padding-left: 0.5em;">
30 <div id="projectname">VampPluginSDK
31 &#160;<span id="projectnumber">2.1</span>
32 </div>
33
34 </td>
35
36
37
38 </tr>
39 </tbody>
40 </table>
41 </div>
42
43 <!-- Generated by Doxygen 1.7.5.1 -->
44 <div id="navrow1" class="tabs">
45 <ul class="tablist">
46 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
12 <li><a href="namespaces.html"><span>Namespaces</span></a></li> 47 <li><a href="namespaces.html"><span>Namespaces</span></a></li>
13 <li class="current"><a href="annotated.html"><span>Classes</span></a></li> 48 <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
14 <li><a href="files.html"><span>Files</span></a></li> 49 <li><a href="files.html"><span>Files</span></a></li>
15 <li><a href="dirs.html"><span>Directories</span></a></li> 50 <li><a href="dirs.html"><span>Directories</span></a></li>
16 </ul> 51 </ul>
17 </div> 52 </div>
18 <div class="tabs"> 53 <div id="navrow2" class="tabs2">
19 <ul> 54 <ul class="tablist">
20 <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li> 55 <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
21 <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li> 56 <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
22 <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li> 57 <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
23 </ul> 58 </ul>
24 </div> 59 </div>
25 <div class="navpath"><a class="el" href="namespaceVamp.html">Vamp</a>::<a class="el" href="classVamp_1_1PluginHostAdapter.html">PluginHostAdapter</a> 60 </div>
61 <div id="side-nav" class="ui-resizable side-nav-resizable">
62 <div id="nav-tree">
63 <div id="nav-tree-contents">
64 </div>
26 </div> 65 </div>
66 <div id="splitbar" style="-moz-user-select:none;"
67 class="ui-resizable-handle">
68 </div>
69 </div>
70 <script type="text/javascript">
71 initNavTree('classVamp_1_1PluginHostAdapter.html','');
72 </script>
73 <div id="doc-content">
74 <div class="header">
75 <div class="summary">
76 <a href="#pub-types">Public Types</a> &#124;
77 <a href="#pub-methods">Public Member Functions</a> &#124;
78 <a href="#pub-static-methods">Static Public Member Functions</a> &#124;
79 <a href="#pro-methods">Protected Member Functions</a> &#124;
80 <a href="#pro-attribs">Protected Attributes</a> </div>
81 <div class="headertitle">
82 <div class="title">Vamp::PluginHostAdapter Class Reference</div> </div>
27 </div> 83 </div>
28 <div class="contents"> 84 <div class="contents">
29 <h1>Vamp::PluginHostAdapter Class Reference</h1><!-- doxytag: class="Vamp::PluginHostAdapter" --><!-- doxytag: inherits="Vamp::Plugin" --><a class="el" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">PluginHostAdapter</a> is a wrapper class that a <a class="el" href="namespaceVamp.html">Vamp</a> host can use to make the C-language VampPluginDescriptor object appear as a C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> object. 85 <!-- doxytag: class="Vamp::PluginHostAdapter" --><!-- doxytag: inherits="Vamp::Plugin" -->
30 <a href="#_details">More...</a> 86 <p><a class="el" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language VampPluginDescri...">PluginHostAdapter</a> is a wrapper class that a <a class="el" href="namespaceVamp.html">Vamp</a> host can use to make the C-language VampPluginDescriptor object appear as a C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...">Vamp::Plugin</a> object.
31 <p> 87 <a href="classVamp_1_1PluginHostAdapter.html#details">More...</a></p>
32 <code>#include &lt;<a class="el" href="PluginHostAdapter_8h-source.html">vamp-hostsdk/PluginHostAdapter.h</a>&gt;</code> 88
33 <p> 89 <p><code>#include &lt;<a class="el" href="PluginHostAdapter_8h_source.html">vamp-hostsdk/PluginHostAdapter.h</a>&gt;</code></p>
34 <div class="dynheader"> 90 <div class="dynheader">
35 Inheritance diagram for Vamp::PluginHostAdapter:</div> 91 Inheritance diagram for Vamp::PluginHostAdapter:</div>
36 <div class="dynsection"> 92 <div class="dyncontent">
37 <p><center><img src="classVamp_1_1PluginHostAdapter__inherit__graph.png" border="0" usemap="#Vamp_1_1PluginHostAdapter__inherit__map" alt="Inheritance graph"></center> 93 <div class="center"><img src="classVamp_1_1PluginHostAdapter__inherit__graph.png" border="0" usemap="#Vamp_1_1PluginHostAdapter_inherit__map" alt="Inheritance graph"/></div>
38 <map name="Vamp_1_1PluginHostAdapter__inherit__map"> 94 <map name="Vamp_1_1PluginHostAdapter_inherit__map" id="Vamp_1_1PluginHostAdapter_inherit__map">
39 <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="40,81,133,105"><area shape="rect" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="27,7,147,31"></map> 95 <area shape="rect" id="node2" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o..." alt="" coords="38,81,129,106"/><area shape="rect" id="node4" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc." alt="" coords="25,6,143,31"/></map>
40 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div> 96 <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
41 97
42 <p> 98 <p><a href="classVamp_1_1PluginHostAdapter-members.html">List of all members.</a></p>
43 <a href="classVamp_1_1PluginHostAdapter-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> 99 <table class="memberdecls">
44 <tr><td></td></tr> 100 <tr><td colspan="2"><h2><a name="pub-types"></a>
45 <tr><td colspan="2"><br><h2>Public Types</h2></td></tr> 101 Public Types</h2></td></tr>
46 <tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> { <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a>, 102 <tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> { <a class="el" href="classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff">TimeDomain</a>,
47 <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a> 103 <a class="el" href="classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53">FrequencyDomain</a>
48 }</td></tr> 104 }</td></tr>
49 105 <tr><td class="memItemLeft" align="right" valign="top">typedef std::vector<br class="typebreak"/>
50 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector<br class="typebreak"> 106 &lt; <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a></td></tr>
51 &lt; <a class="el" href="structVamp_1_1Plugin_1_1OutputDescriptor.html">OutputDescriptor</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a></td></tr> 107 <tr><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a></td></tr>
52 108 <tr><td class="memItemLeft" align="right" valign="top">typedef std::map&lt; int, <br class="typebreak"/>
53 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; <a class="el" href="structVamp_1_1Plugin_1_1Feature.html">Feature</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a></td></tr> 109 <a class="el" href="classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a></td></tr>
54 110 <tr><td class="memItemLeft" align="right" valign="top">typedef std::vector<br class="typebreak"/>
55 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map&lt; int, <br class="typebreak"> 111 &lt; <a class="el" href="structVamp_1_1PluginBase_1_1ParameterDescriptor.html">ParameterDescriptor</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a></td></tr>
56 <a class="el" href="classVamp_1_1Plugin.html#0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a></td></tr> 112 <tr><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20">ProgramList</a></td></tr>
57 113 <tr><td colspan="2"><h2><a name="pub-methods"></a>
58 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> 114 Public Member Functions</h2></td></tr>
59 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#6535abd551acfbbaab381bbe1268cd49">PluginHostAdapter</a> (const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *descriptor, float inputSampleRate)</td></tr> 115 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a6535abd551acfbbaab381bbe1268cd49">PluginHostAdapter</a> (const <a class="el" href="vamp_8h.html#aa1d6e0792099b9516a89b5fb7ed2ad2b">VampPluginDescriptor</a> *descriptor, float inputSampleRate)</td></tr>
60 116 <tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#aed66c091340aa668d3be89c4b4c24474">~PluginHostAdapter</a> ()</td></tr>
61 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#ed66c091340aa668d3be89c4b4c24474">~PluginHostAdapter</a> ()</td></tr> 117 <tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#add6a2f1ee7e47bd97fa599cead14b738">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr>
62 118 <tr><td class="mdescLeft">&#160;</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="#add6a2f1ee7e47bd97fa599cead14b738"></a><br/></td></tr>
63 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738">initialise</a> (size_t channels, size_t stepSize, size_t blockSize)</td></tr> 119 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a5d54c5bbd76bc27b7a243827148afeaa">reset</a> ()</td></tr>
64 120 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset the plugin after use, to prepare it for another clean run. <a href="#a5d54c5bbd76bc27b7a243827148afeaa"></a><br/></td></tr>
65 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames). <a href="#dd6a2f1ee7e47bd97fa599cead14b738"></a><br></td></tr> 121 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a8e9d25673367c741631a60cbb36e91d2">getInputDomain</a> () const </td></tr>
66 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#5d54c5bbd76bc27b7a243827148afeaa">reset</a> ()</td></tr> 122 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the plugin's required input domain. <a href="#a8e9d25673367c741631a60cbb36e91d2"></a><br/></td></tr>
67 123 <tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a98aadddc8403eb46c9d8c5a9d1fdd19e">getVampApiVersion</a> () const </td></tr>
68 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the plugin after use, to prepare it for another clean run. <a href="#5d54c5bbd76bc27b7a243827148afeaa"></a><br></td></tr> 124 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. <a href="#a98aadddc8403eb46c9d8c5a9d1fdd19e"></a><br/></td></tr>
69 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#8e9d25673367c741631a60cbb36e91d2">getInputDomain</a> () const </td></tr> 125 <tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#ab27423a656f878d97d2ad2eba4e76c7a">getIdentifier</a> () const </td></tr>
70 126 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the computer-usable name of the plugin. <a href="#ab27423a656f878d97d2ad2eba4e76c7a"></a><br/></td></tr>
71 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugin's required input domain. <a href="#8e9d25673367c741631a60cbb36e91d2"></a><br></td></tr> 127 <tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a45f1d0377e233eeddd1b7cefb48be62a">getName</a> () const </td></tr>
72 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#98aadddc8403eb46c9d8c5a9d1fdd19e">getVampApiVersion</a> () const </td></tr> 128 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a human-readable name or title of the plugin. <a href="#a45f1d0377e233eeddd1b7cefb48be62a"></a><br/></td></tr>
73 129 <tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a5eaafcef030e81b90a3e77cf16cf8ae1">getDescription</a> () const </td></tr>
74 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. <a href="#98aadddc8403eb46c9d8c5a9d1fdd19e"></a><br></td></tr> 130 <tr><td class="mdescLeft">&#160;</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="#a5eaafcef030e81b90a3e77cf16cf8ae1"></a><br/></td></tr>
75 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#b27423a656f878d97d2ad2eba4e76c7a">getIdentifier</a> () const </td></tr> 131 <tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#af572be0b175f5661559006a380a0f3db">getMaker</a> () const </td></tr>
76 132 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of the author or vendor of the plugin in human-readable form. <a href="#af572be0b175f5661559006a380a0f3db"></a><br/></td></tr>
77 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the computer-usable name of the plugin. <a href="#b27423a656f878d97d2ad2eba4e76c7a"></a><br></td></tr> 133 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a6fbd94781867ca46a20368c2a3593c77">getPluginVersion</a> () const </td></tr>
78 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#45f1d0377e233eeddd1b7cefb48be62a">getName</a> () const </td></tr> 134 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the version number of the plugin. <a href="#a6fbd94781867ca46a20368c2a3593c77"></a><br/></td></tr>
79 135 <tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#ac73c9d6baad04369beee695e99584815">getCopyright</a> () const </td></tr>
80 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a human-readable name or title of the plugin. <a href="#45f1d0377e233eeddd1b7cefb48be62a"></a><br></td></tr> 136 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the copyright statement or licensing summary for the plugin. <a href="#ac73c9d6baad04369beee695e99584815"></a><br/></td></tr>
81 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#5eaafcef030e81b90a3e77cf16cf8ae1">getDescription</a> () const </td></tr> 137 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a602faa0bfaae83e2ca53b36292271a76">getParameterDescriptors</a> () const </td></tr>
82 138 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the controllable parameters of this plugin. <a href="#a602faa0bfaae83e2ca53b36292271a76"></a><br/></td></tr>
83 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a human-readable description for the plugin, typically a line of text that may optionally be displayed in addition to the plugin's "name". <a href="#5eaafcef030e81b90a3e77cf16cf8ae1"></a><br></td></tr> 139 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#af0c46d4f67ca93be7c76f3ea2e6c8efb">getParameter</a> (std::string) const </td></tr>
84 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#f572be0b175f5661559006a380a0f3db">getMaker</a> () const </td></tr> 140 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of a named parameter. <a href="#af0c46d4f67ca93be7c76f3ea2e6c8efb"></a><br/></td></tr>
85 141 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a29f75395aa75b9de0228aa11edf9c6d6">setParameter</a> (std::string, float)</td></tr>
86 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the name of the author or vendor of the plugin in human-readable form. <a href="#f572be0b175f5661559006a380a0f3db"></a><br></td></tr> 142 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a named parameter. <a href="#a29f75395aa75b9de0228aa11edf9c6d6"></a><br/></td></tr>
87 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#6fbd94781867ca46a20368c2a3593c77">getPluginVersion</a> () const </td></tr> 143 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#ae0cde5cd625418c1bc470b91f75daafc">getPrograms</a> () const </td></tr>
88 144 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the program settings available in this plugin. <a href="#ae0cde5cd625418c1bc470b91f75daafc"></a><br/></td></tr>
89 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the version number of the plugin. <a href="#6fbd94781867ca46a20368c2a3593c77"></a><br></td></tr> 145 <tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a34859eff8ca8d862af39be9636ec1867">getCurrentProgram</a> () const </td></tr>
90 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#c73c9d6baad04369beee695e99584815">getCopyright</a> () const </td></tr> 146 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current program. <a href="#a34859eff8ca8d862af39be9636ec1867"></a><br/></td></tr>
91 147 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a8f5515ab34cc13d9403ccc6b4b788683">selectProgram</a> (std::string)</td></tr>
92 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the copyright statement or licensing summary for the plugin. <a href="#c73c9d6baad04369beee695e99584815"></a><br></td></tr> 148 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Select a program. <a href="#a8f5515ab34cc13d9403ccc6b4b788683"></a><br/></td></tr>
93 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#602faa0bfaae83e2ca53b36292271a76">getParameterDescriptors</a> () const </td></tr> 149 <tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a859ad5d59402691daed3cf1af1899ebe">getPreferredStepSize</a> () const </td></tr>
94 150 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#a38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> function) for the plugin. <a href="#a859ad5d59402691daed3cf1af1899ebe"></a><br/></td></tr>
95 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the controllable parameters of this plugin. <a href="#602faa0bfaae83e2ca53b36292271a76"></a><br></td></tr> 151 <tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#ad5e0ea8042bdec4dd18428991117e07a">getPreferredBlockSize</a> () const </td></tr>
96 <tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#f0c46d4f67ca93be7c76f3ea2e6c8efb">getParameter</a> (std::string) const </td></tr> 152 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#a38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> function). <a href="#ad5e0ea8042bdec4dd18428991117e07a"></a><br/></td></tr>
97 153 <tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a67d1198c0e58d3f0076d0eda599ff28d">getMinChannelCount</a> () const </td></tr>
98 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of a named parameter. <a href="#f0c46d4f67ca93be7c76f3ea2e6c8efb"></a><br></td></tr> 154 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the minimum supported number of input channels. <a href="#a67d1198c0e58d3f0076d0eda599ff28d"></a><br/></td></tr>
99 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#29f75395aa75b9de0228aa11edf9c6d6">setParameter</a> (std::string, float)</td></tr> 155 <tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a25091905e97e39d515d8ffc1a9f2b9e0">getMaxChannelCount</a> () const </td></tr>
100 156 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the maximum supported number of input channels. <a href="#a25091905e97e39d515d8ffc1a9f2b9e0"></a><br/></td></tr>
101 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a named parameter. <a href="#29f75395aa75b9de0228aa11edf9c6d6"></a><br></td></tr> 157 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a9649a113da0252fe8bd9fc731b047ae0">getOutputDescriptors</a> () const </td></tr>
102 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#e0cde5cd625418c1bc470b91f75daafc">getPrograms</a> () const </td></tr> 158 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the outputs of this plugin. <a href="#a9649a113da0252fe8bd9fc731b047ae0"></a><br/></td></tr>
103 159 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a38fe1080b343ba10e5d8a4b30c87cbdd">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
104 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program settings available in this plugin. <a href="#e0cde5cd625418c1bc470b91f75daafc"></a><br></td></tr> 160 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Process a single block of input data. <a href="#a38fe1080b343ba10e5d8a4b30c87cbdd"></a><br/></td></tr>
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_1PluginHostAdapter.html#34859eff8ca8d862af39be9636ec1867">getCurrentProgram</a> () const </td></tr> 161 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a984a4c11f3fbdcfd90e4837b1619a5ab">getRemainingFeatures</a> ()</td></tr>
106 162 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input. <a href="#a984a4c11f3fbdcfd90e4837b1619a5ab"></a><br/></td></tr>
107 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current program. <a href="#34859eff8ca8d862af39be9636ec1867"></a><br></td></tr> 163 <tr><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#abe13b3997a69fbcc09e2213faa352f91">getType</a> () const </td></tr>
108 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#8f5515ab34cc13d9403ccc6b4b788683">selectProgram</a> (std::string)</td></tr> 164 <tr><td class="mdescLeft">&#160;</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 from audio o...">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="#abe13b3997a69fbcc09e2213faa352f91"></a><br/></td></tr>
109 165 <tr><td colspan="2"><h2><a name="pub-static-methods"></a>
110 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Select a program. <a href="#8f5515ab34cc13d9403ccc6b4b788683"></a><br></td></tr> 166 Static Public Member Functions</h2></td></tr>
111 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#859ad5d59402691daed3cf1af1899ebe">getPreferredStepSize</a> () const </td></tr> 167 <tr><td class="memItemLeft" align="right" valign="top">static std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a09cbfb7903d28f10d6d556c6cb81c5f6">getPluginPath</a> ()</td></tr>
112 168 <tr><td colspan="2"><h2><a name="pro-methods"></a>
113 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> function) for the plugin. <a href="#859ad5d59402691daed3cf1af1899ebe"></a><br></td></tr> 169 Protected Member Functions</h2></td></tr>
114 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#d5e0ea8042bdec4dd18428991117e07a">getPreferredBlockSize</a> () const </td></tr> 170 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#aee417a4c9ba9dbb63777c963d5f9452a">convertFeatures</a> (<a class="el" href="vamp_8h.html#a5f257e3f8b5ca1ca4c159d486e219078">VampFeatureList</a> *, <a class="el" href="classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> &amp;)</td></tr>
115 171 <tr><td colspan="2"><h2><a name="pro-attribs"></a>
116 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> function). <a href="#d5e0ea8042bdec4dd18428991117e07a"></a><br></td></tr> 172 Protected Attributes</h2></td></tr>
117 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#67d1198c0e58d3f0076d0eda599ff28d">getMinChannelCount</a> () const </td></tr> 173 <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="vamp_8h.html#aa1d6e0792099b9516a89b5fb7ed2ad2b">VampPluginDescriptor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a></td></tr>
118 174 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="vamp_8h.html#ad3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#a02ebd03b226b4a467cad747ce77e79ee">m_handle</a></td></tr>
119 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the minimum supported number of input channels. <a href="#67d1198c0e58d3f0076d0eda599ff28d"></a><br></td></tr> 175 <tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1Plugin.html#a59b9dd82a4f4eb946cd0474cc81abc23">m_inputSampleRate</a></td></tr>
120 <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#25091905e97e39d515d8ffc1a9f2b9e0">getMaxChannelCount</a> () const </td></tr>
121
122 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the maximum supported number of input channels. <a href="#25091905e97e39d515d8ffc1a9f2b9e0"></a><br></td></tr>
123 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#9649a113da0252fe8bd9fc731b047ae0">getOutputDescriptors</a> () const </td></tr>
124
125 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the outputs of this plugin. <a href="#9649a113da0252fe8bd9fc731b047ae0"></a><br></td></tr>
126 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd">process</a> (const float *const *inputBuffers, <a class="el" href="structVamp_1_1RealTime.html">RealTime</a> timestamp)</td></tr>
127
128 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Process a single block of input data. <a href="#38fe1080b343ba10e5d8a4b30c87cbdd"></a><br></td></tr>
129 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#984a4c11f3fbdcfd90e4837b1619a5ab">getRemainingFeatures</a> ()</td></tr>
130
131 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After all blocks have been processed, calculate and return any remaining features derived from the complete input. <a href="#984a4c11f3fbdcfd90e4837b1619a5ab"></a><br></td></tr>
132 <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>
133
134 <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>
135 <tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
136 <tr><td class="memItemLeft" nowrap align="right" valign="top">static std::vector&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#09cbfb7903d28f10d6d556c6cb81c5f6">getPluginPath</a> ()</td></tr>
137
138 <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
139 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#ee417a4c9ba9dbb63777c963d5f9452a">convertFeatures</a> (<a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> *, <a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> &amp;)</td></tr>
140
141 <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
142 <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">m_descriptor</a></td></tr>
143
144 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">m_handle</a></td></tr>
145
146 <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>
147
148 </table> 176 </table>
149 <hr><a name="_details"></a><h2>Detailed Description</h2> 177 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
150 <a class="el" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language...">PluginHostAdapter</a> is a wrapper class that a <a class="el" href="namespaceVamp.html">Vamp</a> host can use to make the C-language VampPluginDescriptor object appear as a C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction...">Vamp::Plugin</a> object. 178 <div class="textblock"><p><a class="el" href="classVamp_1_1PluginHostAdapter.html" title="PluginHostAdapter is a wrapper class that a Vamp host can use to make the C-language VampPluginDescri...">PluginHostAdapter</a> is a wrapper class that a <a class="el" href="namespaceVamp.html">Vamp</a> host can use to make the C-language VampPluginDescriptor object appear as a C++ <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...">Vamp::Plugin</a> object. </p>
151 <p> 179 <p>The <a class="el" href="namespaceVamp.html">Vamp</a> API is defined in <a class="el" href="vamp_8h.html">vamp/vamp.h</a> as a C API. The C++ objects used for convenience by plugins and hosts actually communicate using the C low-level API, but the details of this communication are handled seamlessly by the <a class="el" href="namespaceVamp.html">Vamp</a> SDK implementation provided the plugin and host use the proper C++ wrapper objects.</p>
152 The <a class="el" href="namespaceVamp.html">Vamp</a> API is defined in <a class="el" href="vamp_8h.html">vamp/vamp.h</a> as a C API. The C++ objects used for convenience by plugins and hosts actually communicate using the C low-level API, but the details of this communication are handled seamlessly by the <a class="el" href="namespaceVamp.html">Vamp</a> SDK implementation provided the plugin and host use the proper C++ wrapper objects.<p> 180 <p>See also <a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular plugin implementatio...">PluginAdapter</a>, the plugin-side wrapper that makes a C++ plugin object available using the C query API. </p>
153 See also <a class="el" href="classVamp_1_1PluginAdapter.html" title="PluginAdapter turns a PluginAdapterBase into a specific wrapper for a particular...">PluginAdapter</a>, the plugin-side wrapper that makes a C++ plugin object available using the C query API. 181
154 <p>Definition at line <a class="el" href="PluginHostAdapter_8h-source.html#l00068">68</a> of file <a class="el" href="PluginHostAdapter_8h-source.html">PluginHostAdapter.h</a>.</p> 182 <p>Definition at line <a class="el" href="PluginHostAdapter_8h_source.html#l00068">68</a> of file <a class="el" href="PluginHostAdapter_8h_source.html">PluginHostAdapter.h</a>.</p>
155 <hr><h2>Member Typedef Documentation</h2> 183 </div><hr/><h2>Member Typedef Documentation</h2>
156 <a class="anchor" name="30f531b8fb69fac41a24e3d2a6a08ed9"></a><!-- doxytag: member="Vamp::PluginHostAdapter::OutputList" ref="30f531b8fb69fac41a24e3d2a6a08ed9" args="" --> 184 <a class="anchor" id="a30f531b8fb69fac41a24e3d2a6a08ed9"></a><!-- doxytag: member="Vamp::PluginHostAdapter::OutputList" ref="a30f531b8fb69fac41a24e3d2a6a08ed9" args="" -->
157 <div class="memitem"> 185 <div class="memitem">
158 <div class="memproto"> 186 <div class="memproto">
159 <table class="memname"> 187 <table class="memname">
160 <tr> 188 <tr>
161 <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> 189 <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#a30f531b8fb69fac41a24e3d2a6a08ed9">Vamp::Plugin::OutputList</a><code> [inherited]</code></td>
162 </tr> 190 </tr>
163 </table> 191 </table>
164 </div> 192 </div>
165 <div class="memdoc"> 193 <div class="memdoc">
166 194
167 <p> 195 <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>
168 196
169 <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> 197 </div>
170 198 </div>
171 </div> 199 <a class="anchor" id="a0730bc72c87fa02eb8d2854b233f7be1"></a><!-- doxytag: member="Vamp::PluginHostAdapter::FeatureList" ref="a0730bc72c87fa02eb8d2854b233f7be1" args="" -->
172 </div><p> 200 <div class="memitem">
173 <a class="anchor" name="0730bc72c87fa02eb8d2854b233f7be1"></a><!-- doxytag: member="Vamp::PluginHostAdapter::FeatureList" ref="0730bc72c87fa02eb8d2854b233f7be1" args="" --> 201 <div class="memproto">
174 <div class="memitem"> 202 <table class="memname">
175 <div class="memproto"> 203 <tr>
176 <table class="memname"> 204 <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#a0730bc72c87fa02eb8d2854b233f7be1">Vamp::Plugin::FeatureList</a><code> [inherited]</code></td>
177 <tr> 205 </tr>
178 <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> 206 </table>
179 </tr> 207 </div>
180 </table> 208 <div class="memdoc">
181 </div> 209
182 <div class="memdoc"> 210 <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>
183 211
184 <p> 212 </div>
185 213 </div>
186 <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> 214 <a class="anchor" id="a448fb57dc245d47923ec9eeaf9856c5f"></a><!-- doxytag: member="Vamp::PluginHostAdapter::FeatureSet" ref="a448fb57dc245d47923ec9eeaf9856c5f" args="" -->
187 215 <div class="memitem">
188 </div> 216 <div class="memproto">
189 </div><p> 217 <table class="memname">
190 <a class="anchor" name="448fb57dc245d47923ec9eeaf9856c5f"></a><!-- doxytag: member="Vamp::PluginHostAdapter::FeatureSet" ref="448fb57dc245d47923ec9eeaf9856c5f" args="" --> 218 <tr>
191 <div class="memitem"> 219 <td class="memname">typedef std::map&lt;int, <a class="el" href="classVamp_1_1Plugin.html#a0730bc72c87fa02eb8d2854b233f7be1">FeatureList</a>&gt; <a class="el" href="classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f">Vamp::Plugin::FeatureSet</a><code> [inherited]</code></td>
192 <div class="memproto"> 220 </tr>
193 <table class="memname"> 221 </table>
194 <tr> 222 </div>
195 <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> 223 <div class="memdoc">
196 </tr> 224
197 </table> 225 <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>
198 </div> 226
199 <div class="memdoc"> 227 </div>
200 228 </div>
201 <p> 229 <a class="anchor" id="a3b6bb4bbd86affe1ca9deceea1aad4f8"></a><!-- doxytag: member="Vamp::PluginHostAdapter::ParameterList" ref="a3b6bb4bbd86affe1ca9deceea1aad4f8" args="" -->
202 230 <div class="memitem">
203 <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> 231 <div class="memproto">
204 232 <table class="memname">
205 </div> 233 <tr>
206 </div><p> 234 <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#a3b6bb4bbd86affe1ca9deceea1aad4f8">Vamp::PluginBase::ParameterList</a><code> [inherited]</code></td>
207 <a class="anchor" name="3b6bb4bbd86affe1ca9deceea1aad4f8"></a><!-- doxytag: member="Vamp::PluginHostAdapter::ParameterList" ref="3b6bb4bbd86affe1ca9deceea1aad4f8" args="" --> 235 </tr>
208 <div class="memitem"> 236 </table>
209 <div class="memproto"> 237 </div>
210 <table class="memname"> 238 <div class="memdoc">
211 <tr> 239
212 <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> 240 <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>
213 </tr> 241
214 </table> 242 </div>
215 </div> 243 </div>
216 <div class="memdoc"> 244 <a class="anchor" id="a7f66f00437b21e5f694fe02356b12f20"></a><!-- doxytag: member="Vamp::PluginHostAdapter::ProgramList" ref="a7f66f00437b21e5f694fe02356b12f20" args="" -->
217 245 <div class="memitem">
218 <p> 246 <div class="memproto">
219 247 <table class="memname">
220 <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> 248 <tr>
221 249 <td class="memname">typedef std::vector&lt;std::string&gt; <a class="el" href="classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20">Vamp::PluginBase::ProgramList</a><code> [inherited]</code></td>
222 </div> 250 </tr>
223 </div><p> 251 </table>
224 <a class="anchor" name="7f66f00437b21e5f694fe02356b12f20"></a><!-- doxytag: member="Vamp::PluginHostAdapter::ProgramList" ref="7f66f00437b21e5f694fe02356b12f20" args="" --> 252 </div>
225 <div class="memitem"> 253 <div class="memdoc">
226 <div class="memproto"> 254
227 <table class="memname"> 255 <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>
228 <tr> 256
229 <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> 257 </div>
230 </tr> 258 </div>
231 </table> 259 <hr/><h2>Member Enumeration Documentation</h2>
232 </div> 260 <a class="anchor" id="a39cb7649d6dcc20e4cb1640cd55907bc"></a><!-- doxytag: member="Vamp::PluginHostAdapter::InputDomain" ref="a39cb7649d6dcc20e4cb1640cd55907bc" args="" -->
233 <div class="memdoc"> 261 <div class="memitem">
234 262 <div class="memproto">
235 <p> 263 <table class="memname">
236 264 <tr>
237 <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> 265 <td class="memname">enum <a class="el" href="classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc">Vamp::Plugin::InputDomain</a><code> [inherited]</code></td>
238 266 </tr>
239 </div> 267 </table>
240 </div><p> 268 </div>
241 <hr><h2>Member Enumeration Documentation</h2> 269 <div class="memdoc">
242 <a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bc"></a><!-- doxytag: member="Vamp::PluginHostAdapter::InputDomain" ref="39cb7649d6dcc20e4cb1640cd55907bc" args="" --> 270 <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
243 <div class="memitem"> 271 <tr><td valign="top"><em><a class="anchor" id="a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff"></a><!-- doxytag: member="TimeDomain" ref="a39cb7649d6dcc20e4cb1640cd55907bcad4a9f31b958a43a9757af7893aa2e7ff" args="" -->TimeDomain</em>&nbsp;</td><td>
244 <div class="memproto">
245 <table class="memname">
246 <tr>
247 <td class="memname">enum <a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">Vamp::Plugin::InputDomain</a><code> [inherited]</code> </td>
248 </tr>
249 </table>
250 </div>
251 <div class="memdoc">
252
253 <p>
254 <dl compact><dt><b>Enumerator: </b></dt><dd>
255 <table border="0" cellspacing="2" cellpadding="0">
256 <tr><td valign="top"><em><a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff"></a><!-- doxytag: member="TimeDomain" ref="39cb7649d6dcc20e4cb1640cd55907bcd4a9f31b958a43a9757af7893aa2e7ff" args="" -->TimeDomain</em>&nbsp;</td><td>
257 </td></tr> 272 </td></tr>
258 <tr><td valign="top"><em><a class="anchor" name="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53"></a><!-- doxytag: member="FrequencyDomain" ref="39cb7649d6dcc20e4cb1640cd55907bca30e7877ab33f76acbdca28607e6ab53" args="" -->FrequencyDomain</em>&nbsp;</td><td> 273 <tr><td valign="top"><em><a class="anchor" id="a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53"></a><!-- doxytag: member="FrequencyDomain" ref="a39cb7649d6dcc20e4cb1640cd55907bcaa30e7877ab33f76acbdca28607e6ab53" args="" -->FrequencyDomain</em>&nbsp;</td><td>
259 </td></tr> 274 </td></tr>
260 </table> 275 </table>
276 </dd>
261 </dl> 277 </dl>
262 278
263 <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> 279 <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>
264 280
265 </div> 281 </div>
266 </div><p> 282 </div>
267 <hr><h2>Constructor &amp; Destructor Documentation</h2> 283 <hr/><h2>Constructor &amp; Destructor Documentation</h2>
268 <a class="anchor" name="6535abd551acfbbaab381bbe1268cd49"></a><!-- doxytag: member="Vamp::PluginHostAdapter::PluginHostAdapter" ref="6535abd551acfbbaab381bbe1268cd49" args="(const VampPluginDescriptor *descriptor, float inputSampleRate)" --> 284 <a class="anchor" id="a6535abd551acfbbaab381bbe1268cd49"></a><!-- doxytag: member="Vamp::PluginHostAdapter::PluginHostAdapter" ref="a6535abd551acfbbaab381bbe1268cd49" args="(const VampPluginDescriptor *descriptor, float inputSampleRate)" -->
269 <div class="memitem"> 285 <div class="memitem">
270 <div class="memproto"> 286 <div class="memproto">
271 <table class="memname"> 287 <table class="memname">
272 <tr> 288 <tr>
273 <td class="memname">Vamp::PluginHostAdapter::PluginHostAdapter </td> 289 <td class="memname">Vamp::PluginHostAdapter::PluginHostAdapter </td>
274 <td>(</td> 290 <td>(</td>
275 <td class="paramtype">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a> *&nbsp;</td> 291 <td class="paramtype">const <a class="el" href="vamp_8h.html#aa1d6e0792099b9516a89b5fb7ed2ad2b">VampPluginDescriptor</a> *&#160;</td>
276 <td class="paramname"> <em>descriptor</em>, </td> 292 <td class="paramname"><em>descriptor</em>, </td>
277 </tr> 293 </tr>
278 <tr> 294 <tr>
279 <td class="paramkey"></td> 295 <td class="paramkey"></td>
280 <td></td> 296 <td></td>
281 <td class="paramtype">float&nbsp;</td> 297 <td class="paramtype">float&#160;</td>
282 <td class="paramname"> <em>inputSampleRate</em></td><td>&nbsp;</td> 298 <td class="paramname"><em>inputSampleRate</em>&#160;</td>
283 </tr> 299 </tr>
284 <tr> 300 <tr>
285 <td></td> 301 <td></td>
286 <td>)</td> 302 <td>)</td>
287 <td></td><td></td><td></td> 303 <td></td><td></td>
288 </tr> 304 </tr>
289 </table> 305 </table>
290 </div> 306 </div>
291 <div class="memdoc"> 307 <div class="memdoc">
292 308
293 <p> 309 </div>
294 310 </div>
295 </div> 311 <a class="anchor" id="aed66c091340aa668d3be89c4b4c24474"></a><!-- doxytag: member="Vamp::PluginHostAdapter::~PluginHostAdapter" ref="aed66c091340aa668d3be89c4b4c24474" args="()" -->
296 </div><p> 312 <div class="memitem">
297 <a class="anchor" name="ed66c091340aa668d3be89c4b4c24474"></a><!-- doxytag: member="Vamp::PluginHostAdapter::~PluginHostAdapter" ref="ed66c091340aa668d3be89c4b4c24474" args="()" --> 313 <div class="memproto">
298 <div class="memitem"> 314 <table class="memname">
299 <div class="memproto"> 315 <tr>
300 <table class="memname"> 316 <td class="memname">virtual Vamp::PluginHostAdapter::~PluginHostAdapter </td>
301 <tr> 317 <td>(</td>
302 <td class="memname">virtual Vamp::PluginHostAdapter::~PluginHostAdapter </td> 318 <td class="paramname"></td><td>)</td>
303 <td>(</td>
304 <td class="paramname"> </td>
305 <td>&nbsp;)&nbsp;</td>
306 <td><code> [virtual]</code></td> 319 <td><code> [virtual]</code></td>
307 </tr> 320 </tr>
308 </table> 321 </table>
309 </div> 322 </div>
310 <div class="memdoc"> 323 <div class="memdoc">
311 324
312 <p> 325 </div>
313 326 </div>
314 </div> 327 <hr/><h2>Member Function Documentation</h2>
315 </div><p> 328 <a class="anchor" id="a09cbfb7903d28f10d6d556c6cb81c5f6"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPluginPath" ref="a09cbfb7903d28f10d6d556c6cb81c5f6" args="()" -->
316 <hr><h2>Member Function Documentation</h2> 329 <div class="memitem">
317 <a class="anchor" name="09cbfb7903d28f10d6d556c6cb81c5f6"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPluginPath" ref="09cbfb7903d28f10d6d556c6cb81c5f6" args="()" --> 330 <div class="memproto">
318 <div class="memitem"> 331 <table class="memname">
319 <div class="memproto"> 332 <tr>
320 <table class="memname"> 333 <td class="memname">static std::vector&lt;std::string&gt; Vamp::PluginHostAdapter::getPluginPath </td>
321 <tr> 334 <td>(</td>
322 <td class="memname">static std::vector&lt;std::string&gt; Vamp::PluginHostAdapter::getPluginPath </td> 335 <td class="paramname"></td><td>)</td>
323 <td>(</td>
324 <td class="paramname"> </td>
325 <td>&nbsp;)&nbsp;</td>
326 <td><code> [static]</code></td> 336 <td><code> [static]</code></td>
327 </tr> 337 </tr>
328 </table> 338 </table>
329 </div> 339 </div>
330 <div class="memdoc"> 340 <div class="memdoc">
331 341
332 <p> 342 </div>
333 343 </div>
334 </div> 344 <a class="anchor" id="add6a2f1ee7e47bd97fa599cead14b738"></a><!-- doxytag: member="Vamp::PluginHostAdapter::initialise" ref="add6a2f1ee7e47bd97fa599cead14b738" args="(size_t channels, size_t stepSize, size_t blockSize)" -->
335 </div><p> 345 <div class="memitem">
336 <a class="anchor" name="dd6a2f1ee7e47bd97fa599cead14b738"></a><!-- doxytag: member="Vamp::PluginHostAdapter::initialise" ref="dd6a2f1ee7e47bd97fa599cead14b738" args="(size_t channels, size_t stepSize, size_t blockSize)" --> 346 <div class="memproto">
337 <div class="memitem"> 347 <table class="memname">
338 <div class="memproto"> 348 <tr>
339 <table class="memname"> 349 <td class="memname">bool Vamp::PluginHostAdapter::initialise </td>
340 <tr> 350 <td>(</td>
341 <td class="memname">bool Vamp::PluginHostAdapter::initialise </td> 351 <td class="paramtype">size_t&#160;</td>
342 <td>(</td> 352 <td class="paramname"><em>inputChannels</em>, </td>
343 <td class="paramtype">size_t&nbsp;</td>
344 <td class="paramname"> <em>inputChannels</em>, </td>
345 </tr> 353 </tr>
346 <tr> 354 <tr>
347 <td class="paramkey"></td> 355 <td class="paramkey"></td>
348 <td></td> 356 <td></td>
349 <td class="paramtype">size_t&nbsp;</td> 357 <td class="paramtype">size_t&#160;</td>
350 <td class="paramname"> <em>stepSize</em>, </td> 358 <td class="paramname"><em>stepSize</em>, </td>
351 </tr> 359 </tr>
352 <tr> 360 <tr>
353 <td class="paramkey"></td> 361 <td class="paramkey"></td>
354 <td></td> 362 <td></td>
355 <td class="paramtype">size_t&nbsp;</td> 363 <td class="paramtype">size_t&#160;</td>
356 <td class="paramname"> <em>blockSize</em></td><td>&nbsp;</td> 364 <td class="paramname"><em>blockSize</em>&#160;</td>
357 </tr> 365 </tr>
358 <tr> 366 <tr>
359 <td></td> 367 <td></td>
360 <td>)</td> 368 <td>)</td>
361 <td></td><td></td><td><code> [virtual]</code></td> 369 <td></td><td><code> [virtual]</code></td>
362 </tr> 370 </tr>
363 </table> 371 </table>
364 </div> 372 </div>
365 <div class="memdoc"> 373 <div class="memdoc">
366 374
367 <p> 375 <p>Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames). </p>
368 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). 376 <p>The input sample rate should have been already specified at construction time.</p>
369 <p> 377 <p>Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. </p>
370 The input sample rate should have been already specified at construction time.<p> 378
371 Return true for successful initialisation, false if the number of input channels, step size and/or block size cannot be supported. 379 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#af26212cf5fc511b603a8b48034247822">Vamp::Plugin</a>.</p>
372 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#f26212cf5fc511b603a8b48034247822">Vamp::Plugin</a>.</p> 380
373 381 </div>
374 </div> 382 </div>
375 </div><p> 383 <a class="anchor" id="a5d54c5bbd76bc27b7a243827148afeaa"></a><!-- doxytag: member="Vamp::PluginHostAdapter::reset" ref="a5d54c5bbd76bc27b7a243827148afeaa" args="()" -->
376 <a class="anchor" name="5d54c5bbd76bc27b7a243827148afeaa"></a><!-- doxytag: member="Vamp::PluginHostAdapter::reset" ref="5d54c5bbd76bc27b7a243827148afeaa" args="()" --> 384 <div class="memitem">
377 <div class="memitem"> 385 <div class="memproto">
378 <div class="memproto"> 386 <table class="memname">
379 <table class="memname"> 387 <tr>
380 <tr> 388 <td class="memname">void Vamp::PluginHostAdapter::reset </td>
381 <td class="memname">void Vamp::PluginHostAdapter::reset </td> 389 <td>(</td>
382 <td>(</td> 390 <td class="paramname"></td><td>)</td>
383 <td class="paramname"> </td>
384 <td>&nbsp;)&nbsp;</td>
385 <td><code> [virtual]</code></td> 391 <td><code> [virtual]</code></td>
386 </tr> 392 </tr>
387 </table> 393 </table>
388 </div> 394 </div>
389 <div class="memdoc"> 395 <div class="memdoc">
390 396
391 <p> 397 <p>Reset the plugin after use, to prepare it for another clean run. </p>
392 Reset the plugin after use, to prepare it for another clean run. 398 <p>Not called for the first initialisation (i.e. initialise must also do a reset). </p>
393 <p> 399
394 Not called for the first initialisation (i.e. initialise must also do a reset). 400 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#aad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin</a>.</p>
395 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#ad67dc9d0052417511070c4ebcfbf24f">Vamp::Plugin</a>.</p> 401
396 402 </div>
397 </div> 403 </div>
398 </div><p> 404 <a class="anchor" id="a8e9d25673367c741631a60cbb36e91d2"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getInputDomain" ref="a8e9d25673367c741631a60cbb36e91d2" args="() const " -->
399 <a class="anchor" name="8e9d25673367c741631a60cbb36e91d2"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getInputDomain" ref="8e9d25673367c741631a60cbb36e91d2" args="() const " --> 405 <div class="memitem">
400 <div class="memitem"> 406 <div class="memproto">
401 <div class="memproto"> 407 <table class="memname">
402 <table class="memname"> 408 <tr>
403 <tr> 409 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#a39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> Vamp::PluginHostAdapter::getInputDomain </td>
404 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#39cb7649d6dcc20e4cb1640cd55907bc">InputDomain</a> Vamp::PluginHostAdapter::getInputDomain </td> 410 <td>(</td>
405 <td>(</td> 411 <td class="paramname"></td><td>)</td>
406 <td class="paramname"> </td> 412 <td> const<code> [virtual]</code></td>
407 <td>&nbsp;)&nbsp;</td> 413 </tr>
408 <td> const<code> [virtual]</code></td> 414 </table>
409 </tr> 415 </div>
410 </table> 416 <div class="memdoc">
411 </div> 417
412 <div class="memdoc"> 418 <p>Get the plugin's required input domain. </p>
413 419 <p>If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#a38fe1080b343ba10e5d8a4b30c87cbdd" 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>
414 <p> 420 <p>If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1PluginHostAdapter.html#a38fe1080b343ba10e5d8a4b30c87cbdd" 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. </p>
415 Get the plugin's required input domain. 421
416 <p> 422 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#ae1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>.</p>
417 If this is TimeDomain, the samples provided to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> function (below) will be in the time domain, as for a traditional audio processing plugin.<p> 423
418 If this is FrequencyDomain, the host will carry out a windowed FFT of size equal to the negotiated block size on the data before passing the frequency bin data in to <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a>. The 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. 424 </div>
419 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#e1d317a9702cbeda65ddf0ec500c1ff6">Vamp::Plugin</a>.</p> 425 </div>
420 426 <a class="anchor" id="a98aadddc8403eb46c9d8c5a9d1fdd19e"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getVampApiVersion" ref="a98aadddc8403eb46c9d8c5a9d1fdd19e" args="() const " -->
421 </div> 427 <div class="memitem">
422 </div><p> 428 <div class="memproto">
423 <a class="anchor" name="98aadddc8403eb46c9d8c5a9d1fdd19e"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getVampApiVersion" ref="98aadddc8403eb46c9d8c5a9d1fdd19e" args="() const " --> 429 <table class="memname">
424 <div class="memitem"> 430 <tr>
425 <div class="memproto"> 431 <td class="memname">unsigned int Vamp::PluginHostAdapter::getVampApiVersion </td>
426 <table class="memname"> 432 <td>(</td>
427 <tr> 433 <td class="paramname"></td><td>)</td>
428 <td class="memname">unsigned int Vamp::PluginHostAdapter::getVampApiVersion </td> 434 <td> const<code> [virtual]</code></td>
429 <td>(</td> 435 </tr>
430 <td class="paramname"> </td> 436 </table>
431 <td>&nbsp;)&nbsp;</td> 437 </div>
432 <td> const<code> [virtual]</code></td> 438 <div class="memdoc">
433 </tr> 439
434 </table> 440 <p>Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. </p>
435 </div> 441
436 <div class="memdoc"> 442 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#a8fd2c48291c64b790f0efb8948508dcf">Vamp::PluginBase</a>.</p>
437 443
438 <p> 444 </div>
439 Get the <a class="el" href="namespaceVamp.html">Vamp</a> API compatibility level of the plugin. 445 </div>
440 <p> 446 <a class="anchor" id="ab27423a656f878d97d2ad2eba4e76c7a"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getIdentifier" ref="ab27423a656f878d97d2ad2eba4e76c7a" args="() const " -->
441 447 <div class="memitem">
442 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#8fd2c48291c64b790f0efb8948508dcf">Vamp::PluginBase</a>.</p> 448 <div class="memproto">
443 449 <table class="memname">
444 </div> 450 <tr>
445 </div><p> 451 <td class="memname">std::string Vamp::PluginHostAdapter::getIdentifier </td>
446 <a class="anchor" name="b27423a656f878d97d2ad2eba4e76c7a"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getIdentifier" ref="b27423a656f878d97d2ad2eba4e76c7a" args="() const " --> 452 <td>(</td>
447 <div class="memitem"> 453 <td class="paramname"></td><td>)</td>
448 <div class="memproto"> 454 <td> const<code> [virtual]</code></td>
449 <table class="memname"> 455 </tr>
450 <tr> 456 </table>
451 <td class="memname">std::string Vamp::PluginHostAdapter::getIdentifier </td> 457 </div>
452 <td>(</td> 458 <div class="memdoc">
453 <td class="paramname"> </td> 459
454 <td>&nbsp;)&nbsp;</td> 460 <p>Get the computer-usable name of the plugin. </p>
455 <td> const<code> [virtual]</code></td> 461 <p>This should be reasonably short and contain no whitespace or punctuation characters. It may only contain the characters [a-zA-Z0-9_-]. This is the authoritative way for a program to identify a plugin within a given library.</p>
456 </tr> 462 <p>This text may be visible to the user, but it should not be the main text used to identify a plugin to the user (that will be the name, below).</p>
457 </table> 463 <p>Example: "zero_crossings" </p>
458 </div> 464
459 <div class="memdoc"> 465 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#ad1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>.</p>
460 466
461 <p> 467 </div>
462 Get the computer-usable name of the plugin. 468 </div>
463 <p> 469 <a class="anchor" id="a45f1d0377e233eeddd1b7cefb48be62a"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getName" ref="a45f1d0377e233eeddd1b7cefb48be62a" args="() const " -->
464 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> 470 <div class="memitem">
465 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> 471 <div class="memproto">
466 Example: "zero_crossings" 472 <table class="memname">
467 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#d1c6dfc77aa03d937a885b7f08258f4a">Vamp::PluginBase</a>.</p> 473 <tr>
468 474 <td class="memname">std::string Vamp::PluginHostAdapter::getName </td>
469 </div> 475 <td>(</td>
470 </div><p> 476 <td class="paramname"></td><td>)</td>
471 <a class="anchor" name="45f1d0377e233eeddd1b7cefb48be62a"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getName" ref="45f1d0377e233eeddd1b7cefb48be62a" args="() const " --> 477 <td> const<code> [virtual]</code></td>
472 <div class="memitem"> 478 </tr>
473 <div class="memproto"> 479 </table>
474 <table class="memname"> 480 </div>
475 <tr> 481 <div class="memdoc">
476 <td class="memname">std::string Vamp::PluginHostAdapter::getName </td> 482
477 <td>(</td> 483 <p>Get a human-readable name or title of the plugin. </p>
478 <td class="paramname"> </td> 484 <p>This should be brief and self-contained, as it may be used to identify the plugin to the user in isolation (i.e. without also showing the plugin's "identifier").</p>
479 <td>&nbsp;)&nbsp;</td> 485 <p>Example: "Zero Crossings" </p>
480 <td> const<code> [virtual]</code></td> 486
481 </tr> 487 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#a18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>.</p>
482 </table> 488
483 </div> 489 </div>
484 <div class="memdoc"> 490 </div>
485 491 <a class="anchor" id="a5eaafcef030e81b90a3e77cf16cf8ae1"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getDescription" ref="a5eaafcef030e81b90a3e77cf16cf8ae1" args="() const " -->
486 <p> 492 <div class="memitem">
487 Get a human-readable name or title of the plugin. 493 <div class="memproto">
488 <p> 494 <table class="memname">
489 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> 495 <tr>
490 Example: "Zero Crossings" 496 <td class="memname">std::string Vamp::PluginHostAdapter::getDescription </td>
491 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#18619d5097e444ecefee0c359da53232">Vamp::PluginBase</a>.</p> 497 <td>(</td>
492 498 <td class="paramname"></td><td>)</td>
493 </div> 499 <td> const<code> [virtual]</code></td>
494 </div><p> 500 </tr>
495 <a class="anchor" name="5eaafcef030e81b90a3e77cf16cf8ae1"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getDescription" ref="5eaafcef030e81b90a3e77cf16cf8ae1" args="() const " --> 501 </table>
496 <div class="memitem"> 502 </div>
497 <div class="memproto"> 503 <div class="memdoc">
498 <table class="memname"> 504
499 <tr> 505 <p>Get a human-readable description for the plugin, typically a line of text that may optionally be displayed in addition to the plugin's "name". </p>
500 <td class="memname">std::string Vamp::PluginHostAdapter::getDescription </td> 506 <p>May be empty if the name has said it all already.</p>
501 <td>(</td> 507 <p>Example: "Detect and count zero crossing points" </p>
502 <td class="paramname"> </td> 508
503 <td>&nbsp;)&nbsp;</td> 509 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#a59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>.</p>
504 <td> const<code> [virtual]</code></td> 510
505 </tr> 511 </div>
506 </table> 512 </div>
507 </div> 513 <a class="anchor" id="af572be0b175f5661559006a380a0f3db"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getMaker" ref="af572be0b175f5661559006a380a0f3db" args="() const " -->
508 <div class="memdoc"> 514 <div class="memitem">
509 515 <div class="memproto">
510 <p> 516 <table class="memname">
511 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". 517 <tr>
512 <p> 518 <td class="memname">std::string Vamp::PluginHostAdapter::getMaker </td>
513 May be empty if the name has said it all already.<p> 519 <td>(</td>
514 Example: "Detect and count zero crossing points" 520 <td class="paramname"></td><td>)</td>
515 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#59153a02364f75fff46973b2072e9e5a">Vamp::PluginBase</a>.</p> 521 <td> const<code> [virtual]</code></td>
516 522 </tr>
517 </div> 523 </table>
518 </div><p> 524 </div>
519 <a class="anchor" name="f572be0b175f5661559006a380a0f3db"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getMaker" ref="f572be0b175f5661559006a380a0f3db" args="() const " --> 525 <div class="memdoc">
520 <div class="memitem"> 526
521 <div class="memproto"> 527 <p>Get the name of the author or vendor of the plugin in human-readable form. </p>
522 <table class="memname"> 528 <p>This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. </p>
523 <tr> 529
524 <td class="memname">std::string Vamp::PluginHostAdapter::getMaker </td> 530 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#a53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>.</p>
525 <td>(</td> 531
526 <td class="paramname"> </td> 532 </div>
527 <td>&nbsp;)&nbsp;</td> 533 </div>
528 <td> const<code> [virtual]</code></td> 534 <a class="anchor" id="a6fbd94781867ca46a20368c2a3593c77"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPluginVersion" ref="a6fbd94781867ca46a20368c2a3593c77" args="() const " -->
529 </tr> 535 <div class="memitem">
530 </table> 536 <div class="memproto">
531 </div> 537 <table class="memname">
532 <div class="memdoc"> 538 <tr>
533 539 <td class="memname">int Vamp::PluginHostAdapter::getPluginVersion </td>
534 <p> 540 <td>(</td>
535 Get the name of the author or vendor of the plugin in human-readable form. 541 <td class="paramname"></td><td>)</td>
536 <p> 542 <td> const<code> [virtual]</code></td>
537 This should be a short identifying text, as it may be used to label plugins from the same source in a menu or similar. 543 </tr>
538 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#53d9918bf9ef4d12feedf66b2b26c637">Vamp::PluginBase</a>.</p> 544 </table>
539 545 </div>
540 </div> 546 <div class="memdoc">
541 </div><p> 547
542 <a class="anchor" name="6fbd94781867ca46a20368c2a3593c77"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPluginVersion" ref="6fbd94781867ca46a20368c2a3593c77" args="() const " --> 548 <p>Get the version number of the plugin. </p>
543 <div class="memitem"> 549
544 <div class="memproto"> 550 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#a63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>.</p>
545 <table class="memname"> 551
546 <tr> 552 </div>
547 <td class="memname">int Vamp::PluginHostAdapter::getPluginVersion </td> 553 </div>
548 <td>(</td> 554 <a class="anchor" id="ac73c9d6baad04369beee695e99584815"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getCopyright" ref="ac73c9d6baad04369beee695e99584815" args="() const " -->
549 <td class="paramname"> </td> 555 <div class="memitem">
550 <td>&nbsp;)&nbsp;</td> 556 <div class="memproto">
551 <td> const<code> [virtual]</code></td> 557 <table class="memname">
552 </tr> 558 <tr>
553 </table> 559 <td class="memname">std::string Vamp::PluginHostAdapter::getCopyright </td>
554 </div> 560 <td>(</td>
555 <div class="memdoc"> 561 <td class="paramname"></td><td>)</td>
556 562 <td> const<code> [virtual]</code></td>
557 <p> 563 </tr>
558 Get the version number of the plugin. 564 </table>
559 <p> 565 </div>
560 566 <div class="memdoc">
561 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#63f686d77bc3d6b807e7944cdde83151">Vamp::PluginBase</a>.</p> 567
562 568 <p>Get the copyright statement or licensing summary for the plugin. </p>
563 </div> 569 <p>This can be an informative text, without the same presentation constraints as mentioned for getMaker above. </p>
564 </div><p> 570
565 <a class="anchor" name="c73c9d6baad04369beee695e99584815"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getCopyright" ref="c73c9d6baad04369beee695e99584815" args="() const " --> 571 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#ab7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>.</p>
566 <div class="memitem"> 572
567 <div class="memproto"> 573 </div>
568 <table class="memname"> 574 </div>
569 <tr> 575 <a class="anchor" id="a602faa0bfaae83e2ca53b36292271a76"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getParameterDescriptors" ref="a602faa0bfaae83e2ca53b36292271a76" args="() const " -->
570 <td class="memname">std::string Vamp::PluginHostAdapter::getCopyright </td> 576 <div class="memitem">
571 <td>(</td> 577 <div class="memproto">
572 <td class="paramname"> </td> 578 <table class="memname">
573 <td>&nbsp;)&nbsp;</td> 579 <tr>
574 <td> const<code> [virtual]</code></td> 580 <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#a3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> Vamp::PluginHostAdapter::getParameterDescriptors </td>
575 </tr> 581 <td>(</td>
576 </table> 582 <td class="paramname"></td><td>)</td>
577 </div> 583 <td> const<code> [virtual]</code></td>
578 <div class="memdoc"> 584 </tr>
579 585 </table>
580 <p> 586 </div>
581 Get the copyright statement or licensing summary for the plugin. 587 <div class="memdoc">
582 <p> 588
583 This can be an informative text, without the same presentation constraints as mentioned for getMaker above. 589 <p>Get the controllable parameters of this plugin. </p>
584 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#b7e9dedbe965f5ab9018b72920fe7661">Vamp::PluginBase</a>.</p> 590
585 591 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#aac3e49b3b66cacfbb768dfdf07444f21">Vamp::PluginBase</a>.</p>
586 </div> 592
587 </div><p> 593 </div>
588 <a class="anchor" name="602faa0bfaae83e2ca53b36292271a76"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getParameterDescriptors" ref="602faa0bfaae83e2ca53b36292271a76" args="() const " --> 594 </div>
589 <div class="memitem"> 595 <a class="anchor" id="af0c46d4f67ca93be7c76f3ea2e6c8efb"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getParameter" ref="af0c46d4f67ca93be7c76f3ea2e6c8efb" args="(std::string) const " -->
590 <div class="memproto"> 596 <div class="memitem">
591 <table class="memname"> 597 <div class="memproto">
592 <tr> 598 <table class="memname">
593 <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#3b6bb4bbd86affe1ca9deceea1aad4f8">ParameterList</a> Vamp::PluginHostAdapter::getParameterDescriptors </td> 599 <tr>
594 <td>(</td> 600 <td class="memname">float Vamp::PluginHostAdapter::getParameter </td>
595 <td class="paramname"> </td> 601 <td>(</td>
596 <td>&nbsp;)&nbsp;</td> 602 <td class="paramtype">std::string&#160;</td>
597 <td> const<code> [virtual]</code></td> 603 <td class="paramname"></td><td>)</td>
598 </tr> 604 <td> const<code> [virtual]</code></td>
599 </table> 605 </tr>
600 </div> 606 </table>
601 <div class="memdoc"> 607 </div>
602 608 <div class="memdoc">
603 <p> 609
604 Get the controllable parameters of this plugin. 610 <p>Get the value of a named parameter. </p>
605 <p> 611 <p>The argument is the identifier field from that parameter's descriptor. </p>
606 612
607 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#ac3e49b3b66cacfbb768dfdf07444f21">Vamp::PluginBase</a>.</p> 613 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#a97ababcd45348ceec998d0f8e0f38bf7">Vamp::PluginBase</a>.</p>
608 614
609 </div> 615 </div>
610 </div><p> 616 </div>
611 <a class="anchor" name="f0c46d4f67ca93be7c76f3ea2e6c8efb"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getParameter" ref="f0c46d4f67ca93be7c76f3ea2e6c8efb" args="(std::string) const " --> 617 <a class="anchor" id="a29f75395aa75b9de0228aa11edf9c6d6"></a><!-- doxytag: member="Vamp::PluginHostAdapter::setParameter" ref="a29f75395aa75b9de0228aa11edf9c6d6" args="(std::string, float)" -->
612 <div class="memitem"> 618 <div class="memitem">
613 <div class="memproto"> 619 <div class="memproto">
614 <table class="memname"> 620 <table class="memname">
615 <tr> 621 <tr>
616 <td class="memname">float Vamp::PluginHostAdapter::getParameter </td> 622 <td class="memname">void Vamp::PluginHostAdapter::setParameter </td>
617 <td>(</td> 623 <td>(</td>
618 <td class="paramtype">std::string&nbsp;</td> 624 <td class="paramtype">std::string&#160;</td>
619 <td class="paramname"> </td>
620 <td>&nbsp;)&nbsp;</td>
621 <td> const<code> [virtual]</code></td>
622 </tr>
623 </table>
624 </div>
625 <div class="memdoc">
626
627 <p>
628 Get the value of a named parameter.
629 <p>
630 The argument is the identifier field from that parameter's descriptor.
631 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#97ababcd45348ceec998d0f8e0f38bf7">Vamp::PluginBase</a>.</p>
632
633 </div>
634 </div><p>
635 <a class="anchor" name="29f75395aa75b9de0228aa11edf9c6d6"></a><!-- doxytag: member="Vamp::PluginHostAdapter::setParameter" ref="29f75395aa75b9de0228aa11edf9c6d6" args="(std::string, float)" -->
636 <div class="memitem">
637 <div class="memproto">
638 <table class="memname">
639 <tr>
640 <td class="memname">void Vamp::PluginHostAdapter::setParameter </td>
641 <td>(</td>
642 <td class="paramtype">std::string&nbsp;</td>
643 <td class="paramname">, </td> 625 <td class="paramname">, </td>
644 </tr> 626 </tr>
645 <tr> 627 <tr>
646 <td class="paramkey"></td> 628 <td class="paramkey"></td>
647 <td></td> 629 <td></td>
648 <td class="paramtype">float&nbsp;</td> 630 <td class="paramtype">float&#160;</td>
649 <td class="paramname"></td><td>&nbsp;</td> 631 <td class="paramname">&#160;</td>
650 </tr> 632 </tr>
651 <tr> 633 <tr>
652 <td></td> 634 <td></td>
653 <td>)</td> 635 <td>)</td>
654 <td></td><td></td><td><code> [virtual]</code></td> 636 <td></td><td><code> [virtual]</code></td>
655 </tr> 637 </tr>
656 </table> 638 </table>
657 </div> 639 </div>
658 <div class="memdoc"> 640 <div class="memdoc">
659 641
660 <p> 642 <p>Set a named parameter. </p>
661 Set a named parameter. 643 <p>The first argument is the identifier field from that parameter's descriptor. </p>
662 <p> 644
663 The first argument is the identifier field from that parameter's descriptor. 645 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#a6c718ce822f7b73b98940d59dcaa9366">Vamp::PluginBase</a>.</p>
664 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#6c718ce822f7b73b98940d59dcaa9366">Vamp::PluginBase</a>.</p> 646
665 647 </div>
666 </div> 648 </div>
667 </div><p> 649 <a class="anchor" id="ae0cde5cd625418c1bc470b91f75daafc"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPrograms" ref="ae0cde5cd625418c1bc470b91f75daafc" args="() const " -->
668 <a class="anchor" name="e0cde5cd625418c1bc470b91f75daafc"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPrograms" ref="e0cde5cd625418c1bc470b91f75daafc" args="() const " --> 650 <div class="memitem">
669 <div class="memitem"> 651 <div class="memproto">
670 <div class="memproto"> 652 <table class="memname">
671 <table class="memname"> 653 <tr>
672 <tr> 654 <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#a7f66f00437b21e5f694fe02356b12f20">ProgramList</a> Vamp::PluginHostAdapter::getPrograms </td>
673 <td class="memname"><a class="el" href="classVamp_1_1PluginBase.html#7f66f00437b21e5f694fe02356b12f20">ProgramList</a> Vamp::PluginHostAdapter::getPrograms </td> 655 <td>(</td>
674 <td>(</td> 656 <td class="paramname"></td><td>)</td>
675 <td class="paramname"> </td> 657 <td> const<code> [virtual]</code></td>
676 <td>&nbsp;)&nbsp;</td> 658 </tr>
677 <td> const<code> [virtual]</code></td> 659 </table>
678 </tr> 660 </div>
679 </table> 661 <div class="memdoc">
680 </div> 662
681 <div class="memdoc"> 663 <p>Get the program settings available in this plugin. </p>
682 664 <p>A program is a named shorthand for a set of parameter values; changing the program may cause the plugin to alter the values of its published parameters (and/or non-public internal processing parameters). The host should re-read the plugin's parameter values after setting a new program.</p>
683 <p> 665 <p>The programs must have unique names. </p>
684 Get the program settings available in this plugin. 666
685 <p> 667 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#abb307c60bdb981d5f5af50c3c4ae84af">Vamp::PluginBase</a>.</p>
686 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> 668
687 The programs must have unique names. 669 </div>
688 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#bb307c60bdb981d5f5af50c3c4ae84af">Vamp::PluginBase</a>.</p> 670 </div>
689 671 <a class="anchor" id="a34859eff8ca8d862af39be9636ec1867"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getCurrentProgram" ref="a34859eff8ca8d862af39be9636ec1867" args="() const " -->
690 </div> 672 <div class="memitem">
691 </div><p> 673 <div class="memproto">
692 <a class="anchor" name="34859eff8ca8d862af39be9636ec1867"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getCurrentProgram" ref="34859eff8ca8d862af39be9636ec1867" args="() const " --> 674 <table class="memname">
693 <div class="memitem"> 675 <tr>
694 <div class="memproto"> 676 <td class="memname">std::string Vamp::PluginHostAdapter::getCurrentProgram </td>
695 <table class="memname"> 677 <td>(</td>
696 <tr> 678 <td class="paramname"></td><td>)</td>
697 <td class="memname">std::string Vamp::PluginHostAdapter::getCurrentProgram </td> 679 <td> const<code> [virtual]</code></td>
698 <td>(</td> 680 </tr>
699 <td class="paramname"> </td> 681 </table>
700 <td>&nbsp;)&nbsp;</td> 682 </div>
701 <td> const<code> [virtual]</code></td> 683 <div class="memdoc">
702 </tr> 684
703 </table> 685 <p>Get the current program. </p>
704 </div> 686
705 <div class="memdoc"> 687 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#a24e77eccf1bdfbbca3c79bb25e8799b3">Vamp::PluginBase</a>.</p>
706 688
707 <p> 689 </div>
708 Get the current program. 690 </div>
709 <p> 691 <a class="anchor" id="a8f5515ab34cc13d9403ccc6b4b788683"></a><!-- doxytag: member="Vamp::PluginHostAdapter::selectProgram" ref="a8f5515ab34cc13d9403ccc6b4b788683" args="(std::string)" -->
710 692 <div class="memitem">
711 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#24e77eccf1bdfbbca3c79bb25e8799b3">Vamp::PluginBase</a>.</p> 693 <div class="memproto">
712 694 <table class="memname">
713 </div> 695 <tr>
714 </div><p> 696 <td class="memname">void Vamp::PluginHostAdapter::selectProgram </td>
715 <a class="anchor" name="8f5515ab34cc13d9403ccc6b4b788683"></a><!-- doxytag: member="Vamp::PluginHostAdapter::selectProgram" ref="8f5515ab34cc13d9403ccc6b4b788683" args="(std::string)" --> 697 <td>(</td>
716 <div class="memitem"> 698 <td class="paramtype">std::string&#160;</td>
717 <div class="memproto"> 699 <td class="paramname"></td><td>)</td>
718 <table class="memname">
719 <tr>
720 <td class="memname">void Vamp::PluginHostAdapter::selectProgram </td>
721 <td>(</td>
722 <td class="paramtype">std::string&nbsp;</td>
723 <td class="paramname"> </td>
724 <td>&nbsp;)&nbsp;</td>
725 <td><code> [virtual]</code></td> 700 <td><code> [virtual]</code></td>
726 </tr> 701 </tr>
727 </table> 702 </table>
728 </div> 703 </div>
729 <div class="memdoc"> 704 <div class="memdoc">
730 705
731 <p> 706 <p>Select a program. </p>
732 Select a program. 707 <p>(If the given program name is not one of the available programs, do nothing.) </p>
733 <p> 708
734 (If the given program name is not one of the available programs, do nothing.) 709 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#aadd3a547ef140bae200473a9518e3353">Vamp::PluginBase</a>.</p>
735 <p>Reimplemented from <a class="el" href="classVamp_1_1PluginBase.html#add3a547ef140bae200473a9518e3353">Vamp::PluginBase</a>.</p> 710
736 711 </div>
737 </div> 712 </div>
738 </div><p> 713 <a class="anchor" id="a859ad5d59402691daed3cf1af1899ebe"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPreferredStepSize" ref="a859ad5d59402691daed3cf1af1899ebe" args="() const " -->
739 <a class="anchor" name="859ad5d59402691daed3cf1af1899ebe"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPreferredStepSize" ref="859ad5d59402691daed3cf1af1899ebe" args="() const " --> 714 <div class="memitem">
740 <div class="memitem"> 715 <div class="memproto">
741 <div class="memproto"> 716 <table class="memname">
742 <table class="memname"> 717 <tr>
743 <tr> 718 <td class="memname">size_t Vamp::PluginHostAdapter::getPreferredStepSize </td>
744 <td class="memname">size_t Vamp::PluginHostAdapter::getPreferredStepSize </td> 719 <td>(</td>
745 <td>(</td> 720 <td class="paramname"></td><td>)</td>
746 <td class="paramname"> </td> 721 <td> const<code> [virtual]</code></td>
747 <td>&nbsp;)&nbsp;</td> 722 </tr>
748 <td> const<code> [virtual]</code></td> 723 </table>
749 </tr> 724 </div>
750 </table> 725 <div class="memdoc">
751 </div> 726
752 <div class="memdoc"> 727 <p>Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#a38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> function) for the plugin. </p>
753 728 <p>This should be called before <a class="el" href="classVamp_1_1PluginHostAdapter.html#add6a2f1ee7e47bd97fa599cead14b738" title="Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames).">initialise()</a>.</p>
754 <p> 729 <p>A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1PluginHostAdapter.html#add6a2f1ee7e47bd97fa599cead14b738" title="Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames).">initialise()</a> call. </p>
755 Get the preferred step size (window increment -- the distance in sample frames between the start frames of consecutive blocks passed to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> function) for the plugin. 730
756 <p> 731 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#a514c716c22f81c055f19b56c3f882567">Vamp::Plugin</a>.</p>
757 This should be called before <a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p> 732
758 A plugin may return 0 if it has no particular interest in the step size. In this case, the host should make the step size equal to the block size if the plugin is accepting input in the time domain. If the plugin is accepting input in the frequency domain, the host may use any step size. The final step size will be set in the <a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 733 </div>
759 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#514c716c22f81c055f19b56c3f882567">Vamp::Plugin</a>.</p> 734 </div>
760 735 <a class="anchor" id="ad5e0ea8042bdec4dd18428991117e07a"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPreferredBlockSize" ref="ad5e0ea8042bdec4dd18428991117e07a" args="() const " -->
761 </div> 736 <div class="memitem">
762 </div><p> 737 <div class="memproto">
763 <a class="anchor" name="d5e0ea8042bdec4dd18428991117e07a"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getPreferredBlockSize" ref="d5e0ea8042bdec4dd18428991117e07a" args="() const " --> 738 <table class="memname">
764 <div class="memitem"> 739 <tr>
765 <div class="memproto"> 740 <td class="memname">size_t Vamp::PluginHostAdapter::getPreferredBlockSize </td>
766 <table class="memname"> 741 <td>(</td>
767 <tr> 742 <td class="paramname"></td><td>)</td>
768 <td class="memname">size_t Vamp::PluginHostAdapter::getPreferredBlockSize </td> 743 <td> const<code> [virtual]</code></td>
769 <td>(</td> 744 </tr>
770 <td class="paramname"> </td> 745 </table>
771 <td>&nbsp;)&nbsp;</td> 746 </div>
772 <td> const<code> [virtual]</code></td> 747 <div class="memdoc">
773 </tr> 748
774 </table> 749 <p>Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#a38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> function). </p>
775 </div> 750 <p>This should be called before <a class="el" href="classVamp_1_1PluginHostAdapter.html#add6a2f1ee7e47bd97fa599cead14b738" title="Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames).">initialise()</a>.</p>
776 <div class="memdoc"> 751 <p>A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1PluginHostAdapter.html#add6a2f1ee7e47bd97fa599cead14b738" title="Initialise a plugin to prepare it for use with the given number of input channels, step size (window increment, in sample frames) and block size (window size, in sample frames).">initialise()</a> call. </p>
777 752
778 <p> 753 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#aa529adf83f87a603954eb31407602aac">Vamp::Plugin</a>.</p>
779 Get the preferred block size (window size -- the number of sample frames passed in each block to the <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> function). 754
780 <p> 755 </div>
781 This should be called before <a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a>.<p> 756 </div>
782 A plugin that can handle any block size may return 0. The final block size will be set in the <a class="el" href="classVamp_1_1PluginHostAdapter.html#dd6a2f1ee7e47bd97fa599cead14b738" title="Initialise a plugin to prepare it for use with the given number of input channels...">initialise()</a> call. 757 <a class="anchor" id="a67d1198c0e58d3f0076d0eda599ff28d"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getMinChannelCount" ref="a67d1198c0e58d3f0076d0eda599ff28d" args="() const " -->
783 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#a529adf83f87a603954eb31407602aac">Vamp::Plugin</a>.</p> 758 <div class="memitem">
784 759 <div class="memproto">
785 </div> 760 <table class="memname">
786 </div><p> 761 <tr>
787 <a class="anchor" name="67d1198c0e58d3f0076d0eda599ff28d"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getMinChannelCount" ref="67d1198c0e58d3f0076d0eda599ff28d" args="() const " --> 762 <td class="memname">size_t Vamp::PluginHostAdapter::getMinChannelCount </td>
788 <div class="memitem"> 763 <td>(</td>
789 <div class="memproto"> 764 <td class="paramname"></td><td>)</td>
790 <table class="memname"> 765 <td> const<code> [virtual]</code></td>
791 <tr> 766 </tr>
792 <td class="memname">size_t Vamp::PluginHostAdapter::getMinChannelCount </td> 767 </table>
793 <td>(</td> 768 </div>
794 <td class="paramname"> </td> 769 <div class="memdoc">
795 <td>&nbsp;)&nbsp;</td> 770
796 <td> const<code> [virtual]</code></td> 771 <p>Get the minimum supported number of input channels. </p>
797 </tr> 772
798 </table> 773 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#a267b42e866df3cf0d190893e8096f525">Vamp::Plugin</a>.</p>
799 </div> 774
800 <div class="memdoc"> 775 </div>
801 776 </div>
802 <p> 777 <a class="anchor" id="a25091905e97e39d515d8ffc1a9f2b9e0"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getMaxChannelCount" ref="a25091905e97e39d515d8ffc1a9f2b9e0" args="() const " -->
803 Get the minimum supported number of input channels. 778 <div class="memitem">
804 <p> 779 <div class="memproto">
805 780 <table class="memname">
806 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#267b42e866df3cf0d190893e8096f525">Vamp::Plugin</a>.</p> 781 <tr>
807 782 <td class="memname">size_t Vamp::PluginHostAdapter::getMaxChannelCount </td>
808 </div> 783 <td>(</td>
809 </div><p> 784 <td class="paramname"></td><td>)</td>
810 <a class="anchor" name="25091905e97e39d515d8ffc1a9f2b9e0"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getMaxChannelCount" ref="25091905e97e39d515d8ffc1a9f2b9e0" args="() const " --> 785 <td> const<code> [virtual]</code></td>
811 <div class="memitem"> 786 </tr>
812 <div class="memproto"> 787 </table>
813 <table class="memname"> 788 </div>
814 <tr> 789 <div class="memdoc">
815 <td class="memname">size_t Vamp::PluginHostAdapter::getMaxChannelCount </td> 790
816 <td>(</td> 791 <p>Get the maximum supported number of input channels. </p>
817 <td class="paramname"> </td> 792
818 <td>&nbsp;)&nbsp;</td> 793 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#a2c5ab12b6fa4847cb244bd1e9cb3ae5e">Vamp::Plugin</a>.</p>
819 <td> const<code> [virtual]</code></td> 794
820 </tr> 795 </div>
821 </table> 796 </div>
822 </div> 797 <a class="anchor" id="a9649a113da0252fe8bd9fc731b047ae0"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getOutputDescriptors" ref="a9649a113da0252fe8bd9fc731b047ae0" args="() const " -->
823 <div class="memdoc"> 798 <div class="memitem">
824 799 <div class="memproto">
825 <p> 800 <table class="memname">
826 Get the maximum supported number of input channels. 801 <tr>
827 <p> 802 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#a30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> Vamp::PluginHostAdapter::getOutputDescriptors </td>
828 803 <td>(</td>
829 <p>Reimplemented from <a class="el" href="classVamp_1_1Plugin.html#2c5ab12b6fa4847cb244bd1e9cb3ae5e">Vamp::Plugin</a>.</p> 804 <td class="paramname"></td><td>)</td>
830 805 <td> const<code> [virtual]</code></td>
831 </div> 806 </tr>
832 </div><p> 807 </table>
833 <a class="anchor" name="9649a113da0252fe8bd9fc731b047ae0"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getOutputDescriptors" ref="9649a113da0252fe8bd9fc731b047ae0" args="() const " --> 808 </div>
834 <div class="memitem"> 809 <div class="memdoc">
835 <div class="memproto"> 810
836 <table class="memname"> 811 <p>Get the outputs of this plugin. </p>
837 <tr> 812 <p>An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1PluginHostAdapter.html#a38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> call. </p>
838 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#30f531b8fb69fac41a24e3d2a6a08ed9">OutputList</a> Vamp::PluginHostAdapter::getOutputDescriptors </td> 813
839 <td>(</td> 814 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#ad064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>.</p>
840 <td class="paramname"> </td> 815
841 <td>&nbsp;)&nbsp;</td> 816 </div>
842 <td> const<code> [virtual]</code></td> 817 </div>
843 </tr> 818 <a class="anchor" id="a38fe1080b343ba10e5d8a4b30c87cbdd"></a><!-- doxytag: member="Vamp::PluginHostAdapter::process" ref="a38fe1080b343ba10e5d8a4b30c87cbdd" args="(const float *const *inputBuffers, RealTime timestamp)" -->
844 </table> 819 <div class="memitem">
845 </div> 820 <div class="memproto">
846 <div class="memdoc"> 821 <table class="memname">
847 822 <tr>
848 <p> 823 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::PluginHostAdapter::process </td>
849 Get the outputs of this plugin. 824 <td>(</td>
850 <p> 825 <td class="paramtype">const float *const *&#160;</td>
851 An output's index in this list is used as its numeric index when looking it up in the FeatureSet returned from the <a class="el" href="classVamp_1_1PluginHostAdapter.html#38fe1080b343ba10e5d8a4b30c87cbdd" title="Process a single block of input data.">process()</a> call. 826 <td class="paramname"><em>inputBuffers</em>, </td>
852 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#d064d5d132b5c9bd7064f429c3309e35">Vamp::Plugin</a>.</p>
853
854 </div>
855 </div><p>
856 <a class="anchor" name="38fe1080b343ba10e5d8a4b30c87cbdd"></a><!-- doxytag: member="Vamp::PluginHostAdapter::process" ref="38fe1080b343ba10e5d8a4b30c87cbdd" args="(const float *const *inputBuffers, RealTime timestamp)" -->
857 <div class="memitem">
858 <div class="memproto">
859 <table class="memname">
860 <tr>
861 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::PluginHostAdapter::process </td>
862 <td>(</td>
863 <td class="paramtype">const float *const *&nbsp;</td>
864 <td class="paramname"> <em>inputBuffers</em>, </td>
865 </tr> 827 </tr>
866 <tr> 828 <tr>
867 <td class="paramkey"></td> 829 <td class="paramkey"></td>
868 <td></td> 830 <td></td>
869 <td class="paramtype"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&nbsp;</td> 831 <td class="paramtype"><a class="el" href="structVamp_1_1RealTime.html">RealTime</a>&#160;</td>
870 <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td> 832 <td class="paramname"><em>timestamp</em>&#160;</td>
871 </tr> 833 </tr>
872 <tr> 834 <tr>
873 <td></td> 835 <td></td>
874 <td>)</td> 836 <td>)</td>
875 <td></td><td></td><td><code> [virtual]</code></td> 837 <td></td><td><code> [virtual]</code></td>
876 </tr> 838 </tr>
877 </table> 839 </table>
878 </div> 840 </div>
879 <div class="memdoc"> 841 <div class="memdoc">
880 842
881 <p> 843 <p>Process a single block of input data. </p>
882 Process a single block of input data. 844 <p>If the plugin's inputDomain is TimeDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize consecutive audio samples (the host will zero-pad as necessary). The timestamp in this case will be the real time in seconds of the start of the supplied block of samples.</p>
883 <p> 845 <p>If the plugin's inputDomain is FrequencyDomain, inputBuffers will point to one array of floats per input channel, and each of these arrays will contain blockSize/2+1 consecutive pairs of real and imaginary component floats corresponding to bins 0..(blockSize/2) of the FFT output. That is, bin 0 (the first pair of floats) contains the DC output, up to bin blockSize/2 which contains the Nyquist-frequency output. There will therefore be blockSize+2 floats per channel in total. The timestamp will be the real time in seconds of the centre of the FFT input window (i.e. the very first block passed to process might contain the FFT of half a block of zero samples and the first half-block of the actual data, with a timestamp of zero).</p>
884 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> 846 <p>Return any features that have become available after this process call. (These do not necessarily have to fall within the process block, except for OneSamplePerStep outputs.) </p>
885 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> 847
886 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.) 848 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#ae4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</a>.</p>
887 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#e4aed3bebfe80a2e2fccd3d37af26996">Vamp::Plugin</a>.</p> 849
888 850 </div>
889 </div> 851 </div>
890 </div><p> 852 <a class="anchor" id="a984a4c11f3fbdcfd90e4837b1619a5ab"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getRemainingFeatures" ref="a984a4c11f3fbdcfd90e4837b1619a5ab" args="()" -->
891 <a class="anchor" name="984a4c11f3fbdcfd90e4837b1619a5ab"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getRemainingFeatures" ref="984a4c11f3fbdcfd90e4837b1619a5ab" args="()" --> 853 <div class="memitem">
892 <div class="memitem"> 854 <div class="memproto">
893 <div class="memproto"> 855 <table class="memname">
894 <table class="memname"> 856 <tr>
895 <tr> 857 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::PluginHostAdapter::getRemainingFeatures </td>
896 <td class="memname"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> Vamp::PluginHostAdapter::getRemainingFeatures </td> 858 <td>(</td>
897 <td>(</td> 859 <td class="paramname"></td><td>)</td>
898 <td class="paramname"> </td>
899 <td>&nbsp;)&nbsp;</td>
900 <td><code> [virtual]</code></td> 860 <td><code> [virtual]</code></td>
901 </tr> 861 </tr>
902 </table> 862 </table>
903 </div> 863 </div>
904 <div class="memdoc"> 864 <div class="memdoc">
905 865
906 <p> 866 <p>After all blocks have been processed, calculate and return any remaining features derived from the complete input. </p>
907 After all blocks have been processed, calculate and return any remaining features derived from the complete input. 867
908 <p> 868 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#aeca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>.</p>
909 869
910 <p>Implements <a class="el" href="classVamp_1_1Plugin.html#eca2a26e658ba0314ba90d25dd2195d6">Vamp::Plugin</a>.</p> 870 </div>
911 871 </div>
912 </div> 872 <a class="anchor" id="aee417a4c9ba9dbb63777c963d5f9452a"></a><!-- doxytag: member="Vamp::PluginHostAdapter::convertFeatures" ref="aee417a4c9ba9dbb63777c963d5f9452a" args="(VampFeatureList *, FeatureSet &amp;)" -->
913 </div><p> 873 <div class="memitem">
914 <a class="anchor" name="ee417a4c9ba9dbb63777c963d5f9452a"></a><!-- doxytag: member="Vamp::PluginHostAdapter::convertFeatures" ref="ee417a4c9ba9dbb63777c963d5f9452a" args="(VampFeatureList *, FeatureSet &amp;)" --> 874 <div class="memproto">
915 <div class="memitem"> 875 <table class="memname">
916 <div class="memproto"> 876 <tr>
917 <table class="memname"> 877 <td class="memname">void Vamp::PluginHostAdapter::convertFeatures </td>
918 <tr> 878 <td>(</td>
919 <td class="memname">void Vamp::PluginHostAdapter::convertFeatures </td> 879 <td class="paramtype"><a class="el" href="vamp_8h.html#a5f257e3f8b5ca1ca4c159d486e219078">VampFeatureList</a> *&#160;</td>
920 <td>(</td>
921 <td class="paramtype"><a class="el" href="struct__VampFeatureList.html">VampFeatureList</a> *&nbsp;</td>
922 <td class="paramname">, </td> 880 <td class="paramname">, </td>
923 </tr> 881 </tr>
924 <tr> 882 <tr>
925 <td class="paramkey"></td> 883 <td class="paramkey"></td>
926 <td></td> 884 <td></td>
927 <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html#448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> &amp;&nbsp;</td> 885 <td class="paramtype"><a class="el" href="classVamp_1_1Plugin.html#a448fb57dc245d47923ec9eeaf9856c5f">FeatureSet</a> &amp;&#160;</td>
928 <td class="paramname"></td><td>&nbsp;</td> 886 <td class="paramname">&#160;</td>
929 </tr> 887 </tr>
930 <tr> 888 <tr>
931 <td></td> 889 <td></td>
932 <td>)</td> 890 <td>)</td>
933 <td></td><td></td><td><code> [protected]</code></td> 891 <td></td><td><code> [protected]</code></td>
934 </tr> 892 </tr>
935 </table> 893 </table>
936 </div> 894 </div>
937 <div class="memdoc"> 895 <div class="memdoc">
938 896
939 <p> 897 </div>
940 898 </div>
941 </div> 899 <a class="anchor" id="abe13b3997a69fbcc09e2213faa352f91"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getType" ref="abe13b3997a69fbcc09e2213faa352f91" args="() const " -->
942 </div><p> 900 <div class="memitem">
943 <a class="anchor" name="be13b3997a69fbcc09e2213faa352f91"></a><!-- doxytag: member="Vamp::PluginHostAdapter::getType" ref="be13b3997a69fbcc09e2213faa352f91" args="() const " --> 901 <div class="memproto">
944 <div class="memitem"> 902 <table class="memname">
945 <div class="memproto"> 903 <tr>
946 <table class="memname"> 904 <td class="memname">virtual std::string Vamp::Plugin::getType </td>
947 <tr> 905 <td>(</td>
948 <td class="memname">virtual std::string Vamp::Plugin::getType </td> 906 <td class="paramname"></td><td>)</td>
949 <td>(</td>
950 <td class="paramname"> </td>
951 <td>&nbsp;)&nbsp;</td>
952 <td> const<code> [inline, virtual, inherited]</code></td> 907 <td> const<code> [inline, virtual, inherited]</code></td>
953 </tr> 908 </tr>
954 </table> 909 </table>
955 </div> 910 </div>
956 <div class="memdoc"> 911 <div class="memdoc">
957 912
958 <p> 913 <p>Used to distinguish between <a class="el" href="classVamp_1_1Plugin.html" title="Vamp::Plugin is a base class for plugin instance classes that provide feature extraction from audio o...">Vamp::Plugin</a> and other potential sibling subclasses of <a class="el" href="classVamp_1_1PluginBase.html" title="A base class for plugins with optional configurable parameters, programs, etc.">PluginBase</a>. </p>
959 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>. 914 <p>Do not reimplement this function in your subclass. </p>
960 <p> 915
961 Do not reimplement this function in your subclass. 916 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#a2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p>
962 <p>Implements <a class="el" href="classVamp_1_1PluginBase.html#2da03e9ced8dc7e4382205e6dc05dbff">Vamp::PluginBase</a>.</p> 917
963 918 <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>
964 <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> 919
965 920 </div>
966 </div> 921 </div>
967 </div><p> 922 <hr/><h2>Member Data Documentation</h2>
968 <hr><h2>Member Data Documentation</h2> 923 <a class="anchor" id="a0c9f252aca8ac298e30cadd0de032ec2"></a><!-- doxytag: member="Vamp::PluginHostAdapter::m_descriptor" ref="a0c9f252aca8ac298e30cadd0de032ec2" args="" -->
969 <a class="anchor" name="0c9f252aca8ac298e30cadd0de032ec2"></a><!-- doxytag: member="Vamp::PluginHostAdapter::m_descriptor" ref="0c9f252aca8ac298e30cadd0de032ec2" args="" --> 924 <div class="memitem">
970 <div class="memitem"> 925 <div class="memproto">
971 <div class="memproto"> 926 <table class="memname">
972 <table class="memname"> 927 <tr>
973 <tr> 928 <td class="memname">const <a class="el" href="vamp_8h.html#aa1d6e0792099b9516a89b5fb7ed2ad2b">VampPluginDescriptor</a>* <a class="el" href="classVamp_1_1PluginHostAdapter.html#a0c9f252aca8ac298e30cadd0de032ec2">Vamp::PluginHostAdapter::m_descriptor</a><code> [protected]</code></td>
974 <td class="memname">const <a class="el" href="struct__VampPluginDescriptor.html">VampPluginDescriptor</a>* <a class="el" href="classVamp_1_1PluginHostAdapter.html#0c9f252aca8ac298e30cadd0de032ec2">Vamp::PluginHostAdapter::m_descriptor</a><code> [protected]</code> </td> 929 </tr>
975 </tr> 930 </table>
976 </table> 931 </div>
977 </div> 932 <div class="memdoc">
978 <div class="memdoc"> 933
979 934 <p>Definition at line <a class="el" href="PluginHostAdapter_8h_source.html#l00113">113</a> of file <a class="el" href="PluginHostAdapter_8h_source.html">PluginHostAdapter.h</a>.</p>
980 <p> 935
981 936 </div>
982 <p>Definition at line <a class="el" href="PluginHostAdapter_8h-source.html#l00113">113</a> of file <a class="el" href="PluginHostAdapter_8h-source.html">PluginHostAdapter.h</a>.</p> 937 </div>
983 938 <a class="anchor" id="a02ebd03b226b4a467cad747ce77e79ee"></a><!-- doxytag: member="Vamp::PluginHostAdapter::m_handle" ref="a02ebd03b226b4a467cad747ce77e79ee" args="" -->
984 </div> 939 <div class="memitem">
985 </div><p> 940 <div class="memproto">
986 <a class="anchor" name="02ebd03b226b4a467cad747ce77e79ee"></a><!-- doxytag: member="Vamp::PluginHostAdapter::m_handle" ref="02ebd03b226b4a467cad747ce77e79ee" args="" --> 941 <table class="memname">
987 <div class="memitem"> 942 <tr>
988 <div class="memproto"> 943 <td class="memname"><a class="el" href="vamp_8h.html#ad3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> <a class="el" href="classVamp_1_1PluginHostAdapter.html#a02ebd03b226b4a467cad747ce77e79ee">Vamp::PluginHostAdapter::m_handle</a><code> [protected]</code></td>
989 <table class="memname"> 944 </tr>
990 <tr> 945 </table>
991 <td class="memname"><a class="el" href="vamp_8h.html#d3be2952b1f4ad7d775940a6db75c79b">VampPluginHandle</a> <a class="el" href="classVamp_1_1PluginHostAdapter.html#02ebd03b226b4a467cad747ce77e79ee">Vamp::PluginHostAdapter::m_handle</a><code> [protected]</code> </td> 946 </div>
992 </tr> 947 <div class="memdoc">
993 </table> 948
994 </div> 949 <p>Definition at line <a class="el" href="PluginHostAdapter_8h_source.html#l00114">114</a> of file <a class="el" href="PluginHostAdapter_8h_source.html">PluginHostAdapter.h</a>.</p>
995 <div class="memdoc"> 950
996 951 </div>
997 <p> 952 </div>
998 953 <a class="anchor" id="a59b9dd82a4f4eb946cd0474cc81abc23"></a><!-- doxytag: member="Vamp::PluginHostAdapter::m_inputSampleRate" ref="a59b9dd82a4f4eb946cd0474cc81abc23" args="" -->
999 <p>Definition at line <a class="el" href="PluginHostAdapter_8h-source.html#l00114">114</a> of file <a class="el" href="PluginHostAdapter_8h-source.html">PluginHostAdapter.h</a>.</p> 954 <div class="memitem">
1000 955 <div class="memproto">
1001 </div> 956 <table class="memname">
1002 </div><p> 957 <tr>
1003 <a class="anchor" name="59b9dd82a4f4eb946cd0474cc81abc23"></a><!-- doxytag: member="Vamp::PluginHostAdapter::m_inputSampleRate" ref="59b9dd82a4f4eb946cd0474cc81abc23" args="" --> 958 <td class="memname">float <a class="el" href="classVamp_1_1Plugin.html#a59b9dd82a4f4eb946cd0474cc81abc23">Vamp::Plugin::m_inputSampleRate</a><code> [protected, inherited]</code></td>
1004 <div class="memitem"> 959 </tr>
1005 <div class="memproto"> 960 </table>
1006 <table class="memname"> 961 </div>
1007 <tr> 962 <div class="memdoc">
1008 <td class="memname">float <a class="el" href="classVamp_1_1Plugin.html#59b9dd82a4f4eb946cd0474cc81abc23">Vamp::Plugin::m_inputSampleRate</a><code> [protected, inherited]</code> </td> 963
1009 </tr> 964 <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>
1010 </table> 965
1011 </div> 966 <p>Referenced by <a class="el" href="FixedTempoEstimator_8cpp_source.html#l00481">FixedTempoEstimator::D::assembleFeatures()</a>, <a class="el" href="FixedTempoEstimator_8cpp_source.html#l00375">FixedTempoEstimator::D::calculate()</a>, <a class="el" href="FixedTempoEstimator_8cpp_source.html#l00190">FixedTempoEstimator::D::getOutputDescriptors()</a>, <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="FixedTempoEstimator_8cpp_source.html#l00252">FixedTempoEstimator::D::initialise()</a>, <a class="el" href="FixedTempoEstimator_8cpp_source.html#l00363">FixedTempoEstimator::D::lag2tempo()</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>, <a class="el" href="PercussionOnsetDetector_8cpp_source.html#l00226">PercussionOnsetDetector::process()</a>, and <a class="el" href="FixedTempoEstimator_8cpp_source.html#l00369">FixedTempoEstimator::D::tempo2lag()</a>.</p>
1012 <div class="memdoc"> 967
1013 968 </div>
1014 <p> 969 </div>
1015 970 <hr/>The documentation for this class was generated from the following file:<ul>
1016 <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> 971 <li><a class="el" href="PluginHostAdapter_8h_source.html">PluginHostAdapter.h</a></li>
1017 972 </ul>
1018 <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> 973 </div>
1019 974 </div>
1020 </div> 975 <div id="nav-path" class="navpath">
1021 </div><p> 976 <ul>
1022 <hr>The documentation for this class was generated from the following file:<ul> 977 <li class="navelem"><a class="el" href="namespaceVamp.html">Vamp</a> </li>
1023 <li><a class="el" href="PluginHostAdapter_8h-source.html">PluginHostAdapter.h</a></ul> 978 <li class="navelem"><a class="el" href="classVamp_1_1PluginHostAdapter.html">PluginHostAdapter</a> </li>
1024 </div> 979
1025 <hr size="1"><address style="text-align: right;"><small>Generated on Thu Sep 24 13:40:14 2009 for VampPluginSDK by&nbsp; 980 <li class="footer">Generated on Tue Oct 4 2011 14:38:52 for VampPluginSDK by
1026 <a href="http://www.doxygen.org/index.html"> 981 <a href="http://www.doxygen.org/index.html">
1027 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address> 982 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.5.1 </li>
983 </ul>
984 </div>
985
986
1028 </body> 987 </body>
1029 </html> 988 </html>