DISTRHO Plugin Framework
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

889 lines
42KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.8.8"/>
  7. <title>DISTRHO Plugin Framework: Plugin Class Reference</title>
  8. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  9. <script type="text/javascript" src="jquery.js"></script>
  10. <script type="text/javascript" src="dynsections.js"></script>
  11. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  12. <script type="text/javascript" src="search/search.js"></script>
  13. <script type="text/javascript">
  14. $(document).ready(function() { searchBox.OnSelectItem(0); });
  15. </script>
  16. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  17. </head>
  18. <body>
  19. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  20. <div id="titlearea">
  21. <table cellspacing="0" cellpadding="0">
  22. <tbody>
  23. <tr style="height: 56px;">
  24. <td style="padding-left: 0.5em;">
  25. <div id="projectname">DISTRHO Plugin Framework
  26. </div>
  27. </td>
  28. </tr>
  29. </tbody>
  30. </table>
  31. </div>
  32. <!-- end header part -->
  33. <!-- Generated by Doxygen 1.8.8 -->
  34. <script type="text/javascript">
  35. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  36. </script>
  37. <div id="navrow1" class="tabs">
  38. <ul class="tablist">
  39. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  40. <li><a href="modules.html"><span>Modules</span></a></li>
  41. <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
  42. <li><a href="files.html"><span>Files</span></a></li>
  43. <li>
  44. <div id="MSearchBox" class="MSearchBoxInactive">
  45. <span class="left">
  46. <img id="MSearchSelect" src="search/mag_sel.png"
  47. onmouseover="return searchBox.OnSearchSelectShow()"
  48. onmouseout="return searchBox.OnSearchSelectHide()"
  49. alt=""/>
  50. <input type="text" id="MSearchField" value="Search" accesskey="S"
  51. onfocus="searchBox.OnSearchFieldFocus(true)"
  52. onblur="searchBox.OnSearchFieldFocus(false)"
  53. onkeyup="searchBox.OnSearchFieldChange(event)"/>
  54. </span><span class="right">
  55. <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  56. </span>
  57. </div>
  58. </li>
  59. </ul>
  60. </div>
  61. <div id="navrow2" class="tabs2">
  62. <ul class="tablist">
  63. <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
  64. <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
  65. <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
  66. <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
  67. </ul>
  68. </div>
  69. <!-- window showing the filter options -->
  70. <div id="MSearchSelectWindow"
  71. onmouseover="return searchBox.OnSearchSelectShow()"
  72. onmouseout="return searchBox.OnSearchSelectHide()"
  73. onkeydown="return searchBox.OnSearchSelectKey(event)">
  74. <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Modules</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
  75. <!-- iframe showing the search results (closed by default) -->
  76. <div id="MSearchResultsWindow">
  77. <iframe src="javascript:void(0)" frameborder="0"
  78. name="MSearchResults" id="MSearchResults">
  79. </iframe>
  80. </div>
  81. </div><!-- top -->
  82. <div class="header">
  83. <div class="summary">
  84. <a href="#pub-methods">Public Member Functions</a> &#124;
  85. <a href="#pro-methods">Protected Member Functions</a> &#124;
  86. <a href="#friends">Friends</a> &#124;
  87. <a href="classPlugin-members.html">List of all members</a> </div>
  88. <div class="headertitle">
  89. <div class="title">Plugin Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
  90. </div><!--header-->
  91. <div class="contents">
  92. <p><code>#include &lt;<a class="el" href="DistrhoPlugin_8hpp_source.html">DistrhoPlugin.hpp</a>&gt;</code></p>
  93. <table class="memberdecls">
  94. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  95. Public Member Functions</h2></td></tr>
  96. <tr class="memitem:a3096e491376cb9378be55915d748de57"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a3096e491376cb9378be55915d748de57">Plugin</a> (const uint32_t parameterCount, const uint32_t programCount, const uint32_t stateCount)</td></tr>
  97. <tr class="separator:a3096e491376cb9378be55915d748de57"><td class="memSeparator" colspan="2">&#160;</td></tr>
  98. <tr class="memitem:a89814b8f0b1c91e49140d42eb8331383"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a89814b8f0b1c91e49140d42eb8331383">~Plugin</a> ()</td></tr>
  99. <tr class="separator:a89814b8f0b1c91e49140d42eb8331383"><td class="memSeparator" colspan="2">&#160;</td></tr>
  100. <tr class="memitem:aa0feb17c3dcf13a106505eb6d6b2a3ac"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#aa0feb17c3dcf13a106505eb6d6b2a3ac">d_getBufferSize</a> () const noexcept</td></tr>
  101. <tr class="separator:aa0feb17c3dcf13a106505eb6d6b2a3ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
  102. <tr class="memitem:ace888940905e8875284e07c52bf7404f"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ace888940905e8875284e07c52bf7404f">d_getSampleRate</a> () const noexcept</td></tr>
  103. <tr class="separator:ace888940905e8875284e07c52bf7404f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  104. <tr class="memitem:ade0a082a3a2936286537a04f4b972225"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structTimePosition.html">TimePosition</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ade0a082a3a2936286537a04f4b972225">d_getTimePosition</a> () const noexcept</td></tr>
  105. <tr class="separator:ade0a082a3a2936286537a04f4b972225"><td class="memSeparator" colspan="2">&#160;</td></tr>
  106. <tr class="memitem:a7816b45ffb52b0a6308cabb792b1a56f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a7816b45ffb52b0a6308cabb792b1a56f">d_setLatency</a> (uint32_t frames) noexcept</td></tr>
  107. <tr class="separator:a7816b45ffb52b0a6308cabb792b1a56f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  108. <tr class="memitem:afa10aea18e4036b4a7487f2779d92e0f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#afa10aea18e4036b4a7487f2779d92e0f">d_writeMidiEvent</a> (const <a class="el" href="structMidiEvent.html">MidiEvent</a> &amp;midiEvent) noexcept</td></tr>
  109. <tr class="separator:afa10aea18e4036b4a7487f2779d92e0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  110. </table><table class="memberdecls">
  111. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
  112. Protected Member Functions</h2></td></tr>
  113. <tr class="memitem:a0f8fb7aa5ab05ba246e158b1024dd031"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a0f8fb7aa5ab05ba246e158b1024dd031">d_getName</a> () const </td></tr>
  114. <tr class="separator:a0f8fb7aa5ab05ba246e158b1024dd031"><td class="memSeparator" colspan="2">&#160;</td></tr>
  115. <tr class="memitem:ae512b28d1b274a055de33812cf094d81"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ae512b28d1b274a055de33812cf094d81">d_getLabel</a> () const =0</td></tr>
  116. <tr class="separator:ae512b28d1b274a055de33812cf094d81"><td class="memSeparator" colspan="2">&#160;</td></tr>
  117. <tr class="memitem:a0eaf2f46f04d60526622afb5a86e026c"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a0eaf2f46f04d60526622afb5a86e026c">d_getMaker</a> () const =0</td></tr>
  118. <tr class="separator:a0eaf2f46f04d60526622afb5a86e026c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  119. <tr class="memitem:ae9333c170accfd2a237448a4579d5fef"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ae9333c170accfd2a237448a4579d5fef">d_getLicense</a> () const =0</td></tr>
  120. <tr class="separator:ae9333c170accfd2a237448a4579d5fef"><td class="memSeparator" colspan="2">&#160;</td></tr>
  121. <tr class="memitem:af9251f8d90e4df43c6387bd111487e4e"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#af9251f8d90e4df43c6387bd111487e4e">d_getVersion</a> () const =0</td></tr>
  122. <tr class="separator:af9251f8d90e4df43c6387bd111487e4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  123. <tr class="memitem:aea77208248b36c7b8c9dc57ee68ae97a"><td class="memItemLeft" align="right" valign="top">virtual int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#aea77208248b36c7b8c9dc57ee68ae97a">d_getUniqueId</a> () const =0</td></tr>
  124. <tr class="separator:aea77208248b36c7b8c9dc57ee68ae97a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  125. <tr class="memitem:a3f93a8eb97db3dc9984c357c5ffca5ec"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a3f93a8eb97db3dc9984c357c5ffca5ec">d_initParameter</a> (uint32_t index, <a class="el" href="structParameter.html">Parameter</a> &amp;parameter)=0</td></tr>
  126. <tr class="separator:a3f93a8eb97db3dc9984c357c5ffca5ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
  127. <tr class="memitem:a8a1792b7c5c6a3fd9cd626c7156ec3b6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a8a1792b7c5c6a3fd9cd626c7156ec3b6">d_initProgramName</a> (uint32_t index, d_string &amp;programName)=0</td></tr>
  128. <tr class="separator:a8a1792b7c5c6a3fd9cd626c7156ec3b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  129. <tr class="memitem:a65f9f9d4a30b0a56dfa42703c0b4db76"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a65f9f9d4a30b0a56dfa42703c0b4db76">d_initState</a> (uint32_t index, d_string &amp;stateKey, d_string &amp;defaultStateValue)=0</td></tr>
  130. <tr class="separator:a65f9f9d4a30b0a56dfa42703c0b4db76"><td class="memSeparator" colspan="2">&#160;</td></tr>
  131. <tr class="memitem:af088f855761b67489f19f42fbb585088"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#af088f855761b67489f19f42fbb585088">d_getParameterValue</a> (uint32_t index) const =0</td></tr>
  132. <tr class="separator:af088f855761b67489f19f42fbb585088"><td class="memSeparator" colspan="2">&#160;</td></tr>
  133. <tr class="memitem:a4cdd613f58a013429094700f3d83904a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a4cdd613f58a013429094700f3d83904a">d_setParameterValue</a> (uint32_t index, float value)=0</td></tr>
  134. <tr class="separator:a4cdd613f58a013429094700f3d83904a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  135. <tr class="memitem:a1d001e50781b35df23f6d9a218f5f804"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a1d001e50781b35df23f6d9a218f5f804">d_setProgram</a> (uint32_t index)=0</td></tr>
  136. <tr class="separator:a1d001e50781b35df23f6d9a218f5f804"><td class="memSeparator" colspan="2">&#160;</td></tr>
  137. <tr class="memitem:ad9c46a36cab96f52a0370043093bca68"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ad9c46a36cab96f52a0370043093bca68">d_setState</a> (const char *key, const char *value)=0</td></tr>
  138. <tr class="separator:ad9c46a36cab96f52a0370043093bca68"><td class="memSeparator" colspan="2">&#160;</td></tr>
  139. <tr class="memitem:a15df4876febf5909fe040d401fc704d0"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a15df4876febf5909fe040d401fc704d0">d_activate</a> ()</td></tr>
  140. <tr class="separator:a15df4876febf5909fe040d401fc704d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  141. <tr class="memitem:a5c008d623e558e7266aecaff22fc787a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a5c008d623e558e7266aecaff22fc787a">d_deactivate</a> ()</td></tr>
  142. <tr class="separator:a5c008d623e558e7266aecaff22fc787a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  143. <tr class="memitem:af67102a7c6d19a8530ce0e3293e55667"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#af67102a7c6d19a8530ce0e3293e55667">d_run</a> (const float **inputs, float **outputs, uint32_t frames, const <a class="el" href="structMidiEvent.html">MidiEvent</a> *midiEvents, uint32_t midiEventCount)=0</td></tr>
  144. <tr class="separator:af67102a7c6d19a8530ce0e3293e55667"><td class="memSeparator" colspan="2">&#160;</td></tr>
  145. <tr class="memitem:a2c6ac454e24b667d54eaaf63da252627"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a2c6ac454e24b667d54eaaf63da252627">d_bufferSizeChanged</a> (uint32_t newBufferSize)</td></tr>
  146. <tr class="separator:a2c6ac454e24b667d54eaaf63da252627"><td class="memSeparator" colspan="2">&#160;</td></tr>
  147. <tr class="memitem:a469b53e1c1417a32d766cf96d1b3c45e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a469b53e1c1417a32d766cf96d1b3c45e">d_sampleRateChanged</a> (double newSampleRate)</td></tr>
  148. <tr class="separator:a469b53e1c1417a32d766cf96d1b3c45e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  149. </table><table class="memberdecls">
  150. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
  151. Friends</h2></td></tr>
  152. <tr class="memitem:a37441261848b635971dab1ee767285dd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a37441261848b635971dab1ee767285dd"></a>
  153. class&#160;</td><td class="memItemRight" valign="bottom"><b>PluginExporter</b></td></tr>
  154. <tr class="separator:a37441261848b635971dab1ee767285dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
  155. </table>
  156. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  157. <div class="textblock"><p>DPF <a class="el" href="classPlugin.html">Plugin</a> class from where plugin instances are created.</p>
  158. <p>The public methods (Host state) are called from the plugin to get or set host information. They can be called from a plugin instance at anytime unless stated otherwise. All other methods are to be implemented by the plugin and will be called by the host.</p>
  159. <p>Shortly after a plugin instance is created, the various d_init* functions will be called by the host. Host will call <a class="el" href="classPlugin.html#a15df4876febf5909fe040d401fc704d0">d_activate()</a> before <a class="el" href="classPlugin.html#af67102a7c6d19a8530ce0e3293e55667">d_run()</a>, and <a class="el" href="classPlugin.html#a5c008d623e558e7266aecaff22fc787a">d_deactivate()</a> before the plugin instance is destroyed. The host may call deactivate right after activate and vice-versa, but never activate/deactivate consecutively. There is no limit on how many times <a class="el" href="classPlugin.html#af67102a7c6d19a8530ce0e3293e55667">d_run()</a> is called, only that activate/deactivate will be called in between.</p>
  160. <p>The buffer size and sample rate values will remain constant between activate and deactivate. Buffer size is only a hint though, the host might call <a class="el" href="classPlugin.html#af67102a7c6d19a8530ce0e3293e55667">d_run()</a> with a higher or lower number of frames.</p>
  161. <p>Some of this class functions are only available according to some macros.</p>
  162. <p>DISTRHO_PLUGIN_WANT_PROGRAMS activates program related features. When enabled you need to implement <a class="el" href="classPlugin.html#a8a1792b7c5c6a3fd9cd626c7156ec3b6">d_initProgramName()</a> and <a class="el" href="classPlugin.html#a1d001e50781b35df23f6d9a218f5f804">d_setProgram()</a>.</p>
  163. <p>DISTRHO_PLUGIN_WANT_STATE activates internal state features. When enabled you need to implement d_initStateKey() and <a class="el" href="classPlugin.html#ad9c46a36cab96f52a0370043093bca68">d_setState()</a>.</p>
  164. <p>The process function <a class="el" href="classPlugin.html#af67102a7c6d19a8530ce0e3293e55667">d_run()</a> changes wherever DISTRHO_PLUGIN_WANT_MIDI_INPUT is enabled or not. When enabled it provides midi input events. </p>
  165. </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  166. <a class="anchor" id="a3096e491376cb9378be55915d748de57"></a>
  167. <div class="memitem">
  168. <div class="memproto">
  169. <table class="memname">
  170. <tr>
  171. <td class="memname">Plugin::Plugin </td>
  172. <td>(</td>
  173. <td class="paramtype">const uint32_t&#160;</td>
  174. <td class="paramname"><em>parameterCount</em>, </td>
  175. </tr>
  176. <tr>
  177. <td class="paramkey"></td>
  178. <td></td>
  179. <td class="paramtype">const uint32_t&#160;</td>
  180. <td class="paramname"><em>programCount</em>, </td>
  181. </tr>
  182. <tr>
  183. <td class="paramkey"></td>
  184. <td></td>
  185. <td class="paramtype">const uint32_t&#160;</td>
  186. <td class="paramname"><em>stateCount</em>&#160;</td>
  187. </tr>
  188. <tr>
  189. <td></td>
  190. <td>)</td>
  191. <td></td><td></td>
  192. </tr>
  193. </table>
  194. </div><div class="memdoc">
  195. <p><a class="el" href="classPlugin.html">Plugin</a> class constructor. You must set all parameter values to their defaults, matching <a class="el" href="structParameterRanges.html#aa0aba68115bcfff25c35b2da2f7aed4c">ParameterRanges::def</a>. If you're using states you must also set them to their defaults by calling <a class="el" href="classPlugin.html#ad9c46a36cab96f52a0370043093bca68">d_setState()</a>. </p>
  196. </div>
  197. </div>
  198. <a class="anchor" id="a89814b8f0b1c91e49140d42eb8331383"></a>
  199. <div class="memitem">
  200. <div class="memproto">
  201. <table class="mlabels">
  202. <tr>
  203. <td class="mlabels-left">
  204. <table class="memname">
  205. <tr>
  206. <td class="memname">virtual Plugin::~Plugin </td>
  207. <td>(</td>
  208. <td class="paramname"></td><td>)</td>
  209. <td></td>
  210. </tr>
  211. </table>
  212. </td>
  213. <td class="mlabels-right">
  214. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  215. </tr>
  216. </table>
  217. </div><div class="memdoc">
  218. <p>Destructor. </p>
  219. </div>
  220. </div>
  221. <h2 class="groupheader">Member Function Documentation</h2>
  222. <a class="anchor" id="aa0feb17c3dcf13a106505eb6d6b2a3ac"></a>
  223. <div class="memitem">
  224. <div class="memproto">
  225. <table class="mlabels">
  226. <tr>
  227. <td class="mlabels-left">
  228. <table class="memname">
  229. <tr>
  230. <td class="memname">uint32_t Plugin::d_getBufferSize </td>
  231. <td>(</td>
  232. <td class="paramname"></td><td>)</td>
  233. <td> const</td>
  234. </tr>
  235. </table>
  236. </td>
  237. <td class="mlabels-right">
  238. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  239. </tr>
  240. </table>
  241. </div><div class="memdoc">
  242. <p>Get the current buffer size that will probably be used during processing, in frames. This value will remain constant between activate and deactivate. </p><dl class="section note"><dt>Note</dt><dd>: This value is only a hint! Hosts might call <a class="el" href="classPlugin.html#af67102a7c6d19a8530ce0e3293e55667">d_run()</a> with a higher or lower number of frames. </dd></dl>
  243. <dl class="section see"><dt>See also</dt><dd><a class="el" href="classPlugin.html#a2c6ac454e24b667d54eaaf63da252627">d_bufferSizeChanged(uint32_t)</a> </dd></dl>
  244. </div>
  245. </div>
  246. <a class="anchor" id="ace888940905e8875284e07c52bf7404f"></a>
  247. <div class="memitem">
  248. <div class="memproto">
  249. <table class="mlabels">
  250. <tr>
  251. <td class="mlabels-left">
  252. <table class="memname">
  253. <tr>
  254. <td class="memname">double Plugin::d_getSampleRate </td>
  255. <td>(</td>
  256. <td class="paramname"></td><td>)</td>
  257. <td> const</td>
  258. </tr>
  259. </table>
  260. </td>
  261. <td class="mlabels-right">
  262. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  263. </tr>
  264. </table>
  265. </div><div class="memdoc">
  266. <p>Get the current sample rate that will be used during processing. This value will remain constant between activate and deactivate. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classPlugin.html#a469b53e1c1417a32d766cf96d1b3c45e">d_sampleRateChanged(double)</a> </dd></dl>
  267. </div>
  268. </div>
  269. <a class="anchor" id="ade0a082a3a2936286537a04f4b972225"></a>
  270. <div class="memitem">
  271. <div class="memproto">
  272. <table class="mlabels">
  273. <tr>
  274. <td class="mlabels-left">
  275. <table class="memname">
  276. <tr>
  277. <td class="memname">const <a class="el" href="structTimePosition.html">TimePosition</a>&amp; Plugin::d_getTimePosition </td>
  278. <td>(</td>
  279. <td class="paramname"></td><td>)</td>
  280. <td> const</td>
  281. </tr>
  282. </table>
  283. </td>
  284. <td class="mlabels-right">
  285. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  286. </tr>
  287. </table>
  288. </div><div class="memdoc">
  289. <p>Get the current host transport time position. This function should only be called during <a class="el" href="classPlugin.html#af67102a7c6d19a8530ce0e3293e55667">d_run()</a>. You can call this during other times, but the returned position is not guaranteed to be in sync. </p><dl class="section note"><dt>Note</dt><dd>: TimePos is not supported in LADSPA and DSSI plugin formats. </dd></dl>
  290. </div>
  291. </div>
  292. <a class="anchor" id="a7816b45ffb52b0a6308cabb792b1a56f"></a>
  293. <div class="memitem">
  294. <div class="memproto">
  295. <table class="mlabels">
  296. <tr>
  297. <td class="mlabels-left">
  298. <table class="memname">
  299. <tr>
  300. <td class="memname">void Plugin::d_setLatency </td>
  301. <td>(</td>
  302. <td class="paramtype">uint32_t&#160;</td>
  303. <td class="paramname"><em>frames</em></td><td>)</td>
  304. <td></td>
  305. </tr>
  306. </table>
  307. </td>
  308. <td class="mlabels-right">
  309. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  310. </tr>
  311. </table>
  312. </div><div class="memdoc">
  313. <p>Change the plugin audio output latency to <em>frames</em>. This function should only be called in the constructor, <a class="el" href="classPlugin.html#a15df4876febf5909fe040d401fc704d0">d_activate()</a> and <a class="el" href="classPlugin.html#af67102a7c6d19a8530ce0e3293e55667">d_run()</a>. </p><dl class="section note"><dt>Note</dt><dd>This function is only available if DISTRHO_PLUGIN_WANT_LATENCY is enabled. </dd></dl>
  314. </div>
  315. </div>
  316. <a class="anchor" id="afa10aea18e4036b4a7487f2779d92e0f"></a>
  317. <div class="memitem">
  318. <div class="memproto">
  319. <table class="mlabels">
  320. <tr>
  321. <td class="mlabels-left">
  322. <table class="memname">
  323. <tr>
  324. <td class="memname">bool Plugin::d_writeMidiEvent </td>
  325. <td>(</td>
  326. <td class="paramtype">const <a class="el" href="structMidiEvent.html">MidiEvent</a> &amp;&#160;</td>
  327. <td class="paramname"><em>midiEvent</em></td><td>)</td>
  328. <td></td>
  329. </tr>
  330. </table>
  331. </td>
  332. <td class="mlabels-right">
  333. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  334. </tr>
  335. </table>
  336. </div><div class="memdoc">
  337. <p>Write a MIDI output event. This function must only be called during <a class="el" href="classPlugin.html#af67102a7c6d19a8530ce0e3293e55667">d_run()</a>. Returns false when the host buffer is full, in which case do not call this again until the next <a class="el" href="classPlugin.html#af67102a7c6d19a8530ce0e3293e55667">d_run()</a>. </p>
  338. </div>
  339. </div>
  340. <a class="anchor" id="a0f8fb7aa5ab05ba246e158b1024dd031"></a>
  341. <div class="memitem">
  342. <div class="memproto">
  343. <table class="mlabels">
  344. <tr>
  345. <td class="mlabels-left">
  346. <table class="memname">
  347. <tr>
  348. <td class="memname">virtual const char* Plugin::d_getName </td>
  349. <td>(</td>
  350. <td class="paramname"></td><td>)</td>
  351. <td> const</td>
  352. </tr>
  353. </table>
  354. </td>
  355. <td class="mlabels-right">
  356. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  357. </tr>
  358. </table>
  359. </div><div class="memdoc">
  360. <p>Get the plugin name. Returns DISTRHO_PLUGIN_NAME by default. </p>
  361. </div>
  362. </div>
  363. <a class="anchor" id="ae512b28d1b274a055de33812cf094d81"></a>
  364. <div class="memitem">
  365. <div class="memproto">
  366. <table class="mlabels">
  367. <tr>
  368. <td class="mlabels-left">
  369. <table class="memname">
  370. <tr>
  371. <td class="memname">virtual const char* Plugin::d_getLabel </td>
  372. <td>(</td>
  373. <td class="paramname"></td><td>)</td>
  374. <td> const</td>
  375. </tr>
  376. </table>
  377. </td>
  378. <td class="mlabels-right">
  379. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  380. </tr>
  381. </table>
  382. </div><div class="memdoc">
  383. <p>Get the plugin label. A plugin label follows the same rules as <a class="el" href="structParameter.html#a0b5193e6131f65878dfb6fe4d9f5e970">Parameter::symbol</a>, with the exception that it can start with numbers. </p>
  384. </div>
  385. </div>
  386. <a class="anchor" id="a0eaf2f46f04d60526622afb5a86e026c"></a>
  387. <div class="memitem">
  388. <div class="memproto">
  389. <table class="mlabels">
  390. <tr>
  391. <td class="mlabels-left">
  392. <table class="memname">
  393. <tr>
  394. <td class="memname">virtual const char* Plugin::d_getMaker </td>
  395. <td>(</td>
  396. <td class="paramname"></td><td>)</td>
  397. <td> const</td>
  398. </tr>
  399. </table>
  400. </td>
  401. <td class="mlabels-right">
  402. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  403. </tr>
  404. </table>
  405. </div><div class="memdoc">
  406. <p>Get the plugin author/maker. </p>
  407. </div>
  408. </div>
  409. <a class="anchor" id="ae9333c170accfd2a237448a4579d5fef"></a>
  410. <div class="memitem">
  411. <div class="memproto">
  412. <table class="mlabels">
  413. <tr>
  414. <td class="mlabels-left">
  415. <table class="memname">
  416. <tr>
  417. <td class="memname">virtual const char* Plugin::d_getLicense </td>
  418. <td>(</td>
  419. <td class="paramname"></td><td>)</td>
  420. <td> const</td>
  421. </tr>
  422. </table>
  423. </td>
  424. <td class="mlabels-right">
  425. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  426. </tr>
  427. </table>
  428. </div><div class="memdoc">
  429. <p>Get the plugin license name (a single line of text). </p>
  430. </div>
  431. </div>
  432. <a class="anchor" id="af9251f8d90e4df43c6387bd111487e4e"></a>
  433. <div class="memitem">
  434. <div class="memproto">
  435. <table class="mlabels">
  436. <tr>
  437. <td class="mlabels-left">
  438. <table class="memname">
  439. <tr>
  440. <td class="memname">virtual uint32_t Plugin::d_getVersion </td>
  441. <td>(</td>
  442. <td class="paramname"></td><td>)</td>
  443. <td> const</td>
  444. </tr>
  445. </table>
  446. </td>
  447. <td class="mlabels-right">
  448. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  449. </tr>
  450. </table>
  451. </div><div class="memdoc">
  452. <p>Get the plugin version, in hexadecimal. TODO format to be defined </p>
  453. </div>
  454. </div>
  455. <a class="anchor" id="aea77208248b36c7b8c9dc57ee68ae97a"></a>
  456. <div class="memitem">
  457. <div class="memproto">
  458. <table class="mlabels">
  459. <tr>
  460. <td class="mlabels-left">
  461. <table class="memname">
  462. <tr>
  463. <td class="memname">virtual int64_t Plugin::d_getUniqueId </td>
  464. <td>(</td>
  465. <td class="paramname"></td><td>)</td>
  466. <td> const</td>
  467. </tr>
  468. </table>
  469. </td>
  470. <td class="mlabels-right">
  471. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  472. </tr>
  473. </table>
  474. </div><div class="memdoc">
  475. <p>Get the plugin unique Id. This value is used by LADSPA, DSSI and VST plugin formats. </p>
  476. </div>
  477. </div>
  478. <a class="anchor" id="a3f93a8eb97db3dc9984c357c5ffca5ec"></a>
  479. <div class="memitem">
  480. <div class="memproto">
  481. <table class="mlabels">
  482. <tr>
  483. <td class="mlabels-left">
  484. <table class="memname">
  485. <tr>
  486. <td class="memname">virtual void Plugin::d_initParameter </td>
  487. <td>(</td>
  488. <td class="paramtype">uint32_t&#160;</td>
  489. <td class="paramname"><em>index</em>, </td>
  490. </tr>
  491. <tr>
  492. <td class="paramkey"></td>
  493. <td></td>
  494. <td class="paramtype"><a class="el" href="structParameter.html">Parameter</a> &amp;&#160;</td>
  495. <td class="paramname"><em>parameter</em>&#160;</td>
  496. </tr>
  497. <tr>
  498. <td></td>
  499. <td>)</td>
  500. <td></td><td></td>
  501. </tr>
  502. </table>
  503. </td>
  504. <td class="mlabels-right">
  505. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  506. </tr>
  507. </table>
  508. </div><div class="memdoc">
  509. <p>Initialize the parameter <em>index</em>. This function will be called once, shortly after the plugin is created. </p>
  510. </div>
  511. </div>
  512. <a class="anchor" id="a8a1792b7c5c6a3fd9cd626c7156ec3b6"></a>
  513. <div class="memitem">
  514. <div class="memproto">
  515. <table class="mlabels">
  516. <tr>
  517. <td class="mlabels-left">
  518. <table class="memname">
  519. <tr>
  520. <td class="memname">virtual void Plugin::d_initProgramName </td>
  521. <td>(</td>
  522. <td class="paramtype">uint32_t&#160;</td>
  523. <td class="paramname"><em>index</em>, </td>
  524. </tr>
  525. <tr>
  526. <td class="paramkey"></td>
  527. <td></td>
  528. <td class="paramtype">d_string &amp;&#160;</td>
  529. <td class="paramname"><em>programName</em>&#160;</td>
  530. </tr>
  531. <tr>
  532. <td></td>
  533. <td>)</td>
  534. <td></td><td></td>
  535. </tr>
  536. </table>
  537. </td>
  538. <td class="mlabels-right">
  539. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  540. </tr>
  541. </table>
  542. </div><div class="memdoc">
  543. <p>Set the name of the program <em>index</em>. This function will be called once, shortly after the plugin is created. Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_PROGRAMS is enabled. </p>
  544. </div>
  545. </div>
  546. <a class="anchor" id="a65f9f9d4a30b0a56dfa42703c0b4db76"></a>
  547. <div class="memitem">
  548. <div class="memproto">
  549. <table class="mlabels">
  550. <tr>
  551. <td class="mlabels-left">
  552. <table class="memname">
  553. <tr>
  554. <td class="memname">virtual void Plugin::d_initState </td>
  555. <td>(</td>
  556. <td class="paramtype">uint32_t&#160;</td>
  557. <td class="paramname"><em>index</em>, </td>
  558. </tr>
  559. <tr>
  560. <td class="paramkey"></td>
  561. <td></td>
  562. <td class="paramtype">d_string &amp;&#160;</td>
  563. <td class="paramname"><em>stateKey</em>, </td>
  564. </tr>
  565. <tr>
  566. <td class="paramkey"></td>
  567. <td></td>
  568. <td class="paramtype">d_string &amp;&#160;</td>
  569. <td class="paramname"><em>defaultStateValue</em>&#160;</td>
  570. </tr>
  571. <tr>
  572. <td></td>
  573. <td>)</td>
  574. <td></td><td></td>
  575. </tr>
  576. </table>
  577. </td>
  578. <td class="mlabels-right">
  579. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  580. </tr>
  581. </table>
  582. </div><div class="memdoc">
  583. <p>Set the state key and default value of <em>index</em>. This function will be called once, shortly after the plugin is created. Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_STATE is enabled. </p>
  584. </div>
  585. </div>
  586. <a class="anchor" id="af088f855761b67489f19f42fbb585088"></a>
  587. <div class="memitem">
  588. <div class="memproto">
  589. <table class="mlabels">
  590. <tr>
  591. <td class="mlabels-left">
  592. <table class="memname">
  593. <tr>
  594. <td class="memname">virtual float Plugin::d_getParameterValue </td>
  595. <td>(</td>
  596. <td class="paramtype">uint32_t&#160;</td>
  597. <td class="paramname"><em>index</em></td><td>)</td>
  598. <td> const</td>
  599. </tr>
  600. </table>
  601. </td>
  602. <td class="mlabels-right">
  603. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  604. </tr>
  605. </table>
  606. </div><div class="memdoc">
  607. <p>Get the current value of a parameter. The host may call this function from any context, including realtime processing. </p>
  608. </div>
  609. </div>
  610. <a class="anchor" id="a4cdd613f58a013429094700f3d83904a"></a>
  611. <div class="memitem">
  612. <div class="memproto">
  613. <table class="mlabels">
  614. <tr>
  615. <td class="mlabels-left">
  616. <table class="memname">
  617. <tr>
  618. <td class="memname">virtual void Plugin::d_setParameterValue </td>
  619. <td>(</td>
  620. <td class="paramtype">uint32_t&#160;</td>
  621. <td class="paramname"><em>index</em>, </td>
  622. </tr>
  623. <tr>
  624. <td class="paramkey"></td>
  625. <td></td>
  626. <td class="paramtype">float&#160;</td>
  627. <td class="paramname"><em>value</em>&#160;</td>
  628. </tr>
  629. <tr>
  630. <td></td>
  631. <td>)</td>
  632. <td></td><td></td>
  633. </tr>
  634. </table>
  635. </td>
  636. <td class="mlabels-right">
  637. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  638. </tr>
  639. </table>
  640. </div><div class="memdoc">
  641. <p>Change a parameter value. The host may call this function from any context, including realtime processing. When a parameter is marked as automable, you must ensure no non-realtime operations are called. </p><dl class="section note"><dt>Note</dt><dd>This function will only be called for parameter inputs. </dd></dl>
  642. </div>
  643. </div>
  644. <a class="anchor" id="a1d001e50781b35df23f6d9a218f5f804"></a>
  645. <div class="memitem">
  646. <div class="memproto">
  647. <table class="mlabels">
  648. <tr>
  649. <td class="mlabels-left">
  650. <table class="memname">
  651. <tr>
  652. <td class="memname">virtual void Plugin::d_setProgram </td>
  653. <td>(</td>
  654. <td class="paramtype">uint32_t&#160;</td>
  655. <td class="paramname"><em>index</em></td><td>)</td>
  656. <td></td>
  657. </tr>
  658. </table>
  659. </td>
  660. <td class="mlabels-right">
  661. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  662. </tr>
  663. </table>
  664. </div><div class="memdoc">
  665. <p>Change the currently used program to <em>index</em>. The host may call this function from any context, including realtime processing. Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_PROGRAMS is enabled. </p>
  666. </div>
  667. </div>
  668. <a class="anchor" id="ad9c46a36cab96f52a0370043093bca68"></a>
  669. <div class="memitem">
  670. <div class="memproto">
  671. <table class="mlabels">
  672. <tr>
  673. <td class="mlabels-left">
  674. <table class="memname">
  675. <tr>
  676. <td class="memname">virtual void Plugin::d_setState </td>
  677. <td>(</td>
  678. <td class="paramtype">const char *&#160;</td>
  679. <td class="paramname"><em>key</em>, </td>
  680. </tr>
  681. <tr>
  682. <td class="paramkey"></td>
  683. <td></td>
  684. <td class="paramtype">const char *&#160;</td>
  685. <td class="paramname"><em>value</em>&#160;</td>
  686. </tr>
  687. <tr>
  688. <td></td>
  689. <td>)</td>
  690. <td></td><td></td>
  691. </tr>
  692. </table>
  693. </td>
  694. <td class="mlabels-right">
  695. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  696. </tr>
  697. </table>
  698. </div><div class="memdoc">
  699. <p>Change an internal state <em>key</em> to <em>value</em>. Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_STATE is enabled. </p>
  700. </div>
  701. </div>
  702. <a class="anchor" id="a15df4876febf5909fe040d401fc704d0"></a>
  703. <div class="memitem">
  704. <div class="memproto">
  705. <table class="mlabels">
  706. <tr>
  707. <td class="mlabels-left">
  708. <table class="memname">
  709. <tr>
  710. <td class="memname">virtual void Plugin::d_activate </td>
  711. <td>(</td>
  712. <td class="paramname"></td><td>)</td>
  713. <td></td>
  714. </tr>
  715. </table>
  716. </td>
  717. <td class="mlabels-right">
  718. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  719. </tr>
  720. </table>
  721. </div><div class="memdoc">
  722. <p>Activate this plugin. </p>
  723. </div>
  724. </div>
  725. <a class="anchor" id="a5c008d623e558e7266aecaff22fc787a"></a>
  726. <div class="memitem">
  727. <div class="memproto">
  728. <table class="mlabels">
  729. <tr>
  730. <td class="mlabels-left">
  731. <table class="memname">
  732. <tr>
  733. <td class="memname">virtual void Plugin::d_deactivate </td>
  734. <td>(</td>
  735. <td class="paramname"></td><td>)</td>
  736. <td></td>
  737. </tr>
  738. </table>
  739. </td>
  740. <td class="mlabels-right">
  741. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  742. </tr>
  743. </table>
  744. </div><div class="memdoc">
  745. <p>Deactivate this plugin. </p>
  746. </div>
  747. </div>
  748. <a class="anchor" id="af67102a7c6d19a8530ce0e3293e55667"></a>
  749. <div class="memitem">
  750. <div class="memproto">
  751. <table class="mlabels">
  752. <tr>
  753. <td class="mlabels-left">
  754. <table class="memname">
  755. <tr>
  756. <td class="memname">virtual void Plugin::d_run </td>
  757. <td>(</td>
  758. <td class="paramtype">const float **&#160;</td>
  759. <td class="paramname"><em>inputs</em>, </td>
  760. </tr>
  761. <tr>
  762. <td class="paramkey"></td>
  763. <td></td>
  764. <td class="paramtype">float **&#160;</td>
  765. <td class="paramname"><em>outputs</em>, </td>
  766. </tr>
  767. <tr>
  768. <td class="paramkey"></td>
  769. <td></td>
  770. <td class="paramtype">uint32_t&#160;</td>
  771. <td class="paramname"><em>frames</em>, </td>
  772. </tr>
  773. <tr>
  774. <td class="paramkey"></td>
  775. <td></td>
  776. <td class="paramtype">const <a class="el" href="structMidiEvent.html">MidiEvent</a> *&#160;</td>
  777. <td class="paramname"><em>midiEvents</em>, </td>
  778. </tr>
  779. <tr>
  780. <td class="paramkey"></td>
  781. <td></td>
  782. <td class="paramtype">uint32_t&#160;</td>
  783. <td class="paramname"><em>midiEventCount</em>&#160;</td>
  784. </tr>
  785. <tr>
  786. <td></td>
  787. <td>)</td>
  788. <td></td><td></td>
  789. </tr>
  790. </table>
  791. </td>
  792. <td class="mlabels-right">
  793. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  794. </tr>
  795. </table>
  796. </div><div class="memdoc">
  797. <p>Run/process function for plugins with MIDI input. </p><dl class="section note"><dt>Note</dt><dd>: Some parameters might be null if there are no audio inputs/outputs or MIDI events. </dd></dl>
  798. </div>
  799. </div>
  800. <a class="anchor" id="a2c6ac454e24b667d54eaaf63da252627"></a>
  801. <div class="memitem">
  802. <div class="memproto">
  803. <table class="mlabels">
  804. <tr>
  805. <td class="mlabels-left">
  806. <table class="memname">
  807. <tr>
  808. <td class="memname">virtual void Plugin::d_bufferSizeChanged </td>
  809. <td>(</td>
  810. <td class="paramtype">uint32_t&#160;</td>
  811. <td class="paramname"><em>newBufferSize</em></td><td>)</td>
  812. <td></td>
  813. </tr>
  814. </table>
  815. </td>
  816. <td class="mlabels-right">
  817. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  818. </tr>
  819. </table>
  820. </div><div class="memdoc">
  821. <p>Optional callback to inform the plugin about a buffer size change. This function will only be called when the plugin is deactivated. </p><dl class="section note"><dt>Note</dt><dd>: This value is only a hint! Hosts might call <a class="el" href="classPlugin.html#af67102a7c6d19a8530ce0e3293e55667">d_run()</a> with a higher or lower number of frames. </dd></dl>
  822. <dl class="section see"><dt>See also</dt><dd><a class="el" href="classPlugin.html#aa0feb17c3dcf13a106505eb6d6b2a3ac">d_getBufferSize()</a> </dd></dl>
  823. </div>
  824. </div>
  825. <a class="anchor" id="a469b53e1c1417a32d766cf96d1b3c45e"></a>
  826. <div class="memitem">
  827. <div class="memproto">
  828. <table class="mlabels">
  829. <tr>
  830. <td class="mlabels-left">
  831. <table class="memname">
  832. <tr>
  833. <td class="memname">virtual void Plugin::d_sampleRateChanged </td>
  834. <td>(</td>
  835. <td class="paramtype">double&#160;</td>
  836. <td class="paramname"><em>newSampleRate</em></td><td>)</td>
  837. <td></td>
  838. </tr>
  839. </table>
  840. </td>
  841. <td class="mlabels-right">
  842. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  843. </tr>
  844. </table>
  845. </div><div class="memdoc">
  846. <p>Optional callback to inform the plugin about a sample rate change. This function will only be called when the plugin is deactivated. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classPlugin.html#ace888940905e8875284e07c52bf7404f">d_getSampleRate()</a> </dd></dl>
  847. </div>
  848. </div>
  849. <hr/>The documentation for this class was generated from the following file:<ul>
  850. <li>distrho/<a class="el" href="DistrhoPlugin_8hpp_source.html">DistrhoPlugin.hpp</a></li>
  851. </ul>
  852. </div><!-- contents -->
  853. <!-- start footer part -->
  854. <hr class="footer"/><address class="footer"><small>
  855. Generated on Tue Apr 21 2015 15:18:54 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
  856. <img class="footer" src="doxygen.png" alt="doxygen"/>
  857. </a> 1.8.8
  858. </small></address>
  859. </body>
  860. </html>