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.

2167 lines
100KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>DISTRHO Plugin Framework: Plugin Class Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="search/searchdata.js"></script>
  14. <script type="text/javascript" src="search/search.js"></script>
  15. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  16. </head>
  17. <body>
  18. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  19. <div id="titlearea">
  20. <table cellspacing="0" cellpadding="0">
  21. <tbody>
  22. <tr style="height: 56px;">
  23. <td id="projectalign" style="padding-left: 0.5em;">
  24. <div id="projectname">DISTRHO Plugin Framework
  25. </div>
  26. </td>
  27. </tr>
  28. </tbody>
  29. </table>
  30. </div>
  31. <!-- end header part -->
  32. <!-- Generated by Doxygen 1.8.17 -->
  33. <script type="text/javascript">
  34. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  35. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  36. /* @license-end */
  37. </script>
  38. <script type="text/javascript" src="menudata.js"></script>
  39. <script type="text/javascript" src="menu.js"></script>
  40. <script type="text/javascript">
  41. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  42. $(function() {
  43. initMenu('',true,false,'search.php','Search');
  44. $(document).ready(function() { init_search(); });
  45. });
  46. /* @license-end */</script>
  47. <div id="main-nav"></div>
  48. <!-- window showing the filter options -->
  49. <div id="MSearchSelectWindow"
  50. onmouseover="return searchBox.OnSearchSelectShow()"
  51. onmouseout="return searchBox.OnSearchSelectHide()"
  52. onkeydown="return searchBox.OnSearchSelectKey(event)">
  53. </div>
  54. <!-- iframe showing the search results (closed by default) -->
  55. <div id="MSearchResultsWindow">
  56. <iframe src="javascript:void(0)" frameborder="0"
  57. name="MSearchResults" id="MSearchResults">
  58. </iframe>
  59. </div>
  60. </div><!-- top -->
  61. <div class="header">
  62. <div class="summary">
  63. <a href="#pub-methods">Public Member Functions</a> &#124;
  64. <a href="#pro-methods">Protected Member Functions</a> &#124;
  65. <a href="#friends">Friends</a> &#124;
  66. <a href="classPlugin-members.html">List of all members</a> </div>
  67. <div class="headertitle">
  68. <div class="title">Plugin Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__MainClasses.html">Main Classes</a></div></div> </div>
  69. </div><!--header-->
  70. <div class="contents">
  71. <p><code>#include &lt;<a class="el" href="DistrhoPlugin_8hpp_source.html">DistrhoPlugin.hpp</a>&gt;</code></p>
  72. <table class="memberdecls">
  73. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  74. Public Member Functions</h2></td></tr>
  75. <tr class="memitem:acb5a3632da5a5c4110172a3a78e1fd32"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#acb5a3632da5a5c4110172a3a78e1fd32">Plugin</a> (uint32_t parameterCount, uint32_t programCount, uint32_t stateCount)</td></tr>
  76. <tr class="separator:acb5a3632da5a5c4110172a3a78e1fd32"><td class="memSeparator" colspan="2">&#160;</td></tr>
  77. <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>
  78. <tr class="separator:a89814b8f0b1c91e49140d42eb8331383"><td class="memSeparator" colspan="2">&#160;</td></tr>
  79. <tr class="memitem:a2643e638f62cfd4990247ec66bed60d2"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a2643e638f62cfd4990247ec66bed60d2">getBufferSize</a> () const noexcept</td></tr>
  80. <tr class="separator:a2643e638f62cfd4990247ec66bed60d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  81. <tr class="memitem:a3e162cfe8f1c52bf09805fd327bcc3c4"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a3e162cfe8f1c52bf09805fd327bcc3c4">getSampleRate</a> () const noexcept</td></tr>
  82. <tr class="separator:a3e162cfe8f1c52bf09805fd327bcc3c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  83. <tr class="memitem:ae85d602c430b1a4361a88d714d3a42c1"><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#ae85d602c430b1a4361a88d714d3a42c1">getTimePosition</a> () const noexcept</td></tr>
  84. <tr class="separator:ae85d602c430b1a4361a88d714d3a42c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  85. <tr class="memitem:a2a70c4ec55d74d9bc26862975d8df8a7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a2a70c4ec55d74d9bc26862975d8df8a7">setLatency</a> (uint32_t frames) noexcept</td></tr>
  86. <tr class="separator:a2a70c4ec55d74d9bc26862975d8df8a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  87. <tr class="memitem:a0467eef817ac130cbbe1c0fbe09660c6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a0467eef817ac130cbbe1c0fbe09660c6">writeMidiEvent</a> (const <a class="el" href="structMidiEvent.html">MidiEvent</a> &amp;midiEvent) noexcept</td></tr>
  88. <tr class="separator:a0467eef817ac130cbbe1c0fbe09660c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  89. <tr class="memitem:a581614e1d301ee613a988855c61b2517"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a581614e1d301ee613a988855c61b2517">canRequestParameterValueChanges</a> () const noexcept</td></tr>
  90. <tr class="separator:a581614e1d301ee613a988855c61b2517"><td class="memSeparator" colspan="2">&#160;</td></tr>
  91. <tr class="memitem:ae65d8603022c09d1ce2ee5cf568de70f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ae65d8603022c09d1ce2ee5cf568de70f">requestParameterValueChange</a> (uint32_t index, float value) noexcept</td></tr>
  92. <tr class="separator:ae65d8603022c09d1ce2ee5cf568de70f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  93. <tr class="memitem:acb5a3632da5a5c4110172a3a78e1fd32"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#acb5a3632da5a5c4110172a3a78e1fd32">Plugin</a> (uint32_t parameterCount, uint32_t programCount, uint32_t stateCount)</td></tr>
  94. <tr class="separator:acb5a3632da5a5c4110172a3a78e1fd32"><td class="memSeparator" colspan="2">&#160;</td></tr>
  95. <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>
  96. <tr class="separator:a89814b8f0b1c91e49140d42eb8331383"><td class="memSeparator" colspan="2">&#160;</td></tr>
  97. <tr class="memitem:a2643e638f62cfd4990247ec66bed60d2"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a2643e638f62cfd4990247ec66bed60d2">getBufferSize</a> () const noexcept</td></tr>
  98. <tr class="separator:a2643e638f62cfd4990247ec66bed60d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  99. <tr class="memitem:a3e162cfe8f1c52bf09805fd327bcc3c4"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a3e162cfe8f1c52bf09805fd327bcc3c4">getSampleRate</a> () const noexcept</td></tr>
  100. <tr class="separator:a3e162cfe8f1c52bf09805fd327bcc3c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  101. <tr class="memitem:ae85d602c430b1a4361a88d714d3a42c1"><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#ae85d602c430b1a4361a88d714d3a42c1">getTimePosition</a> () const noexcept</td></tr>
  102. <tr class="separator:ae85d602c430b1a4361a88d714d3a42c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  103. <tr class="memitem:a2a70c4ec55d74d9bc26862975d8df8a7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a2a70c4ec55d74d9bc26862975d8df8a7">setLatency</a> (uint32_t frames) noexcept</td></tr>
  104. <tr class="separator:a2a70c4ec55d74d9bc26862975d8df8a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  105. <tr class="memitem:a0467eef817ac130cbbe1c0fbe09660c6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a0467eef817ac130cbbe1c0fbe09660c6">writeMidiEvent</a> (const <a class="el" href="structMidiEvent.html">MidiEvent</a> &amp;midiEvent) noexcept</td></tr>
  106. <tr class="separator:a0467eef817ac130cbbe1c0fbe09660c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  107. </table><table class="memberdecls">
  108. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
  109. Protected Member Functions</h2></td></tr>
  110. <tr class="memitem:aebb5df5cde162462dc460d4fd45dae75"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#aebb5df5cde162462dc460d4fd45dae75">getName</a> () const</td></tr>
  111. <tr class="separator:aebb5df5cde162462dc460d4fd45dae75"><td class="memSeparator" colspan="2">&#160;</td></tr>
  112. <tr class="memitem:a00f7945c16149db6845fbcc2af729f4f"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a00f7945c16149db6845fbcc2af729f4f">getLabel</a> () const =0</td></tr>
  113. <tr class="separator:a00f7945c16149db6845fbcc2af729f4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  114. <tr class="memitem:a30db5eef9de617f4c81d5c6925facea3"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a30db5eef9de617f4c81d5c6925facea3">getDescription</a> () const</td></tr>
  115. <tr class="separator:a30db5eef9de617f4c81d5c6925facea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  116. <tr class="memitem:a955832840de786a7a22798f0ef451c5d"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a955832840de786a7a22798f0ef451c5d">getMaker</a> () const =0</td></tr>
  117. <tr class="separator:a955832840de786a7a22798f0ef451c5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  118. <tr class="memitem:ad12c681ce31004da0badd609763f45c5"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ad12c681ce31004da0badd609763f45c5">getHomePage</a> () const</td></tr>
  119. <tr class="separator:ad12c681ce31004da0badd609763f45c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  120. <tr class="memitem:a686a3c92a376a185d6fd97efd59125d1"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a686a3c92a376a185d6fd97efd59125d1">getLicense</a> () const =0</td></tr>
  121. <tr class="separator:a686a3c92a376a185d6fd97efd59125d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. <tr class="memitem:abae540dd93caf4834270358a8aad334a"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#abae540dd93caf4834270358a8aad334a">getVersion</a> () const =0</td></tr>
  123. <tr class="separator:abae540dd93caf4834270358a8aad334a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  124. <tr class="memitem:ad6ff8c80227d5ceebd40b96f3be29a66"><td class="memItemLeft" align="right" valign="top">virtual int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ad6ff8c80227d5ceebd40b96f3be29a66">getUniqueId</a> () const =0</td></tr>
  125. <tr class="separator:ad6ff8c80227d5ceebd40b96f3be29a66"><td class="memSeparator" colspan="2">&#160;</td></tr>
  126. <tr class="memitem:a75f30935198a0acba25f4ea92af72dc4"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a75f30935198a0acba25f4ea92af72dc4">initAudioPort</a> (bool input, uint32_t index, <a class="el" href="structAudioPort.html">AudioPort</a> &amp;port)</td></tr>
  127. <tr class="separator:a75f30935198a0acba25f4ea92af72dc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  128. <tr class="memitem:a5b0ec59527a1c2f4b01f17fc8c18ea8b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a5b0ec59527a1c2f4b01f17fc8c18ea8b">initParameter</a> (uint32_t index, <a class="el" href="structParameter.html">Parameter</a> &amp;parameter)=0</td></tr>
  129. <tr class="separator:a5b0ec59527a1c2f4b01f17fc8c18ea8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  130. <tr class="memitem:a71b876c8157b087b3552960f2877a44d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a71b876c8157b087b3552960f2877a44d">initPortGroup</a> (uint32_t groupId, <a class="el" href="structPortGroup.html">PortGroup</a> &amp;portGroup)</td></tr>
  131. <tr class="separator:a71b876c8157b087b3552960f2877a44d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  132. <tr class="memitem:a54d66af3111541b7c118f9749ef0231b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a54d66af3111541b7c118f9749ef0231b">initProgramName</a> (uint32_t index, <a class="el" href="classString.html">String</a> &amp;programName)=0</td></tr>
  133. <tr class="separator:a54d66af3111541b7c118f9749ef0231b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  134. <tr class="memitem:ae301a970a8b5cff3c7ecef927ea20080"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ae301a970a8b5cff3c7ecef927ea20080">initState</a> (uint32_t index, <a class="el" href="classString.html">String</a> &amp;stateKey, <a class="el" href="classString.html">String</a> &amp;defaultStateValue)=0</td></tr>
  135. <tr class="separator:ae301a970a8b5cff3c7ecef927ea20080"><td class="memSeparator" colspan="2">&#160;</td></tr>
  136. <tr class="memitem:a2d1da98c90568bb4547662bc4f02c31f"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a2d1da98c90568bb4547662bc4f02c31f">getParameterValue</a> (uint32_t index) const =0</td></tr>
  137. <tr class="separator:a2d1da98c90568bb4547662bc4f02c31f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  138. <tr class="memitem:a6911a881fabb9eca9daf0eadbaad8599"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a6911a881fabb9eca9daf0eadbaad8599">setParameterValue</a> (uint32_t index, float value)=0</td></tr>
  139. <tr class="separator:a6911a881fabb9eca9daf0eadbaad8599"><td class="memSeparator" colspan="2">&#160;</td></tr>
  140. <tr class="memitem:ab629f35c60406d6f2c0b9d530e67cf09"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ab629f35c60406d6f2c0b9d530e67cf09">loadProgram</a> (uint32_t index)=0</td></tr>
  141. <tr class="separator:ab629f35c60406d6f2c0b9d530e67cf09"><td class="memSeparator" colspan="2">&#160;</td></tr>
  142. <tr class="memitem:a84af70cd84fa4c3054caaa8affaab8f1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classString.html">String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a84af70cd84fa4c3054caaa8affaab8f1">getState</a> (const char *key) const =0</td></tr>
  143. <tr class="separator:a84af70cd84fa4c3054caaa8affaab8f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144. <tr class="memitem:ad25ed64a2f00f48c86d2ae0016ea3e59"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ad25ed64a2f00f48c86d2ae0016ea3e59">setState</a> (const char *key, const char *value)=0</td></tr>
  145. <tr class="separator:ad25ed64a2f00f48c86d2ae0016ea3e59"><td class="memSeparator" colspan="2">&#160;</td></tr>
  146. <tr class="memitem:aa5c1262f5ca20536bb5850fdd6faa22c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#aa5c1262f5ca20536bb5850fdd6faa22c">activate</a> ()</td></tr>
  147. <tr class="separator:aa5c1262f5ca20536bb5850fdd6faa22c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  148. <tr class="memitem:aa089a56572bc8f1cb7e4b538c0d19c46"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#aa089a56572bc8f1cb7e4b538c0d19c46">deactivate</a> ()</td></tr>
  149. <tr class="separator:aa089a56572bc8f1cb7e4b538c0d19c46"><td class="memSeparator" colspan="2">&#160;</td></tr>
  150. <tr class="memitem:a0a969c78f8455ac6ba65fa42e8c498f6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">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>
  151. <tr class="separator:a0a969c78f8455ac6ba65fa42e8c498f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  152. <tr class="memitem:a9f6c8ad6b054056649d0250e527e1297"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a9f6c8ad6b054056649d0250e527e1297">bufferSizeChanged</a> (uint32_t newBufferSize)</td></tr>
  153. <tr class="separator:a9f6c8ad6b054056649d0250e527e1297"><td class="memSeparator" colspan="2">&#160;</td></tr>
  154. <tr class="memitem:a2fcbfa1893f44e661d0d8cd53391dadc"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a2fcbfa1893f44e661d0d8cd53391dadc">sampleRateChanged</a> (double newSampleRate)</td></tr>
  155. <tr class="separator:a2fcbfa1893f44e661d0d8cd53391dadc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  156. <tr class="memitem:aebb5df5cde162462dc460d4fd45dae75"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#aebb5df5cde162462dc460d4fd45dae75">getName</a> () const</td></tr>
  157. <tr class="separator:aebb5df5cde162462dc460d4fd45dae75"><td class="memSeparator" colspan="2">&#160;</td></tr>
  158. <tr class="memitem:a00f7945c16149db6845fbcc2af729f4f"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a00f7945c16149db6845fbcc2af729f4f">getLabel</a> () const =0</td></tr>
  159. <tr class="separator:a00f7945c16149db6845fbcc2af729f4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  160. <tr class="memitem:a30db5eef9de617f4c81d5c6925facea3"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a30db5eef9de617f4c81d5c6925facea3">getDescription</a> () const</td></tr>
  161. <tr class="separator:a30db5eef9de617f4c81d5c6925facea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  162. <tr class="memitem:a955832840de786a7a22798f0ef451c5d"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a955832840de786a7a22798f0ef451c5d">getMaker</a> () const =0</td></tr>
  163. <tr class="separator:a955832840de786a7a22798f0ef451c5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  164. <tr class="memitem:ad12c681ce31004da0badd609763f45c5"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ad12c681ce31004da0badd609763f45c5">getHomePage</a> () const</td></tr>
  165. <tr class="separator:ad12c681ce31004da0badd609763f45c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  166. <tr class="memitem:a686a3c92a376a185d6fd97efd59125d1"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a686a3c92a376a185d6fd97efd59125d1">getLicense</a> () const =0</td></tr>
  167. <tr class="separator:a686a3c92a376a185d6fd97efd59125d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  168. <tr class="memitem:abae540dd93caf4834270358a8aad334a"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#abae540dd93caf4834270358a8aad334a">getVersion</a> () const =0</td></tr>
  169. <tr class="separator:abae540dd93caf4834270358a8aad334a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  170. <tr class="memitem:ad6ff8c80227d5ceebd40b96f3be29a66"><td class="memItemLeft" align="right" valign="top">virtual int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ad6ff8c80227d5ceebd40b96f3be29a66">getUniqueId</a> () const =0</td></tr>
  171. <tr class="separator:ad6ff8c80227d5ceebd40b96f3be29a66"><td class="memSeparator" colspan="2">&#160;</td></tr>
  172. <tr class="memitem:a75f30935198a0acba25f4ea92af72dc4"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a75f30935198a0acba25f4ea92af72dc4">initAudioPort</a> (bool input, uint32_t index, <a class="el" href="structAudioPort.html">AudioPort</a> &amp;port)</td></tr>
  173. <tr class="separator:a75f30935198a0acba25f4ea92af72dc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  174. <tr class="memitem:a5b0ec59527a1c2f4b01f17fc8c18ea8b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a5b0ec59527a1c2f4b01f17fc8c18ea8b">initParameter</a> (uint32_t index, <a class="el" href="structParameter.html">Parameter</a> &amp;parameter)=0</td></tr>
  175. <tr class="separator:a5b0ec59527a1c2f4b01f17fc8c18ea8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  176. <tr class="memitem:a54d66af3111541b7c118f9749ef0231b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a54d66af3111541b7c118f9749ef0231b">initProgramName</a> (uint32_t index, <a class="el" href="classString.html">String</a> &amp;programName)=0</td></tr>
  177. <tr class="separator:a54d66af3111541b7c118f9749ef0231b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  178. <tr class="memitem:ae301a970a8b5cff3c7ecef927ea20080"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ae301a970a8b5cff3c7ecef927ea20080">initState</a> (uint32_t index, <a class="el" href="classString.html">String</a> &amp;stateKey, <a class="el" href="classString.html">String</a> &amp;defaultStateValue)=0</td></tr>
  179. <tr class="separator:ae301a970a8b5cff3c7ecef927ea20080"><td class="memSeparator" colspan="2">&#160;</td></tr>
  180. <tr class="memitem:a2d1da98c90568bb4547662bc4f02c31f"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a2d1da98c90568bb4547662bc4f02c31f">getParameterValue</a> (uint32_t index) const =0</td></tr>
  181. <tr class="separator:a2d1da98c90568bb4547662bc4f02c31f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  182. <tr class="memitem:a6911a881fabb9eca9daf0eadbaad8599"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a6911a881fabb9eca9daf0eadbaad8599">setParameterValue</a> (uint32_t index, float value)=0</td></tr>
  183. <tr class="separator:a6911a881fabb9eca9daf0eadbaad8599"><td class="memSeparator" colspan="2">&#160;</td></tr>
  184. <tr class="memitem:ab629f35c60406d6f2c0b9d530e67cf09"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ab629f35c60406d6f2c0b9d530e67cf09">loadProgram</a> (uint32_t index)=0</td></tr>
  185. <tr class="separator:ab629f35c60406d6f2c0b9d530e67cf09"><td class="memSeparator" colspan="2">&#160;</td></tr>
  186. <tr class="memitem:a84af70cd84fa4c3054caaa8affaab8f1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classString.html">String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a84af70cd84fa4c3054caaa8affaab8f1">getState</a> (const char *key) const =0</td></tr>
  187. <tr class="separator:a84af70cd84fa4c3054caaa8affaab8f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  188. <tr class="memitem:ad25ed64a2f00f48c86d2ae0016ea3e59"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#ad25ed64a2f00f48c86d2ae0016ea3e59">setState</a> (const char *key, const char *value)=0</td></tr>
  189. <tr class="separator:ad25ed64a2f00f48c86d2ae0016ea3e59"><td class="memSeparator" colspan="2">&#160;</td></tr>
  190. <tr class="memitem:aa5c1262f5ca20536bb5850fdd6faa22c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#aa5c1262f5ca20536bb5850fdd6faa22c">activate</a> ()</td></tr>
  191. <tr class="separator:aa5c1262f5ca20536bb5850fdd6faa22c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  192. <tr class="memitem:aa089a56572bc8f1cb7e4b538c0d19c46"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#aa089a56572bc8f1cb7e4b538c0d19c46">deactivate</a> ()</td></tr>
  193. <tr class="separator:aa089a56572bc8f1cb7e4b538c0d19c46"><td class="memSeparator" colspan="2">&#160;</td></tr>
  194. <tr class="memitem:a0a969c78f8455ac6ba65fa42e8c498f6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">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>
  195. <tr class="separator:a0a969c78f8455ac6ba65fa42e8c498f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  196. <tr class="memitem:a9f6c8ad6b054056649d0250e527e1297"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a9f6c8ad6b054056649d0250e527e1297">bufferSizeChanged</a> (uint32_t newBufferSize)</td></tr>
  197. <tr class="separator:a9f6c8ad6b054056649d0250e527e1297"><td class="memSeparator" colspan="2">&#160;</td></tr>
  198. <tr class="memitem:a2fcbfa1893f44e661d0d8cd53391dadc"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlugin.html#a2fcbfa1893f44e661d0d8cd53391dadc">sampleRateChanged</a> (double newSampleRate)</td></tr>
  199. <tr class="separator:a2fcbfa1893f44e661d0d8cd53391dadc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  200. </table><table class="memberdecls">
  201. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
  202. Friends</h2></td></tr>
  203. <tr class="memitem:a2f5c27fa6eebc862797da6179cc6927b"><td class="memItemLeft" align="right" valign="top"><a id="a2f5c27fa6eebc862797da6179cc6927b"></a>
  204. class&#160;</td><td class="memItemRight" valign="bottom"><b>PluginExporter</b></td></tr>
  205. <tr class="separator:a2f5c27fa6eebc862797da6179cc6927b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  206. </table>
  207. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  208. <div class="textblock"><p>DPF <a class="el" href="classPlugin.html">Plugin</a> class from where plugin instances are created.</p>
  209. <p>The public methods (Host state) are called from the plugin to get or set host information.<br />
  210. They can be called from a plugin instance at anytime unless stated otherwise.<br />
  211. All other methods are to be implemented by the plugin and will be called by the host.</p>
  212. <p>Shortly after a plugin instance is created, the various init* functions will be called by the host.<br />
  213. Host will call <a class="el" href="classPlugin.html#aa5c1262f5ca20536bb5850fdd6faa22c">activate()</a> before <a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">run()</a>, and <a class="el" href="classPlugin.html#aa089a56572bc8f1cb7e4b538c0d19c46">deactivate()</a> before the plugin instance is destroyed.<br />
  214. The host may call deactivate right after activate and vice-versa, but never activate/deactivate consecutively.<br />
  215. There is no limit on how many times <a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">run()</a> is called, only that activate/deactivate will be called in between.</p>
  216. <p>The buffer size and sample rate values will remain constant between activate and deactivate.<br />
  217. Buffer size is only a hint though, the host might call <a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">run()</a> with a higher or lower number of frames.</p>
  218. <p>Some of this class functions are only available according to some macros.</p>
  219. <p>DISTRHO_PLUGIN_WANT_PROGRAMS activates program related features.<br />
  220. When enabled you need to implement <a class="el" href="classPlugin.html#a54d66af3111541b7c118f9749ef0231b">initProgramName()</a> and <a class="el" href="classPlugin.html#ab629f35c60406d6f2c0b9d530e67cf09">loadProgram()</a>.</p>
  221. <p>DISTRHO_PLUGIN_WANT_STATE activates internal state features.<br />
  222. When enabled you need to implement initStateKey() and <a class="el" href="classPlugin.html#ad25ed64a2f00f48c86d2ae0016ea3e59">setState()</a>.</p>
  223. <p>The process function <a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">run()</a> changes wherever DISTRHO_PLUGIN_WANT_MIDI_INPUT is enabled or not.<br />
  224. When enabled it provides midi input events. </p>
  225. </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  226. <a id="acb5a3632da5a5c4110172a3a78e1fd32"></a>
  227. <h2 class="memtitle"><span class="permalink"><a href="#acb5a3632da5a5c4110172a3a78e1fd32">&#9670;&nbsp;</a></span>Plugin() <span class="overload">[1/2]</span></h2>
  228. <div class="memitem">
  229. <div class="memproto">
  230. <table class="memname">
  231. <tr>
  232. <td class="memname">Plugin::Plugin </td>
  233. <td>(</td>
  234. <td class="paramtype">uint32_t&#160;</td>
  235. <td class="paramname"><em>parameterCount</em>, </td>
  236. </tr>
  237. <tr>
  238. <td class="paramkey"></td>
  239. <td></td>
  240. <td class="paramtype">uint32_t&#160;</td>
  241. <td class="paramname"><em>programCount</em>, </td>
  242. </tr>
  243. <tr>
  244. <td class="paramkey"></td>
  245. <td></td>
  246. <td class="paramtype">uint32_t&#160;</td>
  247. <td class="paramname"><em>stateCount</em>&#160;</td>
  248. </tr>
  249. <tr>
  250. <td></td>
  251. <td>)</td>
  252. <td></td><td></td>
  253. </tr>
  254. </table>
  255. </div><div class="memdoc">
  256. <p><a class="el" href="classPlugin.html">Plugin</a> class constructor.<br />
  257. You must set all parameter values to their defaults, matching <a class="el" href="structParameterRanges.html#aa0aba68115bcfff25c35b2da2f7aed4c">ParameterRanges::def</a>. </p>
  258. </div>
  259. </div>
  260. <a id="a89814b8f0b1c91e49140d42eb8331383"></a>
  261. <h2 class="memtitle"><span class="permalink"><a href="#a89814b8f0b1c91e49140d42eb8331383">&#9670;&nbsp;</a></span>~Plugin() <span class="overload">[1/2]</span></h2>
  262. <div class="memitem">
  263. <div class="memproto">
  264. <table class="mlabels">
  265. <tr>
  266. <td class="mlabels-left">
  267. <table class="memname">
  268. <tr>
  269. <td class="memname">virtual Plugin::~Plugin </td>
  270. <td>(</td>
  271. <td class="paramname"></td><td>)</td>
  272. <td></td>
  273. </tr>
  274. </table>
  275. </td>
  276. <td class="mlabels-right">
  277. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  278. </tr>
  279. </table>
  280. </div><div class="memdoc">
  281. <p>Destructor. </p>
  282. </div>
  283. </div>
  284. <a id="acb5a3632da5a5c4110172a3a78e1fd32"></a>
  285. <h2 class="memtitle"><span class="permalink"><a href="#acb5a3632da5a5c4110172a3a78e1fd32">&#9670;&nbsp;</a></span>Plugin() <span class="overload">[2/2]</span></h2>
  286. <div class="memitem">
  287. <div class="memproto">
  288. <table class="memname">
  289. <tr>
  290. <td class="memname">Plugin::Plugin </td>
  291. <td>(</td>
  292. <td class="paramtype">uint32_t&#160;</td>
  293. <td class="paramname"><em>parameterCount</em>, </td>
  294. </tr>
  295. <tr>
  296. <td class="paramkey"></td>
  297. <td></td>
  298. <td class="paramtype">uint32_t&#160;</td>
  299. <td class="paramname"><em>programCount</em>, </td>
  300. </tr>
  301. <tr>
  302. <td class="paramkey"></td>
  303. <td></td>
  304. <td class="paramtype">uint32_t&#160;</td>
  305. <td class="paramname"><em>stateCount</em>&#160;</td>
  306. </tr>
  307. <tr>
  308. <td></td>
  309. <td>)</td>
  310. <td></td><td></td>
  311. </tr>
  312. </table>
  313. </div><div class="memdoc">
  314. <p><a class="el" href="classPlugin.html">Plugin</a> class constructor.<br />
  315. You must set all parameter values to their defaults, matching <a class="el" href="structParameterRanges.html#aa0aba68115bcfff25c35b2da2f7aed4c">ParameterRanges::def</a>. </p>
  316. </div>
  317. </div>
  318. <a id="a89814b8f0b1c91e49140d42eb8331383"></a>
  319. <h2 class="memtitle"><span class="permalink"><a href="#a89814b8f0b1c91e49140d42eb8331383">&#9670;&nbsp;</a></span>~Plugin() <span class="overload">[2/2]</span></h2>
  320. <div class="memitem">
  321. <div class="memproto">
  322. <table class="mlabels">
  323. <tr>
  324. <td class="mlabels-left">
  325. <table class="memname">
  326. <tr>
  327. <td class="memname">virtual Plugin::~Plugin </td>
  328. <td>(</td>
  329. <td class="paramname"></td><td>)</td>
  330. <td></td>
  331. </tr>
  332. </table>
  333. </td>
  334. <td class="mlabels-right">
  335. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  336. </tr>
  337. </table>
  338. </div><div class="memdoc">
  339. <p>Destructor. </p>
  340. </div>
  341. </div>
  342. <h2 class="groupheader">Member Function Documentation</h2>
  343. <a id="a2643e638f62cfd4990247ec66bed60d2"></a>
  344. <h2 class="memtitle"><span class="permalink"><a href="#a2643e638f62cfd4990247ec66bed60d2">&#9670;&nbsp;</a></span>getBufferSize() <span class="overload">[1/2]</span></h2>
  345. <div class="memitem">
  346. <div class="memproto">
  347. <table class="mlabels">
  348. <tr>
  349. <td class="mlabels-left">
  350. <table class="memname">
  351. <tr>
  352. <td class="memname">uint32_t Plugin::getBufferSize </td>
  353. <td>(</td>
  354. <td class="paramname"></td><td>)</td>
  355. <td> const</td>
  356. </tr>
  357. </table>
  358. </td>
  359. <td class="mlabels-right">
  360. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  361. </tr>
  362. </table>
  363. </div><div class="memdoc">
  364. <p>Get the current buffer size that will probably be used during processing, in frames.<br />
  365. This value will remain constant between activate and deactivate. </p><dl class="section note"><dt>Note</dt><dd>This value is only a hint!<br />
  366. Hosts might call <a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">run()</a> with a higher or lower number of frames. </dd></dl>
  367. <dl class="section see"><dt>See also</dt><dd><a class="el" href="classPlugin.html#a9f6c8ad6b054056649d0250e527e1297">bufferSizeChanged(uint32_t)</a> </dd></dl>
  368. </div>
  369. </div>
  370. <a id="a3e162cfe8f1c52bf09805fd327bcc3c4"></a>
  371. <h2 class="memtitle"><span class="permalink"><a href="#a3e162cfe8f1c52bf09805fd327bcc3c4">&#9670;&nbsp;</a></span>getSampleRate() <span class="overload">[1/2]</span></h2>
  372. <div class="memitem">
  373. <div class="memproto">
  374. <table class="mlabels">
  375. <tr>
  376. <td class="mlabels-left">
  377. <table class="memname">
  378. <tr>
  379. <td class="memname">double Plugin::getSampleRate </td>
  380. <td>(</td>
  381. <td class="paramname"></td><td>)</td>
  382. <td> const</td>
  383. </tr>
  384. </table>
  385. </td>
  386. <td class="mlabels-right">
  387. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  388. </tr>
  389. </table>
  390. </div><div class="memdoc">
  391. <p>Get the current sample rate that will be used during processing.<br />
  392. 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#a2fcbfa1893f44e661d0d8cd53391dadc">sampleRateChanged(double)</a> </dd></dl>
  393. </div>
  394. </div>
  395. <a id="ae85d602c430b1a4361a88d714d3a42c1"></a>
  396. <h2 class="memtitle"><span class="permalink"><a href="#ae85d602c430b1a4361a88d714d3a42c1">&#9670;&nbsp;</a></span>getTimePosition() <span class="overload">[1/2]</span></h2>
  397. <div class="memitem">
  398. <div class="memproto">
  399. <table class="mlabels">
  400. <tr>
  401. <td class="mlabels-left">
  402. <table class="memname">
  403. <tr>
  404. <td class="memname">const <a class="el" href="structTimePosition.html">TimePosition</a>&amp; Plugin::getTimePosition </td>
  405. <td>(</td>
  406. <td class="paramname"></td><td>)</td>
  407. <td> const</td>
  408. </tr>
  409. </table>
  410. </td>
  411. <td class="mlabels-right">
  412. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  413. </tr>
  414. </table>
  415. </div><div class="memdoc">
  416. <p>Get the current host transport time position.<br />
  417. This function should only be called during <a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">run()</a>.<br />
  418. 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><a class="el" href="structTimePosition.html">TimePosition</a> is not supported in LADSPA and DSSI plugin formats. </dd></dl>
  419. </div>
  420. </div>
  421. <a id="a2a70c4ec55d74d9bc26862975d8df8a7"></a>
  422. <h2 class="memtitle"><span class="permalink"><a href="#a2a70c4ec55d74d9bc26862975d8df8a7">&#9670;&nbsp;</a></span>setLatency() <span class="overload">[1/2]</span></h2>
  423. <div class="memitem">
  424. <div class="memproto">
  425. <table class="mlabels">
  426. <tr>
  427. <td class="mlabels-left">
  428. <table class="memname">
  429. <tr>
  430. <td class="memname">void Plugin::setLatency </td>
  431. <td>(</td>
  432. <td class="paramtype">uint32_t&#160;</td>
  433. <td class="paramname"><em>frames</em></td><td>)</td>
  434. <td></td>
  435. </tr>
  436. </table>
  437. </td>
  438. <td class="mlabels-right">
  439. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  440. </tr>
  441. </table>
  442. </div><div class="memdoc">
  443. <p>Change the plugin audio output latency to <em>frames</em>.<br />
  444. This function should only be called in the constructor, <a class="el" href="classPlugin.html#aa5c1262f5ca20536bb5850fdd6faa22c">activate()</a> and <a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">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>
  445. </div>
  446. </div>
  447. <a id="a0467eef817ac130cbbe1c0fbe09660c6"></a>
  448. <h2 class="memtitle"><span class="permalink"><a href="#a0467eef817ac130cbbe1c0fbe09660c6">&#9670;&nbsp;</a></span>writeMidiEvent() <span class="overload">[1/2]</span></h2>
  449. <div class="memitem">
  450. <div class="memproto">
  451. <table class="mlabels">
  452. <tr>
  453. <td class="mlabels-left">
  454. <table class="memname">
  455. <tr>
  456. <td class="memname">bool Plugin::writeMidiEvent </td>
  457. <td>(</td>
  458. <td class="paramtype">const <a class="el" href="structMidiEvent.html">MidiEvent</a> &amp;&#160;</td>
  459. <td class="paramname"><em>midiEvent</em></td><td>)</td>
  460. <td></td>
  461. </tr>
  462. </table>
  463. </td>
  464. <td class="mlabels-right">
  465. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  466. </tr>
  467. </table>
  468. </div><div class="memdoc">
  469. <p>Write a MIDI output event.<br />
  470. This function must only be called during <a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">run()</a>.<br />
  471. 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#a0a969c78f8455ac6ba65fa42e8c498f6">run()</a>. </p>
  472. </div>
  473. </div>
  474. <a id="a581614e1d301ee613a988855c61b2517"></a>
  475. <h2 class="memtitle"><span class="permalink"><a href="#a581614e1d301ee613a988855c61b2517">&#9670;&nbsp;</a></span>canRequestParameterValueChanges()</h2>
  476. <div class="memitem">
  477. <div class="memproto">
  478. <table class="mlabels">
  479. <tr>
  480. <td class="mlabels-left">
  481. <table class="memname">
  482. <tr>
  483. <td class="memname">bool Plugin::canRequestParameterValueChanges </td>
  484. <td>(</td>
  485. <td class="paramname"></td><td>)</td>
  486. <td> const</td>
  487. </tr>
  488. </table>
  489. </td>
  490. <td class="mlabels-right">
  491. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  492. </tr>
  493. </table>
  494. </div><div class="memdoc">
  495. <p>Check if parameter value change requests will work with the current plugin host. </p><dl class="section note"><dt>Note</dt><dd>This function is only available if DISTRHO_PLUGIN_WANT_PARAMETER_VALUE_CHANGE_REQUEST is enabled. </dd></dl>
  496. <dl class="section see"><dt>See also</dt><dd><a class="el" href="classPlugin.html#ae65d8603022c09d1ce2ee5cf568de70f">requestParameterValueChange(uint32_t, float)</a> </dd></dl>
  497. </div>
  498. </div>
  499. <a id="ae65d8603022c09d1ce2ee5cf568de70f"></a>
  500. <h2 class="memtitle"><span class="permalink"><a href="#ae65d8603022c09d1ce2ee5cf568de70f">&#9670;&nbsp;</a></span>requestParameterValueChange()</h2>
  501. <div class="memitem">
  502. <div class="memproto">
  503. <table class="mlabels">
  504. <tr>
  505. <td class="mlabels-left">
  506. <table class="memname">
  507. <tr>
  508. <td class="memname">bool Plugin::requestParameterValueChange </td>
  509. <td>(</td>
  510. <td class="paramtype">uint32_t&#160;</td>
  511. <td class="paramname"><em>index</em>, </td>
  512. </tr>
  513. <tr>
  514. <td class="paramkey"></td>
  515. <td></td>
  516. <td class="paramtype">float&#160;</td>
  517. <td class="paramname"><em>value</em>&#160;</td>
  518. </tr>
  519. <tr>
  520. <td></td>
  521. <td>)</td>
  522. <td></td><td></td>
  523. </tr>
  524. </table>
  525. </td>
  526. <td class="mlabels-right">
  527. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  528. </tr>
  529. </table>
  530. </div><div class="memdoc">
  531. <p>Request a parameter value change from the host. If successful, this function will automatically trigger a parameter update on the <a class="el" href="classUI.html">UI</a> side as well. This function can fail, for example if the host is busy with the parameter for read-only automation. Some hosts simply do not have this functionality, which can be verified with <a class="el" href="classPlugin.html#a581614e1d301ee613a988855c61b2517">canRequestParameterValueChanges()</a>. </p><dl class="section note"><dt>Note</dt><dd>This function is only available if DISTRHO_PLUGIN_WANT_PARAMETER_VALUE_CHANGE_REQUEST is enabled. </dd></dl>
  532. </div>
  533. </div>
  534. <a id="aebb5df5cde162462dc460d4fd45dae75"></a>
  535. <h2 class="memtitle"><span class="permalink"><a href="#aebb5df5cde162462dc460d4fd45dae75">&#9670;&nbsp;</a></span>getName() <span class="overload">[1/2]</span></h2>
  536. <div class="memitem">
  537. <div class="memproto">
  538. <table class="mlabels">
  539. <tr>
  540. <td class="mlabels-left">
  541. <table class="memname">
  542. <tr>
  543. <td class="memname">virtual const char* Plugin::getName </td>
  544. <td>(</td>
  545. <td class="paramname"></td><td>)</td>
  546. <td> const</td>
  547. </tr>
  548. </table>
  549. </td>
  550. <td class="mlabels-right">
  551. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  552. </tr>
  553. </table>
  554. </div><div class="memdoc">
  555. <p>Get the plugin name.<br />
  556. Returns DISTRHO_PLUGIN_NAME by default. </p>
  557. </div>
  558. </div>
  559. <a id="a00f7945c16149db6845fbcc2af729f4f"></a>
  560. <h2 class="memtitle"><span class="permalink"><a href="#a00f7945c16149db6845fbcc2af729f4f">&#9670;&nbsp;</a></span>getLabel() <span class="overload">[1/2]</span></h2>
  561. <div class="memitem">
  562. <div class="memproto">
  563. <table class="mlabels">
  564. <tr>
  565. <td class="mlabels-left">
  566. <table class="memname">
  567. <tr>
  568. <td class="memname">virtual const char* Plugin::getLabel </td>
  569. <td>(</td>
  570. <td class="paramname"></td><td>)</td>
  571. <td> const</td>
  572. </tr>
  573. </table>
  574. </td>
  575. <td class="mlabels-right">
  576. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  577. </tr>
  578. </table>
  579. </div><div class="memdoc">
  580. <p>Get the plugin label.<br />
  581. This label is a short restricted name consisting of only _, a-z, A-Z and 0-9 characters. </p>
  582. </div>
  583. </div>
  584. <a id="a30db5eef9de617f4c81d5c6925facea3"></a>
  585. <h2 class="memtitle"><span class="permalink"><a href="#a30db5eef9de617f4c81d5c6925facea3">&#9670;&nbsp;</a></span>getDescription() <span class="overload">[1/2]</span></h2>
  586. <div class="memitem">
  587. <div class="memproto">
  588. <table class="mlabels">
  589. <tr>
  590. <td class="mlabels-left">
  591. <table class="memname">
  592. <tr>
  593. <td class="memname">virtual const char* Plugin::getDescription </td>
  594. <td>(</td>
  595. <td class="paramname"></td><td>)</td>
  596. <td> const</td>
  597. </tr>
  598. </table>
  599. </td>
  600. <td class="mlabels-right">
  601. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  602. </tr>
  603. </table>
  604. </div><div class="memdoc">
  605. <p>Get an extensive comment/description about the plugin.<br />
  606. Optional, returns nothing by default. </p>
  607. </div>
  608. </div>
  609. <a id="a955832840de786a7a22798f0ef451c5d"></a>
  610. <h2 class="memtitle"><span class="permalink"><a href="#a955832840de786a7a22798f0ef451c5d">&#9670;&nbsp;</a></span>getMaker() <span class="overload">[1/2]</span></h2>
  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 const char* Plugin::getMaker </td>
  619. <td>(</td>
  620. <td class="paramname"></td><td>)</td>
  621. <td> const</td>
  622. </tr>
  623. </table>
  624. </td>
  625. <td class="mlabels-right">
  626. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  627. </tr>
  628. </table>
  629. </div><div class="memdoc">
  630. <p>Get the plugin author/maker. </p>
  631. </div>
  632. </div>
  633. <a id="ad12c681ce31004da0badd609763f45c5"></a>
  634. <h2 class="memtitle"><span class="permalink"><a href="#ad12c681ce31004da0badd609763f45c5">&#9670;&nbsp;</a></span>getHomePage() <span class="overload">[1/2]</span></h2>
  635. <div class="memitem">
  636. <div class="memproto">
  637. <table class="mlabels">
  638. <tr>
  639. <td class="mlabels-left">
  640. <table class="memname">
  641. <tr>
  642. <td class="memname">virtual const char* Plugin::getHomePage </td>
  643. <td>(</td>
  644. <td class="paramname"></td><td>)</td>
  645. <td> const</td>
  646. </tr>
  647. </table>
  648. </td>
  649. <td class="mlabels-right">
  650. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  651. </tr>
  652. </table>
  653. </div><div class="memdoc">
  654. <p>Get the plugin homepage.<br />
  655. Optional, returns nothing by default. </p>
  656. </div>
  657. </div>
  658. <a id="a686a3c92a376a185d6fd97efd59125d1"></a>
  659. <h2 class="memtitle"><span class="permalink"><a href="#a686a3c92a376a185d6fd97efd59125d1">&#9670;&nbsp;</a></span>getLicense() <span class="overload">[1/2]</span></h2>
  660. <div class="memitem">
  661. <div class="memproto">
  662. <table class="mlabels">
  663. <tr>
  664. <td class="mlabels-left">
  665. <table class="memname">
  666. <tr>
  667. <td class="memname">virtual const char* Plugin::getLicense </td>
  668. <td>(</td>
  669. <td class="paramname"></td><td>)</td>
  670. <td> const</td>
  671. </tr>
  672. </table>
  673. </td>
  674. <td class="mlabels-right">
  675. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  676. </tr>
  677. </table>
  678. </div><div class="memdoc">
  679. <p>Get the plugin license (a single line of text or a URL).<br />
  680. For commercial plugins this should return some short copyright information. </p>
  681. </div>
  682. </div>
  683. <a id="abae540dd93caf4834270358a8aad334a"></a>
  684. <h2 class="memtitle"><span class="permalink"><a href="#abae540dd93caf4834270358a8aad334a">&#9670;&nbsp;</a></span>getVersion() <span class="overload">[1/2]</span></h2>
  685. <div class="memitem">
  686. <div class="memproto">
  687. <table class="mlabels">
  688. <tr>
  689. <td class="mlabels-left">
  690. <table class="memname">
  691. <tr>
  692. <td class="memname">virtual uint32_t Plugin::getVersion </td>
  693. <td>(</td>
  694. <td class="paramname"></td><td>)</td>
  695. <td> const</td>
  696. </tr>
  697. </table>
  698. </td>
  699. <td class="mlabels-right">
  700. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  701. </tr>
  702. </table>
  703. </div><div class="memdoc">
  704. <p>Get the plugin version, in hexadecimal. </p><dl class="section see"><dt>See also</dt><dd>d_version() </dd></dl>
  705. </div>
  706. </div>
  707. <a id="ad6ff8c80227d5ceebd40b96f3be29a66"></a>
  708. <h2 class="memtitle"><span class="permalink"><a href="#ad6ff8c80227d5ceebd40b96f3be29a66">&#9670;&nbsp;</a></span>getUniqueId() <span class="overload">[1/2]</span></h2>
  709. <div class="memitem">
  710. <div class="memproto">
  711. <table class="mlabels">
  712. <tr>
  713. <td class="mlabels-left">
  714. <table class="memname">
  715. <tr>
  716. <td class="memname">virtual int64_t Plugin::getUniqueId </td>
  717. <td>(</td>
  718. <td class="paramname"></td><td>)</td>
  719. <td> const</td>
  720. </tr>
  721. </table>
  722. </td>
  723. <td class="mlabels-right">
  724. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  725. </tr>
  726. </table>
  727. </div><div class="memdoc">
  728. <p>Get the plugin unique Id.<br />
  729. This value is used by LADSPA, DSSI and VST plugin formats. </p><dl class="section see"><dt>See also</dt><dd>d_cconst() </dd></dl>
  730. </div>
  731. </div>
  732. <a id="a75f30935198a0acba25f4ea92af72dc4"></a>
  733. <h2 class="memtitle"><span class="permalink"><a href="#a75f30935198a0acba25f4ea92af72dc4">&#9670;&nbsp;</a></span>initAudioPort() <span class="overload">[1/2]</span></h2>
  734. <div class="memitem">
  735. <div class="memproto">
  736. <table class="mlabels">
  737. <tr>
  738. <td class="mlabels-left">
  739. <table class="memname">
  740. <tr>
  741. <td class="memname">virtual void Plugin::initAudioPort </td>
  742. <td>(</td>
  743. <td class="paramtype">bool&#160;</td>
  744. <td class="paramname"><em>input</em>, </td>
  745. </tr>
  746. <tr>
  747. <td class="paramkey"></td>
  748. <td></td>
  749. <td class="paramtype">uint32_t&#160;</td>
  750. <td class="paramname"><em>index</em>, </td>
  751. </tr>
  752. <tr>
  753. <td class="paramkey"></td>
  754. <td></td>
  755. <td class="paramtype"><a class="el" href="structAudioPort.html">AudioPort</a> &amp;&#160;</td>
  756. <td class="paramname"><em>port</em>&#160;</td>
  757. </tr>
  758. <tr>
  759. <td></td>
  760. <td>)</td>
  761. <td></td><td></td>
  762. </tr>
  763. </table>
  764. </td>
  765. <td class="mlabels-right">
  766. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  767. </tr>
  768. </table>
  769. </div><div class="memdoc">
  770. <p>Initialize the audio port <em>index</em>.<br />
  771. This function will be called once, shortly after the plugin is created. </p>
  772. </div>
  773. </div>
  774. <a id="a5b0ec59527a1c2f4b01f17fc8c18ea8b"></a>
  775. <h2 class="memtitle"><span class="permalink"><a href="#a5b0ec59527a1c2f4b01f17fc8c18ea8b">&#9670;&nbsp;</a></span>initParameter() <span class="overload">[1/2]</span></h2>
  776. <div class="memitem">
  777. <div class="memproto">
  778. <table class="mlabels">
  779. <tr>
  780. <td class="mlabels-left">
  781. <table class="memname">
  782. <tr>
  783. <td class="memname">virtual void Plugin::initParameter </td>
  784. <td>(</td>
  785. <td class="paramtype">uint32_t&#160;</td>
  786. <td class="paramname"><em>index</em>, </td>
  787. </tr>
  788. <tr>
  789. <td class="paramkey"></td>
  790. <td></td>
  791. <td class="paramtype"><a class="el" href="structParameter.html">Parameter</a> &amp;&#160;</td>
  792. <td class="paramname"><em>parameter</em>&#160;</td>
  793. </tr>
  794. <tr>
  795. <td></td>
  796. <td>)</td>
  797. <td></td><td></td>
  798. </tr>
  799. </table>
  800. </td>
  801. <td class="mlabels-right">
  802. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  803. </tr>
  804. </table>
  805. </div><div class="memdoc">
  806. <p>Initialize the parameter <em>index</em>.<br />
  807. This function will be called once, shortly after the plugin is created. </p>
  808. </div>
  809. </div>
  810. <a id="a71b876c8157b087b3552960f2877a44d"></a>
  811. <h2 class="memtitle"><span class="permalink"><a href="#a71b876c8157b087b3552960f2877a44d">&#9670;&nbsp;</a></span>initPortGroup()</h2>
  812. <div class="memitem">
  813. <div class="memproto">
  814. <table class="mlabels">
  815. <tr>
  816. <td class="mlabels-left">
  817. <table class="memname">
  818. <tr>
  819. <td class="memname">virtual void Plugin::initPortGroup </td>
  820. <td>(</td>
  821. <td class="paramtype">uint32_t&#160;</td>
  822. <td class="paramname"><em>groupId</em>, </td>
  823. </tr>
  824. <tr>
  825. <td class="paramkey"></td>
  826. <td></td>
  827. <td class="paramtype"><a class="el" href="structPortGroup.html">PortGroup</a> &amp;&#160;</td>
  828. <td class="paramname"><em>portGroup</em>&#160;</td>
  829. </tr>
  830. <tr>
  831. <td></td>
  832. <td>)</td>
  833. <td></td><td></td>
  834. </tr>
  835. </table>
  836. </td>
  837. <td class="mlabels-right">
  838. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  839. </tr>
  840. </table>
  841. </div><div class="memdoc">
  842. <p>Initialize the port group <em>groupId</em>.<br />
  843. This function will be called once, shortly after the plugin is created and all audio ports and parameters have been enumerated. </p>
  844. </div>
  845. </div>
  846. <a id="a54d66af3111541b7c118f9749ef0231b"></a>
  847. <h2 class="memtitle"><span class="permalink"><a href="#a54d66af3111541b7c118f9749ef0231b">&#9670;&nbsp;</a></span>initProgramName() <span class="overload">[1/2]</span></h2>
  848. <div class="memitem">
  849. <div class="memproto">
  850. <table class="mlabels">
  851. <tr>
  852. <td class="mlabels-left">
  853. <table class="memname">
  854. <tr>
  855. <td class="memname">virtual void Plugin::initProgramName </td>
  856. <td>(</td>
  857. <td class="paramtype">uint32_t&#160;</td>
  858. <td class="paramname"><em>index</em>, </td>
  859. </tr>
  860. <tr>
  861. <td class="paramkey"></td>
  862. <td></td>
  863. <td class="paramtype"><a class="el" href="classString.html">String</a> &amp;&#160;</td>
  864. <td class="paramname"><em>programName</em>&#160;</td>
  865. </tr>
  866. <tr>
  867. <td></td>
  868. <td>)</td>
  869. <td></td><td></td>
  870. </tr>
  871. </table>
  872. </td>
  873. <td class="mlabels-right">
  874. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  875. </tr>
  876. </table>
  877. </div><div class="memdoc">
  878. <p>Set the name of the program <em>index</em>.<br />
  879. This function will be called once, shortly after the plugin is created.<br />
  880. Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_PROGRAMS is enabled. </p>
  881. </div>
  882. </div>
  883. <a id="ae301a970a8b5cff3c7ecef927ea20080"></a>
  884. <h2 class="memtitle"><span class="permalink"><a href="#ae301a970a8b5cff3c7ecef927ea20080">&#9670;&nbsp;</a></span>initState() <span class="overload">[1/2]</span></h2>
  885. <div class="memitem">
  886. <div class="memproto">
  887. <table class="mlabels">
  888. <tr>
  889. <td class="mlabels-left">
  890. <table class="memname">
  891. <tr>
  892. <td class="memname">virtual void Plugin::initState </td>
  893. <td>(</td>
  894. <td class="paramtype">uint32_t&#160;</td>
  895. <td class="paramname"><em>index</em>, </td>
  896. </tr>
  897. <tr>
  898. <td class="paramkey"></td>
  899. <td></td>
  900. <td class="paramtype"><a class="el" href="classString.html">String</a> &amp;&#160;</td>
  901. <td class="paramname"><em>stateKey</em>, </td>
  902. </tr>
  903. <tr>
  904. <td class="paramkey"></td>
  905. <td></td>
  906. <td class="paramtype"><a class="el" href="classString.html">String</a> &amp;&#160;</td>
  907. <td class="paramname"><em>defaultStateValue</em>&#160;</td>
  908. </tr>
  909. <tr>
  910. <td></td>
  911. <td>)</td>
  912. <td></td><td></td>
  913. </tr>
  914. </table>
  915. </td>
  916. <td class="mlabels-right">
  917. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  918. </tr>
  919. </table>
  920. </div><div class="memdoc">
  921. <p>Set the state key and default value of <em>index</em>.<br />
  922. This function will be called once, shortly after the plugin is created.<br />
  923. Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_STATE is enabled. </p>
  924. </div>
  925. </div>
  926. <a id="a2d1da98c90568bb4547662bc4f02c31f"></a>
  927. <h2 class="memtitle"><span class="permalink"><a href="#a2d1da98c90568bb4547662bc4f02c31f">&#9670;&nbsp;</a></span>getParameterValue() <span class="overload">[1/2]</span></h2>
  928. <div class="memitem">
  929. <div class="memproto">
  930. <table class="mlabels">
  931. <tr>
  932. <td class="mlabels-left">
  933. <table class="memname">
  934. <tr>
  935. <td class="memname">virtual float Plugin::getParameterValue </td>
  936. <td>(</td>
  937. <td class="paramtype">uint32_t&#160;</td>
  938. <td class="paramname"><em>index</em></td><td>)</td>
  939. <td> const</td>
  940. </tr>
  941. </table>
  942. </td>
  943. <td class="mlabels-right">
  944. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  945. </tr>
  946. </table>
  947. </div><div class="memdoc">
  948. <p>Get the current value of a parameter.<br />
  949. The host may call this function from any context, including realtime processing. </p>
  950. </div>
  951. </div>
  952. <a id="a6911a881fabb9eca9daf0eadbaad8599"></a>
  953. <h2 class="memtitle"><span class="permalink"><a href="#a6911a881fabb9eca9daf0eadbaad8599">&#9670;&nbsp;</a></span>setParameterValue() <span class="overload">[1/2]</span></h2>
  954. <div class="memitem">
  955. <div class="memproto">
  956. <table class="mlabels">
  957. <tr>
  958. <td class="mlabels-left">
  959. <table class="memname">
  960. <tr>
  961. <td class="memname">virtual void Plugin::setParameterValue </td>
  962. <td>(</td>
  963. <td class="paramtype">uint32_t&#160;</td>
  964. <td class="paramname"><em>index</em>, </td>
  965. </tr>
  966. <tr>
  967. <td class="paramkey"></td>
  968. <td></td>
  969. <td class="paramtype">float&#160;</td>
  970. <td class="paramname"><em>value</em>&#160;</td>
  971. </tr>
  972. <tr>
  973. <td></td>
  974. <td>)</td>
  975. <td></td><td></td>
  976. </tr>
  977. </table>
  978. </td>
  979. <td class="mlabels-right">
  980. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  981. </tr>
  982. </table>
  983. </div><div class="memdoc">
  984. <p>Change a parameter value.<br />
  985. The host may call this function from any context, including realtime processing.<br />
  986. When a parameter is marked as automable, you must ensure no non-realtime operations are performed. </p><dl class="section note"><dt>Note</dt><dd>This function will only be called for parameter inputs. </dd></dl>
  987. </div>
  988. </div>
  989. <a id="ab629f35c60406d6f2c0b9d530e67cf09"></a>
  990. <h2 class="memtitle"><span class="permalink"><a href="#ab629f35c60406d6f2c0b9d530e67cf09">&#9670;&nbsp;</a></span>loadProgram() <span class="overload">[1/2]</span></h2>
  991. <div class="memitem">
  992. <div class="memproto">
  993. <table class="mlabels">
  994. <tr>
  995. <td class="mlabels-left">
  996. <table class="memname">
  997. <tr>
  998. <td class="memname">virtual void Plugin::loadProgram </td>
  999. <td>(</td>
  1000. <td class="paramtype">uint32_t&#160;</td>
  1001. <td class="paramname"><em>index</em></td><td>)</td>
  1002. <td></td>
  1003. </tr>
  1004. </table>
  1005. </td>
  1006. <td class="mlabels-right">
  1007. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1008. </tr>
  1009. </table>
  1010. </div><div class="memdoc">
  1011. <p>Load a program.<br />
  1012. The host may call this function from any context, including realtime processing.<br />
  1013. Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_PROGRAMS is enabled. </p>
  1014. </div>
  1015. </div>
  1016. <a id="a84af70cd84fa4c3054caaa8affaab8f1"></a>
  1017. <h2 class="memtitle"><span class="permalink"><a href="#a84af70cd84fa4c3054caaa8affaab8f1">&#9670;&nbsp;</a></span>getState() <span class="overload">[1/2]</span></h2>
  1018. <div class="memitem">
  1019. <div class="memproto">
  1020. <table class="mlabels">
  1021. <tr>
  1022. <td class="mlabels-left">
  1023. <table class="memname">
  1024. <tr>
  1025. <td class="memname">virtual <a class="el" href="classString.html">String</a> Plugin::getState </td>
  1026. <td>(</td>
  1027. <td class="paramtype">const char *&#160;</td>
  1028. <td class="paramname"><em>key</em></td><td>)</td>
  1029. <td> const</td>
  1030. </tr>
  1031. </table>
  1032. </td>
  1033. <td class="mlabels-right">
  1034. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1035. </tr>
  1036. </table>
  1037. </div><div class="memdoc">
  1038. <p>Get the value of an internal state.<br />
  1039. The host may call this function from any non-realtime context.<br />
  1040. Must be implemented by your plugin class if DISTRHO_PLUGIN_WANT_FULL_STATE is enabled. </p><dl class="section note"><dt>Note</dt><dd>The use of this function breaks compatibility with the DSSI format. </dd></dl>
  1041. </div>
  1042. </div>
  1043. <a id="ad25ed64a2f00f48c86d2ae0016ea3e59"></a>
  1044. <h2 class="memtitle"><span class="permalink"><a href="#ad25ed64a2f00f48c86d2ae0016ea3e59">&#9670;&nbsp;</a></span>setState() <span class="overload">[1/2]</span></h2>
  1045. <div class="memitem">
  1046. <div class="memproto">
  1047. <table class="mlabels">
  1048. <tr>
  1049. <td class="mlabels-left">
  1050. <table class="memname">
  1051. <tr>
  1052. <td class="memname">virtual void Plugin::setState </td>
  1053. <td>(</td>
  1054. <td class="paramtype">const char *&#160;</td>
  1055. <td class="paramname"><em>key</em>, </td>
  1056. </tr>
  1057. <tr>
  1058. <td class="paramkey"></td>
  1059. <td></td>
  1060. <td class="paramtype">const char *&#160;</td>
  1061. <td class="paramname"><em>value</em>&#160;</td>
  1062. </tr>
  1063. <tr>
  1064. <td></td>
  1065. <td>)</td>
  1066. <td></td><td></td>
  1067. </tr>
  1068. </table>
  1069. </td>
  1070. <td class="mlabels-right">
  1071. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1072. </tr>
  1073. </table>
  1074. </div><div class="memdoc">
  1075. <p>Change an internal state <em>key</em> to <em>value</em>.<br />
  1076. Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_STATE is enabled. </p>
  1077. </div>
  1078. </div>
  1079. <a id="aa5c1262f5ca20536bb5850fdd6faa22c"></a>
  1080. <h2 class="memtitle"><span class="permalink"><a href="#aa5c1262f5ca20536bb5850fdd6faa22c">&#9670;&nbsp;</a></span>activate() <span class="overload">[1/2]</span></h2>
  1081. <div class="memitem">
  1082. <div class="memproto">
  1083. <table class="mlabels">
  1084. <tr>
  1085. <td class="mlabels-left">
  1086. <table class="memname">
  1087. <tr>
  1088. <td class="memname">virtual void Plugin::activate </td>
  1089. <td>(</td>
  1090. <td class="paramname"></td><td>)</td>
  1091. <td></td>
  1092. </tr>
  1093. </table>
  1094. </td>
  1095. <td class="mlabels-right">
  1096. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  1097. </tr>
  1098. </table>
  1099. </div><div class="memdoc">
  1100. <p>Activate this plugin. </p>
  1101. </div>
  1102. </div>
  1103. <a id="aa089a56572bc8f1cb7e4b538c0d19c46"></a>
  1104. <h2 class="memtitle"><span class="permalink"><a href="#aa089a56572bc8f1cb7e4b538c0d19c46">&#9670;&nbsp;</a></span>deactivate() <span class="overload">[1/2]</span></h2>
  1105. <div class="memitem">
  1106. <div class="memproto">
  1107. <table class="mlabels">
  1108. <tr>
  1109. <td class="mlabels-left">
  1110. <table class="memname">
  1111. <tr>
  1112. <td class="memname">virtual void Plugin::deactivate </td>
  1113. <td>(</td>
  1114. <td class="paramname"></td><td>)</td>
  1115. <td></td>
  1116. </tr>
  1117. </table>
  1118. </td>
  1119. <td class="mlabels-right">
  1120. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  1121. </tr>
  1122. </table>
  1123. </div><div class="memdoc">
  1124. <p>Deactivate this plugin. </p>
  1125. </div>
  1126. </div>
  1127. <a id="a0a969c78f8455ac6ba65fa42e8c498f6"></a>
  1128. <h2 class="memtitle"><span class="permalink"><a href="#a0a969c78f8455ac6ba65fa42e8c498f6">&#9670;&nbsp;</a></span>run() <span class="overload">[1/2]</span></h2>
  1129. <div class="memitem">
  1130. <div class="memproto">
  1131. <table class="mlabels">
  1132. <tr>
  1133. <td class="mlabels-left">
  1134. <table class="memname">
  1135. <tr>
  1136. <td class="memname">virtual void Plugin::run </td>
  1137. <td>(</td>
  1138. <td class="paramtype">const float **&#160;</td>
  1139. <td class="paramname"><em>inputs</em>, </td>
  1140. </tr>
  1141. <tr>
  1142. <td class="paramkey"></td>
  1143. <td></td>
  1144. <td class="paramtype">float **&#160;</td>
  1145. <td class="paramname"><em>outputs</em>, </td>
  1146. </tr>
  1147. <tr>
  1148. <td class="paramkey"></td>
  1149. <td></td>
  1150. <td class="paramtype">uint32_t&#160;</td>
  1151. <td class="paramname"><em>frames</em>, </td>
  1152. </tr>
  1153. <tr>
  1154. <td class="paramkey"></td>
  1155. <td></td>
  1156. <td class="paramtype">const <a class="el" href="structMidiEvent.html">MidiEvent</a> *&#160;</td>
  1157. <td class="paramname"><em>midiEvents</em>, </td>
  1158. </tr>
  1159. <tr>
  1160. <td class="paramkey"></td>
  1161. <td></td>
  1162. <td class="paramtype">uint32_t&#160;</td>
  1163. <td class="paramname"><em>midiEventCount</em>&#160;</td>
  1164. </tr>
  1165. <tr>
  1166. <td></td>
  1167. <td>)</td>
  1168. <td></td><td></td>
  1169. </tr>
  1170. </table>
  1171. </td>
  1172. <td class="mlabels-right">
  1173. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1174. </tr>
  1175. </table>
  1176. </div><div class="memdoc">
  1177. <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>
  1178. </div>
  1179. </div>
  1180. <a id="a9f6c8ad6b054056649d0250e527e1297"></a>
  1181. <h2 class="memtitle"><span class="permalink"><a href="#a9f6c8ad6b054056649d0250e527e1297">&#9670;&nbsp;</a></span>bufferSizeChanged() <span class="overload">[1/2]</span></h2>
  1182. <div class="memitem">
  1183. <div class="memproto">
  1184. <table class="mlabels">
  1185. <tr>
  1186. <td class="mlabels-left">
  1187. <table class="memname">
  1188. <tr>
  1189. <td class="memname">virtual void Plugin::bufferSizeChanged </td>
  1190. <td>(</td>
  1191. <td class="paramtype">uint32_t&#160;</td>
  1192. <td class="paramname"><em>newBufferSize</em></td><td>)</td>
  1193. <td></td>
  1194. </tr>
  1195. </table>
  1196. </td>
  1197. <td class="mlabels-right">
  1198. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  1199. </tr>
  1200. </table>
  1201. </div><div class="memdoc">
  1202. <p>Optional callback to inform the plugin about a buffer size change.<br />
  1203. 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!<br />
  1204. Hosts might call <a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">run()</a> with a higher or lower number of frames. </dd></dl>
  1205. <dl class="section see"><dt>See also</dt><dd><a class="el" href="classPlugin.html#a2643e638f62cfd4990247ec66bed60d2">getBufferSize()</a> </dd></dl>
  1206. </div>
  1207. </div>
  1208. <a id="a2fcbfa1893f44e661d0d8cd53391dadc"></a>
  1209. <h2 class="memtitle"><span class="permalink"><a href="#a2fcbfa1893f44e661d0d8cd53391dadc">&#9670;&nbsp;</a></span>sampleRateChanged() <span class="overload">[1/2]</span></h2>
  1210. <div class="memitem">
  1211. <div class="memproto">
  1212. <table class="mlabels">
  1213. <tr>
  1214. <td class="mlabels-left">
  1215. <table class="memname">
  1216. <tr>
  1217. <td class="memname">virtual void Plugin::sampleRateChanged </td>
  1218. <td>(</td>
  1219. <td class="paramtype">double&#160;</td>
  1220. <td class="paramname"><em>newSampleRate</em></td><td>)</td>
  1221. <td></td>
  1222. </tr>
  1223. </table>
  1224. </td>
  1225. <td class="mlabels-right">
  1226. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  1227. </tr>
  1228. </table>
  1229. </div><div class="memdoc">
  1230. <p>Optional callback to inform the plugin about a sample rate change.<br />
  1231. 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#a3e162cfe8f1c52bf09805fd327bcc3c4">getSampleRate()</a> </dd></dl>
  1232. </div>
  1233. </div>
  1234. <a id="a2643e638f62cfd4990247ec66bed60d2"></a>
  1235. <h2 class="memtitle"><span class="permalink"><a href="#a2643e638f62cfd4990247ec66bed60d2">&#9670;&nbsp;</a></span>getBufferSize() <span class="overload">[2/2]</span></h2>
  1236. <div class="memitem">
  1237. <div class="memproto">
  1238. <table class="mlabels">
  1239. <tr>
  1240. <td class="mlabels-left">
  1241. <table class="memname">
  1242. <tr>
  1243. <td class="memname">uint32_t Plugin::getBufferSize </td>
  1244. <td>(</td>
  1245. <td class="paramname"></td><td>)</td>
  1246. <td> const</td>
  1247. </tr>
  1248. </table>
  1249. </td>
  1250. <td class="mlabels-right">
  1251. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  1252. </tr>
  1253. </table>
  1254. </div><div class="memdoc">
  1255. <p>Get the current buffer size that will probably be used during processing, in frames.<br />
  1256. This value will remain constant between activate and deactivate. </p><dl class="section note"><dt>Note</dt><dd>This value is only a hint!<br />
  1257. Hosts might call <a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">run()</a> with a higher or lower number of frames. </dd></dl>
  1258. <dl class="section see"><dt>See also</dt><dd><a class="el" href="classPlugin.html#a9f6c8ad6b054056649d0250e527e1297">bufferSizeChanged(uint32_t)</a> </dd></dl>
  1259. </div>
  1260. </div>
  1261. <a id="a3e162cfe8f1c52bf09805fd327bcc3c4"></a>
  1262. <h2 class="memtitle"><span class="permalink"><a href="#a3e162cfe8f1c52bf09805fd327bcc3c4">&#9670;&nbsp;</a></span>getSampleRate() <span class="overload">[2/2]</span></h2>
  1263. <div class="memitem">
  1264. <div class="memproto">
  1265. <table class="mlabels">
  1266. <tr>
  1267. <td class="mlabels-left">
  1268. <table class="memname">
  1269. <tr>
  1270. <td class="memname">double Plugin::getSampleRate </td>
  1271. <td>(</td>
  1272. <td class="paramname"></td><td>)</td>
  1273. <td> const</td>
  1274. </tr>
  1275. </table>
  1276. </td>
  1277. <td class="mlabels-right">
  1278. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  1279. </tr>
  1280. </table>
  1281. </div><div class="memdoc">
  1282. <p>Get the current sample rate that will be used during processing.<br />
  1283. 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#a2fcbfa1893f44e661d0d8cd53391dadc">sampleRateChanged(double)</a> </dd></dl>
  1284. </div>
  1285. </div>
  1286. <a id="ae85d602c430b1a4361a88d714d3a42c1"></a>
  1287. <h2 class="memtitle"><span class="permalink"><a href="#ae85d602c430b1a4361a88d714d3a42c1">&#9670;&nbsp;</a></span>getTimePosition() <span class="overload">[2/2]</span></h2>
  1288. <div class="memitem">
  1289. <div class="memproto">
  1290. <table class="mlabels">
  1291. <tr>
  1292. <td class="mlabels-left">
  1293. <table class="memname">
  1294. <tr>
  1295. <td class="memname">const <a class="el" href="structTimePosition.html">TimePosition</a>&amp; Plugin::getTimePosition </td>
  1296. <td>(</td>
  1297. <td class="paramname"></td><td>)</td>
  1298. <td> const</td>
  1299. </tr>
  1300. </table>
  1301. </td>
  1302. <td class="mlabels-right">
  1303. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  1304. </tr>
  1305. </table>
  1306. </div><div class="memdoc">
  1307. <p>Get the current host transport time position.<br />
  1308. This function should only be called during <a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">run()</a>.<br />
  1309. 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><a class="el" href="structTimePosition.html">TimePosition</a> is not supported in LADSPA and DSSI plugin formats. </dd></dl>
  1310. </div>
  1311. </div>
  1312. <a id="a2a70c4ec55d74d9bc26862975d8df8a7"></a>
  1313. <h2 class="memtitle"><span class="permalink"><a href="#a2a70c4ec55d74d9bc26862975d8df8a7">&#9670;&nbsp;</a></span>setLatency() <span class="overload">[2/2]</span></h2>
  1314. <div class="memitem">
  1315. <div class="memproto">
  1316. <table class="mlabels">
  1317. <tr>
  1318. <td class="mlabels-left">
  1319. <table class="memname">
  1320. <tr>
  1321. <td class="memname">void Plugin::setLatency </td>
  1322. <td>(</td>
  1323. <td class="paramtype">uint32_t&#160;</td>
  1324. <td class="paramname"><em>frames</em></td><td>)</td>
  1325. <td></td>
  1326. </tr>
  1327. </table>
  1328. </td>
  1329. <td class="mlabels-right">
  1330. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  1331. </tr>
  1332. </table>
  1333. </div><div class="memdoc">
  1334. <p>Change the plugin audio output latency to <em>frames</em>.<br />
  1335. This function should only be called in the constructor, <a class="el" href="classPlugin.html#aa5c1262f5ca20536bb5850fdd6faa22c">activate()</a> and <a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">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>
  1336. </div>
  1337. </div>
  1338. <a id="a0467eef817ac130cbbe1c0fbe09660c6"></a>
  1339. <h2 class="memtitle"><span class="permalink"><a href="#a0467eef817ac130cbbe1c0fbe09660c6">&#9670;&nbsp;</a></span>writeMidiEvent() <span class="overload">[2/2]</span></h2>
  1340. <div class="memitem">
  1341. <div class="memproto">
  1342. <table class="mlabels">
  1343. <tr>
  1344. <td class="mlabels-left">
  1345. <table class="memname">
  1346. <tr>
  1347. <td class="memname">bool Plugin::writeMidiEvent </td>
  1348. <td>(</td>
  1349. <td class="paramtype">const <a class="el" href="structMidiEvent.html">MidiEvent</a> &amp;&#160;</td>
  1350. <td class="paramname"><em>midiEvent</em></td><td>)</td>
  1351. <td></td>
  1352. </tr>
  1353. </table>
  1354. </td>
  1355. <td class="mlabels-right">
  1356. <span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
  1357. </tr>
  1358. </table>
  1359. </div><div class="memdoc">
  1360. <p>Write a MIDI output event.<br />
  1361. This function must only be called during <a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">run()</a>.<br />
  1362. 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#a0a969c78f8455ac6ba65fa42e8c498f6">run()</a>. </p>
  1363. </div>
  1364. </div>
  1365. <a id="aebb5df5cde162462dc460d4fd45dae75"></a>
  1366. <h2 class="memtitle"><span class="permalink"><a href="#aebb5df5cde162462dc460d4fd45dae75">&#9670;&nbsp;</a></span>getName() <span class="overload">[2/2]</span></h2>
  1367. <div class="memitem">
  1368. <div class="memproto">
  1369. <table class="mlabels">
  1370. <tr>
  1371. <td class="mlabels-left">
  1372. <table class="memname">
  1373. <tr>
  1374. <td class="memname">virtual const char* Plugin::getName </td>
  1375. <td>(</td>
  1376. <td class="paramname"></td><td>)</td>
  1377. <td> const</td>
  1378. </tr>
  1379. </table>
  1380. </td>
  1381. <td class="mlabels-right">
  1382. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  1383. </tr>
  1384. </table>
  1385. </div><div class="memdoc">
  1386. <p>Get the plugin name.<br />
  1387. Returns DISTRHO_PLUGIN_NAME by default. </p>
  1388. </div>
  1389. </div>
  1390. <a id="a00f7945c16149db6845fbcc2af729f4f"></a>
  1391. <h2 class="memtitle"><span class="permalink"><a href="#a00f7945c16149db6845fbcc2af729f4f">&#9670;&nbsp;</a></span>getLabel() <span class="overload">[2/2]</span></h2>
  1392. <div class="memitem">
  1393. <div class="memproto">
  1394. <table class="mlabels">
  1395. <tr>
  1396. <td class="mlabels-left">
  1397. <table class="memname">
  1398. <tr>
  1399. <td class="memname">virtual const char* Plugin::getLabel </td>
  1400. <td>(</td>
  1401. <td class="paramname"></td><td>)</td>
  1402. <td> const</td>
  1403. </tr>
  1404. </table>
  1405. </td>
  1406. <td class="mlabels-right">
  1407. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1408. </tr>
  1409. </table>
  1410. </div><div class="memdoc">
  1411. <p>Get the plugin label.<br />
  1412. This label is a short restricted name consisting of only _, a-z, A-Z and 0-9 characters. </p>
  1413. </div>
  1414. </div>
  1415. <a id="a30db5eef9de617f4c81d5c6925facea3"></a>
  1416. <h2 class="memtitle"><span class="permalink"><a href="#a30db5eef9de617f4c81d5c6925facea3">&#9670;&nbsp;</a></span>getDescription() <span class="overload">[2/2]</span></h2>
  1417. <div class="memitem">
  1418. <div class="memproto">
  1419. <table class="mlabels">
  1420. <tr>
  1421. <td class="mlabels-left">
  1422. <table class="memname">
  1423. <tr>
  1424. <td class="memname">virtual const char* Plugin::getDescription </td>
  1425. <td>(</td>
  1426. <td class="paramname"></td><td>)</td>
  1427. <td> const</td>
  1428. </tr>
  1429. </table>
  1430. </td>
  1431. <td class="mlabels-right">
  1432. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  1433. </tr>
  1434. </table>
  1435. </div><div class="memdoc">
  1436. <p>Get an extensive comment/description about the plugin.<br />
  1437. Optional, returns nothing by default. </p>
  1438. </div>
  1439. </div>
  1440. <a id="a955832840de786a7a22798f0ef451c5d"></a>
  1441. <h2 class="memtitle"><span class="permalink"><a href="#a955832840de786a7a22798f0ef451c5d">&#9670;&nbsp;</a></span>getMaker() <span class="overload">[2/2]</span></h2>
  1442. <div class="memitem">
  1443. <div class="memproto">
  1444. <table class="mlabels">
  1445. <tr>
  1446. <td class="mlabels-left">
  1447. <table class="memname">
  1448. <tr>
  1449. <td class="memname">virtual const char* Plugin::getMaker </td>
  1450. <td>(</td>
  1451. <td class="paramname"></td><td>)</td>
  1452. <td> const</td>
  1453. </tr>
  1454. </table>
  1455. </td>
  1456. <td class="mlabels-right">
  1457. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1458. </tr>
  1459. </table>
  1460. </div><div class="memdoc">
  1461. <p>Get the plugin author/maker. </p>
  1462. </div>
  1463. </div>
  1464. <a id="ad12c681ce31004da0badd609763f45c5"></a>
  1465. <h2 class="memtitle"><span class="permalink"><a href="#ad12c681ce31004da0badd609763f45c5">&#9670;&nbsp;</a></span>getHomePage() <span class="overload">[2/2]</span></h2>
  1466. <div class="memitem">
  1467. <div class="memproto">
  1468. <table class="mlabels">
  1469. <tr>
  1470. <td class="mlabels-left">
  1471. <table class="memname">
  1472. <tr>
  1473. <td class="memname">virtual const char* Plugin::getHomePage </td>
  1474. <td>(</td>
  1475. <td class="paramname"></td><td>)</td>
  1476. <td> const</td>
  1477. </tr>
  1478. </table>
  1479. </td>
  1480. <td class="mlabels-right">
  1481. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  1482. </tr>
  1483. </table>
  1484. </div><div class="memdoc">
  1485. <p>Get the plugin homepage.<br />
  1486. Optional, returns nothing by default. </p>
  1487. </div>
  1488. </div>
  1489. <a id="a686a3c92a376a185d6fd97efd59125d1"></a>
  1490. <h2 class="memtitle"><span class="permalink"><a href="#a686a3c92a376a185d6fd97efd59125d1">&#9670;&nbsp;</a></span>getLicense() <span class="overload">[2/2]</span></h2>
  1491. <div class="memitem">
  1492. <div class="memproto">
  1493. <table class="mlabels">
  1494. <tr>
  1495. <td class="mlabels-left">
  1496. <table class="memname">
  1497. <tr>
  1498. <td class="memname">virtual const char* Plugin::getLicense </td>
  1499. <td>(</td>
  1500. <td class="paramname"></td><td>)</td>
  1501. <td> const</td>
  1502. </tr>
  1503. </table>
  1504. </td>
  1505. <td class="mlabels-right">
  1506. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1507. </tr>
  1508. </table>
  1509. </div><div class="memdoc">
  1510. <p>Get the plugin license (a single line of text or a URL).<br />
  1511. For commercial plugins this should return some short copyright information. </p>
  1512. </div>
  1513. </div>
  1514. <a id="abae540dd93caf4834270358a8aad334a"></a>
  1515. <h2 class="memtitle"><span class="permalink"><a href="#abae540dd93caf4834270358a8aad334a">&#9670;&nbsp;</a></span>getVersion() <span class="overload">[2/2]</span></h2>
  1516. <div class="memitem">
  1517. <div class="memproto">
  1518. <table class="mlabels">
  1519. <tr>
  1520. <td class="mlabels-left">
  1521. <table class="memname">
  1522. <tr>
  1523. <td class="memname">virtual uint32_t Plugin::getVersion </td>
  1524. <td>(</td>
  1525. <td class="paramname"></td><td>)</td>
  1526. <td> const</td>
  1527. </tr>
  1528. </table>
  1529. </td>
  1530. <td class="mlabels-right">
  1531. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1532. </tr>
  1533. </table>
  1534. </div><div class="memdoc">
  1535. <p>Get the plugin version, in hexadecimal. </p><dl class="section see"><dt>See also</dt><dd>d_version() </dd></dl>
  1536. </div>
  1537. </div>
  1538. <a id="ad6ff8c80227d5ceebd40b96f3be29a66"></a>
  1539. <h2 class="memtitle"><span class="permalink"><a href="#ad6ff8c80227d5ceebd40b96f3be29a66">&#9670;&nbsp;</a></span>getUniqueId() <span class="overload">[2/2]</span></h2>
  1540. <div class="memitem">
  1541. <div class="memproto">
  1542. <table class="mlabels">
  1543. <tr>
  1544. <td class="mlabels-left">
  1545. <table class="memname">
  1546. <tr>
  1547. <td class="memname">virtual int64_t Plugin::getUniqueId </td>
  1548. <td>(</td>
  1549. <td class="paramname"></td><td>)</td>
  1550. <td> const</td>
  1551. </tr>
  1552. </table>
  1553. </td>
  1554. <td class="mlabels-right">
  1555. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1556. </tr>
  1557. </table>
  1558. </div><div class="memdoc">
  1559. <p>Get the plugin unique Id.<br />
  1560. This value is used by LADSPA, DSSI and VST plugin formats. </p><dl class="section see"><dt>See also</dt><dd>d_cconst() </dd></dl>
  1561. </div>
  1562. </div>
  1563. <a id="a75f30935198a0acba25f4ea92af72dc4"></a>
  1564. <h2 class="memtitle"><span class="permalink"><a href="#a75f30935198a0acba25f4ea92af72dc4">&#9670;&nbsp;</a></span>initAudioPort() <span class="overload">[2/2]</span></h2>
  1565. <div class="memitem">
  1566. <div class="memproto">
  1567. <table class="mlabels">
  1568. <tr>
  1569. <td class="mlabels-left">
  1570. <table class="memname">
  1571. <tr>
  1572. <td class="memname">virtual void Plugin::initAudioPort </td>
  1573. <td>(</td>
  1574. <td class="paramtype">bool&#160;</td>
  1575. <td class="paramname"><em>input</em>, </td>
  1576. </tr>
  1577. <tr>
  1578. <td class="paramkey"></td>
  1579. <td></td>
  1580. <td class="paramtype">uint32_t&#160;</td>
  1581. <td class="paramname"><em>index</em>, </td>
  1582. </tr>
  1583. <tr>
  1584. <td class="paramkey"></td>
  1585. <td></td>
  1586. <td class="paramtype"><a class="el" href="structAudioPort.html">AudioPort</a> &amp;&#160;</td>
  1587. <td class="paramname"><em>port</em>&#160;</td>
  1588. </tr>
  1589. <tr>
  1590. <td></td>
  1591. <td>)</td>
  1592. <td></td><td></td>
  1593. </tr>
  1594. </table>
  1595. </td>
  1596. <td class="mlabels-right">
  1597. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  1598. </tr>
  1599. </table>
  1600. </div><div class="memdoc">
  1601. <p>Initialize the audio port <em>index</em>.<br />
  1602. This function will be called once, shortly after the plugin is created. </p>
  1603. </div>
  1604. </div>
  1605. <a id="a5b0ec59527a1c2f4b01f17fc8c18ea8b"></a>
  1606. <h2 class="memtitle"><span class="permalink"><a href="#a5b0ec59527a1c2f4b01f17fc8c18ea8b">&#9670;&nbsp;</a></span>initParameter() <span class="overload">[2/2]</span></h2>
  1607. <div class="memitem">
  1608. <div class="memproto">
  1609. <table class="mlabels">
  1610. <tr>
  1611. <td class="mlabels-left">
  1612. <table class="memname">
  1613. <tr>
  1614. <td class="memname">virtual void Plugin::initParameter </td>
  1615. <td>(</td>
  1616. <td class="paramtype">uint32_t&#160;</td>
  1617. <td class="paramname"><em>index</em>, </td>
  1618. </tr>
  1619. <tr>
  1620. <td class="paramkey"></td>
  1621. <td></td>
  1622. <td class="paramtype"><a class="el" href="structParameter.html">Parameter</a> &amp;&#160;</td>
  1623. <td class="paramname"><em>parameter</em>&#160;</td>
  1624. </tr>
  1625. <tr>
  1626. <td></td>
  1627. <td>)</td>
  1628. <td></td><td></td>
  1629. </tr>
  1630. </table>
  1631. </td>
  1632. <td class="mlabels-right">
  1633. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1634. </tr>
  1635. </table>
  1636. </div><div class="memdoc">
  1637. <p>Initialize the parameter <em>index</em>.<br />
  1638. This function will be called once, shortly after the plugin is created. </p>
  1639. </div>
  1640. </div>
  1641. <a id="a54d66af3111541b7c118f9749ef0231b"></a>
  1642. <h2 class="memtitle"><span class="permalink"><a href="#a54d66af3111541b7c118f9749ef0231b">&#9670;&nbsp;</a></span>initProgramName() <span class="overload">[2/2]</span></h2>
  1643. <div class="memitem">
  1644. <div class="memproto">
  1645. <table class="mlabels">
  1646. <tr>
  1647. <td class="mlabels-left">
  1648. <table class="memname">
  1649. <tr>
  1650. <td class="memname">virtual void Plugin::initProgramName </td>
  1651. <td>(</td>
  1652. <td class="paramtype">uint32_t&#160;</td>
  1653. <td class="paramname"><em>index</em>, </td>
  1654. </tr>
  1655. <tr>
  1656. <td class="paramkey"></td>
  1657. <td></td>
  1658. <td class="paramtype"><a class="el" href="classString.html">String</a> &amp;&#160;</td>
  1659. <td class="paramname"><em>programName</em>&#160;</td>
  1660. </tr>
  1661. <tr>
  1662. <td></td>
  1663. <td>)</td>
  1664. <td></td><td></td>
  1665. </tr>
  1666. </table>
  1667. </td>
  1668. <td class="mlabels-right">
  1669. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1670. </tr>
  1671. </table>
  1672. </div><div class="memdoc">
  1673. <p>Set the name of the program <em>index</em>.<br />
  1674. This function will be called once, shortly after the plugin is created.<br />
  1675. Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_PROGRAMS is enabled. </p>
  1676. </div>
  1677. </div>
  1678. <a id="ae301a970a8b5cff3c7ecef927ea20080"></a>
  1679. <h2 class="memtitle"><span class="permalink"><a href="#ae301a970a8b5cff3c7ecef927ea20080">&#9670;&nbsp;</a></span>initState() <span class="overload">[2/2]</span></h2>
  1680. <div class="memitem">
  1681. <div class="memproto">
  1682. <table class="mlabels">
  1683. <tr>
  1684. <td class="mlabels-left">
  1685. <table class="memname">
  1686. <tr>
  1687. <td class="memname">virtual void Plugin::initState </td>
  1688. <td>(</td>
  1689. <td class="paramtype">uint32_t&#160;</td>
  1690. <td class="paramname"><em>index</em>, </td>
  1691. </tr>
  1692. <tr>
  1693. <td class="paramkey"></td>
  1694. <td></td>
  1695. <td class="paramtype"><a class="el" href="classString.html">String</a> &amp;&#160;</td>
  1696. <td class="paramname"><em>stateKey</em>, </td>
  1697. </tr>
  1698. <tr>
  1699. <td class="paramkey"></td>
  1700. <td></td>
  1701. <td class="paramtype"><a class="el" href="classString.html">String</a> &amp;&#160;</td>
  1702. <td class="paramname"><em>defaultStateValue</em>&#160;</td>
  1703. </tr>
  1704. <tr>
  1705. <td></td>
  1706. <td>)</td>
  1707. <td></td><td></td>
  1708. </tr>
  1709. </table>
  1710. </td>
  1711. <td class="mlabels-right">
  1712. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1713. </tr>
  1714. </table>
  1715. </div><div class="memdoc">
  1716. <p>Set the state key and default value of <em>index</em>.<br />
  1717. This function will be called once, shortly after the plugin is created.<br />
  1718. Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_STATE is enabled. </p>
  1719. </div>
  1720. </div>
  1721. <a id="a2d1da98c90568bb4547662bc4f02c31f"></a>
  1722. <h2 class="memtitle"><span class="permalink"><a href="#a2d1da98c90568bb4547662bc4f02c31f">&#9670;&nbsp;</a></span>getParameterValue() <span class="overload">[2/2]</span></h2>
  1723. <div class="memitem">
  1724. <div class="memproto">
  1725. <table class="mlabels">
  1726. <tr>
  1727. <td class="mlabels-left">
  1728. <table class="memname">
  1729. <tr>
  1730. <td class="memname">virtual float Plugin::getParameterValue </td>
  1731. <td>(</td>
  1732. <td class="paramtype">uint32_t&#160;</td>
  1733. <td class="paramname"><em>index</em></td><td>)</td>
  1734. <td> const</td>
  1735. </tr>
  1736. </table>
  1737. </td>
  1738. <td class="mlabels-right">
  1739. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1740. </tr>
  1741. </table>
  1742. </div><div class="memdoc">
  1743. <p>Get the current value of a parameter.<br />
  1744. The host may call this function from any context, including realtime processing. </p>
  1745. </div>
  1746. </div>
  1747. <a id="a6911a881fabb9eca9daf0eadbaad8599"></a>
  1748. <h2 class="memtitle"><span class="permalink"><a href="#a6911a881fabb9eca9daf0eadbaad8599">&#9670;&nbsp;</a></span>setParameterValue() <span class="overload">[2/2]</span></h2>
  1749. <div class="memitem">
  1750. <div class="memproto">
  1751. <table class="mlabels">
  1752. <tr>
  1753. <td class="mlabels-left">
  1754. <table class="memname">
  1755. <tr>
  1756. <td class="memname">virtual void Plugin::setParameterValue </td>
  1757. <td>(</td>
  1758. <td class="paramtype">uint32_t&#160;</td>
  1759. <td class="paramname"><em>index</em>, </td>
  1760. </tr>
  1761. <tr>
  1762. <td class="paramkey"></td>
  1763. <td></td>
  1764. <td class="paramtype">float&#160;</td>
  1765. <td class="paramname"><em>value</em>&#160;</td>
  1766. </tr>
  1767. <tr>
  1768. <td></td>
  1769. <td>)</td>
  1770. <td></td><td></td>
  1771. </tr>
  1772. </table>
  1773. </td>
  1774. <td class="mlabels-right">
  1775. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1776. </tr>
  1777. </table>
  1778. </div><div class="memdoc">
  1779. <p>Change a parameter value.<br />
  1780. The host may call this function from any context, including realtime processing.<br />
  1781. When a parameter is marked as automable, you must ensure no non-realtime operations are performed. </p><dl class="section note"><dt>Note</dt><dd>This function will only be called for parameter inputs. </dd></dl>
  1782. </div>
  1783. </div>
  1784. <a id="ab629f35c60406d6f2c0b9d530e67cf09"></a>
  1785. <h2 class="memtitle"><span class="permalink"><a href="#ab629f35c60406d6f2c0b9d530e67cf09">&#9670;&nbsp;</a></span>loadProgram() <span class="overload">[2/2]</span></h2>
  1786. <div class="memitem">
  1787. <div class="memproto">
  1788. <table class="mlabels">
  1789. <tr>
  1790. <td class="mlabels-left">
  1791. <table class="memname">
  1792. <tr>
  1793. <td class="memname">virtual void Plugin::loadProgram </td>
  1794. <td>(</td>
  1795. <td class="paramtype">uint32_t&#160;</td>
  1796. <td class="paramname"><em>index</em></td><td>)</td>
  1797. <td></td>
  1798. </tr>
  1799. </table>
  1800. </td>
  1801. <td class="mlabels-right">
  1802. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1803. </tr>
  1804. </table>
  1805. </div><div class="memdoc">
  1806. <p>Load a program.<br />
  1807. The host may call this function from any context, including realtime processing.<br />
  1808. Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_PROGRAMS is enabled. </p>
  1809. </div>
  1810. </div>
  1811. <a id="a84af70cd84fa4c3054caaa8affaab8f1"></a>
  1812. <h2 class="memtitle"><span class="permalink"><a href="#a84af70cd84fa4c3054caaa8affaab8f1">&#9670;&nbsp;</a></span>getState() <span class="overload">[2/2]</span></h2>
  1813. <div class="memitem">
  1814. <div class="memproto">
  1815. <table class="mlabels">
  1816. <tr>
  1817. <td class="mlabels-left">
  1818. <table class="memname">
  1819. <tr>
  1820. <td class="memname">virtual <a class="el" href="classString.html">String</a> Plugin::getState </td>
  1821. <td>(</td>
  1822. <td class="paramtype">const char *&#160;</td>
  1823. <td class="paramname"><em>key</em></td><td>)</td>
  1824. <td> const</td>
  1825. </tr>
  1826. </table>
  1827. </td>
  1828. <td class="mlabels-right">
  1829. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1830. </tr>
  1831. </table>
  1832. </div><div class="memdoc">
  1833. <p>Get the value of an internal state.<br />
  1834. The host may call this function from any non-realtime context.<br />
  1835. Must be implemented by your plugin class if DISTRHO_PLUGIN_WANT_FULL_STATE is enabled. </p><dl class="section note"><dt>Note</dt><dd>The use of this function breaks compatibility with the DSSI format. </dd></dl>
  1836. </div>
  1837. </div>
  1838. <a id="ad25ed64a2f00f48c86d2ae0016ea3e59"></a>
  1839. <h2 class="memtitle"><span class="permalink"><a href="#ad25ed64a2f00f48c86d2ae0016ea3e59">&#9670;&nbsp;</a></span>setState() <span class="overload">[2/2]</span></h2>
  1840. <div class="memitem">
  1841. <div class="memproto">
  1842. <table class="mlabels">
  1843. <tr>
  1844. <td class="mlabels-left">
  1845. <table class="memname">
  1846. <tr>
  1847. <td class="memname">virtual void Plugin::setState </td>
  1848. <td>(</td>
  1849. <td class="paramtype">const char *&#160;</td>
  1850. <td class="paramname"><em>key</em>, </td>
  1851. </tr>
  1852. <tr>
  1853. <td class="paramkey"></td>
  1854. <td></td>
  1855. <td class="paramtype">const char *&#160;</td>
  1856. <td class="paramname"><em>value</em>&#160;</td>
  1857. </tr>
  1858. <tr>
  1859. <td></td>
  1860. <td>)</td>
  1861. <td></td><td></td>
  1862. </tr>
  1863. </table>
  1864. </td>
  1865. <td class="mlabels-right">
  1866. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1867. </tr>
  1868. </table>
  1869. </div><div class="memdoc">
  1870. <p>Change an internal state <em>key</em> to <em>value</em>.<br />
  1871. Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_STATE is enabled. </p>
  1872. </div>
  1873. </div>
  1874. <a id="aa5c1262f5ca20536bb5850fdd6faa22c"></a>
  1875. <h2 class="memtitle"><span class="permalink"><a href="#aa5c1262f5ca20536bb5850fdd6faa22c">&#9670;&nbsp;</a></span>activate() <span class="overload">[2/2]</span></h2>
  1876. <div class="memitem">
  1877. <div class="memproto">
  1878. <table class="mlabels">
  1879. <tr>
  1880. <td class="mlabels-left">
  1881. <table class="memname">
  1882. <tr>
  1883. <td class="memname">virtual void Plugin::activate </td>
  1884. <td>(</td>
  1885. <td class="paramname"></td><td>)</td>
  1886. <td></td>
  1887. </tr>
  1888. </table>
  1889. </td>
  1890. <td class="mlabels-right">
  1891. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  1892. </tr>
  1893. </table>
  1894. </div><div class="memdoc">
  1895. <p>Activate this plugin. </p>
  1896. </div>
  1897. </div>
  1898. <a id="aa089a56572bc8f1cb7e4b538c0d19c46"></a>
  1899. <h2 class="memtitle"><span class="permalink"><a href="#aa089a56572bc8f1cb7e4b538c0d19c46">&#9670;&nbsp;</a></span>deactivate() <span class="overload">[2/2]</span></h2>
  1900. <div class="memitem">
  1901. <div class="memproto">
  1902. <table class="mlabels">
  1903. <tr>
  1904. <td class="mlabels-left">
  1905. <table class="memname">
  1906. <tr>
  1907. <td class="memname">virtual void Plugin::deactivate </td>
  1908. <td>(</td>
  1909. <td class="paramname"></td><td>)</td>
  1910. <td></td>
  1911. </tr>
  1912. </table>
  1913. </td>
  1914. <td class="mlabels-right">
  1915. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  1916. </tr>
  1917. </table>
  1918. </div><div class="memdoc">
  1919. <p>Deactivate this plugin. </p>
  1920. </div>
  1921. </div>
  1922. <a id="a0a969c78f8455ac6ba65fa42e8c498f6"></a>
  1923. <h2 class="memtitle"><span class="permalink"><a href="#a0a969c78f8455ac6ba65fa42e8c498f6">&#9670;&nbsp;</a></span>run() <span class="overload">[2/2]</span></h2>
  1924. <div class="memitem">
  1925. <div class="memproto">
  1926. <table class="mlabels">
  1927. <tr>
  1928. <td class="mlabels-left">
  1929. <table class="memname">
  1930. <tr>
  1931. <td class="memname">virtual void Plugin::run </td>
  1932. <td>(</td>
  1933. <td class="paramtype">const float **&#160;</td>
  1934. <td class="paramname"><em>inputs</em>, </td>
  1935. </tr>
  1936. <tr>
  1937. <td class="paramkey"></td>
  1938. <td></td>
  1939. <td class="paramtype">float **&#160;</td>
  1940. <td class="paramname"><em>outputs</em>, </td>
  1941. </tr>
  1942. <tr>
  1943. <td class="paramkey"></td>
  1944. <td></td>
  1945. <td class="paramtype">uint32_t&#160;</td>
  1946. <td class="paramname"><em>frames</em>, </td>
  1947. </tr>
  1948. <tr>
  1949. <td class="paramkey"></td>
  1950. <td></td>
  1951. <td class="paramtype">const <a class="el" href="structMidiEvent.html">MidiEvent</a> *&#160;</td>
  1952. <td class="paramname"><em>midiEvents</em>, </td>
  1953. </tr>
  1954. <tr>
  1955. <td class="paramkey"></td>
  1956. <td></td>
  1957. <td class="paramtype">uint32_t&#160;</td>
  1958. <td class="paramname"><em>midiEventCount</em>&#160;</td>
  1959. </tr>
  1960. <tr>
  1961. <td></td>
  1962. <td>)</td>
  1963. <td></td><td></td>
  1964. </tr>
  1965. </table>
  1966. </td>
  1967. <td class="mlabels-right">
  1968. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  1969. </tr>
  1970. </table>
  1971. </div><div class="memdoc">
  1972. <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>
  1973. </div>
  1974. </div>
  1975. <a id="a9f6c8ad6b054056649d0250e527e1297"></a>
  1976. <h2 class="memtitle"><span class="permalink"><a href="#a9f6c8ad6b054056649d0250e527e1297">&#9670;&nbsp;</a></span>bufferSizeChanged() <span class="overload">[2/2]</span></h2>
  1977. <div class="memitem">
  1978. <div class="memproto">
  1979. <table class="mlabels">
  1980. <tr>
  1981. <td class="mlabels-left">
  1982. <table class="memname">
  1983. <tr>
  1984. <td class="memname">virtual void Plugin::bufferSizeChanged </td>
  1985. <td>(</td>
  1986. <td class="paramtype">uint32_t&#160;</td>
  1987. <td class="paramname"><em>newBufferSize</em></td><td>)</td>
  1988. <td></td>
  1989. </tr>
  1990. </table>
  1991. </td>
  1992. <td class="mlabels-right">
  1993. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  1994. </tr>
  1995. </table>
  1996. </div><div class="memdoc">
  1997. <p>Optional callback to inform the plugin about a buffer size change.<br />
  1998. 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!<br />
  1999. Hosts might call <a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">run()</a> with a higher or lower number of frames. </dd></dl>
  2000. <dl class="section see"><dt>See also</dt><dd><a class="el" href="classPlugin.html#a2643e638f62cfd4990247ec66bed60d2">getBufferSize()</a> </dd></dl>
  2001. </div>
  2002. </div>
  2003. <a id="a2fcbfa1893f44e661d0d8cd53391dadc"></a>
  2004. <h2 class="memtitle"><span class="permalink"><a href="#a2fcbfa1893f44e661d0d8cd53391dadc">&#9670;&nbsp;</a></span>sampleRateChanged() <span class="overload">[2/2]</span></h2>
  2005. <div class="memitem">
  2006. <div class="memproto">
  2007. <table class="mlabels">
  2008. <tr>
  2009. <td class="mlabels-left">
  2010. <table class="memname">
  2011. <tr>
  2012. <td class="memname">virtual void Plugin::sampleRateChanged </td>
  2013. <td>(</td>
  2014. <td class="paramtype">double&#160;</td>
  2015. <td class="paramname"><em>newSampleRate</em></td><td>)</td>
  2016. <td></td>
  2017. </tr>
  2018. </table>
  2019. </td>
  2020. <td class="mlabels-right">
  2021. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  2022. </tr>
  2023. </table>
  2024. </div><div class="memdoc">
  2025. <p>Optional callback to inform the plugin about a sample rate change.<br />
  2026. 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#a3e162cfe8f1c52bf09805fd327bcc3c4">getSampleRate()</a> </dd></dl>
  2027. </div>
  2028. </div>
  2029. <hr/>The documentation for this class was generated from the following files:<ul>
  2030. <li>distrho/<a class="el" href="DistrhoPlugin_8hpp_source.html">DistrhoPlugin.hpp</a></li>
  2031. <li>distrho/<a class="el" href="DistrhoPluginLV2_8hpp_source.html">DistrhoPluginLV2.hpp</a></li>
  2032. </ul>
  2033. </div><!-- contents -->
  2034. <!-- start footer part -->
  2035. <hr class="footer"/><address class="footer"><small>
  2036. Generated on Sat Jul 3 2021 23:07:06 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
  2037. <img class="footer" src="doxygen.png" alt="doxygen"/>
  2038. </a> 1.8.17
  2039. </small></address>
  2040. </body>
  2041. </html>