Browse Source

Update

Signed-off-by: falkTX <falktx@falktx.com>
gh-pages
falkTX 3 years ago
parent
commit
db1e4a4e6e
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
100 changed files with 10831 additions and 5976 deletions
  1. +29
    -17
      Application_8hpp_source.html
  2. +1
    -1
      Base64_8hpp_source.html
  3. +1
    -1
      Base_8hpp_source.html
  4. +180
    -161
      Cairo_8hpp_source.html
  5. +1
    -1
      Color_8hpp_source.html
  6. +102
    -94
      DistrhoInfo_8hpp_source.html
  7. +9
    -9
      DistrhoPluginLV2_8hpp_source.html
  8. +3
    -3
      DistrhoPluginUtils_8hpp_source.html
  9. +1130
    -976
      DistrhoPlugin_8hpp_source.html
  10. +237
    -199
      DistrhoUI_8hpp_source.html
  11. +265
    -249
      DistrhoUtils_8hpp_source.html
  12. +3
    -3
      ExternalWindow_8hpp_source.html
  13. +613
    -605
      Geometry_8hpp_source.html
  14. +200
    -50
      ImageBaseWidgets_8hpp_source.html
  15. +1
    -1
      ImageBase_8hpp_source.html
  16. +26
    -222
      ImageWidgets_8hpp_source.html
  17. +19
    -11
      Image_8hpp_source.html
  18. +3
    -3
      LeakDetector_8hpp_source.html
  19. +209
    -0
      LibraryUtils_8hpp_source.html
  20. +246
    -243
      Mutex_8hpp_source.html
  21. +926
    -928
      NanoVG_8hpp_source.html
  22. +22
    -22
      OpenGL_8hpp_source.html
  23. +870
    -0
      RingBuffer_8hpp_source.html
  24. +86
    -82
      ScopedPointer_8hpp_source.html
  25. +217
    -0
      ScopedSafeLocale_8hpp_source.html
  26. +1
    -1
      Sleep_8hpp_source.html
  27. +15
    -13
      StandaloneWindow_8hpp_source.html
  28. +888
    -790
      String_8hpp_source.html
  29. +41
    -24
      SubWidget_8hpp_source.html
  30. +238
    -195
      Thread_8hpp_source.html
  31. +63
    -35
      TopLevelWidget_8hpp_source.html
  32. +1
    -1
      VstGuiWidget_8hpp_source.html
  33. +3
    -3
      Vulkan_8hpp_source.html
  34. +294
    -285
      Widget_8hpp_source.html
  35. +399
    -325
      Window_8hpp_source.html
  36. +80
    -69
      annotated.html
  37. +5
    -4
      classApplication-members.html
  38. +29
    -6
      classApplication.html
  39. +1
    -1
      classAudioMidiSyncHelper-members.html
  40. +2
    -2
      classAudioMidiSyncHelper.html
  41. +1
    -1
      classCairoBaseWidget-members.html
  42. +5
    -5
      classCairoBaseWidget.html
  43. +12
    -10
      classCairoImage-members.html
  44. +72
    -5
      classCairoImage.html
  45. +1
    -1
      classCircle-members.html
  46. +1
    -1
      classCircle.html
  47. +1
    -1
      classExternalWindow-members.html
  48. +1
    -1
      classExternalWindow.html
  49. +117
    -0
      classHeapRingBuffer-members.html
  50. +310
    -0
      classHeapRingBuffer.html
  51. BIN
      classHeapRingBuffer.png
  52. +1
    -1
      classImageBase-members.html
  53. +1
    -1
      classImageBase.html
  54. +27
    -23
      classImageBaseAboutWindow-members.html
  55. +30
    -54
      classImageBaseAboutWindow.html
  56. +9
    -6
      classImageBaseButton-members.html
  57. +7
    -1
      classImageBaseButton.html
  58. +1
    -1
      classImageBaseButton_1_1Callback-members.html
  59. +1
    -1
      classImageBaseButton_1_1Callback.html
  60. +144
    -0
      classImageBaseKnob-members.html
  61. +381
    -0
      classImageBaseKnob.html
  62. BIN
      classImageBaseKnob.png
  63. +87
    -0
      classImageBaseKnob_1_1Callback-members.html
  64. +99
    -0
      classImageBaseKnob_1_1Callback.html
  65. +140
    -0
      classImageBaseSlider-members.html
  66. +339
    -0
      classImageBaseSlider.html
  67. BIN
      classImageBaseSlider.png
  68. +87
    -0
      classImageBaseSlider_1_1Callback-members.html
  69. +99
    -0
      classImageBaseSlider_1_1Callback.html
  70. +134
    -0
      classImageBaseSwitch-members.html
  71. +290
    -0
      classImageBaseSwitch.html
  72. BIN
      classImageBaseSwitch.png
  73. +85
    -0
      classImageBaseSwitch_1_1Callback-members.html
  74. +93
    -0
      classImageBaseSwitch_1_1Callback.html
  75. +1
    -1
      classLeakedObjectDetector-members.html
  76. +1
    -1
      classLeakedObjectDetector.html
  77. +1
    -1
      classLine-members.html
  78. +1
    -1
      classLine.html
  79. +2
    -2
      classMutex-members.html
  80. +7
    -7
      classMutex.html
  81. +1
    -1
      classNanoBaseWidget-members.html
  82. +1
    -1
      classNanoBaseWidget.html
  83. +1
    -1
      classNanoImage-members.html
  84. +1
    -1
      classNanoImage.html
  85. +109
    -110
      classNanoVG-members.html
  86. +1
    -8
      classNanoVG.html
  87. +5
    -5
      classOpenGLImage-members.html
  88. +20
    -20
      classOpenGLImage.html
  89. +14
    -13
      classPlugin-members.html
  90. +41
    -1
      classPlugin.html
  91. +1
    -1
      classPoint-members.html
  92. +1
    -1
      classPoint.html
  93. +43
    -42
      classRectangle-members.html
  94. +37
    -3
      classRectangle.html
  95. +1
    -1
      classRecursiveMutex-members.html
  96. +4
    -4
      classRecursiveMutex.html
  97. +113
    -0
      classRingBufferControl-members.html
  98. +387
    -0
      classRingBufferControl.html
  99. +1
    -1
      classScopeLocker-members.html
  100. +1
    -1
      classScopeLocker.html

+ 29
- 17
Application_8hpp_source.html View File

@@ -127,7 +127,7 @@ $(function() {
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> idle() is called at regular intervals.</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> @note This function is meant for standalones only, *never* call this from plugins.</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classApplication.html#a866d2145b9aa35bb7f88b1b9fd0aa9cc">exec</a>(uint idleTimeInMs = 10);</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classApplication.html#a805dd37af3b9adfc1d0ee1e734ad81e3">exec</a>(uint idleTimeInMs = 30);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> Quit the application.</span></div>
@@ -154,20 +154,31 @@ $(function() {
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> Remove an idle callback previously added via addIdleCallback().</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classApplication.html#a082f532e2922924c6c72517f9272f67d">removeIdleCallback</a>(<a class="code" href="structIdleCallback.html">IdleCallback</a>* callback);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">struct </span>PrivateData;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; PrivateData* <span class="keyword">const</span> pData;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classWindow.html">Window</a>;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classApplication.html">Application</a>)</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;};</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; </div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#endif // DGL_APP_HPP_INCLUDED</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"> Set the class name of the application.</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"> This is a stable identifier for the application, used as the window class/instance name on X11 and Windows.</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"> It is not displayed to the user, but can be used in scripts and by window managers,</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment"> so it should be the same for every instance of the application, but different from other applications.</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment"> Plugins created with DPF have their class name automatically set based on DGL_NAMESPACE and plugin name.</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classApplication.html#a203d22d1ce0c0de90c2379f6bc839815">setClassName</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">struct </span>PrivateData;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; PrivateData* <span class="keyword">const</span> pData;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classWindow.html">Window</a>;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classApplication.html">Application</a>)</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;};</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#endif // DGL_APP_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassApplication_html_af77b716ee803aecb2ce1674695dc3986"><div class="ttname"><a href="classApplication.html#af77b716ee803aecb2ce1674695dc3986">Application::quit</a></div><div class="ttdeci">void quit()</div></div>
<div class="ttc" id="aclassApplication_html_a082f532e2922924c6c72517f9272f67d"><div class="ttname"><a href="classApplication.html#a082f532e2922924c6c72517f9272f67d">Application::removeIdleCallback</a></div><div class="ttdeci">void removeIdleCallback(IdleCallback *callback)</div></div>
@@ -177,12 +188,13 @@ $(function() {
<div class="ttc" id="aclassApplication_html"><div class="ttname"><a href="classApplication.html">Application</a></div><div class="ttdef"><b>Definition:</b> Application.hpp:34</div></div>
<div class="ttc" id="aclassApplication_html_a20573928a0d53fb96d929513bc5acde6"><div class="ttname"><a href="classApplication.html#a20573928a0d53fb96d929513bc5acde6">Application::~Application</a></div><div class="ttdeci">virtual ~Application()</div></div>
<div class="ttc" id="aclassApplication_html_af9dd089d30cf442f8ffda646305089bb"><div class="ttname"><a href="classApplication.html#af9dd089d30cf442f8ffda646305089bb">Application::Application</a></div><div class="ttdeci">Application(bool isStandalone=true)</div></div>
<div class="ttc" id="aclassApplication_html_a805dd37af3b9adfc1d0ee1e734ad81e3"><div class="ttname"><a href="classApplication.html#a805dd37af3b9adfc1d0ee1e734ad81e3">Application::exec</a></div><div class="ttdeci">void exec(uint idleTimeInMs=30)</div></div>
<div class="ttc" id="aclassApplication_html_ad6aab76a79b7b3c2883785040b46017a"><div class="ttname"><a href="classApplication.html#ad6aab76a79b7b3c2883785040b46017a">Application::addIdleCallback</a></div><div class="ttdeci">void addIdleCallback(IdleCallback *callback)</div></div>
<div class="ttc" id="astructIdleCallback_html"><div class="ttname"><a href="structIdleCallback.html">IdleCallback</a></div><div class="ttdef"><b>Definition:</b> Base.hpp:159</div></div>
<div class="ttc" id="aclassApplication_html_a866d2145b9aa35bb7f88b1b9fd0aa9cc"><div class="ttname"><a href="classApplication.html#a866d2145b9aa35bb7f88b1b9fd0aa9cc">Application::exec</a></div><div class="ttdeci">void exec(uint idleTimeInMs=10)</div></div>
<div class="ttc" id="aclassApplication_html_a203d22d1ce0c0de90c2379f6bc839815"><div class="ttname"><a href="classApplication.html#a203d22d1ce0c0de90c2379f6bc839815">Application::setClassName</a></div><div class="ttdeci">void setClassName(const char *name)</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
Base64_8hpp_source.html View File

@@ -222,7 +222,7 @@ $(function() {
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
Base_8hpp_source.html View File

@@ -251,7 +251,7 @@ $(function() {
<div class="ttc" id="astructIdleCallback_html"><div class="ttname"><a href="structIdleCallback.html">IdleCallback</a></div><div class="ttdef"><b>Definition:</b> Base.hpp:159</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 180
- 161
Cairo_8hpp_source.html View File

@@ -90,188 +90,207 @@ $(function() {
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;ImageBase.hpp&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;ImageBaseWidgets.hpp&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;SubWidget.hpp&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;START_NAMESPACE_DGL</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> Cairo Graphics context.</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="structCairoGraphicsContext.html"> 33</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structCairoGraphicsContext.html">CairoGraphicsContext</a> : <a class="code" href="structGraphicsContext.html">GraphicsContext</a></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; cairo_t* handle;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;};</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> Cairo Image class.</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> TODO ...</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classCairoImage.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="classCairoImage.html">CairoImage</a> : <span class="keyword">public</span> <a class="code" href="classImageBase.html">ImageBase</a></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:<span class="comment"></span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> Constructor for a null Image.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classCairoImage.html#aeadcf789efdf894a61e477b4d64fc0b6">CairoImage</a>();</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> Constructor using raw image data.</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> @note @a rawData must remain valid for the lifetime of this Image.</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="classCairoImage.html#aeadcf789efdf894a61e477b4d64fc0b6">CairoImage</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rawData, uint width, uint height, ImageFormat format);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> Constructor using raw image data.</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> @note @a rawData must remain valid for the lifetime of this Image.</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classCairoImage.html#aeadcf789efdf894a61e477b4d64fc0b6">CairoImage</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rawData, <span class="keyword">const</span> <a class="code" href="classSize.html">Size&lt;uint&gt;</a>&amp; size, ImageFormat format);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> Constructor using another image data.</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classCairoImage.html#aeadcf789efdf894a61e477b4d64fc0b6">CairoImage</a>(<span class="keyword">const</span> <a class="code" href="classCairoImage.html">CairoImage</a>&amp; image);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> Destructor.</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classCairoImage.html#a36abbee6a47fc3447f00270aa16a82b7">~CairoImage</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> Load image data from memory.</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> @note @a rawData must remain valid for the lifetime of this Image.</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classCairoImage.html#a861bdbb5cd592feaef43e2202397deed">loadFromMemory</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rawData,</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">const</span> <a class="code" href="classSize.html">Size&lt;uint&gt;</a>&amp; size,</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; ImageFormat format = kImageFormatBGRA) noexcept <span class="keyword">override</span>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> Draw this image at position @a pos using the graphics context @a context.</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classCairoImage.html#aa60a5e3b68032170e8e59fb506c7d3b7">drawAt</a>(<span class="keyword">const</span> <a class="code" href="structGraphicsContext.html">GraphicsContext</a>&amp; context, <span class="keyword">const</span> <a class="code" href="classPoint.html">Point&lt;int&gt;</a>&amp; pos) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"> TODO document this.</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="classCairoImage.html">CairoImage</a>&amp; <a class="code" href="classCairoImage.html#af5f422a5a77f4639a907f8e5dde29ef7">operator=</a>(<span class="keyword">const</span> <a class="code" href="classCairoImage.html">CairoImage</a>&amp; image) noexcept;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// FIXME this should not be needed</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classCairoImage.html#a861bdbb5cd592feaef43e2202397deed">loadFromMemory</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rawData, uint w, uint h, ImageFormat format = kImageFormatBGRA)</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; { <a class="code" href="classCairoImage.html#a861bdbb5cd592feaef43e2202397deed">loadFromMemory</a>(rawData, <a class="code" href="classSize.html">Size&lt;uint&gt;</a>(w, h), format); };</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> draw(<span class="keyword">const</span> <a class="code" href="structGraphicsContext.html">GraphicsContext</a>&amp; context)</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; { <a class="code" href="classCairoImage.html#aa60a5e3b68032170e8e59fb506c7d3b7">drawAt</a>(context, <a class="code" href="classPoint.html">Point&lt;int&gt;</a>(0, 0)); };</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classCairoImage.html#aa60a5e3b68032170e8e59fb506c7d3b7">drawAt</a>(<span class="keyword">const</span> <a class="code" href="structGraphicsContext.html">GraphicsContext</a>&amp; context, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y)</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; { <a class="code" href="classCairoImage.html#aa60a5e3b68032170e8e59fb506c7d3b7">drawAt</a>(context, <a class="code" href="classPoint.html">Point&lt;int&gt;</a>(x, y)); };</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; cairo_surface_t* surface;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; uchar* surfacedata;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordtype">int</span>* datarefcount;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;};</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"> CairoWidget, handy class that takes graphics context during onDisplay and passes it in a new function.</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> BaseW<span class="keywordtype">id</span>get&gt;</div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classCairoBaseWidget.html"> 113</a></span>&#160;<span class="keyword">class </span><a class="code" href="classCairoBaseWidget.html">CairoBaseWidget</a> : <span class="keyword">public</span> BaseWidget</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;{</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keyword">public</span>:<span class="comment"></span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"> Constructor for a CairoSubWidget.</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"> @see CreateFlags</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classCairoBaseWidget.html#a264d5e3f7de6dd5c9f9b492f5577420f">CairoBaseWidget</a>(<a class="code" href="classWidget.html">Widget</a>* <span class="keyword">const</span> parentGroupWidget);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"> Constructor for a CairoTopLevelWidget.</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"> @see CreateFlags</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classCairoBaseWidget.html#a264d5e3f7de6dd5c9f9b492f5577420f">CairoBaseWidget</a>(<a class="code" href="classWindow.html">Window</a>&amp; windowToMapTo);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> Constructor for a CairoStandaloneWindow without parent window.</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment"> @see CreateFlags</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classCairoBaseWidget.html#a264d5e3f7de6dd5c9f9b492f5577420f">CairoBaseWidget</a>(<a class="code" href="classApplication.html">Application</a>&amp; app);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"> Constructor for a CairoStandaloneWindow with parent window.</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment"> @see CreateFlags</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classCairoBaseWidget.html#a264d5e3f7de6dd5c9f9b492f5577420f">CairoBaseWidget</a>(<a class="code" href="classApplication.html">Application</a>&amp; app, <a class="code" href="classWindow.html">Window</a>&amp; parentWindow);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"> Destructor.</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classCairoBaseWidget.html#ab76ae3b54d624b194e6392ba48799ce4"> 143</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classCairoBaseWidget.html#ab76ae3b54d624b194e6392ba48799ce4">~CairoBaseWidget</a>() {}</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="keyword">protected</span>:<span class="comment"></span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;START_NAMESPACE_DGL</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> Cairo Graphics context.</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structCairoGraphicsContext.html"> 32</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structCairoGraphicsContext.html">CairoGraphicsContext</a> : <a class="code" href="structGraphicsContext.html">GraphicsContext</a></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; cairo_t* handle;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;};</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> Cairo Image class.</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> TODO ...</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classCairoImage.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="classCairoImage.html">CairoImage</a> : <span class="keyword">public</span> <a class="code" href="classImageBase.html">ImageBase</a></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">public</span>:<span class="comment"></span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> Constructor for a null Image.</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="classCairoImage.html#aeadcf789efdf894a61e477b4d64fc0b6">CairoImage</a>();</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> Constructor using raw image data.</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> @note @a rawData must remain valid for the lifetime of this Image.</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classCairoImage.html#aeadcf789efdf894a61e477b4d64fc0b6">CairoImage</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rawData, uint width, uint height, ImageFormat format);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> Constructor using raw image data.</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> @note @a rawData must remain valid for the lifetime of this Image.</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classCairoImage.html#aeadcf789efdf894a61e477b4d64fc0b6">CairoImage</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rawData, <span class="keyword">const</span> <a class="code" href="classSize.html">Size&lt;uint&gt;</a>&amp; size, ImageFormat format);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> Constructor using another image data.</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classCairoImage.html#aeadcf789efdf894a61e477b4d64fc0b6">CairoImage</a>(<span class="keyword">const</span> <a class="code" href="classCairoImage.html">CairoImage</a>&amp; image);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> Destructor.</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classCairoImage.html#a36abbee6a47fc3447f00270aa16a82b7">~CairoImage</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> Load raw image data from memory.</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> @note @a rawData must remain valid for the lifetime of this Image.</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classCairoImage.html#a861bdbb5cd592feaef43e2202397deed">loadFromMemory</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rawData,</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">const</span> <a class="code" href="classSize.html">Size&lt;uint&gt;</a>&amp; size,</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; ImageFormat format = kImageFormatBGRA) noexcept <span class="keyword">override</span>;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> Load PNG image from memory.</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> Image size is read from PNG contents.</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"> @note @a pngData must remain valid for the lifetime of this Image.</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classCairoImage.html#a94c1707943b9874e362e11473bdcf768">loadFromPNG</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* pngData, uint dataSize) noexcept;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"> Draw this image at position @a pos using the graphics context @a context.</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classCairoImage.html#aa60a5e3b68032170e8e59fb506c7d3b7">drawAt</a>(<span class="keyword">const</span> <a class="code" href="structGraphicsContext.html">GraphicsContext</a>&amp; context, <span class="keyword">const</span> <a class="code" href="classPoint.html">Point&lt;int&gt;</a>&amp; pos) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment"> Get the cairo surface currently associated with this image.</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"> FIXME might be removed</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classCairoImage.html#a5ce76c4866b396a771caafa80acf162b"> 98</a></span>&#160; <span class="keyword">inline</span> cairo_surface_t* <a class="code" href="classCairoImage.html#a5ce76c4866b396a771caafa80acf162b">getSurface</a>() const noexcept</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> surface;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment"> TODO document this.</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="classCairoImage.html">CairoImage</a>&amp; <a class="code" href="classCairoImage.html#af5f422a5a77f4639a907f8e5dde29ef7">operator=</a>(<span class="keyword">const</span> <a class="code" href="classCairoImage.html">CairoImage</a>&amp; image) noexcept;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// FIXME this should not be needed</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classCairoImage.html#a861bdbb5cd592feaef43e2202397deed">loadFromMemory</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rdata, uint w, uint h, ImageFormat fmt = kImageFormatBGRA)</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; { <a class="code" href="classCairoImage.html#a861bdbb5cd592feaef43e2202397deed">loadFromMemory</a>(rdata, <a class="code" href="classSize.html">Size&lt;uint&gt;</a>(w, h), fmt); };</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> draw(<span class="keyword">const</span> <a class="code" href="structGraphicsContext.html">GraphicsContext</a>&amp; context)</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; { <a class="code" href="classCairoImage.html#aa60a5e3b68032170e8e59fb506c7d3b7">drawAt</a>(context, <a class="code" href="classPoint.html">Point&lt;int&gt;</a>(0, 0)); };</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classCairoImage.html#aa60a5e3b68032170e8e59fb506c7d3b7">drawAt</a>(<span class="keyword">const</span> <a class="code" href="structGraphicsContext.html">GraphicsContext</a>&amp; context, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y)</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; { <a class="code" href="classCairoImage.html#aa60a5e3b68032170e8e59fb506c7d3b7">drawAt</a>(context, <a class="code" href="classPoint.html">Point&lt;int&gt;</a>(x, y)); };</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; cairo_surface_t* surface;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; uchar* surfacedata;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">int</span>* datarefcount;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;};</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> CairoWidget, handy class that takes graphics context during onDisplay and passes it in a new function.</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> BaseW<span class="keywordtype">id</span>get&gt;</div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classCairoBaseWidget.html"> 128</a></span>&#160;<span class="keyword">class </span><a class="code" href="classCairoBaseWidget.html">CairoBaseWidget</a> : <span class="keyword">public</span> BaseWidget</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keyword">public</span>:<span class="comment"></span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"> Constructor for a CairoSubWidget.</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classCairoBaseWidget.html#a264d5e3f7de6dd5c9f9b492f5577420f">CairoBaseWidget</a>(<a class="code" href="classWidget.html">Widget</a>* <span class="keyword">const</span> parentGroupWidget);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> Constructor for a CairoTopLevelWidget.</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classCairoBaseWidget.html#a264d5e3f7de6dd5c9f9b492f5577420f">CairoBaseWidget</a>(<a class="code" href="classWindow.html">Window</a>&amp; windowToMapTo);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"> Constructor for a CairoStandaloneWindow without parent window.</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classCairoBaseWidget.html#a264d5e3f7de6dd5c9f9b492f5577420f">CairoBaseWidget</a>(<a class="code" href="classApplication.html">Application</a>&amp; app);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment"> New virtual onDisplay function.</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment"> @see onDisplay</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCairoBaseWidget.html#a2d59f5625d6e948ccbf7a9d2b3b00adf">onCairoDisplay</a>(<span class="keyword">const</span> <a class="code" href="structCairoGraphicsContext.html">CairoGraphicsContext</a>&amp; context) = 0;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; </div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="keyword">private</span>:<span class="comment"></span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"> Widget display function.</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"> Implemented internally to pass context into the drawing function.</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordtype">void</span> onDisplay()<span class="keyword"> override</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">const</span> <a class="code" href="structCairoGraphicsContext.html">CairoGraphicsContext</a>&amp; context((<span class="keyword">const</span> <a class="code" href="structCairoGraphicsContext.html">CairoGraphicsContext</a>&amp;)BaseWidget::getGraphicsContext());</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="classCairoBaseWidget.html#a2d59f5625d6e948ccbf7a9d2b3b00adf">onCairoDisplay</a>(context);</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment"> Constructor for a CairoStandaloneWindow with parent window.</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classCairoBaseWidget.html#a264d5e3f7de6dd5c9f9b492f5577420f">CairoBaseWidget</a>(<a class="code" href="classApplication.html">Application</a>&amp; app, <a class="code" href="classWindow.html">Window</a>&amp; parentWindow);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"> Destructor.</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classCairoBaseWidget.html#ab76ae3b54d624b194e6392ba48799ce4"> 154</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classCairoBaseWidget.html#ab76ae3b54d624b194e6392ba48799ce4">~CairoBaseWidget</a>() {}</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keyword">protected</span>:<span class="comment"></span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"> New virtual onDisplay function.</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"> @see onDisplay</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCairoBaseWidget.html#a2d59f5625d6e948ccbf7a9d2b3b00adf">onCairoDisplay</a>(<span class="keyword">const</span> <a class="code" href="structCairoGraphicsContext.html">CairoGraphicsContext</a>&amp; context) = 0;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classCairoBaseWidget.html">CairoBaseWidget</a>);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;};</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classCairoBaseWidget.html">CairoBaseWidget&lt;SubWidget&gt;</a> <a class="code" href="classCairoBaseWidget.html">CairoSubWidget</a>;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classCairoBaseWidget.html">CairoBaseWidget&lt;TopLevelWidget&gt;</a> <a class="code" href="classCairoBaseWidget.html">CairoTopLevelWidget</a>;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classCairoBaseWidget.html">CairoBaseWidget&lt;StandaloneWindow&gt;</a> <a class="code" href="classCairoBaseWidget.html">CairoStandaloneWindow</a>;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseAboutWindow.html">ImageBaseAboutWindow&lt;CairoImage&gt;</a> <a class="code" href="classImageBaseAboutWindow.html">CairoImageAboutWindow</a>;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseButton.html">ImageBaseButton&lt;CairoImage&gt;</a> <a class="code" href="classImageBaseButton.html">CairoImageButton</a>;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; </div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="keyword">private</span>:<span class="comment"></span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> Widget display function.</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment"> Implemented internally to pass context into the drawing function.</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">void</span> onDisplay()<span class="keyword"> override</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">const</span> <a class="code" href="structCairoGraphicsContext.html">CairoGraphicsContext</a>&amp; context((<span class="keyword">const</span> <a class="code" href="structCairoGraphicsContext.html">CairoGraphicsContext</a>&amp;)BaseWidget::getGraphicsContext());</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="classCairoBaseWidget.html#a2d59f5625d6e948ccbf7a9d2b3b00adf">onCairoDisplay</a>(context);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; </div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classCairoBaseWidget.html">CairoBaseWidget</a>);</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;};</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classCairoBaseWidget.html">CairoBaseWidget&lt;SubWidget&gt;</a> <a class="code" href="classCairoBaseWidget.html">CairoSubWidget</a>;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classCairoBaseWidget.html">CairoBaseWidget&lt;TopLevelWidget&gt;</a> <a class="code" href="classCairoBaseWidget.html">CairoTopLevelWidget</a>;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classCairoBaseWidget.html">CairoBaseWidget&lt;StandaloneWindow&gt;</a> <a class="code" href="classCairoBaseWidget.html">CairoStandaloneWindow</a>;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseAboutWindow.html">ImageBaseAboutWindow&lt;CairoImage&gt;</a> <a class="code" href="classImageBaseAboutWindow.html">CairoImageAboutWindow</a>;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseButton.html">ImageBaseButton&lt;CairoImage&gt;</a> <a class="code" href="classImageBaseButton.html">CairoImageButton</a>;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseKnob.html">ImageBaseKnob&lt;CairoImage&gt;</a> <a class="code" href="classImageBaseKnob.html">CairoImageKnob</a>;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseSlider.html">ImageBaseSlider&lt;CairoImage&gt;</a> <a class="code" href="classImageBaseSlider.html">CairoImageSlider</a>;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseSwitch.html">ImageBaseSwitch&lt;CairoImage&gt;</a> <a class="code" href="classImageBaseSwitch.html">CairoImageSwitch</a>;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; </div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; </div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; </div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassImageBaseButton_html"><div class="ttname"><a href="classImageBaseButton.html">ImageBaseButton</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:53</div></div>
<div class="ttc" id="aclassCairoImage_html_a5ce76c4866b396a771caafa80acf162b"><div class="ttname"><a href="classCairoImage.html#a5ce76c4866b396a771caafa80acf162b">CairoImage::getSurface</a></div><div class="ttdeci">cairo_surface_t * getSurface() const noexcept</div><div class="ttdef"><b>Definition:</b> Cairo.hpp:98</div></div>
<div class="ttc" id="aclassImageBaseButton_html"><div class="ttname"><a href="classImageBaseButton.html">ImageBaseButton</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:50</div></div>
<div class="ttc" id="aclassImageBaseKnob_html"><div class="ttname"><a href="classImageBaseKnob.html">ImageBaseKnob</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:83</div></div>
<div class="ttc" id="astructGraphicsContext_html"><div class="ttname"><a href="structGraphicsContext.html">GraphicsContext</a></div><div class="ttdef"><b>Definition:</b> Base.hpp:154</div></div>
<div class="ttc" id="aclassImageBaseSlider_html"><div class="ttname"><a href="classImageBaseSlider.html">ImageBaseSlider</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:137</div></div>
<div class="ttc" id="aclassCairoImage_html_a94c1707943b9874e362e11473bdcf768"><div class="ttname"><a href="classCairoImage.html#a94c1707943b9874e362e11473bdcf768">CairoImage::loadFromPNG</a></div><div class="ttdeci">void loadFromPNG(const char *pngData, uint dataSize) noexcept</div></div>
<div class="ttc" id="aclassWindow_html"><div class="ttname"><a href="classWindow.html">Window</a></div><div class="ttdef"><b>Definition:</b> Window.hpp:50</div></div>
<div class="ttc" id="aclassSize_html"><div class="ttname"><a href="classSize.html">Size&lt; uint &gt;</a></div></div>
<div class="ttc" id="aclassApplication_html"><div class="ttname"><a href="classApplication.html">Application</a></div><div class="ttdef"><b>Definition:</b> Application.hpp:34</div></div>
<div class="ttc" id="aclassCairoImage_html_aa60a5e3b68032170e8e59fb506c7d3b7"><div class="ttname"><a href="classCairoImage.html#aa60a5e3b68032170e8e59fb506c7d3b7">CairoImage::drawAt</a></div><div class="ttdeci">void drawAt(const GraphicsContext &amp;context, const Point&lt; int &gt; &amp;pos) override</div></div>
<div class="ttc" id="astructCairoGraphicsContext_html"><div class="ttname"><a href="structCairoGraphicsContext.html">CairoGraphicsContext</a></div><div class="ttdef"><b>Definition:</b> Cairo.hpp:33</div></div>
<div class="ttc" id="astructCairoGraphicsContext_html"><div class="ttname"><a href="structCairoGraphicsContext.html">CairoGraphicsContext</a></div><div class="ttdef"><b>Definition:</b> Cairo.hpp:32</div></div>
<div class="ttc" id="aclassCairoImage_html_af5f422a5a77f4639a907f8e5dde29ef7"><div class="ttname"><a href="classCairoImage.html#af5f422a5a77f4639a907f8e5dde29ef7">CairoImage::operator=</a></div><div class="ttdeci">CairoImage &amp; operator=(const CairoImage &amp;image) noexcept</div></div>
<div class="ttc" id="aclassCairoImage_html_aeadcf789efdf894a61e477b4d64fc0b6"><div class="ttname"><a href="classCairoImage.html#aeadcf789efdf894a61e477b4d64fc0b6">CairoImage::CairoImage</a></div><div class="ttdeci">CairoImage()</div></div>
<div class="ttc" id="aclassImageBaseAboutWindow_html"><div class="ttname"><a href="classImageBaseAboutWindow.html">ImageBaseAboutWindow</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:28</div></div>
<div class="ttc" id="aclassCairoImage_html"><div class="ttname"><a href="classCairoImage.html">CairoImage</a></div><div class="ttdef"><b>Definition:</b> Cairo.hpp:45</div></div>
<div class="ttc" id="aclassCairoBaseWidget_html"><div class="ttname"><a href="classCairoBaseWidget.html">CairoBaseWidget</a></div><div class="ttdef"><b>Definition:</b> Cairo.hpp:113</div></div>
<div class="ttc" id="aclassCairoImage_html"><div class="ttname"><a href="classCairoImage.html">CairoImage</a></div><div class="ttdef"><b>Definition:</b> Cairo.hpp:44</div></div>
<div class="ttc" id="aclassCairoBaseWidget_html"><div class="ttname"><a href="classCairoBaseWidget.html">CairoBaseWidget</a></div><div class="ttdef"><b>Definition:</b> Cairo.hpp:128</div></div>
<div class="ttc" id="aclassCairoImage_html_a861bdbb5cd592feaef43e2202397deed"><div class="ttname"><a href="classCairoImage.html#a861bdbb5cd592feaef43e2202397deed">CairoImage::loadFromMemory</a></div><div class="ttdeci">void loadFromMemory(const char *rawData, const Size&lt; uint &gt; &amp;size, ImageFormat format=kImageFormatBGRA) noexcept override</div></div>
<div class="ttc" id="aclassCairoBaseWidget_html_ab76ae3b54d624b194e6392ba48799ce4"><div class="ttname"><a href="classCairoBaseWidget.html#ab76ae3b54d624b194e6392ba48799ce4">CairoBaseWidget::~CairoBaseWidget</a></div><div class="ttdeci">virtual ~CairoBaseWidget()</div><div class="ttdef"><b>Definition:</b> Cairo.hpp:143</div></div>
<div class="ttc" id="aclassCairoBaseWidget_html_ab76ae3b54d624b194e6392ba48799ce4"><div class="ttname"><a href="classCairoBaseWidget.html#ab76ae3b54d624b194e6392ba48799ce4">CairoBaseWidget::~CairoBaseWidget</a></div><div class="ttdeci">virtual ~CairoBaseWidget()</div><div class="ttdef"><b>Definition:</b> Cairo.hpp:154</div></div>
<div class="ttc" id="aclassCairoBaseWidget_html_a264d5e3f7de6dd5c9f9b492f5577420f"><div class="ttname"><a href="classCairoBaseWidget.html#a264d5e3f7de6dd5c9f9b492f5577420f">CairoBaseWidget::CairoBaseWidget</a></div><div class="ttdeci">CairoBaseWidget(Widget *const parentGroupWidget)</div></div>
<div class="ttc" id="aclassImageBase_html"><div class="ttname"><a href="classImageBase.html">ImageBase</a></div><div class="ttdef"><b>Definition:</b> ImageBase.hpp:44</div></div>
<div class="ttc" id="aclassCairoBaseWidget_html_a2d59f5625d6e948ccbf7a9d2b3b00adf"><div class="ttname"><a href="classCairoBaseWidget.html#a2d59f5625d6e948ccbf7a9d2b3b00adf">CairoBaseWidget::onCairoDisplay</a></div><div class="ttdeci">virtual void onCairoDisplay(const CairoGraphicsContext &amp;context)=0</div></div>
<div class="ttc" id="aclassCairoImage_html_a36abbee6a47fc3447f00270aa16a82b7"><div class="ttname"><a href="classCairoImage.html#a36abbee6a47fc3447f00270aa16a82b7">CairoImage::~CairoImage</a></div><div class="ttdeci">~CairoImage() override</div></div>
<div class="ttc" id="aclassPoint_html"><div class="ttname"><a href="classPoint.html">Point&lt; int &gt;</a></div></div>
<div class="ttc" id="aclassImageBaseSwitch_html"><div class="ttname"><a href="classImageBaseSwitch.html">ImageBaseSwitch</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:188</div></div>
<div class="ttc" id="aclassWidget_html"><div class="ttname"><a href="classWidget.html">Widget</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:53</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
Color_8hpp_source.html View File

@@ -196,7 +196,7 @@ $(function() {
<div class="ttc" id="astructColor_html"><div class="ttname"><a href="structColor.html">Color</a></div><div class="ttdef"><b>Definition:</b> Color.hpp:31</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 102
- 94
DistrhoInfo_8hpp_source.html View File

@@ -559,20 +559,20 @@ $(function() {
<div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#ga9cc186448134e6a1956474b3878c97a8"> 488</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_URI &quot;urn:distrho:name&quot;</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="comment"> Wherever the plugin has a custom %UI.</span></div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="comment"> Whether the plugin has a custom %UI.</span></div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="comment"> @see DISTRHO_UI_USE_NANOVG</span></div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="comment"> @see UI</span></div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gacf8a1af679c09637ba0bdc5f4f8e37dd"> 495</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_HAS_UI 1</span></div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="comment"> Wherever the plugin processing is realtime-safe.@n</span></div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="comment"> Whether the plugin processing is realtime-safe.@n</span></div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="comment"> TODO - list rtsafe requirements</span></div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#ga82546dd199fcea338b113f2f6da84ced"> 501</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_IS_RT_SAFE 1</span></div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="comment"> Wherever the plugin is a synth.@n</span></div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="comment"> Whether the plugin is a synth.@n</span></div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="comment"> @ref DISTRHO_PLUGIN_WANT_MIDI_INPUT is automatically enabled when this is too.</span></div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="comment"> @see DISTRHO_PLUGIN_WANT_MIDI_INPUT</span></div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="comment"> */</span></div>
@@ -587,120 +587,128 @@ $(function() {
<div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gac6873a3950f52f3fde8e386af63b69a1"> 516</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 0</span></div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="comment"> Wherever the plugin introduces latency during audio or midi processing.</span></div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="comment"> Whether the plugin introduces latency during audio or midi processing.</span></div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="comment"> @see Plugin::setLatency(uint32_t)</span></div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gad6b0ebf10e048f4742f29735da4d4930"> 522</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_WANT_LATENCY 1</span></div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="comment"> Wherever the plugin wants MIDI input.@n</span></div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="comment"> Whether the plugin wants MIDI input.@n</span></div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="comment"> This is automatically enabled if @ref DISTRHO_PLUGIN_IS_SYNTH is true.</span></div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gadf2e2eb7550e4116001c816adfb04a70"> 528</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_WANT_MIDI_INPUT 1</span></div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="comment"> Wherever the plugin wants MIDI output.</span></div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="comment"> Whether the plugin wants MIDI output.</span></div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="comment"> @see Plugin::writeMidiEvent(const MidiEvent&amp;)</span></div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#ga548522eb91344a45841a5a95ff4f8073"> 534</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 1</span></div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="comment"> Wherever the plugin provides its own internal programs.</span></div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="comment"> @see Plugin::initProgramName(uint32_t, String&amp;)</span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="comment"> @see Plugin::loadProgram(uint32_t)</span></div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gad95e24b17f196260cee15255fdb5b677"> 541</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_WANT_PROGRAMS 1</span></div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="comment"> Wherever the plugin uses internal non-parameter data.</span></div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="comment"> @see Plugin::initState(uint32_t, String&amp;, String&amp;)</span></div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="comment"> @see Plugin::setState(const char*, const char*)</span></div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#ga255f43cc0997af8b56abcca260c875e0"> 548</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_WANT_STATE 1</span></div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="comment"> Wherever the plugin implements the full state API.</span></div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="comment"> When this macro is enabled, the plugin must implement a new getState(const char* key) function, which the host calls when saving its session/project.</span></div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="comment"> This is useful for plugins that have custom internal values not exposed to the host as key-value state pairs or parameters.</span></div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="comment"> Most simple effects and synths will not need this.</span></div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="comment"> @note this macro is automatically enabled if a plugin has programs and state, as the key-value state pairs need to be updated when the current program changes.</span></div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="comment"> @see Plugin::getState(const char*)</span></div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gac022d3d0a8782d632d7a801bc9cf721e"> 558</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_WANT_FULL_STATE 1</span></div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="comment"> Wherever the plugin wants time position information from the host.</span></div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="comment"> @see Plugin::getTimePosition()</span></div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#ga496610b956d931b1940d07da48d123f2"> 564</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_WANT_TIMEPOS 1</span></div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="comment"> Wherever the %UI uses a custom toolkit implementation based on OpenGL.@n</span></div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="comment"> When enabled, the macros @ref DISTRHO_UI_CUSTOM_INCLUDE_PATH and @ref DISTRHO_UI_CUSTOM_WIDGET_TYPE are required.</span></div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#ga5bcd1ce31e47a617de4c32fbf85e44ca"> 570</a></span>&#160;<span class="preprocessor">#define DISTRHO_UI_USE_CUSTOM 1</span></div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="comment"> The include path to the header file used by the custom toolkit implementation.</span></div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="comment"> This path must be relative to dpf/distrho/DistrhoUI.hpp</span></div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="comment"> @see DISTRHO_UI_USE_CUSTOM</span></div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gaf978778ddb34e3663a5c0bd128067e10"> 577</a></span>&#160;<span class="preprocessor">#define DISTRHO_UI_CUSTOM_INCLUDE_PATH</span></div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="comment"> The top-level-widget typedef to use for the custom toolkit.</span></div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="comment"> This widget class MUST be a subclass of DGL TopLevelWindow class.</span></div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="comment"> It is recommended that you keep this widget class inside the DGL namespace,</span></div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="comment"> and define widget type as e.g. DGL_NAMESPACE::MyCustomTopLevelWidget.</span></div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="comment"> @see DISTRHO_UI_USE_CUSTOM</span></div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gaf6377f757b9796bd37f7be4e605ccd4a"> 586</a></span>&#160;<span class="preprocessor">#define DISTRHO_UI_CUSTOM_WIDGET_TYPE</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="comment"> Wherever the %UI uses NanoVG for drawing instead of the default raw OpenGL calls.@n</span></div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="comment"> When enabled your %UI instance will subclass @ref NanoWidget instead of @ref Widget.</span></div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gad49e79936a2aa5afa089cbc051426ccd"> 592</a></span>&#160;<span class="preprocessor">#define DISTRHO_UI_USE_NANOVG 1</span></div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="comment"> Wherever the %UI is resizable to any size by the user.@n</span></div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="comment"> By default this is false, and resizing is only allowed under the plugin UI control,@n</span></div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="comment"> Enabling this options makes it possible for the user to resize the plugin UI at anytime.</span></div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="comment"> @see UI::setGeometryConstraints(uint, uint, bool, bool)</span></div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="comment"> Whether the plugin wants to change its own parameter inputs.@n</span></div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="comment"> Not all hosts or plugin formats support this,</span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="comment"> so Plugin::canRequestParameterValueChanges() can be used to query support at runtime.</span></div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="comment"> @see Plugin::requestParameterValueChange(uint32_t, float)</span></div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#ga5a33bc5567795bdbbaab32313fabc652"> 542</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_WANT_PARAMETER_VALUE_CHANGE_REQUEST 1</span></div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="comment"> Whether the plugin provides its own internal programs.</span></div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="comment"> @see Plugin::initProgramName(uint32_t, String&amp;)</span></div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="comment"> @see Plugin::loadProgram(uint32_t)</span></div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00549"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gad95e24b17f196260cee15255fdb5b677"> 549</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_WANT_PROGRAMS 1</span></div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="comment"> Whether the plugin uses internal non-parameter data.</span></div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="comment"> @see Plugin::initState(uint32_t, String&amp;, String&amp;)</span></div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="comment"> @see Plugin::setState(const char*, const char*)</span></div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#ga255f43cc0997af8b56abcca260c875e0"> 556</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_WANT_STATE 1</span></div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="comment"> Whether the plugin implements the full state API.</span></div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="comment"> When this macro is enabled, the plugin must implement a new getState(const char* key) function, which the host calls when saving its session/project.</span></div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="comment"> This is useful for plugins that have custom internal values not exposed to the host as key-value state pairs or parameters.</span></div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="comment"> Most simple effects and synths will not need this.</span></div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="comment"> @note this macro is automatically enabled if a plugin has programs and state, as the key-value state pairs need to be updated when the current program changes.</span></div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="comment"> @see Plugin::getState(const char*)</span></div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00566"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gac022d3d0a8782d632d7a801bc9cf721e"> 566</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_WANT_FULL_STATE 1</span></div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="comment"> Whether the plugin wants time position information from the host.</span></div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="comment"> @see Plugin::getTimePosition()</span></div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#ga496610b956d931b1940d07da48d123f2"> 572</a></span>&#160;<span class="preprocessor">#define DISTRHO_PLUGIN_WANT_TIMEPOS 1</span></div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="comment"> Whether the %UI uses a custom toolkit implementation based on OpenGL.@n</span></div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="comment"> When enabled, the macros @ref DISTRHO_UI_CUSTOM_INCLUDE_PATH and @ref DISTRHO_UI_CUSTOM_WIDGET_TYPE are required.</span></div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#ga5bcd1ce31e47a617de4c32fbf85e44ca"> 578</a></span>&#160;<span class="preprocessor">#define DISTRHO_UI_USE_CUSTOM 1</span></div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="comment"> The include path to the header file used by the custom toolkit implementation.</span></div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="comment"> This path must be relative to dpf/distrho/DistrhoUI.hpp</span></div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="comment"> @see DISTRHO_UI_USE_CUSTOM</span></div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gaf978778ddb34e3663a5c0bd128067e10"> 585</a></span>&#160;<span class="preprocessor">#define DISTRHO_UI_CUSTOM_INCLUDE_PATH</span></div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="comment"> The top-level-widget typedef to use for the custom toolkit.</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="comment"> This widget class MUST be a subclass of DGL TopLevelWindow class.</span></div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="comment"> It is recommended that you keep this widget class inside the DGL namespace,</span></div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="comment"> and define widget type as e.g. DGL_NAMESPACE::MyCustomTopLevelWidget.</span></div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="comment"> @see DISTRHO_UI_USE_CUSTOM</span></div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gaf6377f757b9796bd37f7be4e605ccd4a"> 594</a></span>&#160;<span class="preprocessor">#define DISTRHO_UI_CUSTOM_WIDGET_TYPE</span></div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="comment"> Whether the %UI uses NanoVG for drawing instead of the default raw OpenGL calls.@n</span></div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="comment"> When enabled your %UI instance will subclass @ref NanoWidget instead of @ref Widget.</span></div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00600"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gabadb9d9ba7f479df39b3963ee60b7a4b"> 600</a></span>&#160;<span class="preprocessor">#define DISTRHO_UI_USER_RESIZABLE 1</span></div>
<div class="line"><a name="l00600"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gad49e79936a2aa5afa089cbc051426ccd"> 600</a></span>&#160;<span class="preprocessor">#define DISTRHO_UI_USE_NANOVG 1</span></div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="comment"> The %UI URI when exporting in LV2 format.@n</span></div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="comment"> By default this is set to @ref DISTRHO_PLUGIN_URI with &quot;#UI&quot; as suffix.</span></div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#ga420a88022da249b9f38a6046998dbd7c"> 606</a></span>&#160;<span class="preprocessor">#define DISTRHO_UI_URI DISTRHO_PLUGIN_URI &quot;#UI&quot;</span></div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="comment">/** @} */</span></div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; </div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="comment">// -----------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; </div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;END_NAMESPACE_DISTRHO</div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; </div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor">#endif // DOXYGEN</span></div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="comment"> Whether the %UI is resizable to any size by the user.@n</span></div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="comment"> By default this is false, and resizing is only allowed under the plugin UI control,@n</span></div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="comment"> Enabling this options makes it possible for the user to resize the plugin UI at anytime.</span></div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="comment"> @see UI::setGeometryConstraints(uint, uint, bool, bool)</span></div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#gabadb9d9ba7f479df39b3963ee60b7a4b"> 608</a></span>&#160;<span class="preprocessor">#define DISTRHO_UI_USER_RESIZABLE 1</span></div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="comment"> The %UI URI when exporting in LV2 format.@n</span></div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="comment"> By default this is set to @ref DISTRHO_PLUGIN_URI with &quot;#UI&quot; as suffix.</span></div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="group__PluginMacros.html#ga420a88022da249b9f38a6046998dbd7c"> 614</a></span>&#160;<span class="preprocessor">#define DISTRHO_UI_URI DISTRHO_PLUGIN_URI &quot;#UI&quot;</span></div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="comment">/** @} */</span></div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; </div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="comment">// -----------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; </div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;END_NAMESPACE_DISTRHO</div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; </div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="preprocessor">#endif // DOXYGEN</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdef"><b>Definition:</b> String.hpp:29</div></div>
<div class="ttc" id="astructParameter_html_a2d0c81e4fb8fad18d920ef6ecd4a64db"><div class="ttname"><a href="structParameter.html#a2d0c81e4fb8fad18d920ef6ecd4a64db">Parameter::ranges</a></div><div class="ttdeci">ParameterRanges ranges</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:424</div></div>
<div class="ttc" id="astructParameter_html"><div class="ttname"><a href="structParameter.html">Parameter</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:378</div></div>
<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdef"><b>Definition:</b> String.hpp:30</div></div>
<div class="ttc" id="astructParameter_html_a2d0c81e4fb8fad18d920ef6ecd4a64db"><div class="ttname"><a href="structParameter.html#a2d0c81e4fb8fad18d920ef6ecd4a64db">Parameter::ranges</a></div><div class="ttdeci">ParameterRanges ranges</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:491</div></div>
<div class="ttc" id="astructParameter_html"><div class="ttname"><a href="structParameter.html">Parameter</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:445</div></div>
<div class="ttc" id="aclassUI_html"><div class="ttname"><a href="classUI.html">UI</a></div><div class="ttdef"><b>Definition:</b> DistrhoUI.hpp:67</div></div>
<div class="ttc" id="aclassPlugin_html_ab629f35c60406d6f2c0b9d530e67cf09"><div class="ttname"><a href="classPlugin.html#ab629f35c60406d6f2c0b9d530e67cf09">Plugin::loadProgram</a></div><div class="ttdeci">virtual void loadProgram(uint32_t index)=0</div></div>
<div class="ttc" id="astructParameterRanges_html_aa0aba68115bcfff25c35b2da2f7aed4c"><div class="ttname"><a href="structParameterRanges.html#aa0aba68115bcfff25c35b2da2f7aed4c">ParameterRanges::def</a></div><div class="ttdeci">float def</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:182</div></div>
<div class="ttc" id="astructParameter_html_ae63c1fcfb20e320bada1f58c04ff18da"><div class="ttname"><a href="structParameter.html#ae63c1fcfb20e320bada1f58c04ff18da">Parameter::name</a></div><div class="ttdeci">String name</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:390</div></div>
<div class="ttc" id="astructParameter_html_a3e546efd8dbd0d77351208b670719468"><div class="ttname"><a href="structParameter.html#a3e546efd8dbd0d77351208b670719468">Parameter::symbol</a></div><div class="ttdeci">String symbol</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:405</div></div>
<div class="ttc" id="agroup__PluginMacros_html_gad95e24b17f196260cee15255fdb5b677"><div class="ttname"><a href="group__PluginMacros.html#gad95e24b17f196260cee15255fdb5b677">DISTRHO_PLUGIN_WANT_PROGRAMS</a></div><div class="ttdeci">#define DISTRHO_PLUGIN_WANT_PROGRAMS</div><div class="ttdef"><b>Definition:</b> DistrhoInfo.hpp:541</div></div>
<div class="ttc" id="aclassPlugin_html"><div class="ttname"><a href="classPlugin.html">Plugin</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:687</div></div>
<div class="ttc" id="agroup__ParameterHints_html_ga04161ef926442aa08ae7aa6847078ad9"><div class="ttname"><a href="group__ParameterHints.html#ga04161ef926442aa08ae7aa6847078ad9">kParameterIsAutomable</a></div><div class="ttdeci">static const uint32_t kParameterIsAutomable</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:64</div></div>
<div class="ttc" id="astructParameterRanges_html_a175c78c905c598df929a4450e4d2a2a0"><div class="ttname"><a href="structParameterRanges.html#a175c78c905c598df929a4450e4d2a2a0">ParameterRanges::max</a></div><div class="ttdeci">float max</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:192</div></div>
<div class="ttc" id="astructParameterRanges_html_a63c40988463a8ace9d0e9e55a00f3c7b"><div class="ttname"><a href="structParameterRanges.html#a63c40988463a8ace9d0e9e55a00f3c7b">ParameterRanges::min</a></div><div class="ttdeci">float min</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:187</div></div>
<div class="ttc" id="astructParameter_html_a397fb977f0c6cbec31df4f141ca3f5b3"><div class="ttname"><a href="structParameter.html#a397fb977f0c6cbec31df4f141ca3f5b3">Parameter::hints</a></div><div class="ttdeci">uint32_t hints</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:383</div></div>
<div class="ttc" id="astructParameterRanges_html_aa0aba68115bcfff25c35b2da2f7aed4c"><div class="ttname"><a href="structParameterRanges.html#aa0aba68115bcfff25c35b2da2f7aed4c">ParameterRanges::def</a></div><div class="ttdeci">float def</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:249</div></div>
<div class="ttc" id="astructParameter_html_ae63c1fcfb20e320bada1f58c04ff18da"><div class="ttname"><a href="structParameter.html#ae63c1fcfb20e320bada1f58c04ff18da">Parameter::name</a></div><div class="ttdeci">String name</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:457</div></div>
<div class="ttc" id="astructParameter_html_a3e546efd8dbd0d77351208b670719468"><div class="ttname"><a href="structParameter.html#a3e546efd8dbd0d77351208b670719468">Parameter::symbol</a></div><div class="ttdeci">String symbol</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:472</div></div>
<div class="ttc" id="agroup__PluginMacros_html_gad95e24b17f196260cee15255fdb5b677"><div class="ttname"><a href="group__PluginMacros.html#gad95e24b17f196260cee15255fdb5b677">DISTRHO_PLUGIN_WANT_PROGRAMS</a></div><div class="ttdeci">#define DISTRHO_PLUGIN_WANT_PROGRAMS</div><div class="ttdef"><b>Definition:</b> DistrhoInfo.hpp:549</div></div>
<div class="ttc" id="aclassPlugin_html"><div class="ttname"><a href="classPlugin.html">Plugin</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:802</div></div>
<div class="ttc" id="agroup__ParameterHints_html_ga04161ef926442aa08ae7aa6847078ad9"><div class="ttname"><a href="group__ParameterHints.html#ga04161ef926442aa08ae7aa6847078ad9">kParameterIsAutomable</a></div><div class="ttdeci">static const uint32_t kParameterIsAutomable</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:90</div></div>
<div class="ttc" id="astructParameterRanges_html_a175c78c905c598df929a4450e4d2a2a0"><div class="ttname"><a href="structParameterRanges.html#a175c78c905c598df929a4450e4d2a2a0">ParameterRanges::max</a></div><div class="ttdeci">float max</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:259</div></div>
<div class="ttc" id="astructParameterRanges_html_a63c40988463a8ace9d0e9e55a00f3c7b"><div class="ttname"><a href="structParameterRanges.html#a63c40988463a8ace9d0e9e55a00f3c7b">ParameterRanges::min</a></div><div class="ttdeci">float min</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:254</div></div>
<div class="ttc" id="astructParameter_html_a397fb977f0c6cbec31df4f141ca3f5b3"><div class="ttname"><a href="structParameter.html#a397fb977f0c6cbec31df4f141ca3f5b3">Parameter::hints</a></div><div class="ttdeci">uint32_t hints</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:450</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 9
- 9
DistrhoPluginLV2_8hpp_source.html View File

@@ -480,9 +480,9 @@ $(function() {
<div class="ttc" id="aclassPlugin_html_ae85d602c430b1a4361a88d714d3a42c1"><div class="ttname"><a href="classPlugin.html#ae85d602c430b1a4361a88d714d3a42c1">Plugin::getTimePosition</a></div><div class="ttdeci">const TimePosition &amp; getTimePosition() const noexcept</div></div>
<div class="ttc" id="aclassPlugin_html_aa089a56572bc8f1cb7e4b538c0d19c46"><div class="ttname"><a href="classPlugin.html#aa089a56572bc8f1cb7e4b538c0d19c46">Plugin::deactivate</a></div><div class="ttdeci">virtual void deactivate()</div><div class="ttdef"><b>Definition:</b> DistrhoPluginLV2.hpp:339</div></div>
<div class="ttc" id="aclassPlugin_html_abae540dd93caf4834270358a8aad334a"><div class="ttname"><a href="classPlugin.html#abae540dd93caf4834270358a8aad334a">Plugin::getVersion</a></div><div class="ttdeci">virtual uint32_t getVersion() const =0</div></div>
<div class="ttc" id="astructMidiEvent_html"><div class="ttname"><a href="structMidiEvent.html">MidiEvent</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:502</div></div>
<div class="ttc" id="astructMidiEvent_html"><div class="ttname"><a href="structMidiEvent.html">MidiEvent</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:616</div></div>
<div class="ttc" id="aclassPlugin_html_a2a70c4ec55d74d9bc26862975d8df8a7"><div class="ttname"><a href="classPlugin.html#a2a70c4ec55d74d9bc26862975d8df8a7">Plugin::setLatency</a></div><div class="ttdeci">void setLatency(uint32_t frames) noexcept</div></div>
<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdef"><b>Definition:</b> String.hpp:29</div></div>
<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdef"><b>Definition:</b> String.hpp:30</div></div>
<div class="ttc" id="aclassPlugin_html_a0467eef817ac130cbbe1c0fbe09660c6"><div class="ttname"><a href="classPlugin.html#a0467eef817ac130cbbe1c0fbe09660c6">Plugin::writeMidiEvent</a></div><div class="ttdeci">bool writeMidiEvent(const MidiEvent &amp;midiEvent) noexcept</div></div>
<div class="ttc" id="aclassPlugin_html_a84af70cd84fa4c3054caaa8affaab8f1"><div class="ttname"><a href="classPlugin.html#a84af70cd84fa4c3054caaa8affaab8f1">Plugin::getState</a></div><div class="ttdeci">virtual String getState(const char *key) const =0</div></div>
<div class="ttc" id="aclassPlugin_html_a2d1da98c90568bb4547662bc4f02c31f"><div class="ttname"><a href="classPlugin.html#a2d1da98c90568bb4547662bc4f02c31f">Plugin::getParameterValue</a></div><div class="ttdeci">virtual float getParameterValue(uint32_t index) const =0</div></div>
@@ -490,7 +490,7 @@ $(function() {
<div class="ttc" id="aclassPlugin_html_acb5a3632da5a5c4110172a3a78e1fd32"><div class="ttname"><a href="classPlugin.html#acb5a3632da5a5c4110172a3a78e1fd32">Plugin::Plugin</a></div><div class="ttdeci">Plugin(uint32_t parameterCount, uint32_t programCount, uint32_t stateCount)</div></div>
<div class="ttc" id="agroup__BasePluginStructs_html_gga9a7e733c40008f92e96e2ccf24f890deaee7f64d019ddec5f802c9d53eb033401"><div class="ttname"><a href="group__BasePluginStructs.html#gga9a7e733c40008f92e96e2ccf24f890deaee7f64d019ddec5f802c9d53eb033401">kParameterDesignationNull</a></div><div class="ttdeci">@ kParameterDesignationNull</div><div class="ttdef"><b>Definition:</b> DistrhoPluginLV2.hpp:93</div></div>
<div class="ttc" id="aclassPlugin_html_a89814b8f0b1c91e49140d42eb8331383"><div class="ttname"><a href="classPlugin.html#a89814b8f0b1c91e49140d42eb8331383">Plugin::~Plugin</a></div><div class="ttdeci">virtual ~Plugin()</div></div>
<div class="ttc" id="astructParameter_html"><div class="ttname"><a href="structParameter.html">Parameter</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:378</div></div>
<div class="ttc" id="astructParameter_html"><div class="ttname"><a href="structParameter.html">Parameter</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:445</div></div>
<div class="ttc" id="aclassPlugin_html_a2643e638f62cfd4990247ec66bed60d2"><div class="ttname"><a href="classPlugin.html#a2643e638f62cfd4990247ec66bed60d2">Plugin::getBufferSize</a></div><div class="ttdeci">uint32_t getBufferSize() const noexcept</div></div>
<div class="ttc" id="aclassPlugin_html_a955832840de786a7a22798f0ef451c5d"><div class="ttname"><a href="classPlugin.html#a955832840de786a7a22798f0ef451c5d">Plugin::getMaker</a></div><div class="ttdeci">virtual const char * getMaker() const =0</div></div>
<div class="ttc" id="aclassPlugin_html_ab629f35c60406d6f2c0b9d530e67cf09"><div class="ttname"><a href="classPlugin.html#ab629f35c60406d6f2c0b9d530e67cf09">Plugin::loadProgram</a></div><div class="ttdeci">virtual void loadProgram(uint32_t index)=0</div></div>
@@ -505,24 +505,24 @@ $(function() {
<div class="ttc" id="aclassPlugin_html_aebb5df5cde162462dc460d4fd45dae75"><div class="ttname"><a href="classPlugin.html#aebb5df5cde162462dc460d4fd45dae75">Plugin::getName</a></div><div class="ttdeci">virtual const char * getName() const</div><div class="ttdef"><b>Definition:</b> DistrhoPluginLV2.hpp:207</div></div>
<div class="ttc" id="aclassPlugin_html_a686a3c92a376a185d6fd97efd59125d1"><div class="ttname"><a href="classPlugin.html#a686a3c92a376a185d6fd97efd59125d1">Plugin::getLicense</a></div><div class="ttdeci">virtual const char * getLicense() const =0</div></div>
<div class="ttc" id="agroup__LV2AudioPortHints_html_gafbf1a5255d0a19f35ae21480ab2c7433"><div class="ttname"><a href="group__LV2AudioPortHints.html#gafbf1a5255d0a19f35ae21480ab2c7433">kAudioPortIsSidechain</a></div><div class="ttdeci">static const uint32_t kAudioPortIsSidechain</div><div class="ttdef"><b>Definition:</b> DistrhoPluginLV2.hpp:44</div></div>
<div class="ttc" id="agroup__BasePluginStructs_html_ga9a7e733c40008f92e96e2ccf24f890de"><div class="ttname"><a href="group__BasePluginStructs.html#ga9a7e733c40008f92e96e2ccf24f890de">ParameterDesignation</a></div><div class="ttdeci">ParameterDesignation</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:158</div></div>
<div class="ttc" id="agroup__BasePluginStructs_html_ga9a7e733c40008f92e96e2ccf24f890de"><div class="ttname"><a href="group__BasePluginStructs.html#ga9a7e733c40008f92e96e2ccf24f890de">ParameterDesignation</a></div><div class="ttdeci">ParameterDesignation</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:150</div></div>
<div class="ttc" id="agroup__LV2ParameterHints_html_ga068de47c587411c9e91ef09f7d800884"><div class="ttname"><a href="group__LV2ParameterHints.html#ga068de47c587411c9e91ef09f7d800884">kParameterIsTrigger</a></div><div class="ttdeci">static const uint32_t kParameterIsTrigger</div><div class="ttdef"><b>Definition:</b> DistrhoPluginLV2.hpp:67</div></div>
<div class="ttc" id="aclassPlugin_html_a75f30935198a0acba25f4ea92af72dc4"><div class="ttname"><a href="classPlugin.html#a75f30935198a0acba25f4ea92af72dc4">Plugin::initAudioPort</a></div><div class="ttdeci">virtual void initAudioPort(bool input, uint32_t index, AudioPort &amp;port)</div></div>
<div class="ttc" id="aclassPlugin_html_ad6ff8c80227d5ceebd40b96f3be29a66"><div class="ttname"><a href="classPlugin.html#ad6ff8c80227d5ceebd40b96f3be29a66">Plugin::getUniqueId</a></div><div class="ttdeci">virtual int64_t getUniqueId() const =0</div></div>
<div class="ttc" id="aclassPlugin_html"><div class="ttname"><a href="classPlugin.html">Plugin</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:687</div></div>
<div class="ttc" id="aclassPlugin_html"><div class="ttname"><a href="classPlugin.html">Plugin</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:802</div></div>
<div class="ttc" id="aclassPlugin_html_a0a969c78f8455ac6ba65fa42e8c498f6"><div class="ttname"><a href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">Plugin::run</a></div><div class="ttdeci">virtual void run(const float **inputs, float **outputs, uint32_t frames, const MidiEvent *midiEvents, uint32_t midiEventCount)=0</div></div>
<div class="ttc" id="aclassPlugin_html_a6911a881fabb9eca9daf0eadbaad8599"><div class="ttname"><a href="classPlugin.html#a6911a881fabb9eca9daf0eadbaad8599">Plugin::setParameterValue</a></div><div class="ttdeci">virtual void setParameterValue(uint32_t index, float value)=0</div></div>
<div class="ttc" id="astructTimePosition_html"><div class="ttname"><a href="structTimePosition.html">TimePosition</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:533</div></div>
<div class="ttc" id="astructTimePosition_html"><div class="ttname"><a href="structTimePosition.html">TimePosition</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:647</div></div>
<div class="ttc" id="aclassPlugin_html_ad12c681ce31004da0badd609763f45c5"><div class="ttname"><a href="classPlugin.html#ad12c681ce31004da0badd609763f45c5">Plugin::getHomePage</a></div><div class="ttdeci">virtual const char * getHomePage() const</div><div class="ttdef"><b>Definition:</b> DistrhoPluginLV2.hpp:230</div></div>
<div class="ttc" id="agroup__ParameterHints_html_gaafca30df903781d2e1c2491808e17c8d"><div class="ttname"><a href="group__ParameterHints.html#gaafca30df903781d2e1c2491808e17c8d">kParameterIsBoolean</a></div><div class="ttdeci">static const uint32_t kParameterIsBoolean</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:70</div></div>
<div class="ttc" id="astructAudioPort_html"><div class="ttname"><a href="structAudioPort.html">AudioPort</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:117</div></div>
<div class="ttc" id="agroup__ParameterHints_html_gaafca30df903781d2e1c2491808e17c8d"><div class="ttname"><a href="group__ParameterHints.html#gaafca30df903781d2e1c2491808e17c8d">kParameterIsBoolean</a></div><div class="ttdeci">static const uint32_t kParameterIsBoolean</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:96</div></div>
<div class="ttc" id="astructAudioPort_html"><div class="ttname"><a href="structAudioPort.html">AudioPort</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:196</div></div>
<div class="ttc" id="aclassPlugin_html_a3e162cfe8f1c52bf09805fd327bcc3c4"><div class="ttname"><a href="classPlugin.html#a3e162cfe8f1c52bf09805fd327bcc3c4">Plugin::getSampleRate</a></div><div class="ttdeci">double getSampleRate() const noexcept</div></div>
<div class="ttc" id="aclassPlugin_html_aa5c1262f5ca20536bb5850fdd6faa22c"><div class="ttname"><a href="classPlugin.html#aa5c1262f5ca20536bb5850fdd6faa22c">Plugin::activate</a></div><div class="ttdeci">virtual void activate()</div><div class="ttdef"><b>Definition:</b> DistrhoPluginLV2.hpp:334</div></div>
<div class="ttc" id="aclassPlugin_html_ae301a970a8b5cff3c7ecef927ea20080"><div class="ttname"><a href="classPlugin.html#ae301a970a8b5cff3c7ecef927ea20080">Plugin::initState</a></div><div class="ttdeci">virtual void initState(uint32_t index, String &amp;stateKey, String &amp;defaultStateValue)=0</div></div>
<div class="ttc" id="aclassPlugin_html_ad25ed64a2f00f48c86d2ae0016ea3e59"><div class="ttname"><a href="classPlugin.html#ad25ed64a2f00f48c86d2ae0016ea3e59">Plugin::setState</a></div><div class="ttdeci">virtual void setState(const char *key, const char *value)=0</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 3
- 3
DistrhoPluginUtils_8hpp_source.html View File

@@ -229,8 +229,8 @@ $(function() {
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#endif // DISTRHO_PLUGIN_UTILS_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="astructMidiEvent_html"><div class="ttname"><a href="structMidiEvent.html">MidiEvent</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:502</div></div>
<div class="ttc" id="astructMidiEvent_html_aca2f6590b33bd2175ab71f985747d88e"><div class="ttname"><a href="structMidiEvent.html#aca2f6590b33bd2175ab71f985747d88e">MidiEvent::frame</a></div><div class="ttdeci">uint32_t frame</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:511</div></div>
<div class="ttc" id="astructMidiEvent_html"><div class="ttname"><a href="structMidiEvent.html">MidiEvent</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:616</div></div>
<div class="ttc" id="astructMidiEvent_html_aca2f6590b33bd2175ab71f985747d88e"><div class="ttname"><a href="structMidiEvent.html#aca2f6590b33bd2175ab71f985747d88e">MidiEvent::frame</a></div><div class="ttdeci">uint32_t frame</div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:625</div></div>
<div class="ttc" id="aclassAudioMidiSyncHelper_html_a7b54cae0fdaae3d23aaccf2dbb9344ef"><div class="ttname"><a href="classAudioMidiSyncHelper.html#a7b54cae0fdaae3d23aaccf2dbb9344ef">AudioMidiSyncHelper::outputs</a></div><div class="ttdeci">float * outputs[2]</div><div class="ttdef"><b>Definition:</b> DistrhoPluginUtils.hpp:53</div></div>
<div class="ttc" id="aclassAudioMidiSyncHelper_html_a43f354c1520893449d81a27b3e7a81fe"><div class="ttname"><a href="classAudioMidiSyncHelper.html#a43f354c1520893449d81a27b3e7a81fe">AudioMidiSyncHelper::nextEvent</a></div><div class="ttdeci">bool nextEvent()</div><div class="ttdef"><b>Definition:</b> DistrhoPluginUtils.hpp:78</div></div>
<div class="ttc" id="aclassAudioMidiSyncHelper_html_ae75a1d7256c04445ec77176b6505fcb0"><div class="ttname"><a href="classAudioMidiSyncHelper.html#ae75a1d7256c04445ec77176b6505fcb0">AudioMidiSyncHelper::AudioMidiSyncHelper</a></div><div class="ttdeci">AudioMidiSyncHelper(float **const o, uint32_t f, const MidiEvent *m, uint32_t mc)</div><div class="ttdef"><b>Definition:</b> DistrhoPluginUtils.hpp:61</div></div>
@@ -238,7 +238,7 @@ $(function() {
<div class="ttc" id="aclassAudioMidiSyncHelper_html"><div class="ttname"><a href="classAudioMidiSyncHelper.html">AudioMidiSyncHelper</a></div><div class="ttdef"><b>Definition:</b> DistrhoPluginUtils.hpp:50</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1130
- 976
DistrhoPlugin_8hpp_source.html
File diff suppressed because it is too large
View File


+ 237
- 199
DistrhoUI_8hpp_source.html View File

@@ -153,227 +153,264 @@ $(function() {
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"> * Host state */</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"> Get the color used for UI background (i.e. window color) in RGBA format.</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"> Returns 0 by default, in case of error or lack of host support.</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"> Check if this UI window is resizable (by the user or window manager).</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"> There are situations where an UI supports resizing but the plugin host does not, so this could return false.</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"> The following example code can be use to extract individual colors:</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"> ```</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"> const int red = (bgColor &gt;&gt; 24) &amp; 0xff;</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"> const int green = (bgColor &gt;&gt; 16) &amp; 0xff;</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment"> const int blue = (bgColor &gt;&gt; 8) &amp; 0xff;</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"> ```</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; uint <a class="code" href="classUI.html#a3c47bc4cb3dcc558bbd05791d1cc83f5">getBackgroundColor</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"> You might want to add a resize handle for such cases, so the user is still allowed to resize the window.</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"> (programatically resizing a window is always possible, but the same is not true for the window manager)</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classUI.html#a8fe940d56a0c283095e28bbc5806af31">isResizable</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment"> Get the color used for UI background (i.e. window color) in RGBA format.</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment"> Returns 0 by default, in case of error or lack of host support.</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment"> Get the color used for UI foreground (i.e. text color) in RGBA format.</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"> Returns 0xffffffff by default, in case of error or lack of host support.</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"> The following example code can be use to extract individual colors:</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"> The following example code can be use to extract individual colors:</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment"> ```</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"> const int red = (bgColor &gt;&gt; 24) &amp; 0xff;</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment"> const int green = (bgColor &gt;&gt; 16) &amp; 0xff;</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"> const int blue = (bgColor &gt;&gt; 8) &amp; 0xff;</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"> ```</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment"> const int red = (fgColor &gt;&gt; 24) &amp; 0xff;</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment"> const int green = (fgColor &gt;&gt; 16) &amp; 0xff;</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"> const int blue = (fgColor &gt;&gt; 8) &amp; 0xff;</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment"> ```</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; uint <a class="code" href="classUI.html#a607ea9f2978605808d8ef5dc3531fae7">getForegroundColor</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; uint <a class="code" href="classUI.html#a3c47bc4cb3dcc558bbd05791d1cc83f5">getBackgroundColor</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment"> Get the color used for UI foreground (i.e. text color) in RGBA format.</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment"> Returns 0xffffffff by default, in case of error or lack of host support.</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> Get the current sample rate used in plugin processing.</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"> @see sampleRateChanged(double)</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">double</span> <a class="code" href="classUI.html#a97d880182254652f94e7bed355370c07">getSampleRate</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"> editParameter.</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"> The following example code can be use to extract individual colors:</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> ```</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"> const int red = (fgColor &gt;&gt; 24) &amp; 0xff;</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"> const int green = (fgColor &gt;&gt; 16) &amp; 0xff;</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment"> const int blue = (fgColor &gt;&gt; 8) &amp; 0xff;</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"> ```</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; uint <a class="code" href="classUI.html#a607ea9f2978605808d8ef5dc3531fae7">getForegroundColor</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"> Touch/pressed-down event.</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"> Lets the host know the user is tweaking a parameter.</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"> Required in some hosts to record automation.</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"> Get the current sample rate used in plugin processing.</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"> @see sampleRateChanged(double)</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classUI.html#a2efcd4f21af0470e91fb6a342d7667a0">editParameter</a>(uint32_t index, <span class="keywordtype">bool</span> started);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">double</span> <a class="code" href="classUI.html#a97d880182254652f94e7bed355370c07">getSampleRate</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> setParameterValue.</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> editParameter.</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> Change a parameter value in the Plugin.</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classUI.html#a973db6e8805f0aa9be3457685564ab8a">setParameterValue</a>(uint32_t index, <span class="keywordtype">float</span> value);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#if DISTRHO_PLUGIN_WANT_STATE</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"> setState.</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"> @TODO Document this.</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classUI.html#abc94a38afa658849f3fdfd66cd8f5f51">setState</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor">#if DISTRHO_PLUGIN_WANT_STATEFILES</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"> Request a new file from the host, matching the properties of a state key.@n</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"> This will use the native host file browser if available, otherwise a DPF built-in file browser is used.@n</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"> Response will be sent asynchronously to stateChanged, with the matching key and the new file as the value.@n</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment"> It is not possible to know if the action was cancelled by the user.</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment"> @return Success if a file-browser was opened, otherwise false.</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment"> @note You cannot request more than one file at a time.</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">bool</span> requestStateFile(<span class="keyword">const</span> <span class="keywordtype">char</span>* key);</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; </div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor">#if DISTRHO_PLUGIN_WANT_MIDI_INPUT</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"> sendNote.</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment"> @TODO Document this.</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> @note Work in progress. Implemented for DSSI and LV2 formats.</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> Touch/pressed-down event.</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> Lets the host know the user is tweaking a parameter.</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment"> Required in some hosts to record automation.</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classUI.html#a2efcd4f21af0470e91fb6a342d7667a0">editParameter</a>(uint32_t index, <span class="keywordtype">bool</span> started);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"> setParameterValue.</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> Change a parameter value in the Plugin.</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classUI.html#a973db6e8805f0aa9be3457685564ab8a">setParameterValue</a>(uint32_t index, <span class="keywordtype">float</span> value);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor">#if DISTRHO_PLUGIN_WANT_STATE</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"> setState.</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"> @TODO Document this.</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classUI.html#abc94a38afa658849f3fdfd66cd8f5f51">setState</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor">#if DISTRHO_PLUGIN_WANT_STATEFILES</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> Request a new file from the host, matching the properties of a state key.@n</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"> This will use the native host file browser if available, otherwise a DPF built-in file browser is used.@n</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> Response will be sent asynchronously to stateChanged, with the matching key and the new file as the value.@n</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"> It is not possible to know if the action was cancelled by the user.</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment"> @return Success if a file-browser was opened, otherwise false.</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> @note You cannot request more than one file at a time.</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classUI.html#a9d630b2b1696e01015d869a5b434eb6e">sendNote</a>(uint8_t channel, uint8_t note, uint8_t velocity);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">bool</span> requestStateFile(<span class="keyword">const</span> <span class="keywordtype">char</span>* key);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; </div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">/* --------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> * Direct DSP access - DO NOT USE THIS UNLESS STRICTLY NECESSARY!! */</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="comment"> getPluginInstancePointer.</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment"> @TODO Document this.</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">void</span>* <a class="code" href="classUI.html#a0863a8f7ca7fc7e172e703c58518329f">getPluginInstancePointer</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; </div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor">#if DISTRHO_PLUGIN_HAS_EXTERNAL_UI</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">/* --------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment"> * External UI helpers */</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"> Get the bundle path that will be used for the next UI.</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment"> @note: This function is only valid during createUI(),</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment"> it will return null when called from anywhere else.</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classUI.html#ab157329c83a4660dd059508dc8d041f5">getNextBundlePath</a>() noexcept;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment"> Get the scale factor that will be used for the next UI.</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment"> @note: This function is only valid during createUI(),</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment"> it will return 1.0 when called from anywhere else.</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classUI.html#aa7277c575b7d0a75475e5a7ae684dc0f">getNextScaleFactor</a>() noexcept;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; </div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="preprocessor"># if DISTRHO_PLUGIN_HAS_EMBED_UI</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#if DISTRHO_PLUGIN_WANT_MIDI_INPUT</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> Send a single MIDI note from the UI to the plugin DSP side.@n</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> A note with zero velocity will be sent as note-off (MIDI 0x80), otherwise note-on (MIDI 0x90).</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classUI.html#a9d630b2b1696e01015d869a5b434eb6e">sendNote</a>(uint8_t channel, uint8_t note, uint8_t velocity);</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor">#if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">/* --------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment"> * Direct DSP access - DO NOT USE THIS UNLESS STRICTLY NECESSARY!! */</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment"> getPluginInstancePointer.</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment"> @TODO Document this.</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordtype">void</span>* <a class="code" href="classUI.html#a0863a8f7ca7fc7e172e703c58518329f">getPluginInstancePointer</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#if DISTRHO_PLUGIN_HAS_EXTERNAL_UI</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">/* --------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> * External UI helpers */</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment"> Get the bundle path that will be used for the next UI.</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment"> @note: This function is only valid during createUI(),</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment"> it will return null when called from anywhere else.</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classUI.html#ab157329c83a4660dd059508dc8d041f5">getNextBundlePath</a>() noexcept;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment"> Get the Window Id that will be used for the next created window.</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment"> Get the scale factor that will be used for the next UI.</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"> @note: This function is only valid during createUI(),</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> it will return 0 when called from anywhere else.</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> it will return 1.0 when called from anywhere else.</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">static</span> uintptr_t <a class="code" href="classUI.html#a4630e30aec3f3e7dcfc353ef2807bf56">getNextWindowId</a>() noexcept;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">/* --------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment"> * DSP/Plugin Callbacks */</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment"> A parameter has changed on the plugin side.@n</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment"> This is called by the host to inform the UI about parameter changes.</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classUI.html#ab3086d302a9685b25abf144ade3e88f6">parameterChanged</a>(uint32_t index, <span class="keywordtype">float</span> value) = 0;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor">#if DISTRHO_PLUGIN_WANT_PROGRAMS</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment"> A program has been loaded on the plugin side.@n</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="comment"> This is called by the host to inform the UI about program changes.</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classUI.html#a2f043dd1b2e179248a19918c5483cfae">programLoaded</a>(uint32_t index) = 0;</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classUI.html#aa7277c575b7d0a75475e5a7ae684dc0f">getNextScaleFactor</a>() noexcept;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; </div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor"># if DISTRHO_PLUGIN_HAS_EMBED_UI</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment"> Get the Window Id that will be used for the next created window.</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"> @note: This function is only valid during createUI(),</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment"> it will return 0 when called from anywhere else.</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">static</span> uintptr_t <a class="code" href="classUI.html#a4630e30aec3f3e7dcfc353ef2807bf56">getNextWindowId</a>() noexcept;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="comment">/* --------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment"> * DSP/Plugin Callbacks */</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="comment"> A parameter has changed on the plugin side.@n</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="comment"> This is called by the host to inform the UI about parameter changes.</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classUI.html#ab3086d302a9685b25abf144ade3e88f6">parameterChanged</a>(uint32_t index, <span class="keywordtype">float</span> value) = 0;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; </div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor">#if DISTRHO_PLUGIN_WANT_STATE</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor">#if DISTRHO_PLUGIN_WANT_PROGRAMS</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment"> A state has changed on the plugin side.@n</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment"> This is called by the host to inform the UI about state changes.</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment"> A program has been loaded on the plugin side.@n</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment"> This is called by the host to inform the UI about program changes.</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classUI.html#a1bdc7e158d974e82f0535f1658d66575">stateChanged</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, <span class="keyword">const</span> <span class="keywordtype">char</span>* value) = 0;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classUI.html#a2f043dd1b2e179248a19918c5483cfae">programLoaded</a>(uint32_t index) = 0;</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; </div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">/* --------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="comment"> * DSP/Plugin Callbacks (optional) */</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="comment"> Optional callback to inform the UI about a sample rate change on the plugin side.</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="comment"> @see getSampleRate()</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classUI.html#ac3e98726ca71f95a1e6c867706ebd9be">sampleRateChanged</a>(<span class="keywordtype">double</span> newSampleRate);</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; </div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#if !DISTRHO_PLUGIN_HAS_EXTERNAL_UI</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">/* --------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment"> * UI Callbacks (optional) */</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment"> uiIdle.</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment"> @TODO Document this.</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uiIdle() {}</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; </div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor"># ifndef DGL_FILE_BROWSER_DISABLED</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment"> File browser selected function.</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment"> @see Window::fileBrowserSelected(const char*)</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uiFileBrowserSelected(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename);</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment"> OpenGL window reshape function, called when parent window is resized.</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment"> You can reimplement this function for a custom OpenGL state.</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment"> @see Window::onReshape(uint,uint)</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uiReshape(uint width, uint height);</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; </div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="comment">/* --------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment"> * UI Resize Handling, internal */</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor">#if DISTRHO_PLUGIN_WANT_STATE</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment"> A state has changed on the plugin side.@n</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment"> This is called by the host to inform the UI about state changes.</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classUI.html#a1bdc7e158d974e82f0535f1658d66575">stateChanged</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, <span class="keyword">const</span> <span class="keywordtype">char</span>* value) = 0;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; </div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="comment">/* --------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="comment"> * DSP/Plugin Callbacks (optional) */</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment"> Optional callback to inform the UI about a sample rate change on the plugin side.</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment"> @see getSampleRate()</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classUI.html#ac3e98726ca71f95a1e6c867706ebd9be">sampleRateChanged</a>(<span class="keywordtype">double</span> newSampleRate);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; </div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor">#if !DISTRHO_PLUGIN_HAS_EXTERNAL_UI</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="comment">/* --------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment"> * UI Callbacks (optional) */</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment"> UI idle function, called to give idle time to the plugin UI directly from the host.</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="comment"> This is called right after OS event handling and Window idle events (within the same cycle).</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="comment"> There are no guarantees in terms of timing.</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="comment"> @see addIdleCallback(IdleCallback*, uint).</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uiIdle() {}</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment"> Windows focus function, called when the window gains or loses the keyboard focus.</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment"> This function is for plugin UIs to be able to override Window::onFocus(bool, CrossingMode).</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="comment"> The default implementation does nothing.</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uiFocus(<span class="keywordtype">bool</span> focus, DGL_NAMESPACE::CrossingMode mode);</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment"> OpenGL widget resize function, called when the widget is resized.</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment"> This is overriden here so the host knows when the UI is resized by you.</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="comment"> @see Widget::onResize(const ResizeEvent&amp;)</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordtype">void</span> onResize(<span class="keyword">const</span> ResizeEvent&amp; ev) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; </div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="comment">// -------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; </div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">struct </span>PrivateData;</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; PrivateData* <span class="keyword">const</span> uiData;</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>UIExporter;</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>UIExporterWindow;</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; </div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classUI.html">UI</a>)</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;};</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="comment">/** @} */</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment"> Window reshape function, called when the window is resized.</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment"> This function is for plugin UIs to be able to override Window::onReshape(uint, uint).</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment"> The plugin UI size will be set right after this function.</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment"> The default implementation sets up drawing context where necessary.</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment"> You should almost never need to override this function.</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="comment"> The most common exception is custom OpenGL setup, but only really needed for custom OpenGL drawing code.</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uiReshape(uint width, uint height);</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="comment"> Window scale factor function, called when the scale factor changes.</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment"> This function is for plugin UIs to be able to override Window::onScaleFactorChanged(double).</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="comment"> The default implementation does nothing.</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment"> WARNING function needs a proper name</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uiScaleFactorChanged(<span class="keywordtype">double</span> scaleFactor);</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; </div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="comment">/* ------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="comment"> * Create UI, entry point */</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment"> @addtogroup EntryPoints</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment"> @{</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"># ifndef DGL_FILE_BROWSER_DISABLED</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment"> Window file selected function, called when a path is selected by the user, as triggered by openFileBrowser().</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment"> This function is for plugin UIs to be able to override Window::onFileSelected(const char*).</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment"> This action happens after the user confirms the action, so the file browser dialog will be closed at this point.</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="comment"> The default implementation does nothing.</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="comment"> createUI.</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="comment"> @TODO Document this.</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="keyword">extern</span> <a class="code" href="classUI.html">UI</a>* <a class="code" href="group__EntryPoints.html#gaad0ced21537a067680729bee6a65d8c8">createUI</a>();</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="comment">/** @} */</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; </div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="comment">// -----------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; </div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;END_NAMESPACE_DISTRHO</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; </div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor">#endif // DISTRHO_UI_HPP_INCLUDED</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="comment"> If you need to use files as plugin state, please setup and use DISTRHO_PLUGIN_WANT_STATEFILES instead.</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> uiFileBrowserSelected(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename);</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; </div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="comment">/* --------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="comment"> * UI Resize Handling, internal */</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="comment"> OpenGL widget resize function, called when the widget is resized.</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="comment"> This is overriden here so the host knows when the UI is resized by you.</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="comment"> @see Widget::onResize(const ResizeEvent&amp;)</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordtype">void</span> onResize(<span class="keyword">const</span> ResizeEvent&amp; ev) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; </div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// -------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; </div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keyword">struct </span>PrivateData;</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; PrivateData* <span class="keyword">const</span> uiData;</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>PluginWindow;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>UIExporter;</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; </div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classUI.html">UI</a>)</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;};</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="comment">/** @} */</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; </div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="comment">/* ------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="comment"> * Create UI, entry point */</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="comment"> @addtogroup EntryPoints</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="comment"> @{</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="comment"> createUI.</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="comment"> @TODO Document this.</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="keyword">extern</span> <a class="code" href="classUI.html">UI</a>* <a class="code" href="group__EntryPoints.html#gaad0ced21537a067680729bee6a65d8c8">createUI</a>();</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="comment">/** @} */</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; </div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="comment">// -----------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; </div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;END_NAMESPACE_DISTRHO</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; </div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor">#endif // DISTRHO_UI_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassUI_html_aa7277c575b7d0a75475e5a7ae684dc0f"><div class="ttname"><a href="classUI.html#aa7277c575b7d0a75475e5a7ae684dc0f">UI::getNextScaleFactor</a></div><div class="ttdeci">static double getNextScaleFactor() noexcept</div></div>
<div class="ttc" id="aclassUI_html_a1bdc7e158d974e82f0535f1658d66575"><div class="ttname"><a href="classUI.html#a1bdc7e158d974e82f0535f1658d66575">UI::stateChanged</a></div><div class="ttdeci">virtual void stateChanged(const char *key, const char *value)=0</div></div>
@@ -382,13 +419,14 @@ $(function() {
<div class="ttc" id="aclassUI_html_a2f043dd1b2e179248a19918c5483cfae"><div class="ttname"><a href="classUI.html#a2f043dd1b2e179248a19918c5483cfae">UI::programLoaded</a></div><div class="ttdeci">virtual void programLoaded(uint32_t index)=0</div></div>
<div class="ttc" id="aclassUI_html_a3c47bc4cb3dcc558bbd05791d1cc83f5"><div class="ttname"><a href="classUI.html#a3c47bc4cb3dcc558bbd05791d1cc83f5">UI::getBackgroundColor</a></div><div class="ttdeci">uint getBackgroundColor() const noexcept</div></div>
<div class="ttc" id="aclassUI_html_a973db6e8805f0aa9be3457685564ab8a"><div class="ttname"><a href="classUI.html#a973db6e8805f0aa9be3457685564ab8a">UI::setParameterValue</a></div><div class="ttdeci">void setParameterValue(uint32_t index, float value)</div></div>
<div class="ttc" id="aclassUI_html_a8fe940d56a0c283095e28bbc5806af31"><div class="ttname"><a href="classUI.html#a8fe940d56a0c283095e28bbc5806af31">UI::isResizable</a></div><div class="ttdeci">bool isResizable() const noexcept</div></div>
<div class="ttc" id="aclassUI_html"><div class="ttname"><a href="classUI.html">UI</a></div><div class="ttdef"><b>Definition:</b> DistrhoUI.hpp:67</div></div>
<div class="ttc" id="aclassUI_html_a9d630b2b1696e01015d869a5b434eb6e"><div class="ttname"><a href="classUI.html#a9d630b2b1696e01015d869a5b434eb6e">UI::sendNote</a></div><div class="ttdeci">void sendNote(uint8_t channel, uint8_t note, uint8_t velocity)</div></div>
<div class="ttc" id="aclassUI_html_ab157329c83a4660dd059508dc8d041f5"><div class="ttname"><a href="classUI.html#ab157329c83a4660dd059508dc8d041f5">UI::getNextBundlePath</a></div><div class="ttdeci">static const char * getNextBundlePath() noexcept</div></div>
<div class="ttc" id="aclassUI_html_a97d880182254652f94e7bed355370c07"><div class="ttname"><a href="classUI.html#a97d880182254652f94e7bed355370c07">UI::getSampleRate</a></div><div class="ttdeci">double getSampleRate() const noexcept</div></div>
<div class="ttc" id="aclassUI_html_ad3425075e4a23234a8568d1893b54f22"><div class="ttname"><a href="classUI.html#ad3425075e4a23234a8568d1893b54f22">UI::UI</a></div><div class="ttdeci">UI(uint width=0, uint height=0)</div></div>
<div class="ttc" id="aclassUI_html_a2efcd4f21af0470e91fb6a342d7667a0"><div class="ttname"><a href="classUI.html#a2efcd4f21af0470e91fb6a342d7667a0">UI::editParameter</a></div><div class="ttdeci">void editParameter(uint32_t index, bool started)</div></div>
<div class="ttc" id="agroup__PluginMacros_html_gaf6377f757b9796bd37f7be4e605ccd4a"><div class="ttname"><a href="group__PluginMacros.html#gaf6377f757b9796bd37f7be4e605ccd4a">DISTRHO_UI_CUSTOM_WIDGET_TYPE</a></div><div class="ttdeci">#define DISTRHO_UI_CUSTOM_WIDGET_TYPE</div><div class="ttdef"><b>Definition:</b> DistrhoInfo.hpp:586</div></div>
<div class="ttc" id="agroup__PluginMacros_html_gaf6377f757b9796bd37f7be4e605ccd4a"><div class="ttname"><a href="group__PluginMacros.html#gaf6377f757b9796bd37f7be4e605ccd4a">DISTRHO_UI_CUSTOM_WIDGET_TYPE</a></div><div class="ttdeci">#define DISTRHO_UI_CUSTOM_WIDGET_TYPE</div><div class="ttdef"><b>Definition:</b> DistrhoInfo.hpp:594</div></div>
<div class="ttc" id="aclassUI_html_ac3e98726ca71f95a1e6c867706ebd9be"><div class="ttname"><a href="classUI.html#ac3e98726ca71f95a1e6c867706ebd9be">UI::sampleRateChanged</a></div><div class="ttdeci">virtual void sampleRateChanged(double newSampleRate)</div></div>
<div class="ttc" id="agroup__EntryPoints_html_gaad0ced21537a067680729bee6a65d8c8"><div class="ttname"><a href="group__EntryPoints.html#gaad0ced21537a067680729bee6a65d8c8">createUI</a></div><div class="ttdeci">UI * createUI()</div></div>
<div class="ttc" id="aclassUI_html_a0863a8f7ca7fc7e172e703c58518329f"><div class="ttname"><a href="classUI.html#a0863a8f7ca7fc7e172e703c58518329f">UI::getPluginInstancePointer</a></div><div class="ttdeci">void * getPluginInstancePointer() const noexcept</div></div>
@@ -397,7 +435,7 @@ $(function() {
<div class="ttc" id="aclassUI_html_ab3086d302a9685b25abf144ade3e88f6"><div class="ttname"><a href="classUI.html#ab3086d302a9685b25abf144ade3e88f6">UI::parameterChanged</a></div><div class="ttdeci">virtual void parameterChanged(uint32_t index, float value)=0</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 265
- 249
DistrhoUtils_8hpp_source.html View File

@@ -71,7 +71,7 @@ $(function() {
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * DISTRHO Plugin Framework (DPF)</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2012-2018 Filipe Coelho &lt;falktx@falktx.com&gt;</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2012-2021 Filipe Coelho &lt;falktx@falktx.com&gt;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Permission to use, copy, modify, and/or distribute this software for any purpose with</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * or without fee is hereby granted, provided that the above copyright notice and this</span></div>
@@ -104,259 +104,275 @@ $(function() {
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"># include &lt;stdint.h&gt;</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#if defined(DISTRHO_OS_MAC) &amp;&amp; ! defined(CARLA_OS_MAC) &amp;&amp; ! defined(DISTRHO_PROPER_CPP11_SUPPORT)</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>std {</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">float</span> fmin(<span class="keywordtype">float</span> __x, <span class="keywordtype">float</span> __y)</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; { <span class="keywordflow">return</span> __builtin_fminf(__x, __y); }</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">float</span> fmax(<span class="keywordtype">float</span> __x, <span class="keywordtype">float</span> __y)</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; { <span class="keywordflow">return</span> __builtin_fmaxf(__x, __y); }</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">float</span> rint(<span class="keywordtype">float</span> __x)</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; { <span class="keywordflow">return</span> __builtin_rintf(__x); }</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">float</span> round(<span class="keywordtype">float</span> __x)</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; { <span class="keywordflow">return</span> __builtin_roundf(__x); }</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#ifndef M_PI</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor"># define M_PI 3.14159265358979323846</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#define DISTRHO_MACRO_AS_STRING(MACRO) #MACRO</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">// misc functions</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#if defined(DISTRHO_OS_WINDOWS) &amp;&amp; defined(_MSC_VER)</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;basetsd.h&gt;</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">typedef</span> SSIZE_T ssize_t;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#if defined(DISTRHO_OS_MAC) &amp;&amp; ! defined(CARLA_OS_MAC) &amp;&amp; ! defined(DISTRHO_PROPER_CPP11_SUPPORT)</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">namespace </span>std {</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">float</span> fmin(<span class="keywordtype">float</span> __x, <span class="keywordtype">float</span> __y)</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; { <span class="keywordflow">return</span> __builtin_fminf(__x, __y); }</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">float</span> fmax(<span class="keywordtype">float</span> __x, <span class="keywordtype">float</span> __y)</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; { <span class="keywordflow">return</span> __builtin_fmaxf(__x, __y); }</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">float</span> rint(<span class="keywordtype">float</span> __x)</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; { <span class="keywordflow">return</span> __builtin_rintf(__x); }</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">float</span> round(<span class="keywordtype">float</span> __x)</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; { <span class="keywordflow">return</span> __builtin_roundf(__x); }</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#ifndef M_PI</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"># define M_PI 3.14159265358979323846</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> * Return a 64-bit number from 4 8-bit numbers.</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;int64_t d_cconst(<span class="keyword">const</span> uint8_t a, <span class="keyword">const</span> uint8_t b, <span class="keyword">const</span> uint8_t c, <span class="keyword">const</span> uint8_t d) noexcept</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> (a &lt;&lt; 24) | (b &lt;&lt; 16) | (c &lt;&lt; 8) | (d &lt;&lt; 0);</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"> * Return an hexadecimal representation of a MAJ.MIN.MICRO version number.</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;uint32_t d_version(<span class="keyword">const</span> uint8_t major, <span class="keyword">const</span> uint8_t minor, <span class="keyword">const</span> uint8_t micro) noexcept</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> uint32_t(major &lt;&lt; 16) | uint32_t(minor &lt;&lt; 8) | (micro &lt;&lt; 0);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> * Dummy function.</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keywordtype">void</span> d_pass() noexcept {}</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#define DISTRHO_MACRO_AS_STRING_VALUE(MACRO) #MACRO</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#define DISTRHO_MACRO_AS_STRING(MACRO) DISTRHO_MACRO_AS_STRING_VALUE(MACRO)</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">// misc functions</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> * Return a 64-bit number from 4 8-bit numbers.</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> constexpr</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;int64_t d_cconst(<span class="keyword">const</span> uint8_t a, <span class="keyword">const</span> uint8_t b, <span class="keyword">const</span> uint8_t c, <span class="keyword">const</span> uint8_t d) noexcept</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;{</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> (a &lt;&lt; 24) | (b &lt;&lt; 16) | (c &lt;&lt; 8) | (d &lt;&lt; 0);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> * Return an hexadecimal representation of a MAJ.MIN.MICRO version number.</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> constexpr</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;uint32_t d_version(<span class="keyword">const</span> uint8_t major, <span class="keyword">const</span> uint8_t minor, <span class="keyword">const</span> uint8_t micro) noexcept</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> uint32_t(major &lt;&lt; 16) | uint32_t(minor &lt;&lt; 8) | (micro &lt;&lt; 0);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment">// string print functions</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"> * Print a string to stdout with newline (gray color).</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"> * Does nothing if DEBUG is not defined.</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#ifndef DEBUG</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"># define d_debug(...)</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keywordtype">void</span> d_debug(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> fmt, ...) noexcept</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; ::va_list args;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; ::va_start(args, fmt);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; std::fprintf(stdout, <span class="stringliteral">&quot;\x1b[30;1m&quot;</span>);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; std::vfprintf(stdout, fmt, args);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; std::fprintf(stdout, <span class="stringliteral">&quot;\x1b[0m\n&quot;</span>);</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; ::va_end(args);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; } <span class="keywordflow">catch</span> (...) {}</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment"> * Print a string to stdout with newline.</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="keywordtype">void</span> d_stdout(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> fmt, ...) noexcept</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; ::va_list args;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; ::va_start(args, fmt);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; std::vfprintf(stdout, fmt, args);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; std::fprintf(stdout, <span class="stringliteral">&quot;\n&quot;</span>);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; ::va_end(args);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; } <span class="keywordflow">catch</span> (...) {}</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> * Print a string to stderr with newline.</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keywordtype">void</span> d_stderr(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> fmt, ...) noexcept</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;{</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; ::va_list args;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; ::va_start(args, fmt);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; std::vfprintf(stderr, fmt, args);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; std::fprintf(stderr, <span class="stringliteral">&quot;\n&quot;</span>);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; ::va_end(args);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; } <span class="keywordflow">catch</span> (...) {}</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;}</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> * Print a string to stderr with newline (red color).</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="keywordtype">void</span> d_stderr2(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> fmt, ...) noexcept</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;{</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; ::va_list args;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; ::va_start(args, fmt);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; std::fprintf(stderr, <span class="stringliteral">&quot;\x1b[31m&quot;</span>);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; std::vfprintf(stderr, fmt, args);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; std::fprintf(stderr, <span class="stringliteral">&quot;\x1b[0m\n&quot;</span>);</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; ::va_end(args);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; } <span class="keywordflow">catch</span> (...) {}</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; </div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> * Print a safe assertion error message.</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keywordtype">void</span> d_safe_assert(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> assertion, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> file, <span class="keyword">const</span> <span class="keywordtype">int</span> line) noexcept</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;{</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; d_stderr2(<span class="stringliteral">&quot;assertion failure: \&quot;%s\&quot; in file %s, line %i&quot;</span>, assertion, file, line);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;}</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"> * Print a safe assertion error message, with 1 extra signed integer value.</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="keywordtype">void</span> d_safe_assert_int(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> assertion, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> file,</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> line, <span class="keyword">const</span> <span class="keywordtype">int</span> value) noexcept</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;{</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; d_stderr2(<span class="stringliteral">&quot;assertion failure: \&quot;%s\&quot; in file %s, line %i, value %i&quot;</span>, assertion, file, line, value);</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment"> * Print a safe assertion error message, with 1 extra unsigned integer value.</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="keywordtype">void</span> d_safe_assert_uint(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> assertion, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> file,</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> line, <span class="keyword">const</span> uint value) noexcept</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;{</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; d_stderr2(<span class="stringliteral">&quot;assertion failure: \&quot;%s\&quot; in file %s, line %i, value %u&quot;</span>, assertion, file, line, value);</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;}</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment"> * Print a safe assertion error message, with 2 extra signed integer values.</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="keywordtype">void</span> d_safe_assert_int2(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> assertion, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> file,</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> line, <span class="keyword">const</span> <span class="keywordtype">int</span> v1, <span class="keyword">const</span> <span class="keywordtype">int</span> v2) noexcept</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;{</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; d_stderr2(<span class="stringliteral">&quot;assertion failure: \&quot;%s\&quot; in file %s, line %i, v1 %i, v2 %i&quot;</span>, assertion, file, line, v1, v2);</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;}</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; </div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment"> * Print a safe assertion error message, with 2 extra unsigned integer values.</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="keywordtype">void</span> d_safe_assert_uint2(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> assertion, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> file,</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> line, <span class="keyword">const</span> uint v1, <span class="keyword">const</span> uint v2) noexcept</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;{</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; d_stderr2(<span class="stringliteral">&quot;assertion failure: \&quot;%s\&quot; in file %s, line %i, v1 %u, v2 %u&quot;</span>, assertion, file, line, v1, v2);</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;}</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"> * Print a safe exception error message.</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="keywordtype">void</span> d_safe_exception(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> exception, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> file, <span class="keyword">const</span> <span class="keywordtype">int</span> line) noexcept</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;{</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; d_stderr2(<span class="stringliteral">&quot;exception caught: \&quot;%s\&quot; in file %s, line %i&quot;</span>, exception, file, line);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;}</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; </div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment">// math functions</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="comment"> * Safely compare two floating point numbers.</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="comment"> * Returns true if they match.</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="keywordtype">bool</span> d_isEqual(<span class="keyword">const</span> T&amp; v1, <span class="keyword">const</span> T&amp; v2)</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;{</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> std::abs(v1-v2) &lt; std::numeric_limits&lt;T&gt;::epsilon();</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;}</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; </div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="comment"> * Safely compare two floating point numbers.</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="comment"> * Returns true if they don&#39;t match.</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="keywordtype">bool</span> d_isNotEqual(<span class="keyword">const</span> T&amp; v1, <span class="keyword">const</span> T&amp; v2)</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;{</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> std::abs(v1-v2) &gt;= std::numeric_limits&lt;T&gt;::epsilon();</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;}</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; </div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="comment"> * Safely check if a floating point number is zero.</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="keywordtype">bool</span> d_isZero(<span class="keyword">const</span> T&amp; value)</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;{</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> std::abs(value) &lt; std::numeric_limits&lt;T&gt;::epsilon();</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;}</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; </div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment"> * Safely check if a floating point number is not zero.</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="keywordtype">bool</span> d_isNotZero(<span class="keyword">const</span> T&amp; value)</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;{</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> std::abs(value) &gt;= std::numeric_limits&lt;T&gt;::epsilon();</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;}</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; </div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment"> * Get next power of 2.</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;uint32_t d_nextPowerOf2(uint32_t size) noexcept</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;{</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(size &gt; 0, 0);</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; </div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="comment">// http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; --size;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; size |= size &gt;&gt; 1;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; size |= size &gt;&gt; 2;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; size |= size &gt;&gt; 4;</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; size |= size &gt;&gt; 8;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; size |= size &gt;&gt; 16;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">return</span> ++size;</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;}</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; </div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; </div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#ifndef DONT_SET_USING_DISTRHO_NAMESPACE</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="comment">// If your code uses a lot of DISTRHO classes, then this will obviously save you</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="comment">// a lot of typing, but can be disabled by setting DONT_SET_USING_DISTRHO_NAMESPACE.</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">namespace </span>DISTRHO_NAMESPACE {}</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keyword">using namespace </span>DISTRHO_NAMESPACE;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; </div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; </div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor">#endif // DISTRHO_UTILS_HPP_INCLUDED</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> * Dummy function.</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keywordtype">void</span> d_pass() noexcept {}</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment">// string print functions</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; </div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment"> * Print a string to stdout with newline (gray color).</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"> * Does nothing if DEBUG is not defined.</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#ifndef DEBUG</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor"># define d_debug(...)</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keywordtype">void</span> d_debug(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> fmt, ...) noexcept</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; va_list args;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; va_start(args, fmt);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; std::fprintf(stdout, <span class="stringliteral">&quot;\x1b[30;1m&quot;</span>);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; std::vfprintf(stdout, fmt, args);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; std::fprintf(stdout, <span class="stringliteral">&quot;\x1b[0m\n&quot;</span>);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; va_end(args);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; } <span class="keywordflow">catch</span> (...) {}</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"> * Print a string to stdout with newline.</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keywordtype">void</span> d_stdout(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> fmt, ...) noexcept</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;{</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; va_list args;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; va_start(args, fmt);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; std::vfprintf(stdout, fmt, args);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; std::fprintf(stdout, <span class="stringliteral">&quot;\n&quot;</span>);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; va_end(args);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; } <span class="keywordflow">catch</span> (...) {}</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;}</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> * Print a string to stderr with newline.</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="keywordtype">void</span> d_stderr(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> fmt, ...) noexcept</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;{</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; va_list args;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; va_start(args, fmt);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; std::vfprintf(stderr, fmt, args);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; std::fprintf(stderr, <span class="stringliteral">&quot;\n&quot;</span>);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; va_end(args);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; } <span class="keywordflow">catch</span> (...) {}</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;}</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"> * Print a string to stderr with newline (red color).</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="keywordtype">void</span> d_stderr2(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> fmt, ...) noexcept</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; va_list args;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; va_start(args, fmt);</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; std::fprintf(stderr, <span class="stringliteral">&quot;\x1b[31m&quot;</span>);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; std::vfprintf(stderr, fmt, args);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; std::fprintf(stderr, <span class="stringliteral">&quot;\x1b[0m\n&quot;</span>);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; va_end(args);</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; } <span class="keywordflow">catch</span> (...) {}</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"> * Print a safe assertion error message.</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="keywordtype">void</span> d_safe_assert(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> assertion, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> file, <span class="keyword">const</span> <span class="keywordtype">int</span> line) noexcept</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;{</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; d_stderr2(<span class="stringliteral">&quot;assertion failure: \&quot;%s\&quot; in file %s, line %i&quot;</span>, assertion, file, line);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment"> * Print a safe assertion error message, with 1 extra signed integer value.</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="keywordtype">void</span> d_safe_assert_int(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> assertion, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> file,</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> line, <span class="keyword">const</span> <span class="keywordtype">int</span> value) noexcept</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;{</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; d_stderr2(<span class="stringliteral">&quot;assertion failure: \&quot;%s\&quot; in file %s, line %i, value %i&quot;</span>, assertion, file, line, value);</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;}</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"> * Print a safe assertion error message, with 1 extra unsigned integer value.</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keywordtype">void</span> d_safe_assert_uint(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> assertion, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> file,</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> line, <span class="keyword">const</span> uint value) noexcept</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;{</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; d_stderr2(<span class="stringliteral">&quot;assertion failure: \&quot;%s\&quot; in file %s, line %i, value %u&quot;</span>, assertion, file, line, value);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;}</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment"> * Print a safe assertion error message, with 2 extra signed integer values.</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="keywordtype">void</span> d_safe_assert_int2(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> assertion, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> file,</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> line, <span class="keyword">const</span> <span class="keywordtype">int</span> v1, <span class="keyword">const</span> <span class="keywordtype">int</span> v2) noexcept</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;{</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; d_stderr2(<span class="stringliteral">&quot;assertion failure: \&quot;%s\&quot; in file %s, line %i, v1 %i, v2 %i&quot;</span>, assertion, file, line, v1, v2);</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;}</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; </div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment"> * Print a safe assertion error message, with 2 extra unsigned integer values.</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="keywordtype">void</span> d_safe_assert_uint2(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> assertion, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> file,</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> line, <span class="keyword">const</span> uint v1, <span class="keyword">const</span> uint v2) noexcept</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;{</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; d_stderr2(<span class="stringliteral">&quot;assertion failure: \&quot;%s\&quot; in file %s, line %i, v1 %u, v2 %u&quot;</span>, assertion, file, line, v1, v2);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;}</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; </div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment"> * Print a safe assertion error message, with a custom error message.</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="keywordtype">void</span> d_custom_safe_assert(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> message, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> assertion, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> file,</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> line) noexcept</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;{</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; d_stderr2(<span class="stringliteral">&quot;assertion failure: %s, condition \&quot;%s\&quot; in file %s, line %i&quot;</span>, message, assertion, file, line);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;}</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment"> * Print a safe exception error message.</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="keywordtype">void</span> d_safe_exception(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> exception, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> file, <span class="keyword">const</span> <span class="keywordtype">int</span> line) noexcept</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;{</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; d_stderr2(<span class="stringliteral">&quot;exception caught: \&quot;%s\&quot; in file %s, line %i&quot;</span>, exception, file, line);</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;}</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; </div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="comment">// math functions</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; </div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment"> * Safely compare two floating point numbers.</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="comment"> * Returns true if they match.</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="keywordtype">bool</span> d_isEqual(<span class="keyword">const</span> T&amp; v1, <span class="keyword">const</span> T&amp; v2)</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;{</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">return</span> std::abs(v1-v2) &lt; std::numeric_limits&lt;T&gt;::epsilon();</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;}</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment"> * Safely compare two floating point numbers.</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment"> * Returns true if they don&#39;t match.</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="keywordtype">bool</span> d_isNotEqual(<span class="keyword">const</span> T&amp; v1, <span class="keyword">const</span> T&amp; v2)</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;{</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span> std::abs(v1-v2) &gt;= std::numeric_limits&lt;T&gt;::epsilon();</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;}</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; </div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="comment"> * Safely check if a floating point number is zero.</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="keywordtype">bool</span> d_isZero(<span class="keyword">const</span> T&amp; value)</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;{</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> std::abs(value) &lt; std::numeric_limits&lt;T&gt;::epsilon();</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;}</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; </div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment"> * Safely check if a floating point number is not zero.</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="keywordtype">bool</span> d_isNotZero(<span class="keyword">const</span> T&amp; value)</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;{</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> std::abs(value) &gt;= std::numeric_limits&lt;T&gt;::epsilon();</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="comment"> * Get next power of 2.</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;uint32_t d_nextPowerOf2(uint32_t size) noexcept</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;{</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(size &gt; 0, 0);</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; </div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="comment">// http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; --size;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; size |= size &gt;&gt; 1;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; size |= size &gt;&gt; 2;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; size |= size &gt;&gt; 4;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; size |= size &gt;&gt; 8;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; size |= size &gt;&gt; 16;</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">return</span> ++size;</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;}</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; </div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; </div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor">#ifndef DONT_SET_USING_DISTRHO_NAMESPACE</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// If your code uses a lot of DISTRHO classes, then this will obviously save you</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="comment">// a lot of typing, but can be disabled by setting DONT_SET_USING_DISTRHO_NAMESPACE.</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">namespace </span>DISTRHO_NAMESPACE {}</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">using namespace </span>DISTRHO_NAMESPACE;</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; </div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; </div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor">#endif // DISTRHO_UTILS_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 3
- 3
ExternalWindow_8hpp_source.html View File

@@ -263,7 +263,7 @@ $(function() {
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; </div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>UIExporter;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; </div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; DISTRHO_DECLARE_NON_COPY_CLASS(<a class="code" href="classExternalWindow.html">ExternalWindow</a>)</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; DISTRHO_DECLARE_NON_COPYABLE(<a class="code" href="classExternalWindow.html">ExternalWindow</a>)</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;};</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
@@ -272,11 +272,11 @@ $(function() {
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; </div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor">#endif // DISTRHO_EXTERNAL_WINDOW_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdef"><b>Definition:</b> String.hpp:29</div></div>
<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdef"><b>Definition:</b> String.hpp:30</div></div>
<div class="ttc" id="aclassExternalWindow_html"><div class="ttname"><a href="classExternalWindow.html">ExternalWindow</a></div><div class="ttdef"><b>Definition:</b> ExternalWindow.hpp:36</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 613
- 605
Geometry_8hpp_source.html
File diff suppressed because it is too large
View File


+ 200
- 50
ImageBaseWidgets_8hpp_source.html View File

@@ -109,75 +109,225 @@ $(function() {
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageBaseAboutWindow.html#a239bf25a7ac8063d2cf3d4db250396e2">onKeyboard</a>(<span class="keyword">const</span> <a class="code" href="structWidget_1_1KeyboardEvent.html">KeyboardEvent</a>&amp;) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageBaseAboutWindow.html#ad2c3d4c6943a5562574baf60f58de483">onMouse</a>(<span class="keyword">const</span> <a class="code" href="structWidget_1_1MouseEvent.html">MouseEvent</a>&amp;) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// FIXME needed?</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classImageBaseAboutWindow.html#a79e4534fae619e04b3947f3d5e2b344d">onReshape</a>(uint width, uint height) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; ImageType img;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; ImageType img;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classImageBaseAboutWindow.html">ImageBaseAboutWindow</a>)</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;};</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classImageBaseAboutWindow.html">ImageBaseAboutWindow</a>)</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;};</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> ImageType&gt;</div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classImageBaseButton.html"> 53</a></span>&#160;<span class="keyword">class </span><a class="code" href="classImageBaseButton.html">ImageBaseButton</a> : <span class="keyword">public</span> <a class="code" href="classSubWidget.html">SubWidget</a></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classImageBaseButton_1_1Callback.html"> 56</a></span>&#160; <span class="keyword">class </span><a class="code" href="classImageBaseButton_1_1Callback.html">Callback</a></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classImageBaseButton_1_1Callback.html">Callback</a>() {}</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageButtonClicked(<a class="code" href="classImageBaseButton.html">ImageBaseButton</a>* imageButton, <span class="keywordtype">int</span> button) = 0;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; };</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageBaseButton.html">ImageBaseButton</a>(<a class="code" href="classWidget.html">Widget</a>* parentWidget, <span class="keyword">const</span> ImageType&amp; image);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageBaseButton.html">ImageBaseButton</a>(<a class="code" href="classWidget.html">Widget</a>* parentWidget, <span class="keyword">const</span> ImageType&amp; imageNormal, <span class="keyword">const</span> ImageType&amp; imageDown);</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageBaseButton.html">ImageBaseButton</a>(<a class="code" href="classWidget.html">Widget</a>* parentWidget, <span class="keyword">const</span> ImageType&amp; imageNormal, <span class="keyword">const</span> ImageType&amp; imageHover, <span class="keyword">const</span> ImageType&amp; imageDown);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; ~<a class="code" href="classImageBaseButton.html">ImageBaseButton</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">void</span> setCallback(<a class="code" href="classImageBaseButton_1_1Callback.html">Callback</a>* callback) noexcept;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classImageBaseButton.html#a4a3eaf5367a91d43465ffca09464b8ad">onDisplay</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageBaseButton.html#a643f3c0429d514c70c7a1333829f6cf8">onMouse</a>(<span class="keyword">const</span> <a class="code" href="structWidget_1_1MouseEvent.html">MouseEvent</a>&amp;) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageBaseButton.html#a6333af8b73082f6b4dff77cf690be82d">onMotion</a>(<span class="keyword">const</span> <a class="code" href="structWidget_1_1MotionEvent.html">MotionEvent</a>&amp;) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">struct </span>PrivateData;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; PrivateData* <span class="keyword">const</span> pData;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> ImageType&gt;</div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classImageBaseButton.html"> 50</a></span>&#160;<span class="keyword">class </span><a class="code" href="classImageBaseButton.html">ImageBaseButton</a> : <span class="keyword">public</span> <a class="code" href="classSubWidget.html">SubWidget</a></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classImageBaseButton_1_1Callback.html"> 53</a></span>&#160; <span class="keyword">class </span><a class="code" href="classImageBaseButton_1_1Callback.html">Callback</a></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classImageBaseButton_1_1Callback.html">Callback</a>() {}</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageButtonClicked(<a class="code" href="classImageBaseButton.html">ImageBaseButton</a>* imageButton, <span class="keywordtype">int</span> button) = 0;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; };</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageBaseButton.html">ImageBaseButton</a>(<a class="code" href="classWidget.html">Widget</a>* parentWidget, <span class="keyword">const</span> ImageType&amp; image);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageBaseButton.html">ImageBaseButton</a>(<a class="code" href="classWidget.html">Widget</a>* parentWidget, <span class="keyword">const</span> ImageType&amp; imageNormal, <span class="keyword">const</span> ImageType&amp; imageDown);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageBaseButton.html">ImageBaseButton</a>(<a class="code" href="classWidget.html">Widget</a>* parentWidget, <span class="keyword">const</span> ImageType&amp; imageNormal, <span class="keyword">const</span> ImageType&amp; imageHover, <span class="keyword">const</span> ImageType&amp; imageDown);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; ~<a class="code" href="classImageBaseButton.html">ImageBaseButton</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordtype">void</span> setCallback(<a class="code" href="classImageBaseButton_1_1Callback.html">Callback</a>* callback) noexcept;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classImageBaseButton.html#a4a3eaf5367a91d43465ffca09464b8ad">onDisplay</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageBaseButton.html#a643f3c0429d514c70c7a1333829f6cf8">onMouse</a>(<span class="keyword">const</span> <a class="code" href="structWidget_1_1MouseEvent.html">MouseEvent</a>&amp;) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageBaseButton.html#a6333af8b73082f6b4dff77cf690be82d">onMotion</a>(<span class="keyword">const</span> <a class="code" href="structWidget_1_1MotionEvent.html">MotionEvent</a>&amp;) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">struct </span>PrivateData;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; PrivateData* <span class="keyword">const</span> pData;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classImageBaseButton.html">ImageBaseButton</a>)</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;};</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classImageBaseButton.html">ImageBaseButton</a>)</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;};</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; </div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#endif // DGL_IMAGE_BASE_WIDGETS_HPP_INCLUDED</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> ImageType&gt;</div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classImageBaseKnob.html"> 83</a></span>&#160;<span class="keyword">class </span><a class="code" href="classImageBaseKnob.html">ImageBaseKnob</a> : <span class="keyword">public</span> <a class="code" href="classSubWidget.html">SubWidget</a></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;{</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">enum</span> Orientation {</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; Horizontal,</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; Vertical</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; };</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; </div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classImageBaseKnob_1_1Callback.html"> 91</a></span>&#160; <span class="keyword">class </span><a class="code" href="classImageBaseKnob_1_1Callback.html">Callback</a></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classImageBaseKnob_1_1Callback.html">Callback</a>() {}</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageKnobDragStarted(<a class="code" href="classImageBaseKnob.html">ImageBaseKnob</a>* imageKnob) = 0;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageKnobDragFinished(<a class="code" href="classImageBaseKnob.html">ImageBaseKnob</a>* imageKnob) = 0;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageKnobValueChanged(<a class="code" href="classImageBaseKnob.html">ImageBaseKnob</a>* imageKnob, <span class="keywordtype">float</span> value) = 0;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; };</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; </div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageBaseKnob.html">ImageBaseKnob</a>(<a class="code" href="classWidget.html">Widget</a>* parentWidget, <span class="keyword">const</span> ImageType&amp; image, Orientation orientation = Vertical) noexcept;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageBaseKnob.html">ImageBaseKnob</a>(<span class="keyword">const</span> <a class="code" href="classImageBaseKnob.html">ImageBaseKnob</a>&amp; imageKnob);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classImageBaseKnob.html">ImageBaseKnob</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classImageBaseKnob.html">ImageBaseKnob</a>&amp; imageKnob);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; ~<a class="code" href="classImageBaseKnob.html">ImageBaseKnob</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; </div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">float</span> getValue() const noexcept;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">void</span> setDefault(<span class="keywordtype">float</span> def) noexcept;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordtype">void</span> setRange(<span class="keywordtype">float</span> min, <span class="keywordtype">float</span> max) noexcept;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordtype">void</span> setStep(<span class="keywordtype">float</span> step) noexcept;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">void</span> setValue(<span class="keywordtype">float</span> value, <span class="keywordtype">bool</span> sendCallback = false) noexcept;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordtype">void</span> setUsingLogScale(<span class="keywordtype">bool</span> yesNo) noexcept;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordtype">void</span> setCallback(<a class="code" href="classImageBaseKnob_1_1Callback.html">Callback</a>* callback) noexcept;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">void</span> setOrientation(Orientation orientation) noexcept;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">void</span> setRotationAngle(<span class="keywordtype">int</span> angle);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">void</span> setImageLayerCount(uint count) noexcept;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;protected:</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classImageBaseKnob.html#a9a4d1a1ff6fe7e51be7491148c20d1c5">onDisplay</a>() override;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageBaseKnob.html#a6cd97ff56064b28a56d1321508e29f8b">onMouse</a>(const <a class="code" href="structWidget_1_1MouseEvent.html">MouseEvent</a>&amp;) override;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageBaseKnob.html#ab7fc0602637a98d5a0a5ecfd74557636">onMotion</a>(const <a class="code" href="structWidget_1_1MotionEvent.html">MotionEvent</a>&amp;) override;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageBaseKnob.html#aeb9c35449f4b48741ceb8ba8253648bb">onScroll</a>(const <a class="code" href="structWidget_1_1ScrollEvent.html">ScrollEvent</a>&amp;) override;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;private:</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; struct PrivateData;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; PrivateData* const pData;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; DISTRHO_LEAK_DETECTOR(<a class="code" href="classImageBaseKnob.html">ImageBaseKnob</a>)</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;};</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment">// note set range and step before setting the value</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;template &lt;class ImageType&gt;</div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classImageBaseSlider.html"> 137</a></span>&#160;class <a class="code" href="classImageBaseSlider.html">ImageBaseSlider</a> : public <a class="code" href="classSubWidget.html">SubWidget</a></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;{</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classImageBaseSlider_1_1Callback.html"> 140</a></span>&#160; <span class="keyword">class </span><a class="code" href="classImageBaseSlider_1_1Callback.html">Callback</a></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classImageBaseSlider_1_1Callback.html">Callback</a>() {}</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageSliderDragStarted(<a class="code" href="classImageBaseSlider.html">ImageBaseSlider</a>* imageSlider) = 0;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageSliderDragFinished(<a class="code" href="classImageBaseSlider.html">ImageBaseSlider</a>* imageSlider) = 0;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageSliderValueChanged(<a class="code" href="classImageBaseSlider.html">ImageBaseSlider</a>* imageSlider, <span class="keywordtype">float</span> value) = 0;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; };</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageBaseSlider.html">ImageBaseSlider</a>(<a class="code" href="classWidget.html">Widget</a>* parentWidget, <span class="keyword">const</span> ImageType&amp; image) noexcept;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; ~<a class="code" href="classImageBaseSlider.html">ImageBaseSlider</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; </div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">float</span> getValue() const noexcept;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordtype">void</span> setValue(<span class="keywordtype">float</span> value, <span class="keywordtype">bool</span> sendCallback = false) noexcept;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">void</span> setDefault(<span class="keywordtype">float</span> def) noexcept;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordtype">void</span> setStartPos(const <a class="code" href="classPoint.html">Point</a>&lt;<span class="keywordtype">int</span>&gt;&amp; startPos) noexcept;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordtype">void</span> setStartPos(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y) noexcept;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">void</span> setEndPos(const <a class="code" href="classPoint.html">Point</a>&lt;<span class="keywordtype">int</span>&gt;&amp; endPos) noexcept;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">void</span> setEndPos(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y) noexcept;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">void</span> setInverted(<span class="keywordtype">bool</span> inverted) noexcept;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">void</span> setRange(<span class="keywordtype">float</span> min, <span class="keywordtype">float</span> max) noexcept;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">void</span> setStep(<span class="keywordtype">float</span> step) noexcept;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">void</span> setCallback(<a class="code" href="classImageBaseSlider_1_1Callback.html">Callback</a>* callback) noexcept;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;protected:</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classImageBaseKnob.html#a9a4d1a1ff6fe7e51be7491148c20d1c5">onDisplay</a>() override;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageBaseKnob.html#a6cd97ff56064b28a56d1321508e29f8b">onMouse</a>(const <a class="code" href="structWidget_1_1MouseEvent.html">MouseEvent</a>&amp;) override;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageBaseKnob.html#ab7fc0602637a98d5a0a5ecfd74557636">onMotion</a>(const <a class="code" href="structWidget_1_1MotionEvent.html">MotionEvent</a>&amp;) override;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;private:</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; struct PrivateData;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; PrivateData* const pData;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; </div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// these should not be used</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#abcd0a00a4c3cdc402aea56044df26cc3">setAbsoluteX</a>(<span class="keywordtype">int</span>) const noexcept {}</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#a3c674e3c46206ac29a562c0f02dcf82c">setAbsoluteY</a>(<span class="keywordtype">int</span>) <span class="keyword">const</span> noexcept {}</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#a0e7a4dd27eee8a3a1b7bf12d9f21769f">setAbsolutePos</a>(<span class="keywordtype">int</span>, <span class="keywordtype">int</span>) <span class="keyword">const</span> noexcept {}</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#a0e7a4dd27eee8a3a1b7bf12d9f21769f">setAbsolutePos</a>(<span class="keyword">const</span> <a class="code" href="classPoint.html">Point&lt;int&gt;</a>&amp;) <span class="keyword">const</span> noexcept {}</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; </div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classImageBaseSlider.html">ImageBaseSlider</a>)</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;};</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> ImageType&gt;</div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classImageBaseSwitch.html"> 188</a></span>&#160;<span class="keyword">class </span><a class="code" href="classImageBaseSwitch.html">ImageBaseSwitch</a> : <span class="keyword">public</span> <a class="code" href="classSubWidget.html">SubWidget</a></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;{</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classImageBaseSwitch_1_1Callback.html"> 191</a></span>&#160; <span class="keyword">class </span><a class="code" href="classImageBaseSwitch_1_1Callback.html">Callback</a></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classImageBaseSwitch_1_1Callback.html">Callback</a>() {}</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageSwitchClicked(<a class="code" href="classImageBaseSwitch.html">ImageBaseSwitch</a>* imageSwitch, <span class="keywordtype">bool</span> down) = 0;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; };</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageBaseSwitch.html">ImageBaseSwitch</a>(<a class="code" href="classWidget.html">Widget</a>* parentWidget, <span class="keyword">const</span> ImageType&amp; imageNormal, <span class="keyword">const</span> ImageType&amp; imageDown) noexcept;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageBaseSwitch.html">ImageBaseSwitch</a>(<span class="keyword">const</span> <a class="code" href="classImageBaseSwitch.html">ImageBaseSwitch</a>&amp; imageSwitch) noexcept;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="classImageBaseSwitch.html">ImageBaseSwitch</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classImageBaseSwitch.html">ImageBaseSwitch</a>&amp; imageSwitch) noexcept;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; ~<a class="code" href="classImageBaseSwitch.html">ImageBaseSwitch</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordtype">bool</span> isDown() const noexcept;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordtype">void</span> setDown(<span class="keywordtype">bool</span> down) noexcept;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; </div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordtype">void</span> setCallback(<a class="code" href="classImageBaseSwitch_1_1Callback.html">Callback</a>* callback) noexcept;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; </div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;protected:</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classImageBaseKnob.html#a9a4d1a1ff6fe7e51be7491148c20d1c5">onDisplay</a>() override;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageBaseKnob.html#a6cd97ff56064b28a56d1321508e29f8b">onMouse</a>(const <a class="code" href="structWidget_1_1MouseEvent.html">MouseEvent</a>&amp;) override;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; </div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;private:</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; struct PrivateData;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; PrivateData* const pData;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; </div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; DISTRHO_LEAK_DETECTOR(<a class="code" href="classImageBaseSwitch.html">ImageBaseSwitch</a>)</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;};</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; </div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; </div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor">#endif // DGL_IMAGE_BASE_WIDGETS_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassImageBaseAboutWindow_html_a3e675bef6bb84375cb762767d216e8f7"><div class="ttname"><a href="classImageBaseAboutWindow.html#a3e675bef6bb84375cb762767d216e8f7">ImageBaseAboutWindow::onDisplay</a></div><div class="ttdeci">void onDisplay() override</div></div>
<div class="ttc" id="aclassImageBaseButton_html"><div class="ttname"><a href="classImageBaseButton.html">ImageBaseButton</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:53</div></div>
<div class="ttc" id="aclassImageBaseAboutWindow_html_a79e4534fae619e04b3947f3d5e2b344d"><div class="ttname"><a href="classImageBaseAboutWindow.html#a79e4534fae619e04b3947f3d5e2b344d">ImageBaseAboutWindow::onReshape</a></div><div class="ttdeci">void onReshape(uint width, uint height) override</div></div>
<div class="ttc" id="aclassImageBaseButton_html"><div class="ttname"><a href="classImageBaseButton.html">ImageBaseButton</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:50</div></div>
<div class="ttc" id="aclassImageBaseKnob_html"><div class="ttname"><a href="classImageBaseKnob.html">ImageBaseKnob</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:83</div></div>
<div class="ttc" id="astructWidget_1_1ScrollEvent_html"><div class="ttname"><a href="structWidget_1_1ScrollEvent.html">Widget::ScrollEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:213</div></div>
<div class="ttc" id="aclassImageBaseSlider_html"><div class="ttname"><a href="classImageBaseSlider.html">ImageBaseSlider</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:137</div></div>
<div class="ttc" id="astructWidget_1_1KeyboardEvent_html"><div class="ttname"><a href="structWidget_1_1KeyboardEvent.html">Widget::KeyboardEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:94</div></div>
<div class="ttc" id="aclassSubWidget_html_a0e7a4dd27eee8a3a1b7bf12d9f21769f"><div class="ttname"><a href="classSubWidget.html#a0e7a4dd27eee8a3a1b7bf12d9f21769f">SubWidget::setAbsolutePos</a></div><div class="ttdeci">void setAbsolutePos(int x, int y) noexcept</div></div>
<div class="ttc" id="aclassWindow_html"><div class="ttname"><a href="classWindow.html">Window</a></div><div class="ttdef"><b>Definition:</b> Window.hpp:50</div></div>
<div class="ttc" id="aclassImageBaseKnob_html_aeb9c35449f4b48741ceb8ba8253648bb"><div class="ttname"><a href="classImageBaseKnob.html#aeb9c35449f4b48741ceb8ba8253648bb">ImageBaseKnob::onScroll</a></div><div class="ttdeci">bool onScroll(const ScrollEvent &amp;) override</div></div>
<div class="ttc" id="aclassSubWidget_html_a3c674e3c46206ac29a562c0f02dcf82c"><div class="ttname"><a href="classSubWidget.html#a3c674e3c46206ac29a562c0f02dcf82c">SubWidget::setAbsoluteY</a></div><div class="ttdeci">void setAbsoluteY(int y) noexcept</div></div>
<div class="ttc" id="aclassImageBaseButton_html_a4a3eaf5367a91d43465ffca09464b8ad"><div class="ttname"><a href="classImageBaseButton.html#a4a3eaf5367a91d43465ffca09464b8ad">ImageBaseButton::onDisplay</a></div><div class="ttdeci">void onDisplay() override</div></div>
<div class="ttc" id="aclassSubWidget_html_abcd0a00a4c3cdc402aea56044df26cc3"><div class="ttname"><a href="classSubWidget.html#abcd0a00a4c3cdc402aea56044df26cc3">SubWidget::setAbsoluteX</a></div><div class="ttdeci">void setAbsoluteX(int x) noexcept</div></div>
<div class="ttc" id="aclassImageBaseKnob_html_a6cd97ff56064b28a56d1321508e29f8b"><div class="ttname"><a href="classImageBaseKnob.html#a6cd97ff56064b28a56d1321508e29f8b">ImageBaseKnob::onMouse</a></div><div class="ttdeci">bool onMouse(const MouseEvent &amp;) override</div></div>
<div class="ttc" id="aclassImageBaseAboutWindow_html_ad2c3d4c6943a5562574baf60f58de483"><div class="ttname"><a href="classImageBaseAboutWindow.html#ad2c3d4c6943a5562574baf60f58de483">ImageBaseAboutWindow::onMouse</a></div><div class="ttdeci">bool onMouse(const MouseEvent &amp;) override</div></div>
<div class="ttc" id="astructWidget_1_1MotionEvent_html"><div class="ttname"><a href="structWidget_1_1MotionEvent.html">Widget::MotionEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:183</div></div>
<div class="ttc" id="astructWidget_1_1MotionEvent_html"><div class="ttname"><a href="structWidget_1_1MotionEvent.html">Widget::MotionEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:187</div></div>
<div class="ttc" id="aclassImageBaseAboutWindow_html_a239bf25a7ac8063d2cf3d4db250396e2"><div class="ttname"><a href="classImageBaseAboutWindow.html#a239bf25a7ac8063d2cf3d4db250396e2">ImageBaseAboutWindow::onKeyboard</a></div><div class="ttdeci">bool onKeyboard(const KeyboardEvent &amp;) override</div></div>
<div class="ttc" id="aclassImageBaseAboutWindow_html"><div class="ttname"><a href="classImageBaseAboutWindow.html">ImageBaseAboutWindow</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:28</div></div>
<div class="ttc" id="aclassImageBaseKnob_1_1Callback_html"><div class="ttname"><a href="classImageBaseKnob_1_1Callback.html">ImageBaseKnob::Callback</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:91</div></div>
<div class="ttc" id="aclassImageBaseKnob_html_a9a4d1a1ff6fe7e51be7491148c20d1c5"><div class="ttname"><a href="classImageBaseKnob.html#a9a4d1a1ff6fe7e51be7491148c20d1c5">ImageBaseKnob::onDisplay</a></div><div class="ttdeci">void onDisplay() override</div></div>
<div class="ttc" id="aclassImageBaseButton_html_a643f3c0429d514c70c7a1333829f6cf8"><div class="ttname"><a href="classImageBaseButton.html#a643f3c0429d514c70c7a1333829f6cf8">ImageBaseButton::onMouse</a></div><div class="ttdeci">bool onMouse(const MouseEvent &amp;) override</div></div>
<div class="ttc" id="aclassStandaloneWindow_html"><div class="ttname"><a href="classStandaloneWindow.html">StandaloneWindow</a></div><div class="ttdef"><b>Definition:</b> StandaloneWindow.hpp:27</div></div>
<div class="ttc" id="aclassImageBaseButton_1_1Callback_html"><div class="ttname"><a href="classImageBaseButton_1_1Callback.html">ImageBaseButton::Callback</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:56</div></div>
<div class="ttc" id="aclassImageBaseKnob_html_ab7fc0602637a98d5a0a5ecfd74557636"><div class="ttname"><a href="classImageBaseKnob.html#ab7fc0602637a98d5a0a5ecfd74557636">ImageBaseKnob::onMotion</a></div><div class="ttdeci">bool onMotion(const MotionEvent &amp;) override</div></div>
<div class="ttc" id="aclassPoint_html"><div class="ttname"><a href="classPoint.html">Point</a></div><div class="ttdef"><b>Definition:</b> Geometry.hpp:40</div></div>
<div class="ttc" id="aclassImageBaseButton_1_1Callback_html"><div class="ttname"><a href="classImageBaseButton_1_1Callback.html">ImageBaseButton::Callback</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:53</div></div>
<div class="ttc" id="aclassSubWidget_html"><div class="ttname"><a href="classSubWidget.html">SubWidget</a></div><div class="ttdef"><b>Definition:</b> SubWidget.hpp:39</div></div>
<div class="ttc" id="astructWidget_1_1MouseEvent_html"><div class="ttname"><a href="structWidget_1_1MouseEvent.html">Widget::MouseEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:164</div></div>
<div class="ttc" id="astructWidget_1_1MouseEvent_html"><div class="ttname"><a href="structWidget_1_1MouseEvent.html">Widget::MouseEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:165</div></div>
<div class="ttc" id="aclassImageBaseButton_html_a6333af8b73082f6b4dff77cf690be82d"><div class="ttname"><a href="classImageBaseButton.html#a6333af8b73082f6b4dff77cf690be82d">ImageBaseButton::onMotion</a></div><div class="ttdeci">bool onMotion(const MotionEvent &amp;) override</div></div>
<div class="ttc" id="aclassImageBaseSwitch_1_1Callback_html"><div class="ttname"><a href="classImageBaseSwitch_1_1Callback.html">ImageBaseSwitch::Callback</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:191</div></div>
<div class="ttc" id="aclassImageBaseSwitch_html"><div class="ttname"><a href="classImageBaseSwitch.html">ImageBaseSwitch</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:188</div></div>
<div class="ttc" id="aclassTopLevelWidget_html"><div class="ttname"><a href="classTopLevelWidget.html">TopLevelWidget</a></div><div class="ttdef"><b>Definition:</b> TopLevelWidget.hpp:46</div></div>
<div class="ttc" id="aclassImageBaseSlider_1_1Callback_html"><div class="ttname"><a href="classImageBaseSlider_1_1Callback.html">ImageBaseSlider::Callback</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:140</div></div>
<div class="ttc" id="aclassWidget_html"><div class="ttname"><a href="classWidget.html">Widget</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:53</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
ImageBase_8hpp_source.html View File

@@ -245,7 +245,7 @@ $(function() {
<div class="ttc" id="aclassImageBase_html_a94fc564a4bb8c18cd576ee9b456887a9"><div class="ttname"><a href="classImageBase.html#a94fc564a4bb8c18cd576ee9b456887a9">ImageBase::draw</a></div><div class="ttdeci">void draw(const GraphicsContext &amp;context)</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 26
- 222
ImageWidgets_8hpp_source.html View File

@@ -90,231 +90,35 @@ $(function() {
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;Image.hpp&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;ImageBaseWidgets.hpp&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;SubWidget.hpp&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// TODO switch to use templated image type after merging widget-related PRs</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#if defined(__GNUC__) &amp;&amp; (__GNUC__ &gt;= 6)</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"># pragma GCC diagnostic push</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor"># pragma GCC diagnostic ignored &quot;-Wdeprecated-declarations&quot;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;START_NAMESPACE_DGL</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; </div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classImageKnob.html"> 34</a></span>&#160;<span class="keyword">class </span><a class="code" href="classImageKnob.html">ImageKnob</a> : <span class="keyword">public</span> <a class="code" href="classSubWidget.html">SubWidget</a></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">enum</span> Orientation {</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; Horizontal,</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; Vertical</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; };</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classImageKnob_1_1Callback.html"> 42</a></span>&#160; <span class="keyword">class </span><a class="code" href="classImageKnob_1_1Callback.html">Callback</a></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classImageKnob_1_1Callback.html">Callback</a>() {}</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageKnobDragStarted(<a class="code" href="classImageKnob.html">ImageKnob</a>* imageKnob) = 0;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageKnobDragFinished(<a class="code" href="classImageKnob.html">ImageKnob</a>* imageKnob) = 0;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageKnobValueChanged(<a class="code" href="classImageKnob.html">ImageKnob</a>* imageKnob, <span class="keywordtype">float</span> value) = 0;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; };</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageKnob.html">ImageKnob</a>(<a class="code" href="classWidget.html">Widget</a>* parentWidget, <span class="keyword">const</span> Image&amp; image, Orientation orientation = Vertical) noexcept;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageKnob.html">ImageKnob</a>(<span class="keyword">const</span> <a class="code" href="classImageKnob.html">ImageKnob</a>&amp; imageKnob);</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="classImageKnob.html">ImageKnob</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classImageKnob.html">ImageKnob</a>&amp; imageKnob);</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; ~<a class="code" href="classImageKnob.html">ImageKnob</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">float</span> getValue() const noexcept;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">void</span> setDefault(<span class="keywordtype">float</span> def) noexcept;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">void</span> setRange(<span class="keywordtype">float</span> min, <span class="keywordtype">float</span> max) noexcept;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">void</span> setStep(<span class="keywordtype">float</span> step) noexcept;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">void</span> setValue(<span class="keywordtype">float</span> value, <span class="keywordtype">bool</span> sendCallback = false) noexcept;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">void</span> setUsingLogScale(<span class="keywordtype">bool</span> yesNo) noexcept;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordtype">void</span> setCallback(<a class="code" href="classImageKnob_1_1Callback.html">Callback</a>* callback) noexcept;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">void</span> setOrientation(Orientation orientation) noexcept;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordtype">void</span> setRotationAngle(<span class="keywordtype">int</span> angle);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordtype">void</span> setImageLayerCount(uint count) noexcept;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;protected:</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classImageKnob.html#a7123a12c906463700df8c6f24cd0a62f">onDisplay</a>() override;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageKnob.html#a473247914d3751d629dd8690f74af07b">onMouse</a>(const <a class="code" href="structWidget_1_1MouseEvent.html">MouseEvent</a>&amp;) override;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageKnob.html#a299a1721471747dc173633f21bd75b1f">onMotion</a>(const <a class="code" href="structWidget_1_1MotionEvent.html">MotionEvent</a>&amp;) override;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageKnob.html#a2cdc26028611554458a74b32740ac33b">onScroll</a>(const <a class="code" href="structWidget_1_1ScrollEvent.html">ScrollEvent</a>&amp;) override;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;private:</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; Image fImage;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">float</span> fMinimum;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">float</span> fMaximum;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">float</span> fStep;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">float</span> fValue;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordtype">float</span> fValueDef;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordtype">float</span> fValueTmp;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordtype">bool</span> fUsingDefault;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">bool</span> fUsingLog;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; Orientation fOrientation;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">int</span> fRotationAngle;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">bool</span> fDragging;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">int</span> fLastX;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">int</span> fLastY;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="classImageKnob_1_1Callback.html">Callback</a>* fCallback;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">bool</span> fIsImgVertical;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; uint fImgLayerWidth;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; uint fImgLayerHeight;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; uint fImgLayerCount;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">bool</span> fIsReady;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; GLuint fTextureId;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; </div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordtype">float</span> _logscale(<span class="keywordtype">float</span> value) const;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">float</span> _invlogscale(<span class="keywordtype">float</span> value) const;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; </div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; DISTRHO_LEAK_DETECTOR(<a class="code" href="classImageKnob.html">ImageKnob</a>)</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;};</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment">// note set range and step before setting the value</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classImageSlider.html"> 112</a></span>&#160;class <a class="code" href="classImageSlider.html">ImageSlider</a> : public <a class="code" href="classSubWidget.html">SubWidget</a></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;{</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classImageSlider_1_1Callback.html"> 115</a></span>&#160; <span class="keyword">class </span><a class="code" href="classImageSlider_1_1Callback.html">Callback</a></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classImageSlider_1_1Callback.html">Callback</a>() {}</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageSliderDragStarted(<a class="code" href="classImageSlider.html">ImageSlider</a>* imageSlider) = 0;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageSliderDragFinished(<a class="code" href="classImageSlider.html">ImageSlider</a>* imageSlider) = 0;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageSliderValueChanged(<a class="code" href="classImageSlider.html">ImageSlider</a>* imageSlider, <span class="keywordtype">float</span> value) = 0;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; };</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageSlider.html">ImageSlider</a>(<a class="code" href="classWidget.html">Widget</a>* parentWidget, <span class="keyword">const</span> Image&amp; image) noexcept;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">float</span> getValue() const noexcept;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordtype">void</span> setValue(<span class="keywordtype">float</span> value, <span class="keywordtype">bool</span> sendCallback = false) noexcept;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">void</span> setDefault(<span class="keywordtype">float</span> def) noexcept;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">void</span> setStartPos(const <a class="code" href="classPoint.html">Point</a>&lt;<span class="keywordtype">int</span>&gt;&amp; startPos) noexcept;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">void</span> setStartPos(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y) noexcept;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> setEndPos(const <a class="code" href="classPoint.html">Point</a>&lt;<span class="keywordtype">int</span>&gt;&amp; endPos) noexcept;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">void</span> setEndPos(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y) noexcept;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">void</span> setInverted(<span class="keywordtype">bool</span> inverted) noexcept;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">void</span> setRange(<span class="keywordtype">float</span> min, <span class="keywordtype">float</span> max) noexcept;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">void</span> setStep(<span class="keywordtype">float</span> step) noexcept;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordtype">void</span> setCallback(<a class="code" href="classImageSlider_1_1Callback.html">Callback</a>* callback) noexcept;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;protected:</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classImageKnob.html#a7123a12c906463700df8c6f24cd0a62f">onDisplay</a>() override;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageKnob.html#a473247914d3751d629dd8690f74af07b">onMouse</a>(const <a class="code" href="structWidget_1_1MouseEvent.html">MouseEvent</a>&amp;) override;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageKnob.html#a299a1721471747dc173633f21bd75b1f">onMotion</a>(const <a class="code" href="structWidget_1_1MotionEvent.html">MotionEvent</a>&amp;) override;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;private:</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; Image fImage;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">float</span> fMinimum;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordtype">float</span> fMaximum;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">float</span> fStep;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordtype">float</span> fValue;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">float</span> fValueDef;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordtype">float</span> fValueTmp;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">bool</span> fUsingDefault;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordtype">bool</span> fDragging;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordtype">bool</span> fInverted;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">bool</span> fValueIsSet;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">int</span> fStartedX;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">int</span> fStartedY;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; </div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classImageSlider_1_1Callback.html">Callback</a>* fCallback;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; </div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="classPoint.html">Point</a>&lt;<span class="keywordtype">int</span>&gt; fStartPos;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="classPoint.html">Point</a>&lt;<span class="keywordtype">int</span>&gt; fEndPos;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="classRectangle.html">Rectangle</a>&lt;<span class="keywordtype">double</span>&gt; fSliderArea;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">void</span> _recheckArea() noexcept;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">// these should not be used</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#abcd0a00a4c3cdc402aea56044df26cc3">setAbsoluteX</a>(<span class="keywordtype">int</span>) const noexcept {}</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#a3c674e3c46206ac29a562c0f02dcf82c">setAbsoluteY</a>(<span class="keywordtype">int</span>) <span class="keyword">const</span> noexcept {}</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#a0e7a4dd27eee8a3a1b7bf12d9f21769f">setAbsolutePos</a>(<span class="keywordtype">int</span>, <span class="keywordtype">int</span>) <span class="keyword">const</span> noexcept {}</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#a0e7a4dd27eee8a3a1b7bf12d9f21769f">setAbsolutePos</a>(<span class="keyword">const</span> <a class="code" href="classPoint.html">Point&lt;int&gt;</a>&amp;) <span class="keyword">const</span> noexcept {}</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; </div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classImageSlider.html">ImageSlider</a>)</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;};</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classImageSwitch.html"> 181</a></span>&#160;<span class="keyword">class </span><a class="code" href="classImageSwitch.html">ImageSwitch</a> : <span class="keyword">public</span> <a class="code" href="classSubWidget.html">SubWidget</a></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;{</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classImageSwitch_1_1Callback.html"> 184</a></span>&#160; <span class="keyword">class </span><a class="code" href="classImageSwitch_1_1Callback.html">Callback</a></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; {</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classImageSwitch_1_1Callback.html">Callback</a>() {}</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> imageSwitchClicked(<a class="code" href="classImageSwitch.html">ImageSwitch</a>* imageSwitch, <span class="keywordtype">bool</span> down) = 0;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; };</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; </div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageSwitch.html">ImageSwitch</a>(<a class="code" href="classWidget.html">Widget</a>* parentWidget, <span class="keyword">const</span> Image&amp; imageNormal, <span class="keyword">const</span> Image&amp; imageDown) noexcept;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classImageSwitch.html">ImageSwitch</a>(<span class="keyword">const</span> <a class="code" href="classImageSwitch.html">ImageSwitch</a>&amp; imageSwitch) noexcept;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="classImageSwitch.html">ImageSwitch</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classImageSwitch.html">ImageSwitch</a>&amp; imageSwitch) noexcept;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; </div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordtype">bool</span> isDown() const noexcept;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordtype">void</span> setDown(<span class="keywordtype">bool</span> down) noexcept;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordtype">void</span> setCallback(<a class="code" href="classImageSwitch_1_1Callback.html">Callback</a>* callback) noexcept;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; </div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;protected:</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classImageKnob.html#a7123a12c906463700df8c6f24cd0a62f">onDisplay</a>() override;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classImageKnob.html#a473247914d3751d629dd8690f74af07b">onMouse</a>(const <a class="code" href="structWidget_1_1MouseEvent.html">MouseEvent</a>&amp;) override;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; </div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;private:</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; Image fImageNormal;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; Image fImageDown;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordtype">bool</span> fIsDown;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="classImageSwitch_1_1Callback.html">Callback</a>* fCallback;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; DISTRHO_LEAK_DETECTOR(<a class="code" href="classImageSwitch.html">ImageSwitch</a>)</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;};</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; </div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; </div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="preprocessor">#if defined(__GNUC__) &amp;&amp; (__GNUC__ &gt;= 6)</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor"># pragma GCC diagnostic pop</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; </div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor">#endif // DGL_IMAGE_WIDGETS_HPP_INCLUDED</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;START_NAMESPACE_DGL</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#ifdef DGL_CAIRO</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseAboutWindow.html">CairoImageAboutWindow</a> ImageAboutWindow;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseButton.html">CairoImageButton</a> <a class="code" href="classImageBaseButton.html">ImageButton</a>;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseKnob.html">CairoImageKnob</a> <a class="code" href="classImageBaseKnob.html">ImageKnob</a>;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseSlider.html">CairoImageSlider</a> <a class="code" href="classImageBaseSlider.html">ImageSlider</a>;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseSwitch.html">CairoImageSwitch</a> <a class="code" href="classImageBaseSwitch.html">ImageSwitch</a>;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseAboutWindow.html">OpenGLImageAboutWindow</a> ImageAboutWindow;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseButton.html">OpenGLImageButton</a> <a class="code" href="classImageBaseButton.html">ImageButton</a>;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseKnob.html">OpenGLImageKnob</a> <a class="code" href="classImageBaseKnob.html">ImageKnob</a>;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseSlider.html">OpenGLImageSlider</a> <a class="code" href="classImageBaseSlider.html">ImageSlider</a>;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseSwitch.html">OpenGLImageSwitch</a> <a class="code" href="classImageBaseSwitch.html">ImageSwitch</a>;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#endif // DGL_IMAGE_WIDGETS_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="astructWidget_1_1ScrollEvent_html"><div class="ttname"><a href="structWidget_1_1ScrollEvent.html">Widget::ScrollEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:206</div></div>
<div class="ttc" id="aclassSubWidget_html_a0e7a4dd27eee8a3a1b7bf12d9f21769f"><div class="ttname"><a href="classSubWidget.html#a0e7a4dd27eee8a3a1b7bf12d9f21769f">SubWidget::setAbsolutePos</a></div><div class="ttdeci">void setAbsolutePos(int x, int y) noexcept</div></div>
<div class="ttc" id="aclassSubWidget_html_a3c674e3c46206ac29a562c0f02dcf82c"><div class="ttname"><a href="classSubWidget.html#a3c674e3c46206ac29a562c0f02dcf82c">SubWidget::setAbsoluteY</a></div><div class="ttdeci">void setAbsoluteY(int y) noexcept</div></div>
<div class="ttc" id="aclassRectangle_html"><div class="ttname"><a href="classRectangle.html">Rectangle</a></div><div class="ttdef"><b>Definition:</b> Geometry.hpp:30</div></div>
<div class="ttc" id="aclassSubWidget_html_abcd0a00a4c3cdc402aea56044df26cc3"><div class="ttname"><a href="classSubWidget.html#abcd0a00a4c3cdc402aea56044df26cc3">SubWidget::setAbsoluteX</a></div><div class="ttdeci">void setAbsoluteX(int x) noexcept</div></div>
<div class="ttc" id="aclassImageKnob_1_1Callback_html"><div class="ttname"><a href="classImageKnob_1_1Callback.html">ImageKnob::Callback</a></div><div class="ttdef"><b>Definition:</b> ImageWidgets.hpp:42</div></div>
<div class="ttc" id="aclassImageKnob_html_a2cdc26028611554458a74b32740ac33b"><div class="ttname"><a href="classImageKnob.html#a2cdc26028611554458a74b32740ac33b">ImageKnob::onScroll</a></div><div class="ttdeci">bool onScroll(const ScrollEvent &amp;) override</div></div>
<div class="ttc" id="astructWidget_1_1MotionEvent_html"><div class="ttname"><a href="structWidget_1_1MotionEvent.html">Widget::MotionEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:183</div></div>
<div class="ttc" id="aclassImageSlider_1_1Callback_html"><div class="ttname"><a href="classImageSlider_1_1Callback.html">ImageSlider::Callback</a></div><div class="ttdef"><b>Definition:</b> ImageWidgets.hpp:115</div></div>
<div class="ttc" id="aclassImageSwitch_html"><div class="ttname"><a href="classImageSwitch.html">ImageSwitch</a></div><div class="ttdef"><b>Definition:</b> ImageWidgets.hpp:181</div></div>
<div class="ttc" id="aclassImageSwitch_1_1Callback_html"><div class="ttname"><a href="classImageSwitch_1_1Callback.html">ImageSwitch::Callback</a></div><div class="ttdef"><b>Definition:</b> ImageWidgets.hpp:184</div></div>
<div class="ttc" id="aclassImageKnob_html_a299a1721471747dc173633f21bd75b1f"><div class="ttname"><a href="classImageKnob.html#a299a1721471747dc173633f21bd75b1f">ImageKnob::onMotion</a></div><div class="ttdeci">bool onMotion(const MotionEvent &amp;) override</div></div>
<div class="ttc" id="aclassImageKnob_html"><div class="ttname"><a href="classImageKnob.html">ImageKnob</a></div><div class="ttdef"><b>Definition:</b> ImageWidgets.hpp:34</div></div>
<div class="ttc" id="aclassImageSlider_html"><div class="ttname"><a href="classImageSlider.html">ImageSlider</a></div><div class="ttdef"><b>Definition:</b> ImageWidgets.hpp:112</div></div>
<div class="ttc" id="aclassImageKnob_html_a473247914d3751d629dd8690f74af07b"><div class="ttname"><a href="classImageKnob.html#a473247914d3751d629dd8690f74af07b">ImageKnob::onMouse</a></div><div class="ttdeci">bool onMouse(const MouseEvent &amp;) override</div></div>
<div class="ttc" id="aclassPoint_html"><div class="ttname"><a href="classPoint.html">Point</a></div><div class="ttdef"><b>Definition:</b> Geometry.hpp:40</div></div>
<div class="ttc" id="aclassSubWidget_html"><div class="ttname"><a href="classSubWidget.html">SubWidget</a></div><div class="ttdef"><b>Definition:</b> SubWidget.hpp:39</div></div>
<div class="ttc" id="astructWidget_1_1MouseEvent_html"><div class="ttname"><a href="structWidget_1_1MouseEvent.html">Widget::MouseEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:164</div></div>
<div class="ttc" id="aclassImageKnob_html_a7123a12c906463700df8c6f24cd0a62f"><div class="ttname"><a href="classImageKnob.html#a7123a12c906463700df8c6f24cd0a62f">ImageKnob::onDisplay</a></div><div class="ttdeci">void onDisplay() override</div></div>
<div class="ttc" id="aclassWidget_html"><div class="ttname"><a href="classWidget.html">Widget</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:53</div></div>
<div class="ttc" id="aclassImageBaseButton_html"><div class="ttname"><a href="classImageBaseButton.html">ImageBaseButton</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:50</div></div>
<div class="ttc" id="aclassImageBaseKnob_html"><div class="ttname"><a href="classImageBaseKnob.html">ImageBaseKnob</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:83</div></div>
<div class="ttc" id="aclassImageBaseSlider_html"><div class="ttname"><a href="classImageBaseSlider.html">ImageBaseSlider</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:137</div></div>
<div class="ttc" id="aclassImageBaseAboutWindow_html"><div class="ttname"><a href="classImageBaseAboutWindow.html">ImageBaseAboutWindow</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:28</div></div>
<div class="ttc" id="aclassImageBaseSwitch_html"><div class="ttname"><a href="classImageBaseSwitch.html">ImageBaseSwitch</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:188</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 19
- 11
Image_8hpp_source.html View File

@@ -88,21 +88,29 @@ $(function() {
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#ifndef DGL_IMAGE_HPP_INCLUDED</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define DGL_IMAGE_HPP_INCLUDED</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;OpenGL.hpp&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;START_NAMESPACE_DGL</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;OpenGLImage&quot;</span>)</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;typedef <a class="code" href="classOpenGLImage.html">OpenGLImage</a> Image;</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifdef DGL_CAIRO</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;Cairo.hpp&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;OpenGL.hpp&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;START_NAMESPACE_DGL</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#ifdef DGL_CAIRO</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classCairoImage.html">CairoImage</a> Image;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classOpenGLImage.html">OpenGLImage</a> Image;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassCairoImage_html"><div class="ttname"><a href="classCairoImage.html">CairoImage</a></div><div class="ttdef"><b>Definition:</b> Cairo.hpp:44</div></div>
<div class="ttc" id="aclassOpenGLImage_html"><div class="ttname"><a href="classOpenGLImage.html">OpenGLImage</a></div><div class="ttdef"><b>Definition:</b> OpenGL.hpp:176</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 3
- 3
LeakDetector_8hpp_source.html View File

@@ -125,13 +125,13 @@ $(function() {
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> DISTRHO_NAMESPACE::LeakedObjectDetector&lt;ClassName&gt; DISTRHO_JOIN_MACRO(leakDetector_, ClassName);</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"># define DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(ClassName) \</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> DISTRHO_DECLARE_NON_COPY_CLASS(ClassName) \</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> DISTRHO_DECLARE_NON_COPYABLE(ClassName) \</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"> DISTRHO_LEAK_DETECTOR(ClassName)</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment">/** Don&#39;t use leak detection on release builds. */</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"># define DISTRHO_LEAK_DETECTOR(ClassName)</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"># define DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(ClassName) \</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> DISTRHO_DECLARE_NON_COPY_CLASS(ClassName)</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> DISTRHO_DECLARE_NON_COPYABLE(ClassName)</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">//==============================================================================</span><span class="comment"></span></div>
@@ -222,7 +222,7 @@ $(function() {
<div class="ttc" id="aclassLeakedObjectDetector_html_af4fd575fa5361ce5b01f65a635b1d6b3"><div class="ttname"><a href="classLeakedObjectDetector.html#af4fd575fa5361ce5b01f65a635b1d6b3">LeakedObjectDetector::~LeakedObjectDetector</a></div><div class="ttdeci">~LeakedObjectDetector() noexcept</div><div class="ttdef"><b>Definition:</b> LeakDetector.hpp:86</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 209
- 0
LibraryUtils_8hpp_source.html View File

@@ -0,0 +1,209 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: distrho/extra/LibraryUtils.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_37257469cca17bab24b582e18a78eb75.html">distrho</a></li><li class="navelem"><a class="el" href="dir_b1be46be7d80596b116b2b4ac973f2f0.html">extra</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">LibraryUtils.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * DISTRHO Plugin Framework (DPF)</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2012-2021 Filipe Coelho &lt;falktx@falktx.com&gt;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Permission to use, copy, modify, and/or distribute this software for any purpose with</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * or without fee is hereby granted, provided that the above copyright notice and this</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * permission notice appear in all copies.</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot; AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#ifndef DISTRHO_LIBRARY_UTILS_HPP_INCLUDED</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define DISTRHO_LIBRARY_UTILS_HPP_INCLUDED</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../DistrhoUtils.hpp&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#ifdef DISTRHO_OS_WINDOWS</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># include &lt;winsock2.h&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># include &lt;windows.h&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">typedef</span> HMODULE lib_t;</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor"># include &lt;dlfcn.h&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span>* lib_t;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// library related calls</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> * Open &#39;filename&#39; library (must not be null).</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> * May return null, in which case &quot;lib_error&quot; has the error.</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;lib_t lib_open(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> filename) noexcept</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(filename != <span class="keyword">nullptr</span> &amp;&amp; filename[0] != <span class="charliteral">&#39;\0&#39;</span>, <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; </div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#ifdef DISTRHO_OS_WINDOWS</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; return ::LoadLibraryA(filename);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; return ::dlopen(filename, RTLD_NOW|RTLD_LOCAL);</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; } DISTRHO_SAFE_EXCEPTION_RETURN(<span class="stringliteral">&quot;lib_open&quot;</span>, <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> * Close a previously opened library (must not be null).</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> * If false is returned, &quot;lib_error&quot; has the error.</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keywordtype">bool</span> lib_close(<span class="keyword">const</span> lib_t lib) noexcept</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(lib != <span class="keyword">nullptr</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#ifdef DISTRHO_OS_WINDOWS</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; return ::FreeLibrary(lib);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> (::dlclose(lib) == 0);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; } DISTRHO_SAFE_EXCEPTION_RETURN(<span class="stringliteral">&quot;lib_close&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> * Get a library symbol (must not be null).</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> * Returns null if the symbol is not found.</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Func&gt;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;Func lib_symbol(<span class="keyword">const</span> lib_t lib, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> symbol) noexcept</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(lib != <span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(symbol != <span class="keyword">nullptr</span> &amp;&amp; symbol[0] != <span class="charliteral">&#39;\0&#39;</span>, <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#ifdef DISTRHO_OS_WINDOWS</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"># if defined(__GNUC__) &amp;&amp; (__GNUC__ &gt;= 9)</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"># pragma GCC diagnostic push</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"># pragma GCC diagnostic ignored &quot;-Wcast-function-type&quot;</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> (Func)::GetProcAddress(lib, symbol);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"># if defined(__GNUC__) &amp;&amp; (__GNUC__ &gt;= 9)</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"># pragma GCC diagnostic pop</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> (Func)(uintptr_t)::dlsym(lib, symbol);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; } DISTRHO_SAFE_EXCEPTION_RETURN(<span class="stringliteral">&quot;lib_symbol&quot;</span>, <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;}</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment"> * Return the last operation error (&#39;filename&#39; must not be null).</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"> * May return null.</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* lib_error(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> filename) noexcept</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;{</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(filename != <span class="keyword">nullptr</span> &amp;&amp; filename[0] != <span class="charliteral">&#39;\0&#39;</span>, <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#ifdef DISTRHO_OS_WINDOWS</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span> libError[2048+1];</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; std::memset(libError, 0, <span class="keyword">sizeof</span>(libError));</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">const</span> DWORD winErrorCode = ::GetLastError();</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> winErrorFlags = FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; LPVOID winErrorString;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; ::FormatMessage(winErrorFlags, <span class="keyword">nullptr</span>, winErrorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&amp;winErrorString, 0, <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; std::snprintf(libError, 2048, <span class="stringliteral">&quot;%s: error code %li: %s&quot;</span>, filename, winErrorCode, (<span class="keyword">const</span> <span class="keywordtype">char</span>*)winErrorString);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; ::LocalFree(winErrorString);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; } DISTRHO_SAFE_EXCEPTION(<span class="stringliteral">&quot;lib_error&quot;</span>);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> (libError[0] != <span class="charliteral">&#39;\0&#39;</span>) ? libError : <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; return ::dlerror();</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;}</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor">#endif // DISTRHO_LIBRARY_UTILS_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

+ 246
- 243
Mutex_8hpp_source.html View File

@@ -71,7 +71,7 @@ $(function() {
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * DISTRHO Plugin Framework (DPF)</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2012-2016 Filipe Coelho &lt;falktx@falktx.com&gt;</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2012-2021 Filipe Coelho &lt;falktx@falktx.com&gt;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Permission to use, copy, modify, and/or distribute this software for any purpose with</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * or without fee is hereby granted, provided that the above copyright notice and this</span></div>
@@ -110,7 +110,7 @@ $(function() {
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * Constructor.</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="classMutex.html">Mutex</a>(<span class="keywordtype">bool</span> inheritPriority = <span class="keyword">true</span>) noexcept</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="classMutex.html">Mutex</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> inheritPriority = <span class="keyword">true</span>) noexcept</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; : fMutex()</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; pthread_mutexattr_t attr;</div>
@@ -132,9 +132,9 @@ $(function() {
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> * Lock the mutex.</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordtype">void</span> lock() <span class="keyword">const</span> noexcept</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordtype">bool</span> lock() <span class="keyword">const</span> noexcept</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; pthread_mutex_lock(&amp;fMutex);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> (pthread_mutex_lock(&amp;fMutex) == 0);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">/*</span></div>
@@ -157,59 +157,59 @@ $(function() {
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">mutable</span> pthread_mutex_t fMutex;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; DISTRHO_PREVENT_HEAP_ALLOCATION</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; DISTRHO_DECLARE_NON_COPY_CLASS(<a class="code" href="classMutex.html">Mutex</a>)</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;};</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment">// RecursiveMutex class</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classRecursiveMutex.html"> 96</a></span>&#160;<span class="keyword">class </span><a class="code" href="classRecursiveMutex.html">RecursiveMutex</a></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment"> * Constructor.</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classRecursiveMutex.html">RecursiveMutex</a>() noexcept</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#ifdef DISTRHO_OS_WINDOWS</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; : fSection()</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; : fMutex()</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#ifdef DISTRHO_OS_WINDOWS</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; InitializeCriticalSection(&amp;fSection);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; pthread_mutexattr_t attr;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; pthread_mutexattr_init(&amp;attr);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; pthread_mutexattr_setprotocol(&amp;attr, PTHREAD_PRIO_INHERIT);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; pthread_mutexattr_settype(&amp;attr, PTHREAD_MUTEX_RECURSIVE);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; pthread_mutex_init(&amp;fMutex, &amp;attr);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; pthread_mutexattr_destroy(&amp;attr);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> * Destructor.</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; ~<a class="code" href="classRecursiveMutex.html">RecursiveMutex</a>() noexcept</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#ifdef DISTRHO_OS_WINDOWS</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; DeleteCriticalSection(&amp;fSection);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; pthread_mutex_destroy(&amp;fMutex);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"> * Lock the mutex.</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">void</span> lock() <span class="keyword">const</span> noexcept</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor">#ifdef DISTRHO_OS_WINDOWS</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; EnterCriticalSection(&amp;fSection);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; DISTRHO_DECLARE_NON_COPYABLE(<a class="code" href="classMutex.html">Mutex</a>)</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;};</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment">// RecursiveMutex class</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classRecursiveMutex.html"> 95</a></span>&#160;<span class="keyword">class </span><a class="code" href="classRecursiveMutex.html">RecursiveMutex</a></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;{</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"> * Constructor.</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="classRecursiveMutex.html">RecursiveMutex</a>() noexcept</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#ifdef DISTRHO_OS_WINDOWS</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; : fSection()</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; : fMutex()</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#ifdef DISTRHO_OS_WINDOWS</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; InitializeCriticalSection(&amp;fSection);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; pthread_mutexattr_t attr;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; pthread_mutexattr_init(&amp;attr);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; pthread_mutexattr_setprotocol(&amp;attr, PTHREAD_PRIO_INHERIT);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; pthread_mutexattr_settype(&amp;attr, PTHREAD_MUTEX_RECURSIVE);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; pthread_mutex_init(&amp;fMutex, &amp;attr);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; pthread_mutexattr_destroy(&amp;attr);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"> * Destructor.</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; ~<a class="code" href="classRecursiveMutex.html">RecursiveMutex</a>() noexcept</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#ifdef DISTRHO_OS_WINDOWS</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; DeleteCriticalSection(&amp;fSection);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; pthread_mutex_destroy(&amp;fMutex);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"> * Lock the mutex.</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">bool</span> lock() <span class="keyword">const</span> noexcept</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor">#ifdef DISTRHO_OS_WINDOWS</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; EnterCriticalSection(&amp;fSection);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; pthread_mutex_lock(&amp;fMutex);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">return</span> (pthread_mutex_lock(&amp;fMutex) == 0);</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div>
@@ -245,203 +245,206 @@ $(function() {
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">mutable</span> pthread_mutex_t fMutex;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; DISTRHO_PREVENT_HEAP_ALLOCATION</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; DISTRHO_DECLARE_NON_COPY_CLASS(<a class="code" href="classRecursiveMutex.html">RecursiveMutex</a>)</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;};</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment">// Signal class</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classSignal.html"> 184</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSignal.html">Signal</a></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;{</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment"> * Constructor.</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="classSignal.html">Signal</a>() noexcept</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; : fCondition(),</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; fMutex(),</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; fTriggered(<span class="keyword">false</span>)</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; pthread_condattr_t cattr;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; pthread_condattr_init(&amp;cattr);</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; pthread_condattr_setpshared(&amp;cattr, PTHREAD_PROCESS_PRIVATE);</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; pthread_cond_init(&amp;fCondition, &amp;cattr);</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; pthread_condattr_destroy(&amp;cattr);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; pthread_mutexattr_t mattr;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; pthread_mutexattr_init(&amp;mattr);</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; pthread_mutexattr_setprotocol(&amp;mattr, PTHREAD_PRIO_INHERIT);</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; pthread_mutexattr_settype(&amp;mattr, PTHREAD_MUTEX_NORMAL);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; pthread_mutex_init(&amp;fMutex, &amp;mattr);</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; pthread_mutexattr_destroy(&amp;mattr);</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment"> * Destructor.</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; ~<a class="code" href="classSignal.html">Signal</a>() noexcept</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; pthread_cond_destroy(&amp;fCondition);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; pthread_mutex_destroy(&amp;fMutex);</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment"> * Wait for a signal.</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">void</span> wait() noexcept</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; pthread_mutex_lock(&amp;fMutex);</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">while</span> (! fTriggered)</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; pthread_cond_wait(&amp;fCondition, &amp;fMutex);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; } DISTRHO_SAFE_EXCEPTION(<span class="stringliteral">&quot;pthread_cond_wait&quot;</span>);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; fTriggered = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; pthread_mutex_unlock(&amp;fMutex);</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; </div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment"> * Wake up all waiting threads.</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordtype">void</span> signal() noexcept</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; pthread_mutex_lock(&amp;fMutex);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; </div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">if</span> (! fTriggered)</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; {</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; fTriggered = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; pthread_cond_broadcast(&amp;fCondition);</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; </div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; pthread_mutex_unlock(&amp;fMutex);</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; </div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; pthread_cond_t fCondition;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; pthread_mutex_t fMutex;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">volatile</span> <span class="keywordtype">bool</span> fTriggered;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; </div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; DISTRHO_PREVENT_HEAP_ALLOCATION</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; DISTRHO_DECLARE_NON_COPY_CLASS(<a class="code" href="classSignal.html">Signal</a>)</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;};</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; </div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment">// Helper class to lock&amp;unlock a mutex during a function scope.</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> Mutex&gt;</div>
<div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classScopeLocker.html"> 266</a></span>&#160;<span class="keyword">class </span><a class="code" href="classScopeLocker.html">ScopeLocker</a></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;{</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="classScopeLocker.html">ScopeLocker</a>(<span class="keyword">const</span> <a class="code" href="classMutex.html">Mutex</a>&amp; mutex) noexcept</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; : fMutex(mutex)</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; fMutex.lock();</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; </div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; ~<a class="code" href="classScopeLocker.html">ScopeLocker</a>() noexcept</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; {</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; fMutex.unlock();</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; }</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; </div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">const</span> <a class="code" href="classMutex.html">Mutex</a>&amp; fMutex;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; </div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; DISTRHO_PREVENT_HEAP_ALLOCATION</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; DISTRHO_DECLARE_NON_COPY_CLASS(<a class="code" href="classScopeLocker.html">ScopeLocker</a>)</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;};</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; </div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment">// Helper class to try-lock&amp;unlock a mutex during a function scope.</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; </div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> Mutex&gt;</div>
<div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classScopeTryLocker.html"> 291</a></span>&#160;<span class="keyword">class </span><a class="code" href="classScopeTryLocker.html">ScopeTryLocker</a></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;{</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="classScopeTryLocker.html">ScopeTryLocker</a>(<span class="keyword">const</span> <a class="code" href="classMutex.html">Mutex</a>&amp; mutex) noexcept</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; : fMutex(mutex),</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; fLocked(mutex.tryLock()) {}</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; </div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; ~<a class="code" href="classScopeTryLocker.html">ScopeTryLocker</a>() noexcept</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; {</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">if</span> (fLocked)</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; fMutex.unlock();</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; </div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordtype">bool</span> wasLocked() <span class="keyword">const</span> noexcept</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; {</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">return</span> fLocked;</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; }</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; </div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordtype">bool</span> wasNotLocked() <span class="keyword">const</span> noexcept</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; {</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> !fLocked;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; </div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">const</span> <a class="code" href="classMutex.html">Mutex</a>&amp; fMutex;</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> fLocked;</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; </div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; DISTRHO_PREVENT_HEAP_ALLOCATION</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; DISTRHO_DECLARE_NON_COPY_CLASS(<a class="code" href="classScopeTryLocker.html">ScopeTryLocker</a>)</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;};</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; </div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="comment">// Helper class to unlock&amp;lock a mutex during a function scope.</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; DISTRHO_DECLARE_NON_COPYABLE(<a class="code" href="classRecursiveMutex.html">RecursiveMutex</a>)</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;};</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment">// Signal class</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classSignal.html"> 183</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSignal.html">Signal</a></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;{</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment"> * Constructor.</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="classSignal.html">Signal</a>() noexcept</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; : fCondition(),</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; fMutex(),</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; fTriggered(<span class="keyword">false</span>)</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; {</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; pthread_condattr_t cattr;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; pthread_condattr_init(&amp;cattr);</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; pthread_condattr_setpshared(&amp;cattr, PTHREAD_PROCESS_PRIVATE);</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; pthread_cond_init(&amp;fCondition, &amp;cattr);</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; pthread_condattr_destroy(&amp;cattr);</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; </div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; pthread_mutexattr_t mattr;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; pthread_mutexattr_init(&amp;mattr);</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; pthread_mutexattr_setprotocol(&amp;mattr, PTHREAD_PRIO_INHERIT);</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; pthread_mutexattr_settype(&amp;mattr, PTHREAD_MUTEX_NORMAL);</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; pthread_mutex_init(&amp;fMutex, &amp;mattr);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; pthread_mutexattr_destroy(&amp;mattr);</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; </div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment"> * Destructor.</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; ~<a class="code" href="classSignal.html">Signal</a>() noexcept</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; pthread_cond_destroy(&amp;fCondition);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; pthread_mutex_destroy(&amp;fMutex);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment"> * Wait for a signal.</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordtype">void</span> wait() noexcept</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; pthread_mutex_lock(&amp;fMutex);</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; </div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">while</span> (! fTriggered)</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; pthread_cond_wait(&amp;fCondition, &amp;fMutex);</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; } DISTRHO_SAFE_EXCEPTION(<span class="stringliteral">&quot;pthread_cond_wait&quot;</span>);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; fTriggered = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; </div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; pthread_mutex_unlock(&amp;fMutex);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; </div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment"> * Wake up all waiting threads.</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordtype">void</span> signal() noexcept</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; {</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; pthread_mutex_lock(&amp;fMutex);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; </div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span> (! fTriggered)</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; fTriggered = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; pthread_cond_broadcast(&amp;fCondition);</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; </div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; pthread_mutex_unlock(&amp;fMutex);</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; </div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; pthread_cond_t fCondition;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; pthread_mutex_t fMutex;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">volatile</span> <span class="keywordtype">bool</span> fTriggered;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; </div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; DISTRHO_PREVENT_HEAP_ALLOCATION</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; DISTRHO_DECLARE_NON_COPYABLE(<a class="code" href="classSignal.html">Signal</a>)</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;};</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; </div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment">// Helper class to lock&amp;unlock a mutex during a function scope.</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; </div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> Mutex&gt;</div>
<div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="classScopeLocker.html"> 265</a></span>&#160;<span class="keyword">class </span><a class="code" href="classScopeLocker.html">ScopeLocker</a></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;{</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="classScopeLocker.html">ScopeLocker</a>(<span class="keyword">const</span> <a class="code" href="classMutex.html">Mutex</a>&amp; mutex) noexcept</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; : fMutex(mutex)</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; {</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; fMutex.lock();</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; </div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; ~<a class="code" href="classScopeLocker.html">ScopeLocker</a>() noexcept</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; fMutex.unlock();</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; </div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">const</span> <a class="code" href="classMutex.html">Mutex</a>&amp; fMutex;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; </div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; DISTRHO_PREVENT_HEAP_ALLOCATION</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; DISTRHO_DECLARE_NON_COPYABLE(<a class="code" href="classScopeLocker.html">ScopeLocker</a>)</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;};</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; </div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment">// Helper class to try-lock&amp;unlock a mutex during a function scope.</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; </div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> Mutex&gt;</div>
<div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="classScopeTryLocker.html"> 290</a></span>&#160;<span class="keyword">class </span><a class="code" href="classScopeTryLocker.html">ScopeTryLocker</a></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;{</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="classScopeTryLocker.html">ScopeTryLocker</a>(<span class="keyword">const</span> <a class="code" href="classMutex.html">Mutex</a>&amp; mutex) noexcept</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; : fMutex(mutex),</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; fLocked(mutex.tryLock()) {}</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; </div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="classScopeTryLocker.html">ScopeTryLocker</a>(<span class="keyword">const</span> <a class="code" href="classMutex.html">Mutex</a>&amp; mutex, <span class="keyword">const</span> <span class="keywordtype">bool</span> forceLock) noexcept</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; : fMutex(mutex),</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; fLocked(forceLock ? mutex.lock() : mutex.tryLock()) {}</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; </div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; ~<a class="code" href="classScopeTryLocker.html">ScopeTryLocker</a>() noexcept</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; {</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">if</span> (fLocked)</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; fMutex.unlock();</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; </div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordtype">bool</span> wasLocked() <span class="keyword">const</span> noexcept</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> fLocked;</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; </div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordtype">bool</span> wasNotLocked() <span class="keyword">const</span> noexcept</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">return</span> !fLocked;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; </div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keyword">const</span> <a class="code" href="classMutex.html">Mutex</a>&amp; fMutex;</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> fLocked;</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; </div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; DISTRHO_PREVENT_HEAP_ALLOCATION</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; DISTRHO_DECLARE_NON_COPYABLE(<a class="code" href="classScopeTryLocker.html">ScopeTryLocker</a>)</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;};</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; </div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> Mutex&gt;</div>
<div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="classScopeUnlocker.html"> 326</a></span>&#160;<span class="keyword">class </span><a class="code" href="classScopeUnlocker.html">ScopeUnlocker</a></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;{</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="classScopeUnlocker.html">ScopeUnlocker</a>(<span class="keyword">const</span> <a class="code" href="classMutex.html">Mutex</a>&amp; mutex) noexcept</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; : fMutex(mutex)</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; {</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; fMutex.unlock();</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; }</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; </div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; ~<a class="code" href="classScopeUnlocker.html">ScopeUnlocker</a>() noexcept</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; {</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; fMutex.lock();</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; }</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; </div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">const</span> <a class="code" href="classMutex.html">Mutex</a>&amp; fMutex;</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="comment">// Helper class to unlock&amp;lock a mutex during a function scope.</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; </div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> Mutex&gt;</div>
<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="classScopeUnlocker.html"> 329</a></span>&#160;<span class="keyword">class </span><a class="code" href="classScopeUnlocker.html">ScopeUnlocker</a></div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;{</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="classScopeUnlocker.html">ScopeUnlocker</a>(<span class="keyword">const</span> <a class="code" href="classMutex.html">Mutex</a>&amp; mutex) noexcept</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; : fMutex(mutex)</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; {</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; fMutex.unlock();</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; }</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; </div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; ~<a class="code" href="classScopeUnlocker.html">ScopeUnlocker</a>() noexcept</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; {</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; fMutex.lock();</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; </div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; DISTRHO_PREVENT_HEAP_ALLOCATION</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; DISTRHO_DECLARE_NON_COPY_CLASS(<a class="code" href="classScopeUnlocker.html">ScopeUnlocker</a>)</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;};</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; </div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="comment">// Define types</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">const</span> <a class="code" href="classMutex.html">Mutex</a>&amp; fMutex;</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; </div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; DISTRHO_PREVENT_HEAP_ALLOCATION</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; DISTRHO_DECLARE_NON_COPYABLE(<a class="code" href="classScopeUnlocker.html">ScopeUnlocker</a>)</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;};</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; </div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classScopeLocker.html">ScopeLocker&lt;Mutex&gt;</a> <a class="code" href="classScopeLocker.html">MutexLocker</a>;</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classScopeLocker.html">ScopeLocker&lt;RecursiveMutex&gt;</a> <a class="code" href="classScopeLocker.html">RecursiveMutexLocker</a>;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="comment">// Define types</span></div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; </div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classScopeTryLocker.html">ScopeTryLocker&lt;Mutex&gt;</a> <a class="code" href="classScopeTryLocker.html">MutexTryLocker</a>;</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classScopeTryLocker.html">ScopeTryLocker&lt;RecursiveMutex&gt;</a> <a class="code" href="classScopeTryLocker.html">RecursiveMutexTryLocker</a>;</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classScopeLocker.html">ScopeLocker&lt;Mutex&gt;</a> <a class="code" href="classScopeLocker.html">MutexLocker</a>;</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classScopeLocker.html">ScopeLocker&lt;RecursiveMutex&gt;</a> <a class="code" href="classScopeLocker.html">RecursiveMutexLocker</a>;</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; </div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classScopeUnlocker.html">ScopeUnlocker&lt;Mutex&gt;</a> <a class="code" href="classScopeUnlocker.html">MutexUnlocker</a>;</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classScopeUnlocker.html">ScopeUnlocker&lt;RecursiveMutex&gt;</a> <a class="code" href="classScopeUnlocker.html">RecursiveMutexUnlocker</a>;</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classScopeTryLocker.html">ScopeTryLocker&lt;Mutex&gt;</a> <a class="code" href="classScopeTryLocker.html">MutexTryLocker</a>;</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classScopeTryLocker.html">ScopeTryLocker&lt;RecursiveMutex&gt;</a> <a class="code" href="classScopeTryLocker.html">RecursiveMutexTryLocker</a>;</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; </div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; </div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;END_NAMESPACE_DISTRHO</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; </div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor">#endif // DISTRHO_MUTEX_HPP_INCLUDED</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classScopeUnlocker.html">ScopeUnlocker&lt;Mutex&gt;</a> <a class="code" href="classScopeUnlocker.html">MutexUnlocker</a>;</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classScopeUnlocker.html">ScopeUnlocker&lt;RecursiveMutex&gt;</a> <a class="code" href="classScopeUnlocker.html">RecursiveMutexUnlocker</a>;</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; </div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; </div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;END_NAMESPACE_DISTRHO</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; </div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor">#endif // DISTRHO_MUTEX_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassSignal_html"><div class="ttname"><a href="classSignal.html">Signal</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:184</div></div>
<div class="ttc" id="aclassScopeLocker_html"><div class="ttname"><a href="classScopeLocker.html">ScopeLocker</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:266</div></div>
<div class="ttc" id="aclassRecursiveMutex_html"><div class="ttname"><a href="classRecursiveMutex.html">RecursiveMutex</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:96</div></div>
<div class="ttc" id="aclassSignal_html"><div class="ttname"><a href="classSignal.html">Signal</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:183</div></div>
<div class="ttc" id="aclassScopeLocker_html"><div class="ttname"><a href="classScopeLocker.html">ScopeLocker</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:265</div></div>
<div class="ttc" id="aclassRecursiveMutex_html"><div class="ttname"><a href="classRecursiveMutex.html">RecursiveMutex</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:95</div></div>
<div class="ttc" id="aclassMutex_html"><div class="ttname"><a href="classMutex.html">Mutex</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:36</div></div>
<div class="ttc" id="aclassScopeUnlocker_html"><div class="ttname"><a href="classScopeUnlocker.html">ScopeUnlocker</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:326</div></div>
<div class="ttc" id="aclassScopeTryLocker_html"><div class="ttname"><a href="classScopeTryLocker.html">ScopeTryLocker</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:291</div></div>
<div class="ttc" id="aclassScopeUnlocker_html"><div class="ttname"><a href="classScopeUnlocker.html">ScopeUnlocker</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:329</div></div>
<div class="ttc" id="aclassScopeTryLocker_html"><div class="ttname"><a href="classScopeTryLocker.html">ScopeTryLocker</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:290</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 926
- 928
NanoVG_8hpp_source.html
File diff suppressed because it is too large
View File


+ 22
- 22
OpenGL_8hpp_source.html View File

@@ -293,8 +293,8 @@ $(function() {
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="classOpenGLImage.html">OpenGLImage</a>&amp; <a class="code" href="classOpenGLImage.html#a289cbeb6a607985c323e0cd5a8fbd19a">operator=</a>(<span class="keyword">const</span> <a class="code" href="classOpenGLImage.html">OpenGLImage</a>&amp; image) noexcept;</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; </div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">// FIXME this should not be needed</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classOpenGLImage.html#a5ee11a12fb84219cf5216396c1cf3c0a">loadFromMemory</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rawData, uint w, uint h, ImageFormat format = kImageFormatBGRA)</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; { <a class="code" href="classOpenGLImage.html#a5ee11a12fb84219cf5216396c1cf3c0a">loadFromMemory</a>(rawData, <a class="code" href="classSize.html">Size&lt;uint&gt;</a>(w, h), format); };</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classOpenGLImage.html#a5ee11a12fb84219cf5216396c1cf3c0a">loadFromMemory</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rdata, uint w, uint h, ImageFormat fmt = kImageFormatBGRA)</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; { <a class="code" href="classOpenGLImage.html#a5ee11a12fb84219cf5216396c1cf3c0a">loadFromMemory</a>(rdata, <a class="code" href="classSize.html">Size&lt;uint&gt;</a>(w, h), fmt); };</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classOpenGLImage.html#a0bd3a7e2a8d8e36ebacf4277a3f915cc">draw</a>(<span class="keyword">const</span> <a class="code" href="structGraphicsContext.html">GraphicsContext</a>&amp; context)</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; { <a class="code" href="classOpenGLImage.html#ab97d09a7496436d2823c064708a61287">drawAt</a>(context, <a class="code" href="classPoint.html">Point&lt;int&gt;</a>(0, 0)); };</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classOpenGLImage.html#ab97d09a7496436d2823c064708a61287">drawAt</a>(<span class="keyword">const</span> <a class="code" href="structGraphicsContext.html">GraphicsContext</a>&amp; context, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y)</div>
@@ -305,16 +305,16 @@ $(function() {
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="comment"> @note @a rawData must remain valid for the lifetime of this Image.</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment"> DEPRECATED This constructor uses OpenGL image format instead of DISTRHO one.</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;OpenGLImage(const char*,uint,uint,ImageFormat&quot;</span>)</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classOpenGLImage.html#a7292ff9abcd2137c0cf8d7c0d57d1eb5">OpenGLImage</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rawData, uint width, uint height, GLenum format);</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;OpenGLImage(const char*, uint, uint, ImageFormat)&quot;</span>)</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classOpenGLImage.html#a7292ff9abcd2137c0cf8d7c0d57d1eb5">OpenGLImage</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rawData, uint width, uint height, GLenum glFormat);</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment"> Constructor using raw image data, specifying an OpenGL image format.</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment"> @note @a rawData must remain valid for the lifetime of this Image.</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment"> DEPRECATED This constructor uses OpenGL image format instead of DISTRHO one.</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;OpenGLImage(const char*,const Size&lt;uint&gt;&amp;,ImageFormat&quot;</span>)</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classOpenGLImage.html#a7292ff9abcd2137c0cf8d7c0d57d1eb5">OpenGLImage</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rawData, <span class="keyword">const</span> <a class="code" href="classSize.html">Size&lt;uint&gt;</a>&amp; size, GLenum format);</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;OpenGLImage(const char*, const Size&lt;uint&gt;&amp;, ImageFormat)&quot;</span>)</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classOpenGLImage.html#a7292ff9abcd2137c0cf8d7c0d57d1eb5">OpenGLImage</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rawData, <span class="keyword">const</span> <a class="code" href="classSize.html">Size&lt;uint&gt;</a>&amp; size, GLenum glFormat);</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment"> Draw this image at (0, 0) point using the current OpenGL context.</span></div>
@@ -327,14 +327,14 @@ $(function() {
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment"> Draw this image at (x, y) point using the current OpenGL context.</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment"> DEPRECATED This function does not take into consideration the current graphics context and only works in OpenGL.</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;drawAt(const GraphicsContext&amp;,int,int)&quot;</span>)</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classOpenGLImage.html#ab97d09a7496436d2823c064708a61287">drawAt</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> x, <span class="keyword">const</span> <span class="keywordtype">int</span> y);</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;drawAt(const GraphicsContext&amp;, int, int)&quot;</span>)</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classOpenGLImage.html#ab97d09a7496436d2823c064708a61287">drawAt</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment"> Draw this image at position @a pos using the current OpenGL context.</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment"> DEPRECATED This function does not take into consideration the current graphics context and only works in OpenGL.</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;drawAt(const GraphicsContext&amp;,const Point&lt;int&gt;&amp;)&quot;</span>)</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;drawAt(const GraphicsContext&amp;, const Point&lt;int&gt;&amp;)&quot;</span>)</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classOpenGLImage.html#ab97d09a7496436d2823c064708a61287">drawAt</a>(<span class="keyword">const</span> <a class="code" href="classPoint.html">Point&lt;int&gt;</a>&amp; pos);</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment"> /**</span></div>
@@ -353,21 +353,20 @@ $(function() {
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; </div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseAboutWindow.html">ImageBaseAboutWindow&lt;OpenGLImage&gt;</a> <a class="code" href="classImageBaseAboutWindow.html">OpenGLImageAboutWindow</a>;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseButton.html">ImageBaseButton&lt;OpenGLImage&gt;</a> <a class="code" href="classImageBaseButton.html">OpenGLImageButton</a>;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; </div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;OpenGLImageAboutWindow&quot;</span>)</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;typedef <a class="code" href="classImageBaseAboutWindow.html">OpenGLImageAboutWindow</a> <a class="code" href="classImageBaseAboutWindow.html">ImageAboutWindow</a>;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseKnob.html">ImageBaseKnob&lt;OpenGLImage&gt;</a> <a class="code" href="classImageBaseKnob.html">OpenGLImageKnob</a>;</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseSlider.html">ImageBaseSlider&lt;OpenGLImage&gt;</a> <a class="code" href="classImageBaseSlider.html">OpenGLImageSlider</a>;</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classImageBaseSwitch.html">ImageBaseSwitch&lt;OpenGLImage&gt;</a> <a class="code" href="classImageBaseSwitch.html">OpenGLImageSwitch</a>;</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; </div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;DISTRHO_DEPRECATED_BY(&quot;<a class="code" href="classImageBaseButton.html">OpenGLImageButton</a>&quot;)</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;typedef <a class="code" href="classImageBaseButton.html">OpenGLImageButton</a> <a class="code" href="classImageBaseButton.html">ImageButton</a>;</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; </div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; </div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; </div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; </div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; </div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassImageBaseButton_html"><div class="ttname"><a href="classImageBaseButton.html">ImageBaseButton</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:53</div></div>
<div class="ttc" id="aclassImageBaseButton_html"><div class="ttname"><a href="classImageBaseButton.html">ImageBaseButton</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:50</div></div>
<div class="ttc" id="aclassImageBaseKnob_html"><div class="ttname"><a href="classImageBaseKnob.html">ImageBaseKnob</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:83</div></div>
<div class="ttc" id="astructGraphicsContext_html"><div class="ttname"><a href="structGraphicsContext.html">GraphicsContext</a></div><div class="ttdef"><b>Definition:</b> Base.hpp:154</div></div>
<div class="ttc" id="aclassImageBaseSlider_html"><div class="ttname"><a href="classImageBaseSlider.html">ImageBaseSlider</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:137</div></div>
<div class="ttc" id="aclassOpenGLImage_html_a289cbeb6a607985c323e0cd5a8fbd19a"><div class="ttname"><a href="classOpenGLImage.html#a289cbeb6a607985c323e0cd5a8fbd19a">OpenGLImage::operator=</a></div><div class="ttdeci">OpenGLImage &amp; operator=(const OpenGLImage &amp;image) noexcept</div></div>
<div class="ttc" id="aclassOpenGLImage_html_a5ee11a12fb84219cf5216396c1cf3c0a"><div class="ttname"><a href="classOpenGLImage.html#a5ee11a12fb84219cf5216396c1cf3c0a">OpenGLImage::loadFromMemory</a></div><div class="ttdeci">void loadFromMemory(const char *rawData, const Size&lt; uint &gt; &amp;size, ImageFormat format=kImageFormatBGRA) noexcept override</div></div>
<div class="ttc" id="aclassSize_html"><div class="ttname"><a href="classSize.html">Size&lt; uint &gt;</a></div></div>
@@ -380,10 +379,11 @@ $(function() {
<div class="ttc" id="aclassPoint_html"><div class="ttname"><a href="classPoint.html">Point&lt; int &gt;</a></div></div>
<div class="ttc" id="aclassOpenGLImage_html_ab97d09a7496436d2823c064708a61287"><div class="ttname"><a href="classOpenGLImage.html#ab97d09a7496436d2823c064708a61287">OpenGLImage::drawAt</a></div><div class="ttdeci">void drawAt(const GraphicsContext &amp;context, const Point&lt; int &gt; &amp;pos) override</div></div>
<div class="ttc" id="aclassOpenGLImage_html_ac6eb1a0e289c0e29bf8d8cfb3310f40e"><div class="ttname"><a href="classOpenGLImage.html#ac6eb1a0e289c0e29bf8d8cfb3310f40e">OpenGLImage::getType</a></div><div class="ttdeci">DISTRHO_DEPRECATED GLenum getType() const noexcept</div><div class="ttdef"><b>Definition:</b> OpenGL.hpp:274</div></div>
<div class="ttc" id="aclassImageBaseSwitch_html"><div class="ttname"><a href="classImageBaseSwitch.html">ImageBaseSwitch</a></div><div class="ttdef"><b>Definition:</b> ImageBaseWidgets.hpp:188</div></div>
<div class="ttc" id="aclassOpenGLImage_html"><div class="ttname"><a href="classOpenGLImage.html">OpenGLImage</a></div><div class="ttdef"><b>Definition:</b> OpenGL.hpp:176</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 870
- 0
RingBuffer_8hpp_source.html View File

@@ -0,0 +1,870 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: distrho/extra/RingBuffer.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_37257469cca17bab24b582e18a78eb75.html">distrho</a></li><li class="navelem"><a class="el" href="dir_b1be46be7d80596b116b2b4ac973f2f0.html">extra</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">RingBuffer.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * DISTRHO Plugin Framework (DPF)</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2012-2021 Filipe Coelho &lt;falktx@falktx.com&gt;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Permission to use, copy, modify, and/or distribute this software for any purpose with</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * or without fee is hereby granted, provided that the above copyright notice and this</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * permission notice appear in all copies.</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot; AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#ifndef DISTRHO_RING_BUFFER_HPP_INCLUDED</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define DISTRHO_RING_BUFFER_HPP_INCLUDED</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../DistrhoUtils.hpp&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;START_NAMESPACE_DISTRHO</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">// Buffer structs</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> Base structure for all RingBuffer containers.</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> This struct details the data model used in DPF&#39;s RingBuffer class.</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> DPF RingBuffer uses a struct just like this one to store positions, buffer data, size, etc.</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> The RingBuffer itself takes ownership of this struct and uses it to store any needed data.</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> This allows to dynamically change the way its ring buffer is allocated, simply by changing the template type.</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> For example, `RingBufferControl&lt;HeapBuffer&gt;` will create a ring buffer with heap memory, which can be of any size.</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> In the same vein, `RingBufferControl&lt;SmallStackBuffer&gt;` will create a ring buffer with stack memory,</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> directly tied to the RingBufferControl it belongs to.</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> The main idea behind this model is to allow RingBufferControl over memory created elsewhere,</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> for example shared memory area.</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> One can create/place the Buffer struct in shared memory, and point RingBufferControl to it,</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> thus avoiding the pitfalls of sharing access to a non trivially-copyable/POD C++ class.</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> Unlike other ring buffers, an extra variable is used to track pending writes.</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> This is so we can write a few bytes at a time and later mark the whole operation as complete,</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> thus avoiding the issue of reading data too early from the other side.</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> For example, write the size of some data first, and then the actual data.</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> The reading side will only see data available once size + data is completely written and &quot;committed&quot;.</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structHeapBuffer.html"> 49</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structHeapBuffer.html">HeapBuffer</a> {<span class="comment"></span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> Size of the buffer, allocated in @a buf.</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> If the size is fixed (stack buffer), this variable can be static.</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structHeapBuffer.html#a582e7b5aa4a85814f291d002abb49599"> 54</a></span>&#160; uint32_t <a class="code" href="structHeapBuffer.html#a582e7b5aa4a85814f291d002abb49599">size</a>;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> Current writing position, headmost position of the buffer.</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> Increments when writing.</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="structHeapBuffer.html#a55b0dceb6b878021d8fe1353096e757b"> 60</a></span>&#160; uint32_t <a class="code" href="structHeapBuffer.html#a55b0dceb6b878021d8fe1353096e757b">head</a>;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"> Current reading position, last used position of the buffer.</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment"> Increments when reading.</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> head == tail means empty buffer.</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structHeapBuffer.html#abd05cbae44531a412352ed52c8a50aec"> 67</a></span>&#160; uint32_t <a class="code" href="structHeapBuffer.html#abd05cbae44531a412352ed52c8a50aec">tail</a>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> Temporary position of head until a commitWrite() is called.</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> If buffer writing fails, wrtn will be back to head position thus ignoring the last operation(s).</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> If buffer writing succeeds, head will be set to this variable.</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structHeapBuffer.html#a4d330b5567a46f6b6972f5174b262292"> 74</a></span>&#160; uint32_t <a class="code" href="structHeapBuffer.html#a4d330b5567a46f6b6972f5174b262292">wrtn</a>;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> Boolean used to check if a write operation failed.</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> This ensures we don&#39;t get incomplete writes.</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structHeapBuffer.html#a0cd85f596b680b57cc6669de7cf7ed27"> 80</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structHeapBuffer.html#a0cd85f596b680b57cc6669de7cf7ed27">invalidateCommit</a>;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> Pointer to buffer data.</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> This can be either stack or heap data, depending on the usecase.</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structHeapBuffer.html#afbaf206237e4898a306025676dce0987"> 86</a></span>&#160; uint8_t* <a class="code" href="structHeapBuffer.html#afbaf206237e4898a306025676dce0987">buf</a>;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;};</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"> RingBufferControl compatible struct with a relatively small stack size (4k bytes).</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"> @see HeapBuffer</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structSmallStackBuffer.html"> 93</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structSmallStackBuffer.html">SmallStackBuffer</a> {</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint32_t size = 4096;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; uint32_t head, tail, wrtn;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordtype">bool</span> invalidateCommit;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; uint8_t buf[size];</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;};</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"> RingBufferControl compatible struct with a relatively big stack size (16k bytes).</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"> @see HeapBuffer</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="structBigStackBuffer.html"> 104</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structBigStackBuffer.html">BigStackBuffer</a> {</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint32_t size = 16384;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; uint32_t head, tail, wrtn;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">bool</span> invalidateCommit;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; uint8_t buf[size];</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;};</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"> RingBufferControl compatible struct with a huge stack size (64k bytes).</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"> @see HeapBuffer</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="structHugeStackBuffer.html"> 115</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structHugeStackBuffer.html">HugeStackBuffer</a> {</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint32_t size = 65536;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; uint32_t head, tail, wrtn;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">bool</span> invalidateCommit;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; uint8_t buf[size];</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;};</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor">#ifdef DISTRHO_PROPER_CPP11_SUPPORT</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor"># define HeapBuffer_INIT {0, 0, 0, 0, false, nullptr}</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor"># define StackBuffer_INIT {0, 0, 0, false, {0}}</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor"># define HeapBuffer_INIT</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor"># define StackBuffer_INIT</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment">// RingBufferControl templated class</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"> DPF built-in RingBuffer class.</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"> RingBufferControl takes one buffer struct to take control over, and operates over it.</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> This is meant for single-writer, single-reader type of control.</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> Writing and reading is wait and lock-free.</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"> Typically usage involves:</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"> ```</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"> // definition</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"> RingBufferControl&lt;HeapBuffer&gt; myHeapBuffer; // or HeapRingBuffer class directly</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment"> // construction, only needed for heap buffers</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="comment"> myHeapBuffer.createBuffer(8192);</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment"> // writing data</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment"> myHeapBuffer.writeUInt(size);</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"> myHeapBuffer.writeCustomData(someOtherData, size);</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> myHeapBuffer.commitWrite();</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> // reading data</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"> if (myHeapBuffer.isDataAvailableForReading())</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"> {</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment"> uint32_t size;</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> if (myHeapBuffer.readUInt(size) &amp;&amp; readCustomData(&amp;anotherData, size))</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"> {</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"> // do something with &quot;anotherData&quot;</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"> }</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"> }</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"> ```</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> @see HeapBuffer</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> BufferStruct&gt;</div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classRingBufferControl.html"> 167</a></span>&#160;<span class="keyword">class </span><a class="code" href="classRingBufferControl.html">RingBufferControl</a></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;{</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment"> * Constructor for unitialized ring buffer.</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment"> * A call to setRingBuffer is required to tied this control to a ring buffer struct;</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="classRingBufferControl.html">RingBufferControl</a>() noexcept</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; : buffer(<span class="keyword">nullptr</span>),</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; errorReading(<span class="keyword">false</span>),</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; errorWriting(<span class="keyword">false</span>) {}</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"> * Destructor.</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classRingBufferControl.html">RingBufferControl</a>() noexcept {}</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="comment">// -------------------------------------------------------------------</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">// check operations</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; </div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment"> * Check if there is any data available for reading, regardless of size.</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordtype">bool</span> isDataAvailableForReading() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; </div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"> * Check if ring buffer is empty (that is, there is nothing to read).</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordtype">bool</span> isEmpty() <span class="keyword">const</span> noexcept</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(buffer != <span class="keyword">nullptr</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; </div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> (buffer-&gt;buf == <span class="keyword">nullptr</span> || buffer-&gt;head == buffer-&gt;tail);</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment"> * Get the size of the data available to read.</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; uint32_t getAvailableDataSize() <span class="keyword">const</span> noexcept</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(buffer != <span class="keyword">nullptr</span>, 0);</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; </div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">const</span> uint32_t wrap((buffer-&gt;tail &gt; buffer-&gt;wrtn) ? 0 : buffer-&gt;size);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; </div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> wrap + buffer-&gt;tail - buffer-&gt;wrtn;</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">// -------------------------------------------------------------------</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="comment">// clear/reset operations</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment"> * Clear the entire ring buffer data, marking the buffer as empty.</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment"> * Requires a buffer struct tied to this class.</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">void</span> clearData() noexcept</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; {</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(buffer != <span class="keyword">nullptr</span>,);</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; </div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; buffer-&gt;head = 0;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; buffer-&gt;tail = 0;</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; buffer-&gt;wrtn = 0;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; buffer-&gt;invalidateCommit = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; std::memset(buffer-&gt;buf, 0, buffer-&gt;size);</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// -------------------------------------------------------------------</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="comment">// read operations</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; </div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment"> * Read a single boolean value.</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment"> * Returns false if reading fails.</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordtype">bool</span> readBool() noexcept</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordtype">bool</span> b = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> tryRead(&amp;b, <span class="keyword">sizeof</span>(<span class="keywordtype">bool</span>)) ? b : <span class="keyword">false</span>;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; </div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment"> * Read a single 8-bit byte.</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment"> * Returns 0 if reading fails.</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; uint8_t readByte() noexcept</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; uint8_t B = 0;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">return</span> tryRead(&amp;B, <span class="keyword">sizeof</span>(uint8_t)) ? B : 0;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; </div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment"> * Read a short 16-bit integer.</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment"> * Returns 0 if reading fails.</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; int16_t readShort() noexcept</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; int16_t s = 0;</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> tryRead(&amp;s, <span class="keyword">sizeof</span>(int16_t)) ? s : 0;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; </div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment"> * Read a short unsigned 16-bit integer.</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment"> * Returns 0 if reading fails.</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; uint16_t readUShort() noexcept</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; uint16_t us = 0;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> tryRead(&amp;us, <span class="keyword">sizeof</span>(uint16_t)) ? us : 0;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; </div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment"> * Read a regular 32-bit integer.</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="comment"> * Returns 0 if reading fails.</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; int32_t readInt() noexcept</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; {</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; int32_t i = 0;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> tryRead(&amp;i, <span class="keyword">sizeof</span>(int32_t)) ? i : 0;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; }</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; </div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment"> * Read an unsigned 32-bit integer.</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment"> * Returns 0 if reading fails.</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; uint32_t readUInt() noexcept</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; uint32_t ui = 0;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> tryRead(&amp;ui, <span class="keyword">sizeof</span>(int32_t)) ? ui : 0;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; </div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="comment"> * Read a long 64-bit integer.</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="comment"> * Returns 0 if reading fails.</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; int64_t readLong() noexcept</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; {</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; int64_t l = 0;</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> tryRead(&amp;l, <span class="keyword">sizeof</span>(int64_t)) ? l : 0;</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; </div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="comment"> * Read a long unsigned 64-bit integer.</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="comment"> * Returns 0 if reading fails.</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; uint64_t readULong() noexcept</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; {</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; uint64_t ul = 0;</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">return</span> tryRead(&amp;ul, <span class="keyword">sizeof</span>(int64_t)) ? ul : 0;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; </div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="comment"> * Read a single-precision floating point number.</span></div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="comment"> * Returns 0 if reading fails.</span></div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordtype">float</span> readFloat() noexcept</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordtype">float</span> f = 0.0f;</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">return</span> tryRead(&amp;f, <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>)) ? f : 0.0f;</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; </div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="comment"> * Read a double-precision floating point number.</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="comment"> * Returns 0 if reading fails.</span></div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordtype">double</span> readDouble() noexcept</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; {</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordtype">double</span> d = 0.0;</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">return</span> tryRead(&amp;d, <span class="keyword">sizeof</span>(<span class="keywordtype">double</span>)) ? d : 0.0;</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="comment"> /*!</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="comment"> * Read an arbitrary amount of data, specified by @a size.</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="comment"> * data pointer must be non-null, and size &gt; 0.</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="comment"> * Returns true if reading succeeds.</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="comment"> * In case of failure, @a data pointer is automatically cleared by @a size bytes.</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="classRingBufferControl.html#aafdb126b2885c507cec852bc63fd6cb8"> 344</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classRingBufferControl.html#aafdb126b2885c507cec852bc63fd6cb8">readCustomData</a>(<span class="keywordtype">void</span>* <span class="keyword">const</span> data, <span class="keyword">const</span> uint32_t size) noexcept</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; {</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(data != <span class="keyword">nullptr</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(size &gt; 0, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; </div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">if</span> (tryRead(data, size))</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; </div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; std::memset(data, 0, size);</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; }</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="comment"> /*!</span></div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="comment"> * Read a custom data type specified by the template typename used,</span></div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="comment"> * with size being automatically deduced by the compiler (through the use of sizeof).</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="comment"> * Returns true if reading succeeds.</span></div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="comment"> * In case of failure, @a type value is automatically cleared by its deduced size.</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="classRingBufferControl.html#aaaf4efe13ec2555c390047f545d2660d"> 364</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classRingBufferControl.html#aaaf4efe13ec2555c390047f545d2660d">readCustomType</a>(T&amp; type) noexcept</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; {</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">if</span> (tryRead(&amp;type, <span class="keyword">sizeof</span>(T)))</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; </div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; std::memset(&amp;type, 0, <span class="keyword">sizeof</span>(T));</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; }</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; </div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="comment">// -------------------------------------------------------------------</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="comment">// write operations</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; </div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment"> * Write a single boolean value.</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordtype">bool</span> writeBool(<span class="keyword">const</span> <span class="keywordtype">bool</span> value) noexcept</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; {</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">return</span> tryWrite(&amp;value, <span class="keyword">sizeof</span>(<span class="keywordtype">bool</span>));</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; }</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; </div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="comment"> * Write a single 8-bit byte.</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordtype">bool</span> writeByte(<span class="keyword">const</span> uint8_t value) noexcept</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; {</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> tryWrite(&amp;value, <span class="keyword">sizeof</span>(uint8_t));</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; </div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="comment"> * Write a short 16-bit integer.</span></div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordtype">bool</span> writeShort(<span class="keyword">const</span> int16_t value) noexcept</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; {</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">return</span> tryWrite(&amp;value, <span class="keyword">sizeof</span>(int16_t));</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; }</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; </div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="comment"> * Write a short unsigned 16-bit integer.</span></div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordtype">bool</span> writeUShort(<span class="keyword">const</span> uint16_t value) noexcept</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; {</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">return</span> tryWrite(&amp;value, <span class="keyword">sizeof</span>(uint16_t));</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; </div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="comment"> * Write a regular 32-bit integer.</span></div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordtype">bool</span> writeInt(<span class="keyword">const</span> int32_t value) noexcept</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; {</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">return</span> tryWrite(&amp;value, <span class="keyword">sizeof</span>(int32_t));</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; }</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; </div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="comment"> * Write an unsigned 32-bit integer.</span></div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordtype">bool</span> writeUInt(<span class="keyword">const</span> uint32_t value) noexcept</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; {</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> tryWrite(&amp;value, <span class="keyword">sizeof</span>(uint32_t));</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; </div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="comment"> * Write a long 64-bit integer.</span></div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordtype">bool</span> writeLong(<span class="keyword">const</span> int64_t value) noexcept</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">return</span> tryWrite(&amp;value, <span class="keyword">sizeof</span>(int64_t));</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; }</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; </div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="comment"> * Write a long unsigned 64-bit integer.</span></div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordtype">bool</span> writeULong(<span class="keyword">const</span> uint64_t value) noexcept</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; {</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">return</span> tryWrite(&amp;value, <span class="keyword">sizeof</span>(uint64_t));</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; }</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; </div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="comment"> * Write a single-precision floating point number.</span></div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordtype">bool</span> writeFloat(<span class="keyword">const</span> <span class="keywordtype">float</span> value) noexcept</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; {</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">return</span> tryWrite(&amp;value, <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>));</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; </div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="comment"> * Write a double-precision floating point number.</span></div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordtype">bool</span> writeDouble(<span class="keyword">const</span> <span class="keywordtype">double</span> value) noexcept</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; {</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">return</span> tryWrite(&amp;value, <span class="keyword">sizeof</span>(<span class="keywordtype">double</span>));</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="comment"> /*!</span></div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="comment"> * Write an arbitrary amount of data, specified by @a size.</span></div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="comment"> * data pointer must be non-null, and size &gt; 0.</span></div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="classRingBufferControl.html#a72e173dcae573f6e2e8ac4cfeb8aa96b"> 460</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classRingBufferControl.html#a72e173dcae573f6e2e8ac4cfeb8aa96b">writeCustomData</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* <span class="keyword">const</span> data, <span class="keyword">const</span> uint32_t size) noexcept</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; {</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(data != <span class="keyword">nullptr</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(size &gt; 0, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; </div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">return</span> tryWrite(data, size);</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; }</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="comment"> /*!</span></div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="comment"> * Write a custom data type specified by the template typename used,</span></div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="comment"> * with size being automatically deduced by the compiler (through the use of sizeof).</span></div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="classRingBufferControl.html#a3e9c1857e11f0d9efcc2944d6000504b"> 473</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classRingBufferControl.html#a3e9c1857e11f0d9efcc2944d6000504b">writeCustomType</a>(<span class="keyword">const</span> T&amp; type) noexcept</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; {</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">return</span> tryWrite(&amp;type, <span class="keyword">sizeof</span>(T));</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; }</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; </div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="comment">// -------------------------------------------------------------------</span></div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="comment"> /*!</span></div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="comment"> * Commit all previous write operations to the ringbuffer.</span></div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="comment"> * If a write operation has previously failed, this will reset/invalidate the previous write attempts.</span></div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="classRingBufferControl.html#afe0c53d2591eb265d657c1cab6800036"> 484</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classRingBufferControl.html#afe0c53d2591eb265d657c1cab6800036">commitWrite</a>() noexcept</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; {</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(buffer != <span class="keyword">nullptr</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; </div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">if</span> (buffer-&gt;invalidateCommit)</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; {</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; buffer-&gt;wrtn = buffer-&gt;head;</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; buffer-&gt;invalidateCommit = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; }</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; </div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="comment">// nothing to commit?</span></div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(buffer-&gt;head != buffer-&gt;wrtn, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; </div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="comment">// all ok</span></div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; buffer-&gt;head = buffer-&gt;wrtn;</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; errorWriting = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; }</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; </div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="comment">// -------------------------------------------------------------------</span></div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; </div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="comment"> * Tie this ring buffer control to a ring buffer struct, optionally clearing its data.</span></div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordtype">void</span> setRingBuffer(BufferStruct* <span class="keyword">const</span> ringBuf, <span class="keyword">const</span> <span class="keywordtype">bool</span> clearRingBufferData) noexcept</div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; {</div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(buffer != ringBuf,);</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; </div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; buffer = ringBuf;</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; </div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">if</span> (clearRingBufferData &amp;&amp; ringBuf != <span class="keyword">nullptr</span>)</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; clearData();</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; }</div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; </div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="comment">// -------------------------------------------------------------------</span></div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; </div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="keyword">protected</span>:<span class="comment"></span></div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="comment"> /** @internal try reading from the buffer, can fail. */</span></div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordtype">bool</span> tryRead(<span class="keywordtype">void</span>* <span class="keyword">const</span> buf, <span class="keyword">const</span> uint32_t size) noexcept</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; {</div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(buffer != <span class="keyword">nullptr</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="preprocessor"> #if defined(__clang__)</span></div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor"> # pragma clang diagnostic push</span></div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor"> # pragma clang diagnostic ignored &quot;-Wtautological-pointer-compare&quot;</span></div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(buffer-&gt;buf != <span class="keyword">nullptr</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor"> #if defined(__clang__)</span></div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="preprocessor"> # pragma clang diagnostic pop</span></div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(buf != <span class="keyword">nullptr</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(size &gt; 0, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(size &lt; buffer-&gt;size, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; </div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="comment">// empty</span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">if</span> (buffer-&gt;head == buffer-&gt;tail)</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; </div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; uint8_t* <span class="keyword">const</span> bytebuf(<span class="keyword">static_cast&lt;</span>uint8_t*<span class="keyword">&gt;</span>(buf));</div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; </div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keyword">const</span> uint32_t head(buffer-&gt;head);</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keyword">const</span> uint32_t tail(buffer-&gt;tail);</div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keyword">const</span> uint32_t wrap((head &gt; tail) ? 0 : buffer-&gt;size);</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; </div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">if</span> (size &gt; wrap + head - tail)</div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; {</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">if</span> (! errorReading)</div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; {</div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; errorReading = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; d_stderr2(<span class="stringliteral">&quot;RingBuffer::tryRead(%p, %lu): failed, not enough space&quot;</span>, buf, (ulong)size);</div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; }</div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; }</div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; </div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; uint32_t readto(tail + size);</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; </div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">if</span> (readto &gt; buffer-&gt;size)</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; {</div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; readto -= buffer-&gt;size;</div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; </div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">if</span> (size == 1)</div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; {</div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; std::memcpy(bytebuf, buffer-&gt;buf + tail, 1);</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; {</div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keyword">const</span> uint32_t firstpart(buffer-&gt;size - tail);</div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; std::memcpy(bytebuf, buffer-&gt;buf + tail, firstpart);</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; std::memcpy(bytebuf + firstpart, buffer-&gt;buf, readto);</div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; }</div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; }</div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; {</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; std::memcpy(bytebuf, buffer-&gt;buf + tail, size);</div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; </div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">if</span> (readto == buffer-&gt;size)</div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; readto = 0;</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; }</div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; </div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; buffer-&gt;tail = readto;</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; errorReading = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; }</div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="comment"> /** @internal try writing to the buffer, can fail. */</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordtype">bool</span> tryWrite(<span class="keyword">const</span> <span class="keywordtype">void</span>* <span class="keyword">const</span> buf, <span class="keyword">const</span> uint32_t size) noexcept</div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; {</div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(buffer != <span class="keyword">nullptr</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(buf != <span class="keyword">nullptr</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(size &gt; 0, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; DISTRHO_SAFE_ASSERT_UINT2_RETURN(size &lt; buffer-&gt;size, size, buffer-&gt;size, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; </div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keyword">const</span> uint8_t* <span class="keyword">const</span> bytebuf(<span class="keyword">static_cast&lt;</span><span class="keyword">const </span>uint8_t*<span class="keyword">&gt;</span>(buf));</div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; </div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keyword">const</span> uint32_t tail(buffer-&gt;tail);</div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keyword">const</span> uint32_t wrtn(buffer-&gt;wrtn);</div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keyword">const</span> uint32_t wrap((tail &gt; wrtn) ? 0 : buffer-&gt;size);</div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; </div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">if</span> (size &gt;= wrap + tail - wrtn)</div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; {</div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keywordflow">if</span> (! errorWriting)</div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; {</div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; errorWriting = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; d_stderr2(<span class="stringliteral">&quot;RingBuffer::tryWrite(%p, %lu): failed, not enough space&quot;</span>, buf, (ulong)size);</div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; }</div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; buffer-&gt;invalidateCommit = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; }</div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; </div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; uint32_t writeto(wrtn + size);</div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; </div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keywordflow">if</span> (writeto &gt; buffer-&gt;size)</div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; {</div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; writeto -= buffer-&gt;size;</div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; </div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">if</span> (size == 1)</div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; {</div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; std::memcpy(buffer-&gt;buf, bytebuf, 1);</div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; }</div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; {</div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keyword">const</span> uint32_t firstpart(buffer-&gt;size - wrtn);</div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; std::memcpy(buffer-&gt;buf + wrtn, bytebuf, firstpart);</div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; std::memcpy(buffer-&gt;buf, bytebuf + firstpart, writeto);</div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; }</div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; }</div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; {</div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; std::memcpy(buffer-&gt;buf + wrtn, bytebuf, size);</div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; </div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordflow">if</span> (writeto == buffer-&gt;size)</div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; writeto = 0;</div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; </div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; buffer-&gt;wrtn = writeto;</div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; }</div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; </div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="keyword">private</span>:<span class="comment"></span></div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="comment"> /** Buffer struct pointer. */</span></div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; BufferStruct* buffer;</div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="comment"> /** Whether read errors have been printed to terminal. */</span></div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordtype">bool</span> errorReading;</div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="comment"> /** Whether write errors have been printed to terminal. */</span></div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordtype">bool</span> errorWriting;</div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; </div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; DISTRHO_PREVENT_VIRTUAL_HEAP_ALLOCATION</div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; DISTRHO_DECLARE_NON_COPYABLE(<a class="code" href="classRingBufferControl.html">RingBufferControl</a>)</div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;};</div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; </div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> BufferStruct&gt;</div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classRingBufferControl.html">RingBufferControl&lt;BufferStruct&gt;::isDataAvailableForReading</a>() const noexcept</div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;{</div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">return</span> (buffer != <span class="keyword">nullptr</span> &amp;&amp; buffer-&gt;head != buffer-&gt;tail);</div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;}</div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; </div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;<span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classRingBufferControl.html">RingBufferControl&lt;HeapBuffer&gt;::isDataAvailableForReading</a>() const noexcept</div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;{</div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">return</span> (buffer != <span class="keyword">nullptr</span> &amp;&amp; buffer-&gt;buf != <span class="keyword">nullptr</span> &amp;&amp; buffer-&gt;head != buffer-&gt;tail);</div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;}</div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; </div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="comment">// RingBuffer using heap space</span></div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="comment"> RingBufferControl with a heap buffer.</span></div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="comment"> This is a convenience class that provides a method for creating and destroying the heap data.</span></div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="comment"> Requires the use of createBuffer(uint32_t) to make the ring buffer usable.</span></div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="classHeapRingBuffer.html"> 676</a></span>&#160;<span class="keyword">class </span><a class="code" href="classHeapRingBuffer.html">HeapRingBuffer</a> : <span class="keyword">public</span> <a class="code" href="classRingBufferControl.html">RingBufferControl</a>&lt;HeapBuffer&gt;</div>
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;{</div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="keyword">public</span>:<span class="comment"></span></div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="comment"> /** Constructor. */</span></div>
<div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="classHeapRingBuffer.html#a6a3c03b584b5b20ad2829e26f5e6ed0e"> 680</a></span>&#160; <a class="code" href="classHeapRingBuffer.html#a6a3c03b584b5b20ad2829e26f5e6ed0e">HeapRingBuffer</a>() noexcept</div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; : heapBuffer(HeapBuffer_INIT)</div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; {</div>
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="preprocessor">#ifndef DISTRHO_PROPER_CPP11_SUPPORT</span></div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; std::memset(&amp;heapBuffer, 0, <span class="keyword">sizeof</span>(heapBuffer));</div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; }</div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="comment"> /** Destructor. */</span></div>
<div class="line"><a name="l00689"></a><span class="lineno"><a class="line" href="classHeapRingBuffer.html#ae2e25c610073d35998efd7106b5eb8a0"> 689</a></span>&#160; <a class="code" href="classHeapRingBuffer.html#ae2e25c610073d35998efd7106b5eb8a0">~HeapRingBuffer</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">if</span> (heapBuffer.<a class="code" href="structHeapBuffer.html#afbaf206237e4898a306025676dce0987">buf</a> == <span class="keyword">nullptr</span>)</div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; </div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keyword">delete</span>[] heapBuffer.<a class="code" href="structHeapBuffer.html#afbaf206237e4898a306025676dce0987">buf</a>;</div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; heapBuffer.<a class="code" href="structHeapBuffer.html#afbaf206237e4898a306025676dce0987">buf</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; }</div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="comment"> /** Create a buffer of the specified size. */</span></div>
<div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="classHeapRingBuffer.html#ab7d60a3acc757e88e1c7254626ce9709"> 699</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classHeapRingBuffer.html#ab7d60a3acc757e88e1c7254626ce9709">createBuffer</a>(<span class="keyword">const</span> uint32_t size) noexcept</div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; {</div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(heapBuffer.<a class="code" href="structHeapBuffer.html#afbaf206237e4898a306025676dce0987">buf</a> == <span class="keyword">nullptr</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(size &gt; 0, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; </div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keyword">const</span> uint32_t p2size = d_nextPowerOf2(size);</div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; </div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; heapBuffer.<a class="code" href="structHeapBuffer.html#afbaf206237e4898a306025676dce0987">buf</a> = <span class="keyword">new</span> uint8_t[p2size];</div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; } DISTRHO_SAFE_EXCEPTION_RETURN(<span class="stringliteral">&quot;HeapRingBuffer::createBuffer&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; </div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; heapBuffer.<a class="code" href="structHeapBuffer.html#a582e7b5aa4a85814f291d002abb49599">size</a> = p2size;</div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; setRingBuffer(&amp;heapBuffer, <span class="keyword">true</span>);</div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; }</div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="comment"> /** Delete the previously allocated buffer. */</span></div>
<div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="classHeapRingBuffer.html#a940bc4c023a53a0d511d6f99186d8224"> 716</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classHeapRingBuffer.html#a940bc4c023a53a0d511d6f99186d8224">deleteBuffer</a>() noexcept</div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; {</div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(heapBuffer.<a class="code" href="structHeapBuffer.html#afbaf206237e4898a306025676dce0987">buf</a> != <span class="keyword">nullptr</span>,);</div>
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; </div>
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; setRingBuffer(<span class="keyword">nullptr</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; </div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keyword">delete</span>[] heapBuffer.<a class="code" href="structHeapBuffer.html#afbaf206237e4898a306025676dce0987">buf</a>;</div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; heapBuffer.<a class="code" href="structHeapBuffer.html#afbaf206237e4898a306025676dce0987">buf</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; heapBuffer.<a class="code" href="structHeapBuffer.html#a582e7b5aa4a85814f291d002abb49599">size</a> = 0;</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; }</div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; </div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;<span class="keyword">private</span>:<span class="comment"></span></div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;<span class="comment"> /** The heap buffer used for this class. */</span></div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <a class="code" href="structHeapBuffer.html">HeapBuffer</a> heapBuffer;</div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; </div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; DISTRHO_PREVENT_VIRTUAL_HEAP_ALLOCATION</div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; DISTRHO_DECLARE_NON_COPYABLE(<a class="code" href="classHeapRingBuffer.html">HeapRingBuffer</a>)</div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;};</div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; </div>
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;<span class="comment">// RingBuffer using small stack space</span></div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;<span class="comment"> RingBufferControl with an included small stack buffer.</span></div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="comment"> No setup is necessary, this class is usable as-is.</span></div>
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00742"></a><span class="lineno"><a class="line" href="classSmallStackRingBuffer.html"> 742</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSmallStackRingBuffer.html">SmallStackRingBuffer</a> : <span class="keyword">public</span> <a class="code" href="classRingBufferControl.html">RingBufferControl</a>&lt;SmallStackBuffer&gt;</div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;{</div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;<span class="keyword">public</span>:<span class="comment"></span></div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;<span class="comment"> /** Constructor. */</span></div>
<div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="classSmallStackRingBuffer.html#aceb7e429507b28dd56e837f23b623987"> 746</a></span>&#160; <a class="code" href="classSmallStackRingBuffer.html#aceb7e429507b28dd56e837f23b623987">SmallStackRingBuffer</a>() noexcept</div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; : stackBuffer(StackBuffer_INIT)</div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; {</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;<span class="preprocessor">#ifndef DISTRHO_PROPER_CPP11_SUPPORT</span></div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; std::memset(&amp;stackBuffer, 0, <span class="keyword">sizeof</span>(stackBuffer));</div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; setRingBuffer(&amp;stackBuffer, <span class="keyword">true</span>);</div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; }</div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; </div>
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;<span class="keyword">private</span>:<span class="comment"></span></div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;<span class="comment"> /** The small stack buffer used for this class. */</span></div>
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <a class="code" href="structSmallStackBuffer.html">SmallStackBuffer</a> stackBuffer;</div>
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; </div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; DISTRHO_PREVENT_VIRTUAL_HEAP_ALLOCATION</div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; DISTRHO_DECLARE_NON_COPYABLE(<a class="code" href="classSmallStackRingBuffer.html">SmallStackRingBuffer</a>)</div>
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;};</div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; </div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; </div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;END_NAMESPACE_DISTRHO</div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; </div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;<span class="preprocessor">#endif // DISTRHO_RING_BUFFER_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="astructBigStackBuffer_html"><div class="ttname"><a href="structBigStackBuffer.html">BigStackBuffer</a></div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:104</div></div>
<div class="ttc" id="aclassRingBufferControl_html_afe0c53d2591eb265d657c1cab6800036"><div class="ttname"><a href="classRingBufferControl.html#afe0c53d2591eb265d657c1cab6800036">RingBufferControl::commitWrite</a></div><div class="ttdeci">bool commitWrite() noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:484</div></div>
<div class="ttc" id="aclassSmallStackRingBuffer_html_aceb7e429507b28dd56e837f23b623987"><div class="ttname"><a href="classSmallStackRingBuffer.html#aceb7e429507b28dd56e837f23b623987">SmallStackRingBuffer::SmallStackRingBuffer</a></div><div class="ttdeci">SmallStackRingBuffer() noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:746</div></div>
<div class="ttc" id="aclassSmallStackRingBuffer_html"><div class="ttname"><a href="classSmallStackRingBuffer.html">SmallStackRingBuffer</a></div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:742</div></div>
<div class="ttc" id="astructHugeStackBuffer_html"><div class="ttname"><a href="structHugeStackBuffer.html">HugeStackBuffer</a></div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:115</div></div>
<div class="ttc" id="astructHeapBuffer_html_abd05cbae44531a412352ed52c8a50aec"><div class="ttname"><a href="structHeapBuffer.html#abd05cbae44531a412352ed52c8a50aec">HeapBuffer::tail</a></div><div class="ttdeci">uint32_t tail</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:67</div></div>
<div class="ttc" id="aclassRingBufferControl_html_a3e9c1857e11f0d9efcc2944d6000504b"><div class="ttname"><a href="classRingBufferControl.html#a3e9c1857e11f0d9efcc2944d6000504b">RingBufferControl::writeCustomType</a></div><div class="ttdeci">bool writeCustomType(const T &amp;type) noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:473</div></div>
<div class="ttc" id="aclassHeapRingBuffer_html_a6a3c03b584b5b20ad2829e26f5e6ed0e"><div class="ttname"><a href="classHeapRingBuffer.html#a6a3c03b584b5b20ad2829e26f5e6ed0e">HeapRingBuffer::HeapRingBuffer</a></div><div class="ttdeci">HeapRingBuffer() noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:680</div></div>
<div class="ttc" id="aclassRingBufferControl_html"><div class="ttname"><a href="classRingBufferControl.html">RingBufferControl</a></div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:167</div></div>
<div class="ttc" id="aclassRingBufferControl_html_a72e173dcae573f6e2e8ac4cfeb8aa96b"><div class="ttname"><a href="classRingBufferControl.html#a72e173dcae573f6e2e8ac4cfeb8aa96b">RingBufferControl::writeCustomData</a></div><div class="ttdeci">bool writeCustomData(const void *const data, const uint32_t size) noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:460</div></div>
<div class="ttc" id="astructHeapBuffer_html_afbaf206237e4898a306025676dce0987"><div class="ttname"><a href="structHeapBuffer.html#afbaf206237e4898a306025676dce0987">HeapBuffer::buf</a></div><div class="ttdeci">uint8_t * buf</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:86</div></div>
<div class="ttc" id="astructHeapBuffer_html_a55b0dceb6b878021d8fe1353096e757b"><div class="ttname"><a href="structHeapBuffer.html#a55b0dceb6b878021d8fe1353096e757b">HeapBuffer::head</a></div><div class="ttdeci">uint32_t head</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:60</div></div>
<div class="ttc" id="aclassRingBufferControl_html_aafdb126b2885c507cec852bc63fd6cb8"><div class="ttname"><a href="classRingBufferControl.html#aafdb126b2885c507cec852bc63fd6cb8">RingBufferControl::readCustomData</a></div><div class="ttdeci">bool readCustomData(void *const data, const uint32_t size) noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:344</div></div>
<div class="ttc" id="astructHeapBuffer_html_a582e7b5aa4a85814f291d002abb49599"><div class="ttname"><a href="structHeapBuffer.html#a582e7b5aa4a85814f291d002abb49599">HeapBuffer::size</a></div><div class="ttdeci">uint32_t size</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:54</div></div>
<div class="ttc" id="aclassHeapRingBuffer_html"><div class="ttname"><a href="classHeapRingBuffer.html">HeapRingBuffer</a></div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:676</div></div>
<div class="ttc" id="astructHeapBuffer_html_a4d330b5567a46f6b6972f5174b262292"><div class="ttname"><a href="structHeapBuffer.html#a4d330b5567a46f6b6972f5174b262292">HeapBuffer::wrtn</a></div><div class="ttdeci">uint32_t wrtn</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:74</div></div>
<div class="ttc" id="aclassHeapRingBuffer_html_ab7d60a3acc757e88e1c7254626ce9709"><div class="ttname"><a href="classHeapRingBuffer.html#ab7d60a3acc757e88e1c7254626ce9709">HeapRingBuffer::createBuffer</a></div><div class="ttdeci">bool createBuffer(const uint32_t size) noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:699</div></div>
<div class="ttc" id="astructSmallStackBuffer_html"><div class="ttname"><a href="structSmallStackBuffer.html">SmallStackBuffer</a></div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:93</div></div>
<div class="ttc" id="aclassHeapRingBuffer_html_a940bc4c023a53a0d511d6f99186d8224"><div class="ttname"><a href="classHeapRingBuffer.html#a940bc4c023a53a0d511d6f99186d8224">HeapRingBuffer::deleteBuffer</a></div><div class="ttdeci">void deleteBuffer() noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:716</div></div>
<div class="ttc" id="astructHeapBuffer_html"><div class="ttname"><a href="structHeapBuffer.html">HeapBuffer</a></div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:49</div></div>
<div class="ttc" id="aclassHeapRingBuffer_html_ae2e25c610073d35998efd7106b5eb8a0"><div class="ttname"><a href="classHeapRingBuffer.html#ae2e25c610073d35998efd7106b5eb8a0">HeapRingBuffer::~HeapRingBuffer</a></div><div class="ttdeci">~HeapRingBuffer() noexcept override</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:689</div></div>
<div class="ttc" id="astructHeapBuffer_html_a0cd85f596b680b57cc6669de7cf7ed27"><div class="ttname"><a href="structHeapBuffer.html#a0cd85f596b680b57cc6669de7cf7ed27">HeapBuffer::invalidateCommit</a></div><div class="ttdeci">bool invalidateCommit</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:80</div></div>
<div class="ttc" id="aclassRingBufferControl_html_aaaf4efe13ec2555c390047f545d2660d"><div class="ttname"><a href="classRingBufferControl.html#aaaf4efe13ec2555c390047f545d2660d">RingBufferControl::readCustomType</a></div><div class="ttdeci">bool readCustomType(T &amp;type) noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:364</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

+ 86
- 82
ScopedPointer_8hpp_source.html View File

@@ -217,104 +217,108 @@ $(function() {
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classScopedPointer.html#ac65fb45b9eb2d53773489fcfbc6fd740"> 146</a></span>&#160; ObjectType* <a class="code" href="classScopedPointer.html#ac65fb45b9eb2d53773489fcfbc6fd740">get</a>() const noexcept { <span class="keywordflow">return</span> object; }</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment"> /** Returns the object that this ScopedPointer refers to. */</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classScopedPointer.html#a2f48458a1656a6ef1bd35cb8452eed35"> 149</a></span>&#160; ObjectType&amp; <a class="code" href="classScopedPointer.html#a2f48458a1656a6ef1bd35cb8452eed35">operator*</a>() const noexcept { <span class="keywordflow">return</span> *object; }</div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classScopedPointer.html#a1a88fa0865167c487050a9519297d4ed"> 149</a></span>&#160; ObjectType&amp; <a class="code" href="classScopedPointer.html#a1a88fa0865167c487050a9519297d4ed">getObject</a>() const noexcept { <span class="keywordflow">return</span> *object; }</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> /** Lets you access methods and properties of the object that this ScopedPointer refers to. */</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classScopedPointer.html#a6eedc84349cbe629cc1abb79ffa74e87"> 152</a></span>&#160; ObjectType* <a class="code" href="classScopedPointer.html#a6eedc84349cbe629cc1abb79ffa74e87">operator-&gt;</a>() const noexcept { <span class="keywordflow">return</span> object; }</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">//==============================================================================</span><span class="comment"></span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"> /** Removes the current object from this ScopedPointer without deleting it.</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment"> This will return the current object, and set the ScopedPointer to a null pointer.</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classScopedPointer.html#a10c8f696fec0cca763b067ec3e469199"> 158</a></span>&#160; ObjectType* <a class="code" href="classScopedPointer.html#a10c8f696fec0cca763b067ec3e469199">release</a>() noexcept { ObjectType* <span class="keyword">const</span> o = object; <span class="keywordtype">object</span> = <span class="keyword">nullptr</span>; <span class="keywordflow">return</span> o; }</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">//==============================================================================</span><span class="comment"></span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"> /** Swaps this object with that of another ScopedPointer.</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"> The two objects simply exchange their pointers.</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classScopedPointer.html#a362cd8d5a212df0ee08691b75a4ba3de"> 164</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classScopedPointer.html#a362cd8d5a212df0ee08691b75a4ba3de">swapWith</a>(<a class="code" href="classScopedPointer.html">ScopedPointer&lt;ObjectType&gt;</a>&amp; other) noexcept</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// Two ScopedPointers should never be able to refer to the same object - if</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">// this happens, you must have done something dodgy!</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(<span class="keywordtype">object</span> != other.object || <span class="keyword">this</span> == other.getAddress() || <span class="keywordtype">object</span> == <span class="keyword">nullptr</span>,);</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; std::swap(<span class="keywordtype">object</span>, other.object);</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> /** Returns the object that this ScopedPointer refers to. */</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classScopedPointer.html#a2f48458a1656a6ef1bd35cb8452eed35"> 152</a></span>&#160; ObjectType&amp; <a class="code" href="classScopedPointer.html#a2f48458a1656a6ef1bd35cb8452eed35">operator*</a>() const noexcept { <span class="keywordflow">return</span> *object; }</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"> /** Lets you access methods and properties of the object that this ScopedPointer refers to. */</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classScopedPointer.html#a6eedc84349cbe629cc1abb79ffa74e87"> 155</a></span>&#160; ObjectType* <a class="code" href="classScopedPointer.html#a6eedc84349cbe629cc1abb79ffa74e87">operator-&gt;</a>() const noexcept { <span class="keywordflow">return</span> object; }</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">//==============================================================================</span><span class="comment"></span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"> /** Removes the current object from this ScopedPointer without deleting it.</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"> This will return the current object, and set the ScopedPointer to a null pointer.</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classScopedPointer.html#a10c8f696fec0cca763b067ec3e469199"> 161</a></span>&#160; ObjectType* <a class="code" href="classScopedPointer.html#a10c8f696fec0cca763b067ec3e469199">release</a>() noexcept { ObjectType* <span class="keyword">const</span> o = object; <span class="keywordtype">object</span> = <span class="keyword">nullptr</span>; <span class="keywordflow">return</span> o; }</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">//==============================================================================</span><span class="comment"></span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> /** Swaps this object with that of another ScopedPointer.</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> The two objects simply exchange their pointers.</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classScopedPointer.html#a362cd8d5a212df0ee08691b75a4ba3de"> 167</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classScopedPointer.html#a362cd8d5a212df0ee08691b75a4ba3de">swapWith</a>(<a class="code" href="classScopedPointer.html">ScopedPointer&lt;ObjectType&gt;</a>&amp; other) noexcept</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; {</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// Two ScopedPointers should never be able to refer to the same object - if</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">// this happens, you must have done something dodgy!</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(<span class="keywordtype">object</span> != other.object || <span class="keyword">this</span> == other.getAddress() || <span class="keywordtype">object</span> == <span class="keyword">nullptr</span>,);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; </div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">//==============================================================================</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; ObjectType* object;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">// (Required as an alternative to the overloaded &amp; operator).</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">const</span> <a class="code" href="classScopedPointer.html">ScopedPointer</a>* getAddress() const noexcept { <span class="keywordflow">return</span> <span class="keyword">this</span>; }</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; std::swap(<span class="keywordtype">object</span>, other.object);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; </div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">//==============================================================================</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; ObjectType* object;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor">#ifndef _MSC_VER // (MSVC can&#39;t deal with multiple copy constructors)</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">/* The copy constructors are private to stop people accidentally copying a const ScopedPointer</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment"> (the compiler would let you do so by implicitly casting the source to its raw object pointer).</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment"> A side effect of this is that in a compiler that doesn&#39;t support C++11, you may hit an</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment"> error when you write something like this:</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// (Required as an alternative to the overloaded &amp; operator).</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">const</span> <a class="code" href="classScopedPointer.html">ScopedPointer</a>* getAddress() const noexcept { <span class="keywordflow">return</span> <span class="keyword">this</span>; }</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#ifndef _MSC_VER // (MSVC can&#39;t deal with multiple copy constructors)</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="comment">/* The copy constructors are private to stop people accidentally copying a const ScopedPointer</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment"> (the compiler would let you do so by implicitly casting the source to its raw object pointer).</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment"> ScopedPointer&lt;MyClass&gt; m = new MyClass(); // Compile error: copy constructor is private.</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment"> Even though the compiler would normally ignore the assignment here, it can&#39;t do so when the</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment"> copy constructor is private. It&#39;s very easy to fix though - just write it like this:</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment"> A side effect of this is that in a compiler that doesn&#39;t support C++11, you may hit an</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment"> error when you write something like this:</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment"> ScopedPointer&lt;MyClass&gt; m = new MyClass(); // Compile error: copy constructor is private.</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment"> ScopedPointer&lt;MyClass&gt; m (new MyClass()); // Compiles OK</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"> It&#39;s probably best to use the latter form when writing your object declarations anyway, as</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> this is a better representation of the code that you actually want the compiler to produce.</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor"># ifdef DISTRHO_PROPER_CPP11_SUPPORT</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="classScopedPointer.html#ac187958296e33aa057dd37478ea70400">ScopedPointer</a>(<span class="keyword">const</span> <a class="code" href="classScopedPointer.html">ScopedPointer</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="classScopedPointer.html">ScopedPointer</a>&amp; <a class="code" href="classScopedPointer.html#afefc7940828d72c056e03804cd6bea9f">operator=</a>(<span class="keyword">const</span> <a class="code" href="classScopedPointer.html">ScopedPointer</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classScopedPointer.html#ac187958296e33aa057dd37478ea70400">ScopedPointer</a>(<span class="keyword">const</span> <a class="code" href="classScopedPointer.html">ScopedPointer</a>&amp;);</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="classScopedPointer.html">ScopedPointer</a>&amp; <a class="code" href="classScopedPointer.html#afefc7940828d72c056e03804cd6bea9f">operator=</a>(<span class="keyword">const</span> <a class="code" href="classScopedPointer.html">ScopedPointer</a>&amp;);</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;};</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; </div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment">//==============================================================================</span><span class="comment"></span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment">/** Compares a ScopedPointer with another pointer.</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment"> This can be handy for checking whether this is a null pointer.</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> ObjectType&gt;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> <a class="code" href="classScopedPointer.html">ScopedPointer&lt;ObjectType&gt;</a>&amp; pointer1, ObjectType* <span class="keyword">const</span> pointer2) noexcept</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;{</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>ObjectType*<span class="keyword">&gt;</span>(pointer1) == pointer2;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;}</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment">/** Compares a ScopedPointer with another pointer.</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment"> This can be handy for checking whether this is a null pointer.</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> ObjectType&gt;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> <a class="code" href="classScopedPointer.html">ScopedPointer&lt;ObjectType&gt;</a>&amp; pointer1, ObjectType* <span class="keyword">const</span> pointer2) noexcept</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;{</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>ObjectType*<span class="keyword">&gt;</span>(pointer1) != pointer2;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;}</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; </div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; </div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;END_NAMESPACE_DISTRHO</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; </div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor">#endif // DISTRHO_SCOPED_POINTER_HPP_INCLUDED</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment"> Even though the compiler would normally ignore the assignment here, it can&#39;t do so when the</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment"> copy constructor is private. It&#39;s very easy to fix though - just write it like this:</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> ScopedPointer&lt;MyClass&gt; m (new MyClass()); // Compiles OK</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment"> It&#39;s probably best to use the latter form when writing your object declarations anyway, as</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment"> this is a better representation of the code that you actually want the compiler to produce.</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor"># ifdef DISTRHO_PROPER_CPP11_SUPPORT</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classScopedPointer.html#ac187958296e33aa057dd37478ea70400">ScopedPointer</a>(<span class="keyword">const</span> <a class="code" href="classScopedPointer.html">ScopedPointer</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="classScopedPointer.html">ScopedPointer</a>&amp; <a class="code" href="classScopedPointer.html#afefc7940828d72c056e03804cd6bea9f">operator=</a>(<span class="keyword">const</span> <a class="code" href="classScopedPointer.html">ScopedPointer</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="classScopedPointer.html#ac187958296e33aa057dd37478ea70400">ScopedPointer</a>(<span class="keyword">const</span> <a class="code" href="classScopedPointer.html">ScopedPointer</a>&amp;);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classScopedPointer.html">ScopedPointer</a>&amp; <a class="code" href="classScopedPointer.html#afefc7940828d72c056e03804cd6bea9f">operator=</a>(<span class="keyword">const</span> <a class="code" href="classScopedPointer.html">ScopedPointer</a>&amp;);</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;};</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; </div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment">//==============================================================================</span><span class="comment"></span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment">/** Compares a ScopedPointer with another pointer.</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="comment"> This can be handy for checking whether this is a null pointer.</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> ObjectType&gt;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> <a class="code" href="classScopedPointer.html">ScopedPointer&lt;ObjectType&gt;</a>&amp; pointer1, ObjectType* <span class="keyword">const</span> pointer2) noexcept</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;{</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>ObjectType*<span class="keyword">&gt;</span>(pointer1) == pointer2;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;}</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment">/** Compares a ScopedPointer with another pointer.</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment"> This can be handy for checking whether this is a null pointer.</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> ObjectType&gt;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> <a class="code" href="classScopedPointer.html">ScopedPointer&lt;ObjectType&gt;</a>&amp; pointer1, ObjectType* <span class="keyword">const</span> pointer2) noexcept</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;{</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>ObjectType*<span class="keyword">&gt;</span>(pointer1) != pointer2;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;}</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; </div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;END_NAMESPACE_DISTRHO</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; </div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor">#endif // DISTRHO_SCOPED_POINTER_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassScopedPointer_html_a88ee7f038e57471539d3181141c0390e"><div class="ttname"><a href="classScopedPointer.html#a88ee7f038e57471539d3181141c0390e">ScopedPointer::operator=</a></div><div class="ttdeci">ScopedPointer &amp; operator=(ObjectType *const newObjectToTakePossessionOf)</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:129</div></div>
<div class="ttc" id="aclassScopedPointer_html_a10c8f696fec0cca763b067ec3e469199"><div class="ttname"><a href="classScopedPointer.html#a10c8f696fec0cca763b067ec3e469199">ScopedPointer::release</a></div><div class="ttdeci">ObjectType * release() noexcept</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:158</div></div>
<div class="ttc" id="aclassScopedPointer_html_a6eedc84349cbe629cc1abb79ffa74e87"><div class="ttname"><a href="classScopedPointer.html#a6eedc84349cbe629cc1abb79ffa74e87">ScopedPointer::operator-&gt;</a></div><div class="ttdeci">ObjectType * operator-&gt;() const noexcept</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:152</div></div>
<div class="ttc" id="aclassScopedPointer_html_a10c8f696fec0cca763b067ec3e469199"><div class="ttname"><a href="classScopedPointer.html#a10c8f696fec0cca763b067ec3e469199">ScopedPointer::release</a></div><div class="ttdeci">ObjectType * release() noexcept</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:161</div></div>
<div class="ttc" id="aclassScopedPointer_html_a6eedc84349cbe629cc1abb79ffa74e87"><div class="ttname"><a href="classScopedPointer.html#a6eedc84349cbe629cc1abb79ffa74e87">ScopedPointer::operator-&gt;</a></div><div class="ttdeci">ObjectType * operator-&gt;() const noexcept</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:155</div></div>
<div class="ttc" id="aclassScopedPointer_html_a3c540f0121065aafa5f9607362fc1450"><div class="ttname"><a href="classScopedPointer.html#a3c540f0121065aafa5f9607362fc1450">ScopedPointer::~ScopedPointer</a></div><div class="ttdeci">~ScopedPointer()</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:91</div></div>
<div class="ttc" id="aclassScopedPointer_html_a1a88fa0865167c487050a9519297d4ed"><div class="ttname"><a href="classScopedPointer.html#a1a88fa0865167c487050a9519297d4ed">ScopedPointer::getObject</a></div><div class="ttdeci">ObjectType &amp; getObject() const noexcept</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:149</div></div>
<div class="ttc" id="aclassScopedPointer_html_afefc7940828d72c056e03804cd6bea9f"><div class="ttname"><a href="classScopedPointer.html#afefc7940828d72c056e03804cd6bea9f">ScopedPointer::operator=</a></div><div class="ttdeci">ScopedPointer &amp; operator=(ScopedPointer &amp;objectToTransferFrom)</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:105</div></div>
<div class="ttc" id="aclassScopedPointer_html"><div class="ttname"><a href="classScopedPointer.html">ScopedPointer</a></div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:64</div></div>
<div class="ttc" id="aclassScopedPointer_html_a04688b1561dd9d861ca80c6deb63a233"><div class="ttname"><a href="classScopedPointer.html#a04688b1561dd9d861ca80c6deb63a233">ScopedPointer::ScopedPointer</a></div><div class="ttdeci">ScopedPointer(ScopedPointer &amp;objectToTransferFrom) noexcept</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:82</div></div>
<div class="ttc" id="aclassScopedPointer_html_ac187958296e33aa057dd37478ea70400"><div class="ttname"><a href="classScopedPointer.html#ac187958296e33aa057dd37478ea70400">ScopedPointer::ScopedPointer</a></div><div class="ttdeci">ScopedPointer() noexcept</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:69</div></div>
<div class="ttc" id="aclassScopedPointer_html_a44a7843e49c3ff719f06607b6e908f7d"><div class="ttname"><a href="classScopedPointer.html#a44a7843e49c3ff719f06607b6e908f7d">ScopedPointer::ScopedPointer</a></div><div class="ttdeci">ScopedPointer(ObjectType *const objectToTakePossessionOf) noexcept</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:73</div></div>
<div class="ttc" id="aclassScopedPointer_html_ac65fb45b9eb2d53773489fcfbc6fd740"><div class="ttname"><a href="classScopedPointer.html#ac65fb45b9eb2d53773489fcfbc6fd740">ScopedPointer::get</a></div><div class="ttdeci">ObjectType * get() const noexcept</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:146</div></div>
<div class="ttc" id="aclassScopedPointer_html_a2f48458a1656a6ef1bd35cb8452eed35"><div class="ttname"><a href="classScopedPointer.html#a2f48458a1656a6ef1bd35cb8452eed35">ScopedPointer::operator*</a></div><div class="ttdeci">ObjectType &amp; operator*() const noexcept</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:149</div></div>
<div class="ttc" id="aclassScopedPointer_html_a362cd8d5a212df0ee08691b75a4ba3de"><div class="ttname"><a href="classScopedPointer.html#a362cd8d5a212df0ee08691b75a4ba3de">ScopedPointer::swapWith</a></div><div class="ttdeci">void swapWith(ScopedPointer&lt; ObjectType &gt; &amp;other) noexcept</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:164</div></div>
<div class="ttc" id="aclassScopedPointer_html_a2f48458a1656a6ef1bd35cb8452eed35"><div class="ttname"><a href="classScopedPointer.html#a2f48458a1656a6ef1bd35cb8452eed35">ScopedPointer::operator*</a></div><div class="ttdeci">ObjectType &amp; operator*() const noexcept</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:152</div></div>
<div class="ttc" id="aclassScopedPointer_html_a362cd8d5a212df0ee08691b75a4ba3de"><div class="ttname"><a href="classScopedPointer.html#a362cd8d5a212df0ee08691b75a4ba3de">ScopedPointer::swapWith</a></div><div class="ttdeci">void swapWith(ScopedPointer&lt; ObjectType &gt; &amp;other) noexcept</div><div class="ttdef"><b>Definition:</b> ScopedPointer.hpp:167</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 217
- 0
ScopedSafeLocale_8hpp_source.html View File

@@ -0,0 +1,217 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: distrho/extra/ScopedSafeLocale.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_37257469cca17bab24b582e18a78eb75.html">distrho</a></li><li class="navelem"><a class="el" href="dir_b1be46be7d80596b116b2b4ac973f2f0.html">extra</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">ScopedSafeLocale.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * DISTRHO Plugin Framework (DPF)</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2012-2021 Filipe Coelho &lt;falktx@falktx.com&gt;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Permission to use, copy, modify, and/or distribute this software for any purpose with</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * or without fee is hereby granted, provided that the above copyright notice and this</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * permission notice appear in all copies.</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot; AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#ifndef DISTRHO_SCOPED_SAFE_LOCALE_HPP_INCLUDED</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define DISTRHO_SCOPED_SAFE_LOCALE_HPP_INCLUDED</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../DistrhoUtils.hpp&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;clocale&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#if ! (defined(DISTRHO_OS_HAIKU) || defined(DISTRHO_OS_MAC) || defined(DISTRHO_OS_WINDOWS))</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># define DISTRHO_USE_NEWLOCALE</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#if defined(DISTRHO_OS_WINDOWS) &amp;&amp; __MINGW64_VERSION_MAJOR &gt;= 5</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"># define DISTRHO_USE_CONFIGTHREADLOCALE</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; </div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;START_NAMESPACE_DISTRHO</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// ScopedSafeLocale class definition</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> ScopedSafeLocale is a handy class for setting current locale to C on constructor, and revert back on destructor.</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> It tries to be thread-safe, but it is not always possible.</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> Put it inside a scope of code where string conversions happen to ensure they are consistent across many systems.</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> For example:</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> ```</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> // stack buffer to put converted float value in</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> char strbuf[0xff];</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> {</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> // safe locale operations during this scope</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> const ScopedSafeLocale sl;</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> snprintf(strbuf, 0xff, &quot;%f&quot;, value);</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> }</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> // do something with `strbuf` now, locale is reverted and left just as it was before</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> ```</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classScopedSafeLocale.html"> 57</a></span>&#160;<span class="keyword">class </span><a class="code" href="classScopedSafeLocale.html">ScopedSafeLocale</a> {</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> * Constructor.</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> * Current system locale will saved, while &quot;C&quot; is set as the next one to use.</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">inline</span> <a class="code" href="classScopedSafeLocale.html">ScopedSafeLocale</a>() noexcept;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> * Destructor.</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"> * System locale will revert back to the one saved during constructor.</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">inline</span> ~<a class="code" href="classScopedSafeLocale.html">ScopedSafeLocale</a>() noexcept;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#ifdef DISTRHO_USE_NEWLOCALE</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; locale_t newloc, oldloc;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"># ifdef DISTRHO_USE_CONFIGTHREADLOCALE</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> oldthreadloc;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">char</span>* <span class="keyword">const</span> oldloc;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; DISTRHO_DECLARE_NON_COPYABLE(<a class="code" href="classScopedSafeLocale.html">ScopedSafeLocale</a>)</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; DISTRHO_PREVENT_HEAP_ALLOCATION</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;};</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment">// ScopedSafeLocale class implementation</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#ifdef DISTRHO_USE_NEWLOCALE</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword">static</span> constexpr <span class="keyword">const</span> locale_t kNullLocale = (locale_t)<span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword">inline</span> ScopedSafeLocale::ScopedSafeLocale() noexcept</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#ifdef DISTRHO_USE_NEWLOCALE</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; : newloc(::newlocale(LC_NUMERIC_MASK, <span class="stringliteral">&quot;C&quot;</span>, kNullLocale)),</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; oldloc(newloc != kNullLocale ? ::uselocale(newloc) : kNullLocale) {}</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor"># ifdef DISTRHO_USE_CONFIGTHREADLOCALE</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; : oldthreadloc(_configthreadlocale(_ENABLE_PER_THREAD_LOCALE)),</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"># else</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; :</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; oldloc(strdup(::setlocale(LC_NUMERIC, <span class="keyword">nullptr</span>)))</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;{</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; ::setlocale(LC_NUMERIC, <span class="stringliteral">&quot;C&quot;</span>);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword">inline</span> ScopedSafeLocale::~ScopedSafeLocale() noexcept</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#ifdef DISTRHO_USE_NEWLOCALE</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">if</span> (oldloc != kNullLocale)</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; ::uselocale(oldloc);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">if</span> (newloc != kNullLocale)</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; ::freelocale(newloc);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#else // DISTRHO_USE_NEWLOCALE</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span> (oldloc != <span class="keyword">nullptr</span>)</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; ::setlocale(LC_NUMERIC, oldloc);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; std::free(oldloc);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor"># ifdef DISTRHO_USE_CONFIGTHREADLOCALE</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span> (oldthreadloc != -1)</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; _configthreadlocale(oldthreadloc);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#endif // DISTRHO_USE_NEWLOCALE</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#undef DISTRHO_USE_CONFIGTHREADLOCALE</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#undef DISTRHO_USE_NEWLOCALE</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;END_NAMESPACE_DISTRHO</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#endif // DISTRHO_SCOPED_SAFE_LOCALE_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassScopedSafeLocale_html"><div class="ttname"><a href="classScopedSafeLocale.html">ScopedSafeLocale</a></div><div class="ttdef"><b>Definition:</b> ScopedSafeLocale.hpp:57</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

+ 1
- 1
Sleep_8hpp_source.html View File

@@ -140,7 +140,7 @@ $(function() {
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 15
- 13
StandaloneWindow_8hpp_source.html View File

@@ -132,18 +132,19 @@ $(function() {
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; { <span class="keywordflow">return</span> <a class="code" href="classWindow.html#ad17a7f53a62673982f4861cdc27fd54e">Window::addIdleCallback</a>(callback, timerFrequencyInMs); }</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">bool</span> removeIdleCallback(<a class="code" href="structIdleCallback.html">IdleCallback</a>* callback) { <span class="keywordflow">return</span> <a class="code" href="classWindow.html#a5c5c4f53c53cb081b39a40d5ce9afd65">Window::removeIdleCallback</a>(callback); }</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">const</span> <a class="code" href="structGraphicsContext.html">GraphicsContext</a>&amp; getGraphicsContext() const noexcept { <span class="keywordflow">return</span> <a class="code" href="classWindow.html#aa73a74df08f29d576e18cf1d61ea9897">Window::getGraphicsContext</a>(); }</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordtype">void</span> setGeometryConstraints(uint minimumWidth, uint minimumHeight,</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">bool</span> keepAspectRatio = <span class="keyword">false</span>, <span class="keywordtype">bool</span> automaticallyScale = <span class="keyword">false</span>)</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; { <a class="code" href="classWindow.html#aece9e08d0c4d3b6ec02cbb804583c175">Window::setGeometryConstraints</a>(minimumWidth, minimumHeight, keepAspectRatio, automaticallyScale); }</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classStandaloneWindow.html">StandaloneWindow</a>)</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; </div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#endif // DGL_STANDALONE_WINDOW_HPP_INCLUDED</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordtype">double</span> getScaleFactor() const noexcept { <span class="keywordflow">return</span> <a class="code" href="classWindow.html#a77774c8ce4b01113fcd525079f9b8787">Window::getScaleFactor</a>(); }</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">void</span> setGeometryConstraints(uint minimumWidth, uint minimumHeight,</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordtype">bool</span> keepAspectRatio = <span class="keyword">false</span>, <span class="keywordtype">bool</span> automaticallyScale = <span class="keyword">false</span>)</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; { <a class="code" href="classWindow.html#aece9e08d0c4d3b6ec02cbb804583c175">Window::setGeometryConstraints</a>(minimumWidth, minimumHeight, keepAspectRatio, automaticallyScale); }</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classStandaloneWindow.html">StandaloneWindow</a>)</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;};</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#endif // DGL_STANDALONE_WINDOW_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassWindow_html_a13f314cfd5c9048ec8ea0b88b611f54d"><div class="ttname"><a href="classWindow.html#a13f314cfd5c9048ec8ea0b88b611f54d">Window::setHeight</a></div><div class="ttdeci">void setHeight(uint height)</div></div>
<div class="ttc" id="astructGraphicsContext_html"><div class="ttname"><a href="structGraphicsContext.html">GraphicsContext</a></div><div class="ttdef"><b>Definition:</b> Base.hpp:154</div></div>
@@ -151,6 +152,7 @@ $(function() {
<div class="ttc" id="aclassWindow_html_a6be53a737e7dfcc74167962437e93b8f"><div class="ttname"><a href="classWindow.html#a6be53a737e7dfcc74167962437e93b8f">Window::isVisible</a></div><div class="ttdeci">bool isVisible() const noexcept</div></div>
<div class="ttc" id="aclassWindow_html_aece9e08d0c4d3b6ec02cbb804583c175"><div class="ttname"><a href="classWindow.html#aece9e08d0c4d3b6ec02cbb804583c175">Window::setGeometryConstraints</a></div><div class="ttdeci">void setGeometryConstraints(uint minimumWidth, uint minimumHeight, bool keepAspectRatio=false, bool automaticallyScale=false)</div></div>
<div class="ttc" id="aclassWindow_html"><div class="ttname"><a href="classWindow.html">Window</a></div><div class="ttdef"><b>Definition:</b> Window.hpp:50</div></div>
<div class="ttc" id="aclassWindow_html_a77774c8ce4b01113fcd525079f9b8787"><div class="ttname"><a href="classWindow.html#a77774c8ce4b01113fcd525079f9b8787">Window::getScaleFactor</a></div><div class="ttdeci">double getScaleFactor() const noexcept</div></div>
<div class="ttc" id="aclassSize_html"><div class="ttname"><a href="classSize.html">Size&lt; uint &gt;</a></div></div>
<div class="ttc" id="aclassApplication_html"><div class="ttname"><a href="classApplication.html">Application</a></div><div class="ttdef"><b>Definition:</b> Application.hpp:34</div></div>
<div class="ttc" id="aclassStandaloneWindow_html_a645f7c56f44d9a8a72e81595b28650e2"><div class="ttname"><a href="classStandaloneWindow.html#a645f7c56f44d9a8a72e81595b28650e2">StandaloneWindow::isVisible</a></div><div class="ttdeci">bool isVisible() const noexcept</div><div class="ttdef"><b>Definition:</b> StandaloneWindow.hpp:48</div></div>
@@ -173,7 +175,7 @@ $(function() {
<div class="ttc" id="aclassWindow_html_a4626829d3cb9d01285f739d2bbc69b74"><div class="ttname"><a href="classWindow.html#a4626829d3cb9d01285f739d2bbc69b74">Window::hide</a></div><div class="ttdeci">void hide()</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 888
- 790
String_8hpp_source.html
File diff suppressed because it is too large
View File


+ 41
- 24
SubWidget_8hpp_source.html View File

@@ -193,41 +193,58 @@ $(function() {
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#a13910739dc797b600502e2dfa7daef87">repaint</a>() noexcept <span class="keyword">override</span>;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> Indicate that this subwidget will draw out of bounds, and thus needs the entire viewport available for drawing.</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#a926884690b66c762f7bdb1196c58522b">setNeedsFullViewportDrawing</a>(<span class="keywordtype">bool</span> needsFullViewportForDrawing = <span class="keyword">true</span>);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword">protected</span>:<span class="comment"></span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> Bring this widget to the &quot;front&quot; of the parent widget.</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> Makes the widget behave as if it was the last to be registered on the parent widget, thus being &quot;in front&quot;.</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#a3426cbcf0104c8a5c9996e3efff75381">toFront</a>();</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"> A function called when the subwidget&#39;s absolute position is changed.</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"> Indicate that this subwidget will draw out of bounds, and thus needs the entire viewport available for drawing.</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#a80ac88898a4a87047d63a7e49a5a0946">onPositionChanged</a>(<span class="keyword">const</span> <a class="code" href="structWidget_1_1PositionChangedEvent.html">PositionChangedEvent</a>&amp;);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">struct </span>PrivateData;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; PrivateData* <span class="keyword">const</span> pData;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classWidget.html">Widget</a>;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> BaseW<span class="keywordtype">id</span>get&gt; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classNanoBaseWidget.html">NanoBaseWidget</a>;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classSubWidget.html">SubWidget</a>)</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;};</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#a926884690b66c762f7bdb1196c58522b">setNeedsFullViewportDrawing</a>(<span class="keywordtype">bool</span> needsFullViewportForDrawing = <span class="keyword">true</span>);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment"> Indicate that this subwidget will always draw at its own internal size and needs scaling to fit target size.</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#a5cd703976adf24decbb66dd3dbc1db8b">setNeedsViewportScaling</a>(<span class="keywordtype">bool</span> needsViewportScaling = <span class="keyword">true</span>, <span class="keywordtype">double</span> autoScaleFactor = 0.0);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"> Indicate that this subwidget should not be drawn on screen, typically because it is managed by something else.</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#adb38f61c0205d7832ddfd090f7f60f2a">setSkipDrawing</a>(<span class="keywordtype">bool</span> skipDrawing = <span class="keyword">true</span>);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor">#endif // DGL_SUBWIDGET_HPP_INCLUDED</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="keyword">protected</span>:<span class="comment"></span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment"> A function called when the subwidget&#39;s absolute position is changed.</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSubWidget.html#a80ac88898a4a87047d63a7e49a5a0946">onPositionChanged</a>(<span class="keyword">const</span> <a class="code" href="structWidget_1_1PositionChangedEvent.html">PositionChangedEvent</a>&amp;);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">struct </span>PrivateData;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; PrivateData* <span class="keyword">const</span> pData;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classWidget.html">Widget</a>;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classSubWidget.html">SubWidget</a>)</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;};</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; </div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#endif // DGL_SUBWIDGET_HPP_INCLUDED</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; </div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassSubWidget_html_af2f289973c4a58d78eb6bb12bcbf093a"><div class="ttname"><a href="classSubWidget.html#af2f289973c4a58d78eb6bb12bcbf093a">SubWidget::getAbsoluteArea</a></div><div class="ttdeci">Rectangle&lt; int &gt; getAbsoluteArea() const noexcept</div></div>
<div class="ttc" id="aclassNanoBaseWidget_html"><div class="ttname"><a href="classNanoBaseWidget.html">NanoBaseWidget</a></div><div class="ttdef"><b>Definition:</b> NanoVG.hpp:881</div></div>
<div class="ttc" id="aclassSubWidget_html_a5a641f035fa0ce5b5e87ee9b3ab7bf34"><div class="ttname"><a href="classSubWidget.html#a5a641f035fa0ce5b5e87ee9b3ab7bf34">SubWidget::getAbsoluteX</a></div><div class="ttdeci">int getAbsoluteX() const noexcept</div></div>
<div class="ttc" id="aclassSubWidget_html_a0e7a4dd27eee8a3a1b7bf12d9f21769f"><div class="ttname"><a href="classSubWidget.html#a0e7a4dd27eee8a3a1b7bf12d9f21769f">SubWidget::setAbsolutePos</a></div><div class="ttdeci">void setAbsolutePos(int x, int y) noexcept</div></div>
<div class="ttc" id="aclassSubWidget_html_a3c674e3c46206ac29a562c0f02dcf82c"><div class="ttname"><a href="classSubWidget.html#a3c674e3c46206ac29a562c0f02dcf82c">SubWidget::setAbsoluteY</a></div><div class="ttdeci">void setAbsoluteY(int y) noexcept</div></div>
<div class="ttc" id="aclassRectangle_html"><div class="ttname"><a href="classRectangle.html">Rectangle</a></div><div class="ttdef"><b>Definition:</b> Geometry.hpp:30</div></div>
<div class="ttc" id="aclassSubWidget_html_abcd0a00a4c3cdc402aea56044df26cc3"><div class="ttname"><a href="classSubWidget.html#abcd0a00a4c3cdc402aea56044df26cc3">SubWidget::setAbsoluteX</a></div><div class="ttdeci">void setAbsoluteX(int x) noexcept</div></div>
<div class="ttc" id="aclassSubWidget_html_a5cd703976adf24decbb66dd3dbc1db8b"><div class="ttname"><a href="classSubWidget.html#a5cd703976adf24decbb66dd3dbc1db8b">SubWidget::setNeedsViewportScaling</a></div><div class="ttdeci">void setNeedsViewportScaling(bool needsViewportScaling=true, double autoScaleFactor=0.0)</div></div>
<div class="ttc" id="aclassSubWidget_html_a926884690b66c762f7bdb1196c58522b"><div class="ttname"><a href="classSubWidget.html#a926884690b66c762f7bdb1196c58522b">SubWidget::setNeedsFullViewportDrawing</a></div><div class="ttdeci">void setNeedsFullViewportDrawing(bool needsFullViewportForDrawing=true)</div></div>
<div class="ttc" id="aclassSubWidget_html_a3426cbcf0104c8a5c9996e3efff75381"><div class="ttname"><a href="classSubWidget.html#a3426cbcf0104c8a5c9996e3efff75381">SubWidget::toFront</a></div><div class="ttdeci">virtual void toFront()</div></div>
<div class="ttc" id="aclassSubWidget_html_adb38f61c0205d7832ddfd090f7f60f2a"><div class="ttname"><a href="classSubWidget.html#adb38f61c0205d7832ddfd090f7f60f2a">SubWidget::setSkipDrawing</a></div><div class="ttdeci">void setSkipDrawing(bool skipDrawing=true)</div></div>
<div class="ttc" id="aclassSubWidget_html_aefe10cc8f9d62950b56f71559d1e3f5e"><div class="ttname"><a href="classSubWidget.html#aefe10cc8f9d62950b56f71559d1e3f5e">SubWidget::getAbsoluteY</a></div><div class="ttdeci">int getAbsoluteY() const noexcept</div></div>
<div class="ttc" id="astructWidget_1_1PositionChangedEvent_html"><div class="ttname"><a href="structWidget_1_1PositionChangedEvent.html">Widget::PositionChangedEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:241</div></div>
<div class="ttc" id="astructWidget_1_1PositionChangedEvent_html"><div class="ttname"><a href="structWidget_1_1PositionChangedEvent.html">Widget::PositionChangedEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:250</div></div>
<div class="ttc" id="aclassSubWidget_html_a72bf08fe6f61fc935f6f0836d308bc9e"><div class="ttname"><a href="classSubWidget.html#a72bf08fe6f61fc935f6f0836d308bc9e">SubWidget::getConstrainedAbsoluteArea</a></div><div class="ttdeci">Rectangle&lt; uint &gt; getConstrainedAbsoluteArea() const noexcept</div></div>
<div class="ttc" id="aclassSubWidget_html_a13910739dc797b600502e2dfa7daef87"><div class="ttname"><a href="classSubWidget.html#a13910739dc797b600502e2dfa7daef87">SubWidget::repaint</a></div><div class="ttdeci">void repaint() noexcept override</div></div>
<div class="ttc" id="aclassSubWidget_html_ac9b4d3e2a3a39e588504dd33c1d9ca95"><div class="ttname"><a href="classSubWidget.html#ac9b4d3e2a3a39e588504dd33c1d9ca95">SubWidget::contains</a></div><div class="ttdeci">bool contains(T x, T y) const noexcept</div></div>
@@ -240,7 +257,7 @@ $(function() {
<div class="ttc" id="aclassSubWidget_html_a0f6225f53db69cd682910939edc9fd96"><div class="ttname"><a href="classSubWidget.html#a0f6225f53db69cd682910939edc9fd96">SubWidget::~SubWidget</a></div><div class="ttdeci">virtual ~SubWidget()</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 238
- 195
Thread_8hpp_source.html View File

@@ -71,7 +71,7 @@ $(function() {
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * DISTRHO Plugin Framework (DPF)</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2012-2016 Filipe Coelho &lt;falktx@falktx.com&gt;</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2012-2021 Filipe Coelho &lt;falktx@falktx.com&gt;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Permission to use, copy, modify, and/or distribute this software for any purpose with</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * or without fee is hereby granted, provided that the above copyright notice and this</span></div>
@@ -159,216 +159,259 @@ $(function() {
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"> * Start the thread.</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">bool</span> startThread() noexcept</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">bool</span> startThread(<span class="keyword">const</span> <span class="keywordtype">bool</span> withRealtimePriority = <span class="keyword">false</span>) noexcept</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// check if already running</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(! isThreadRunning(), <span class="keyword">true</span>);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">const</span> <a class="code" href="classScopeLocker.html">MutexLocker</a> ml(fLock);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; pthread_t handle;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; fShouldExit = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; </div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; pthread_t handle;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; </div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">if</span> (pthread_create(&amp;handle, <span class="keyword">nullptr</span>, _entryPoint, <span class="keyword">this</span>) == 0)</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#ifdef PTW32_DLLPORT</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(handle.p != <span class="keyword">nullptr</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(handle != 0, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; pthread_detach(handle);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; _copyFrom(handle);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// wait for thread to start</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; fSignal.wait();</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"> * Stop the thread.</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> * In the &#39;timeOutMilliseconds&#39;:</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"> * = 0 -&gt; no wait</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"> * &gt; 0 -&gt; wait timeout value</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> * &lt; 0 -&gt; wait forever</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordtype">bool</span> stopThread(<span class="keyword">const</span> <span class="keywordtype">int</span> timeOutMilliseconds) noexcept</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">const</span> <a class="code" href="classScopeLocker.html">MutexLocker</a> ml(fLock);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span> (isThreadRunning())</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; signalThreadShouldExit();</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; pthread_attr_t attr;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; pthread_attr_init(&amp;attr);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">struct </span>sched_param sched_param;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; std::memset(&amp;sched_param, 0, <span class="keyword">sizeof</span>(sched_param));</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span> (withRealtimePriority)</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; sched_param.sched_priority = 80;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#ifndef DISTRHO_OS_HAIKU</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span> (pthread_attr_setscope(&amp;attr, PTHREAD_SCOPE_SYSTEM) == 0 &amp;&amp;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; pthread_attr_setinheritsched(&amp;attr, PTHREAD_EXPLICIT_SCHED) == 0 &amp;&amp;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;# ifndef DISTRHO_OS_WINDOWS</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; (pthread_attr_setschedpolicy(&amp;attr, SCHED_FIFO) == 0 ||</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; pthread_attr_setschedpolicy(&amp;attr, SCHED_RR) == 0) &amp;&amp;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;# endif</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; pthread_attr_setschedparam(&amp;attr, &amp;sched_param) == 0)</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; d_stdout(<span class="stringliteral">&quot;Thread setup with realtime priority successful&quot;</span>);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; d_stdout(<span class="stringliteral">&quot;Thread setup with realtime priority failed, going with normal priority instead&quot;</span>);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; pthread_attr_destroy(&amp;attr);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; pthread_attr_init(&amp;attr);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">const</span> <a class="code" href="classScopeLocker.html">MutexLocker</a> ml(fLock);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; fShouldExit = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">bool</span> ok = pthread_create(&amp;handle, &amp;attr, _entryPoint, <span class="keyword">this</span>) == 0;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; pthread_attr_destroy(&amp;attr);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span> (timeOutMilliseconds != 0)</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="comment">// Wait for the thread to stop</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordtype">int</span> timeOutCheck = (timeOutMilliseconds == 1 || timeOutMilliseconds == -1) ? timeOutMilliseconds : timeOutMilliseconds/2;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">for</span> (; isThreadRunning();)</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; d_msleep(2);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span> (timeOutCheck &lt; 0)</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span> (timeOutCheck &gt; 0)</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; timeOutCheck -= 1;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span> (isThreadRunning())</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// should never happen!</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; d_stderr2(<span class="stringliteral">&quot;assertion failure: \&quot;! isThreadRunning()\&quot; in file %s, line %i&quot;</span>, __FILE__, __LINE__);</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">// copy thread id so we can clear our one</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; pthread_t threadId;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; _copyTo(threadId);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; _init();</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; </div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; pthread_cancel(threadId);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; } DISTRHO_SAFE_EXCEPTION(<span class="stringliteral">&quot;pthread_cancel&quot;</span>);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span> (withRealtimePriority &amp;&amp; !ok)</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; d_stdout(<span class="stringliteral">&quot;Thread with realtime priority failed on creation, going with normal priority instead&quot;</span>);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; pthread_attr_init(&amp;attr);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; ok = pthread_create(&amp;handle, &amp;attr, _entryPoint, <span class="keyword">this</span>) == 0;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; pthread_attr_destroy(&amp;attr);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(ok, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor">#ifdef PTW32_DLLPORT</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(handle.p != <span class="keyword">nullptr</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(handle != 0, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; pthread_detach(handle);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; _copyFrom(handle);</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; </div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">// wait for thread to start</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; fSignal.wait();</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"> * Stop the thread.</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"> * In the &#39;timeOutMilliseconds&#39;:</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"> * = 0 -&gt; no wait</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"> * &gt; 0 -&gt; wait timeout value</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"> * &lt; 0 -&gt; wait forever</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">bool</span> stopThread(<span class="keyword">const</span> <span class="keywordtype">int</span> timeOutMilliseconds) noexcept</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">const</span> <a class="code" href="classScopeLocker.html">MutexLocker</a> ml(fLock);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span> (isThreadRunning())</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; {</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; signalThreadShouldExit();</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; </div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment"> * Tell the thread to stop as soon as possible.</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordtype">void</span> signalThreadShouldExit() noexcept</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; fShouldExit = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="comment">// -------------------------------------------------------------------</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment"> * Returns the name of the thread.</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment"> * This is the name that gets set in the constructor.</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">const</span> <a class="code" href="classString.html">String</a>&amp; getThreadName() <span class="keyword">const</span> noexcept</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> fName;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> * Changes the name of the caller thread.</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> setCurrentThreadName(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> name) noexcept</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(name != <span class="keyword">nullptr</span> &amp;&amp; name[0] != <span class="charliteral">&#39;\0&#39;</span>,);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span> (timeOutMilliseconds != 0)</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">// Wait for the thread to stop</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">int</span> timeOutCheck = (timeOutMilliseconds == 1 || timeOutMilliseconds == -1) ? timeOutMilliseconds : timeOutMilliseconds/2;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">for</span> (; isThreadRunning();)</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; d_msleep(2);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span> (timeOutCheck &lt; 0)</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">if</span> (timeOutCheck &gt; 0)</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; timeOutCheck -= 1;</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; </div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span> (isThreadRunning())</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">// should never happen!</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; d_stderr2(<span class="stringliteral">&quot;assertion failure: \&quot;! isThreadRunning()\&quot; in file %s, line %i&quot;</span>, __FILE__, __LINE__);</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// copy thread id so we can clear our one</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; pthread_t threadId;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; _copyTo(threadId);</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; _init();</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor">#ifdef DISTRHO_OS_LINUX</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; prctl(PR_SET_NAME, name, 0, 0, 0);</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor">#if defined(__GLIBC__) &amp;&amp; (__GLIBC__ * 1000 + __GLIBC_MINOR__) &gt;= 2012</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; pthread_setname_np(pthread_self(), name);</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; pthread_detach(threadId);</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; </div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="comment">// -------------------------------------------------------------------</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="classMutex.html">Mutex</a> fLock; <span class="comment">// Thread lock</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="classSignal.html">Signal</a> fSignal; <span class="comment">// Thread start wait signal</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">const</span> <a class="code" href="classString.html">String</a> fName; <span class="comment">// Thread name</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">volatile</span> pthread_t fHandle; <span class="comment">// Handle for this thread</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">volatile</span> <span class="keywordtype">bool</span> fShouldExit; <span class="comment">// true if thread should exit</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment"> * Init pthread type.</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">void</span> _init() noexcept</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor">#ifdef PTW32_DLLPORT</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; fHandle.p = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; fHandle.x = 0;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; fHandle = 0;</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="comment"> * Copy our pthread type from another var.</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordtype">void</span> _copyFrom(<span class="keyword">const</span> pthread_t&amp; handle) noexcept</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#ifdef PTW32_DLLPORT</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; fHandle.p = handle.p;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; fHandle.x = handle.x;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; fHandle = handle;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; </div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment"> * Copy our pthread type to another var.</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordtype">void</span> _copyTo(<span class="keyword">volatile</span> pthread_t&amp; handle) <span class="keyword">const</span> noexcept</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; {</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor">#ifdef PTW32_DLLPORT</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; handle.p = fHandle.p;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; handle.x = fHandle.x;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; handle = fHandle;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; </div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment"> * Thread entry point.</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordtype">void</span> _runEntryPoint() noexcept</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; {</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; setCurrentThreadName(fName);</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; </div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="comment">// report ready</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; fSignal.signal();</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; </div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; run();</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; } <span class="keywordflow">catch</span>(...) {}</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">// done</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; _init();</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; </div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment"> * Thread entry point.</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span>* _entryPoint(<span class="keywordtype">void</span>* userData) noexcept</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; {</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">static_cast&lt;</span><a class="code" href="classThread.html">Thread</a>*<span class="keyword">&gt;</span>(userData)-&gt;_runEntryPoint();</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; </div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; DISTRHO_DECLARE_NON_COPY_CLASS(<a class="code" href="classThread.html">Thread</a>)</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;};</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; </div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; </div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;END_NAMESPACE_DISTRHO</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; </div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor">#endif // DISTRHO_THREAD_HPP_INCLUDED</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment"> * Tell the thread to stop as soon as possible.</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordtype">void</span> signalThreadShouldExit() noexcept</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; fShouldExit = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">// -------------------------------------------------------------------</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; </div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment"> * Returns the name of the thread.</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment"> * This is the name that gets set in the constructor.</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">const</span> <a class="code" href="classString.html">String</a>&amp; getThreadName() <span class="keyword">const</span> noexcept</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> fName;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; </div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment"> * Returns the Id/handle of the thread.</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; pthread_t getThreadId() <span class="keyword">const</span> noexcept</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> fHandle;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; </div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment"> * Changes the name of the caller thread.</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> setCurrentThreadName(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> name) noexcept</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; {</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; DISTRHO_SAFE_ASSERT_RETURN(name != <span class="keyword">nullptr</span> &amp;&amp; name[0] != <span class="charliteral">&#39;\0&#39;</span>,);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; </div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor">#ifdef DISTRHO_OS_LINUX</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; prctl(PR_SET_NAME, name, 0, 0, 0);</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor">#if defined(__GLIBC__) &amp;&amp; (__GLIBC__ * 1000 + __GLIBC_MINOR__) &gt;= 2012 &amp;&amp; !defined(DISTRHO_OS_GNU_HURD)</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; pthread_setname_np(pthread_self(), name);</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; </div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="comment">// -------------------------------------------------------------------</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; </div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="classMutex.html">Mutex</a> fLock; <span class="comment">// Thread lock</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="classSignal.html">Signal</a> fSignal; <span class="comment">// Thread start wait signal</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">const</span> <a class="code" href="classString.html">String</a> fName; <span class="comment">// Thread name</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">volatile</span> pthread_t fHandle; <span class="comment">// Handle for this thread</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">volatile</span> <span class="keywordtype">bool</span> fShouldExit; <span class="comment">// true if thread should exit</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; </div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment"> * Init pthread type.</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordtype">void</span> _init() noexcept</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; {</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#ifdef PTW32_DLLPORT</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; fHandle.p = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; fHandle.x = 0;</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; fHandle = 0;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; }</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; </div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="comment"> * Copy our pthread type from another var.</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordtype">void</span> _copyFrom(<span class="keyword">const</span> pthread_t&amp; handle) noexcept</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor">#ifdef PTW32_DLLPORT</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; fHandle.p = handle.p;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; fHandle.x = handle.x;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; fHandle = handle;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; }</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; </div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment"> * Copy our pthread type to another var.</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordtype">void</span> _copyTo(<span class="keyword">volatile</span> pthread_t&amp; handle) <span class="keyword">const</span> noexcept</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; {</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor">#ifdef PTW32_DLLPORT</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; handle.p = fHandle.p;</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; handle.x = fHandle.x;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; handle = fHandle;</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="comment"> * Thread entry point.</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordtype">void</span> _runEntryPoint() noexcept</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; {</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">if</span> (fName.isNotEmpty())</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; setCurrentThreadName(fName);</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; </div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="comment">// report ready</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; fSignal.signal();</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; </div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; run();</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; } <span class="keywordflow">catch</span>(...) {}</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; </div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="comment">// done</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; _init();</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; </div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="comment"> * Thread entry point.</span></div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span>* _entryPoint(<span class="keywordtype">void</span>* userData) noexcept</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">static_cast&lt;</span><a class="code" href="classThread.html">Thread</a>*<span class="keyword">&gt;</span>(userData)-&gt;_runEntryPoint();</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; </div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; DISTRHO_DECLARE_NON_COPYABLE(<a class="code" href="classThread.html">Thread</a>)</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;};</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; </div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;END_NAMESPACE_DISTRHO</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; </div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor">#endif // DISTRHO_THREAD_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdef"><b>Definition:</b> String.hpp:29</div></div>
<div class="ttc" id="aclassSignal_html"><div class="ttname"><a href="classSignal.html">Signal</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:184</div></div>
<div class="ttc" id="aclassScopeLocker_html"><div class="ttname"><a href="classScopeLocker.html">ScopeLocker</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:266</div></div>
<div class="ttc" id="aclassString_html"><div class="ttname"><a href="classString.html">String</a></div><div class="ttdef"><b>Definition:</b> String.hpp:30</div></div>
<div class="ttc" id="aclassSignal_html"><div class="ttname"><a href="classSignal.html">Signal</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:183</div></div>
<div class="ttc" id="aclassScopeLocker_html"><div class="ttname"><a href="classScopeLocker.html">ScopeLocker</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:265</div></div>
<div class="ttc" id="aclassMutex_html"><div class="ttname"><a href="classMutex.html">Mutex</a></div><div class="ttdef"><b>Definition:</b> Mutex.hpp:36</div></div>
<div class="ttc" id="aclassThread_html"><div class="ttname"><a href="classThread.html">Thread</a></div><div class="ttdef"><b>Definition:</b> Thread.hpp:33</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 63
- 35
TopLevelWidget_8hpp_source.html View File

@@ -136,55 +136,83 @@ $(function() {
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> Get the window associated with this top-level widget.</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classWindow.html">Window</a>&amp; <a class="code" href="classTopLevelWidget.html#a3ceb7af6e9372a139d40a5859dfd0e4d">getWindow</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// TODO group stuff after here, convenience functions present in Window class</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">bool</span> addIdleCallback(<a class="code" href="structIdleCallback.html">IdleCallback</a>* callback, uint timerFrequencyInMs = 0);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">bool</span> removeIdleCallback(<a class="code" href="structIdleCallback.html">IdleCallback</a>* callback);</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">double</span> getScaleFactor() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTopLevelWidget.html#ad03702ffcbafa87ec546994891d4cd8a">repaint</a>() noexcept;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTopLevelWidget.html#ad03702ffcbafa87ec546994891d4cd8a">repaint</a>(<span class="keyword">const</span> <a class="code" href="classRectangle.html">Rectangle&lt;uint&gt;</a>&amp; rect) noexcept;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">void</span> setGeometryConstraints(uint minimumWidth,</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; uint minimumHeight,</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">bool</span> keepAspectRatio = <span class="keyword">false</span>,</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">bool</span> automaticallyScale = <span class="keyword">false</span>);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;getApp()&quot;</span>)</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="classApplication.html">Application</a>&amp; getParentApp() <span class="keyword">const</span> noexcept { <span class="keywordflow">return</span> <a class="code" href="classTopLevelWidget.html#af5c5c403ba231c14b3a41684bef45648">getApp</a>(); }</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; </div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;getWindow()&quot;</span>)</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="classWindow.html">Window</a>&amp; getParentWindow() <span class="keyword">const</span> noexcept { <span class="keywordflow">return</span> <a class="code" href="classTopLevelWidget.html#a3ceb7af6e9372a139d40a5859dfd0e4d">getWindow</a>(); }</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">struct </span>PrivateData;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; PrivateData* <span class="keyword">const</span> pData;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classWindow.html">Window</a>;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#ifdef DISTRHO_DEFINES_H_INCLUDED</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>DISTRHO_NAMESPACE::UI;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classTopLevelWidget.html">TopLevelWidget</a>)</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;};</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; </div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#endif // DGL_TOP_LEVEL_WIDGET_HPP_INCLUDED</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> Set width of this widget&#39;s window.</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> @note This will not change the widget&#39;s size right away, but be pending on the OS resizing the window</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTopLevelWidget.html#a4a95eb3bb76704737ef9cf405e800617">setWidth</a>(uint width);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> Set height of this widget&#39;s window.</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> @note This will not change the widget&#39;s size right away, but be pending on the OS resizing the window</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTopLevelWidget.html#a607afeaa7fc1bd6cf52ef3138c38360f">setHeight</a>(uint height);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"> Set size of this widget&#39;s window, using @a width and @a height values.</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> @note This will not change the widget&#39;s size right away, but be pending on the OS resizing the window</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTopLevelWidget.html#a41fa486da289fb082bb840aaaad72a08">setSize</a>(uint width, uint height);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"> Set size of this widget&#39;s window.</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"> @note This will not change the widget&#39;s size right away, but be pending on the OS resizing the window</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTopLevelWidget.html#a41fa486da289fb082bb840aaaad72a08">setSize</a>(<span class="keyword">const</span> <a class="code" href="classSize.html">Size&lt;uint&gt;</a>&amp; size);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// TODO group stuff after here, convenience functions present in Window class</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">bool</span> addIdleCallback(<a class="code" href="structIdleCallback.html">IdleCallback</a>* callback, uint timerFrequencyInMs = 0);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">bool</span> removeIdleCallback(<a class="code" href="structIdleCallback.html">IdleCallback</a>* callback);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordtype">double</span> getScaleFactor() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTopLevelWidget.html#ad03702ffcbafa87ec546994891d4cd8a">repaint</a>() noexcept;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classTopLevelWidget.html#ad03702ffcbafa87ec546994891d4cd8a">repaint</a>(<span class="keyword">const</span> <a class="code" href="classRectangle.html">Rectangle&lt;uint&gt;</a>&amp; rect) noexcept;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">void</span> setGeometryConstraints(uint minimumWidth,</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; uint minimumHeight,</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">bool</span> keepAspectRatio = <span class="keyword">false</span>,</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordtype">bool</span> automaticallyScale = <span class="keyword">false</span>);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;getApp()&quot;</span>)</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="classApplication.html">Application</a>&amp; getParentApp() <span class="keyword">const</span> noexcept { <span class="keywordflow">return</span> <a class="code" href="classTopLevelWidget.html#af5c5c403ba231c14b3a41684bef45648">getApp</a>(); }</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;getWindow()&quot;</span>)</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="classWindow.html">Window</a>&amp; getParentWindow() <span class="keyword">const</span> noexcept { <span class="keywordflow">return</span> <a class="code" href="classTopLevelWidget.html#a3ceb7af6e9372a139d40a5859dfd0e4d">getWindow</a>(); }</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">struct </span>PrivateData;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; PrivateData* <span class="keyword">const</span> pData;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classWindow.html">Window</a>;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#ifdef DISTRHO_DEFINES_H_INCLUDED</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>DISTRHO_NAMESPACE::UI;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classTopLevelWidget.html">TopLevelWidget</a>)</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;};</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#endif // DGL_TOP_LEVEL_WIDGET_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassTopLevelWidget_html_ad03702ffcbafa87ec546994891d4cd8a"><div class="ttname"><a href="classTopLevelWidget.html#ad03702ffcbafa87ec546994891d4cd8a">TopLevelWidget::repaint</a></div><div class="ttdeci">void repaint() noexcept</div></div>
<div class="ttc" id="aclassTopLevelWidget_html_af5c5c403ba231c14b3a41684bef45648"><div class="ttname"><a href="classTopLevelWidget.html#af5c5c403ba231c14b3a41684bef45648">TopLevelWidget::getApp</a></div><div class="ttdeci">Application &amp; getApp() const noexcept</div></div>
<div class="ttc" id="aclassWindow_html"><div class="ttname"><a href="classWindow.html">Window</a></div><div class="ttdef"><b>Definition:</b> Window.hpp:50</div></div>
<div class="ttc" id="aclassSize_html"><div class="ttname"><a href="classSize.html">Size&lt; uint &gt;</a></div></div>
<div class="ttc" id="aclassRectangle_html"><div class="ttname"><a href="classRectangle.html">Rectangle</a></div><div class="ttdef"><b>Definition:</b> Geometry.hpp:30</div></div>
<div class="ttc" id="aclassApplication_html"><div class="ttname"><a href="classApplication.html">Application</a></div><div class="ttdef"><b>Definition:</b> Application.hpp:34</div></div>
<div class="ttc" id="aclassTopLevelWidget_html_a3ceb7af6e9372a139d40a5859dfd0e4d"><div class="ttname"><a href="classTopLevelWidget.html#a3ceb7af6e9372a139d40a5859dfd0e4d">TopLevelWidget::getWindow</a></div><div class="ttdeci">Window &amp; getWindow() const noexcept</div></div>
<div class="ttc" id="aclassUI_html"><div class="ttname"><a href="classUI.html">UI</a></div><div class="ttdef"><b>Definition:</b> DistrhoUI.hpp:67</div></div>
<div class="ttc" id="aclassTopLevelWidget_html_a73c0ee0ce1e84c9e18d0f6dcdcb9104a"><div class="ttname"><a href="classTopLevelWidget.html#a73c0ee0ce1e84c9e18d0f6dcdcb9104a">TopLevelWidget::~TopLevelWidget</a></div><div class="ttdeci">virtual ~TopLevelWidget()</div></div>
<div class="ttc" id="aclassTopLevelWidget_html_a41fa486da289fb082bb840aaaad72a08"><div class="ttname"><a href="classTopLevelWidget.html#a41fa486da289fb082bb840aaaad72a08">TopLevelWidget::setSize</a></div><div class="ttdeci">void setSize(uint width, uint height)</div></div>
<div class="ttc" id="aclassTopLevelWidget_html_a607afeaa7fc1bd6cf52ef3138c38360f"><div class="ttname"><a href="classTopLevelWidget.html#a607afeaa7fc1bd6cf52ef3138c38360f">TopLevelWidget::setHeight</a></div><div class="ttdeci">void setHeight(uint height)</div></div>
<div class="ttc" id="aclassTopLevelWidget_html_a4a95eb3bb76704737ef9cf405e800617"><div class="ttname"><a href="classTopLevelWidget.html#a4a95eb3bb76704737ef9cf405e800617">TopLevelWidget::setWidth</a></div><div class="ttdeci">void setWidth(uint width)</div></div>
<div class="ttc" id="astructIdleCallback_html"><div class="ttname"><a href="structIdleCallback.html">IdleCallback</a></div><div class="ttdef"><b>Definition:</b> Base.hpp:159</div></div>
<div class="ttc" id="aclassTopLevelWidget_html"><div class="ttname"><a href="classTopLevelWidget.html">TopLevelWidget</a></div><div class="ttdef"><b>Definition:</b> TopLevelWidget.hpp:46</div></div>
<div class="ttc" id="aclassWidget_html"><div class="ttname"><a href="classWidget.html">Widget</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:53</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
VstGuiWidget_8hpp_source.html View File

@@ -193,7 +193,7 @@ $(function() {
<div class="ttc" id="aclassVstGuiStandaloneWindow_html"><div class="ttname"><a href="classVstGuiStandaloneWindow.html">VstGuiStandaloneWindow</a></div><div class="ttdef"><b>Definition:</b> VstGuiWidget.hpp:35</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 3
- 3
Vulkan_8hpp_source.html View File

@@ -159,8 +159,8 @@ $(function() {
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classVulkanImage.html">VulkanImage</a>&amp; <a class="code" href="classVulkanImage.html#ae99740f2a1bdaa98e67c8fcfbdec9423">operator=</a>(<span class="keyword">const</span> <a class="code" href="classVulkanImage.html">VulkanImage</a>&amp; image) noexcept;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; </div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// FIXME this should not be needed</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classVulkanImage.html#afdf45f3e60f4a5a4805402b312bc8d5f">loadFromMemory</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rawData, uint w, uint h, ImageFormat format = kImageFormatBGRA)</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; { <a class="code" href="classVulkanImage.html#afdf45f3e60f4a5a4805402b312bc8d5f">loadFromMemory</a>(rawData, <a class="code" href="classSize.html">Size&lt;uint&gt;</a>(w, h), format); };</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classVulkanImage.html#afdf45f3e60f4a5a4805402b312bc8d5f">loadFromMemory</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* rdata, uint w, uint h, ImageFormat fmt = kImageFormatBGRA)</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; { <a class="code" href="classVulkanImage.html#afdf45f3e60f4a5a4805402b312bc8d5f">loadFromMemory</a>(rdata, <a class="code" href="classSize.html">Size&lt;uint&gt;</a>(w, h), fmt); };</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> draw(<span class="keyword">const</span> <a class="code" href="structGraphicsContext.html">GraphicsContext</a>&amp; context)</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; { <a class="code" href="classVulkanImage.html#a35ba9f546320a8b51c76f09f0d80845f">drawAt</a>(context, <a class="code" href="classPoint.html">Point&lt;int&gt;</a>(0, 0)); };</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classVulkanImage.html#a35ba9f546320a8b51c76f09f0d80845f">drawAt</a>(<span class="keyword">const</span> <a class="code" href="structGraphicsContext.html">GraphicsContext</a>&amp; context, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y)</div>
@@ -186,7 +186,7 @@ $(function() {
<div class="ttc" id="aclassVulkanImage_html_aaa625bb7cbad92de916c0d6877033a42"><div class="ttname"><a href="classVulkanImage.html#aaa625bb7cbad92de916c0d6877033a42">VulkanImage::VulkanImage</a></div><div class="ttdeci">VulkanImage()</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 294
- 285
Widget_8hpp_source.html View File

@@ -227,287 +227,296 @@ $(function() {
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> Mouse press or release event.</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"> @a button The button number starting from 1 (1 = left, 2 = middle, 3 = right).</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"> @a press True if the button was pressed, false if released.</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"> @a pos The widget-relative coordinates of the pointer.</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"> @see onMouse</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="structWidget_1_1MouseEvent.html"> 164</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structWidget_1_1MouseEvent.html">MouseEvent</a> : <a class="code" href="structWidget_1_1BaseEvent.html">BaseEvent</a> {</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; uint button;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordtype">bool</span> press;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="classPoint.html">Point&lt;double&gt;</a> pos;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="comment"> /** Constuctor */</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="structWidget_1_1MouseEvent.html#aa37fee8a593c62c53e4ca5c67ad9278f"> 170</a></span>&#160; <a class="code" href="structWidget_1_1MouseEvent.html#aa37fee8a593c62c53e4ca5c67ad9278f">MouseEvent</a>() noexcept</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; : <a class="code" href="structWidget_1_1BaseEvent.html">BaseEvent</a>(),</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; button(0),</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; press(false),</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; pos(0.0, 0.0) {}</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; };</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"> Mouse motion event.</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"> @a button The button number starting from 1 (1 = left, 2 = middle, 3 = right).</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"> @a press True if the button was pressed, false if released.</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"> @a pos The widget-relative coordinates of the pointer.</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"> @a absolutePos The absolute coordinates of the pointer.</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"> @see onMouse</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="structWidget_1_1MouseEvent.html"> 165</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structWidget_1_1MouseEvent.html">MouseEvent</a> : <a class="code" href="structWidget_1_1BaseEvent.html">BaseEvent</a> {</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; uint button;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">bool</span> press;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classPoint.html">Point&lt;double&gt;</a> pos;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="classPoint.html">Point&lt;double&gt;</a> absolutePos;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment"> /** Constuctor */</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="structWidget_1_1MouseEvent.html#aa37fee8a593c62c53e4ca5c67ad9278f"> 172</a></span>&#160; <a class="code" href="structWidget_1_1MouseEvent.html#aa37fee8a593c62c53e4ca5c67ad9278f">MouseEvent</a>() noexcept</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; : <a class="code" href="structWidget_1_1BaseEvent.html">BaseEvent</a>(),</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; button(0),</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; press(false),</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; pos(0.0, 0.0),</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; absolutePos(0.0, 0.0) {}</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; };</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment"> @a pos The widget-relative coordinates of the pointer.</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"> @see onMotion</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="structWidget_1_1MotionEvent.html"> 183</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structWidget_1_1MotionEvent.html">MotionEvent</a> : <a class="code" href="structWidget_1_1BaseEvent.html">BaseEvent</a> {</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="classPoint.html">Point&lt;double&gt;</a> pos;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment"> /** Constuctor */</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="structWidget_1_1MotionEvent.html#a0d2bf8f5c66002bb129968f10e0cc082"> 187</a></span>&#160; <a class="code" href="structWidget_1_1MotionEvent.html#a0d2bf8f5c66002bb129968f10e0cc082">MotionEvent</a>() noexcept</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; : <a class="code" href="structWidget_1_1BaseEvent.html">BaseEvent</a>(),</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; pos(0.0, 0.0) {}</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; };</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment"> Mouse scroll event.</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> The scroll distance is expressed in &quot;lines&quot;,</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> an arbitrary unit that corresponds to a single tick of a detented mouse wheel.</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment"> For example, `delta.y` = 1.0 scrolls 1 line up.</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment"> Some systems and devices support finer resolution and/or higher values for fast scrolls,</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment"> so programs should handle any value gracefully.</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"> Mouse motion event.</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> @a pos The widget-relative coordinates of the pointer.</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment"> @a absolutePos The absolute coordinates of the pointer.</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment"> @see onMotion</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="structWidget_1_1MotionEvent.html"> 187</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structWidget_1_1MotionEvent.html">MotionEvent</a> : <a class="code" href="structWidget_1_1BaseEvent.html">BaseEvent</a> {</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="classPoint.html">Point&lt;double&gt;</a> pos;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="classPoint.html">Point&lt;double&gt;</a> absolutePos;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment"> /** Constuctor */</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="structWidget_1_1MotionEvent.html#a0d2bf8f5c66002bb129968f10e0cc082"> 192</a></span>&#160; <a class="code" href="structWidget_1_1MotionEvent.html#a0d2bf8f5c66002bb129968f10e0cc082">MotionEvent</a>() noexcept</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; : <a class="code" href="structWidget_1_1BaseEvent.html">BaseEvent</a>(),</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; pos(0.0, 0.0),</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; absolutePos(0.0, 0.0) {}</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; };</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment"> Mouse scroll event.</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment"> @a pos The widget-relative coordinates of the pointer.</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"> @a delta The scroll distance.</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment"> @a direction The direction of the scroll or &quot;smooth&quot;.</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment"> @see onScroll</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="structWidget_1_1ScrollEvent.html"> 206</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structWidget_1_1ScrollEvent.html">ScrollEvent</a> : <a class="code" href="structWidget_1_1BaseEvent.html">BaseEvent</a> {</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="classPoint.html">Point&lt;double&gt;</a> pos;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="classPoint.html">Point&lt;double&gt;</a> delta;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; ScrollDirection direction;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment"> /** Constuctor */</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="structWidget_1_1ScrollEvent.html#abee88b10b7b031ddcca1454e064a3cc3"> 212</a></span>&#160; <a class="code" href="structWidget_1_1ScrollEvent.html#abee88b10b7b031ddcca1454e064a3cc3">ScrollEvent</a>() noexcept</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; : <a class="code" href="structWidget_1_1BaseEvent.html">BaseEvent</a>(),</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; pos(0.0, 0.0),</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; delta(0.0, 0.0),</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; direction(kScrollSmooth) {}</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; };</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment"> The scroll distance is expressed in &quot;lines&quot;,</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"> an arbitrary unit that corresponds to a single tick of a detented mouse wheel.</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment"> For example, `delta.y` = 1.0 scrolls 1 line up.</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment"> Some systems and devices support finer resolution and/or higher values for fast scrolls,</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment"> so programs should handle any value gracefully.</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment"> @a pos The widget-relative coordinates of the pointer.</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment"> @a absolutePos The absolute coordinates of the pointer.</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment"> @a delta The scroll distance.</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment"> @a direction The direction of the scroll or &quot;smooth&quot;.</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment"> @see onScroll</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="structWidget_1_1ScrollEvent.html"> 213</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structWidget_1_1ScrollEvent.html">ScrollEvent</a> : <a class="code" href="structWidget_1_1BaseEvent.html">BaseEvent</a> {</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classPoint.html">Point&lt;double&gt;</a> pos;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classPoint.html">Point&lt;double&gt;</a> absolutePos;</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="classPoint.html">Point&lt;double&gt;</a> delta;</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; ScrollDirection direction;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment"> Resize event.</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment"> @a size The new widget size.</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment"> @a oldSize The previous size, may be null.</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="comment"> @see onResize</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="structWidget_1_1ResizeEvent.html"> 225</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structWidget_1_1ResizeEvent.html">ResizeEvent</a> {</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSize.html">Size&lt;uint&gt;</a> size;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="classSize.html">Size&lt;uint&gt;</a> oldSize;</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment"> /** Constuctor */</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="structWidget_1_1ResizeEvent.html#ac92abcdb2820807cd3d020864b96b3bd"> 230</a></span>&#160; <a class="code" href="structWidget_1_1ResizeEvent.html#ac92abcdb2820807cd3d020864b96b3bd">ResizeEvent</a>() noexcept</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; : size(0, 0),</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; oldSize(0, 0) {}</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; };</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="comment"> Widget position changed event.</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment"> @a pos The new absolute position of the widget.</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment"> @a oldPos The previous absolute position of the widget.</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment"> @see onPositionChanged</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structWidget_1_1PositionChangedEvent.html"> 241</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structWidget_1_1PositionChangedEvent.html">PositionChangedEvent</a> {</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classPoint.html">Point&lt;int&gt;</a> pos;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="classPoint.html">Point&lt;int&gt;</a> oldPos;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment"> /** Constuctor */</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="structWidget_1_1PositionChangedEvent.html#aa6360f57c0314621b04d049708bea45c"> 246</a></span>&#160; <a class="code" href="structWidget_1_1PositionChangedEvent.html#aa6360f57c0314621b04d049708bea45c">PositionChangedEvent</a>() noexcept</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; : pos(0, 0),</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; oldPos(0, 0) {}</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; };</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; </div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="keyword">private</span>:<span class="comment"></span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment"> Private constructor, reserved for TopLevelWidget class.</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classWidget.html">Widget</a>(<a class="code" href="classTopLevelWidget.html">TopLevelWidget</a>* topLevelWidget);</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment"> Private constructor, reserved for SubWidget class.</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classWidget.html">Widget</a>(<a class="code" href="classWidget.html">Widget</a>* widgetToGroupTo);</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; </div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="keyword">public</span>:<span class="comment"></span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment"> Destructor.</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classWidget.html#a714cf798aadb4d615f6f60a355382c02">~Widget</a>();</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment"> Check if this widget is visible within its parent window.</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="comment"> Invisible widgets do not receive events except resize.</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classWidget.html#a234a8ee8a685dc211ad11f492f0dbc71">isVisible</a>() const noexcept;</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="comment"> Set widget visible (or not) according to @a visible.</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#a66088a03691f9c643ff335fa826576ba">setVisible</a>(<span class="keywordtype">bool</span> visible);</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="comment"> Show widget.</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment"> This is the same as calling setVisible(true).</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#a25ff178539e226b5f30ef0335d060f2b">show</a>();</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="comment"> Hide widget.</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment"> This is the same as calling setVisible(false).</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#a4a2f8eebacdd20db505b838f1a118c6b">hide</a>();</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="comment"> Get width.</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; uint <a class="code" href="classWidget.html#a169c317caf734c6664494a573e427b40">getWidth</a>() const noexcept;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="comment"> Get height.</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; uint <a class="code" href="classWidget.html#aa20f6dc096a8836706173f31324c4db8">getHeight</a>() const noexcept;</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="comment"> Get size.</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; const <a class="code" href="classSize.html">Size</a>&lt;uint&gt; <a class="code" href="classWidget.html#a9044d42c20ead27dba983b710c94f8d6">getSize</a>() const noexcept;</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="comment"> Set width.</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#aed80a9cbc4a13c01641f35dd3d8688ea">setWidth</a>(uint width) noexcept;</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="comment"> Set height.</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#ac6d2e6cbb2ff96f3645493d804af07f7">setHeight</a>(uint height) noexcept;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="comment"> Set size using @a width and @a height values.</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#ab4d9e0156e455db3ff23730f82544daa">setSize</a>(uint width, uint height) noexcept;</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="comment"> Set size.</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#ab4d9e0156e455db3ff23730f82544daa">setSize</a>(const <a class="code" href="classSize.html">Size</a>&lt;uint&gt;&amp; size) noexcept;</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="comment"> Get the Id associated with this widget.</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="comment"> @see setId</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; uint <a class="code" href="classWidget.html#a3ee6b2824e3f3719c1c9b3d070385f49">getId</a>() const noexcept;</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="comment"> Set an Id to be associated with this widget.</span></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="comment"> @see getId</span></div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#abfba3652559de84ba1ae9ccbd3d35e31">setId</a>(uint <span class="keywordtype">id</span>) noexcept;</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="comment"> Get the application associated with this widget&#39;s window.</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="comment"> This is the same as calling `getTopLevelWidget()-&gt;getApp()`.</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <a class="code" href="classApplication.html">Application</a>&amp; <a class="code" href="classWidget.html#a373419bc6353abf50a502cdbebd736e7">getApp</a>() const noexcept;</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="comment"> Get the window associated with this widget.</span></div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="comment"> This is the same as calling `getTopLevelWidget()-&gt;getWindow()`.</span></div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="classWindow.html">Window</a>&amp; <a class="code" href="classWidget.html#a0ef05695aec704b0eb1eb91c2e8af07d">getWindow</a>() const noexcept;</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="comment"> Get the graphics context associated with this widget&#39;s window.</span></div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="comment"> GraphicsContext is an empty struct and needs to be casted into a different type in order to be usable,</span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="comment"> for example GraphicsContext.</span></div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="comment"> @see CairoSubWidget, CairoTopLevelWidget</span></div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; const <a class="code" href="structGraphicsContext.html">GraphicsContext</a>&amp; <a class="code" href="classWidget.html#ae23d09ec0e5f0397a3451b603b407182">getGraphicsContext</a>() const noexcept;</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="comment"> Get top-level widget, as passed directly in the constructor</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="comment"> or going up the chain of group widgets until it finds the top-level one.</span></div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="classTopLevelWidget.html">TopLevelWidget</a>* <a class="code" href="classWidget.html#a607b153f7d3187ca60bf21004efc1314">getTopLevelWidget</a>() const noexcept;</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="comment"> Request repaint of this widget&#39;s area to the window this widget belongs to.</span></div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="comment"> On the raw Widget class this function does nothing.</span></div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; virtual <span class="keywordtype">void</span> <a class="code" href="classWidget.html#abe8cfe0aaae71dd011cf9a86e930fd12">repaint</a>() noexcept;</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; </div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; DISTRHO_DEPRECATED_BY(&quot;<a class="code" href="classWidget.html#a373419bc6353abf50a502cdbebd736e7">getApp</a>()&quot;)</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <a class="code" href="classApplication.html">Application</a>&amp; getParentApp() const noexcept { <span class="keywordflow">return</span> <a class="code" href="classWidget.html#a373419bc6353abf50a502cdbebd736e7">getApp</a>(); }</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; </div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;getWindow()&quot;</span>)</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <a class="code" href="classWindow.html">Window</a>&amp; getParentWindow() const noexcept { <span class="keywordflow">return</span> <a class="code" href="classWidget.html#a0ef05695aec704b0eb1eb91c2e8af07d">getWindow</a>(); }</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; </div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="keyword">protected</span>:<span class="comment"></span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="comment"> A function called to draw the widget contents.</span></div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWidget.html#ae1554f348fe3b2f9d4c3c5c4f9ec55bd">onDisplay</a>() = 0;</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="comment"> A function called when a key is pressed or released.</span></div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="comment"> @return True to stop event propagation, false otherwise.</span></div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classWidget.html#a9fa874aede538b41348f1029524aea11">onKeyboard</a>(<span class="keyword">const</span> KeyboardEvent&amp;);</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="comment"> A function called when a special key is pressed or released.</span></div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="comment"> @return True to stop event propagation, false otherwise.</span></div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classWidget.html#a3b42652fcb2f95c6f86bdd43a1727507">onSpecial</a>(<span class="keyword">const</span> SpecialEvent&amp;);</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="comment"> A function called when an UTF-8 character is received.</span></div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="comment"> @return True to stop event propagation, false otherwise.</span></div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classWidget.html#ad7fb24de24d8809305b04ff3750f0dea">onCharacterInput</a>(<span class="keyword">const</span> CharacterInputEvent&amp;);</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="comment"> A function called when a mouse button is pressed or released.</span></div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="comment"> @return True to stop event propagation, false otherwise.</span></div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classWidget.html#a097ec1d56a06bdc9e0a4e54880def378">onMouse</a>(<span class="keyword">const</span> MouseEvent&amp;);</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="comment"> A function called when the pointer moves.</span></div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="comment"> @return True to stop event propagation, false otherwise.</span></div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classWidget.html#a655569fb78a598652e9f24cefa1fe4a5">onMotion</a>(<span class="keyword">const</span> MotionEvent&amp;);</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="comment"> A function called on scrolling (e.g. mouse wheel or track pad).</span></div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="comment"> @return True to stop event propagation, false otherwise.</span></div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classWidget.html#a0d78d28bd4a98c3a016a38091b2d4185">onScroll</a>(<span class="keyword">const</span> ScrollEvent&amp;);</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="comment"> A function called when the widget is resized.</span></div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWidget.html#acc0365ec4b9245bdffb8d0285be55dea">onResize</a>(<span class="keyword">const</span> ResizeEvent&amp;);</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; </div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keyword">struct </span>PrivateData;</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; PrivateData* <span class="keyword">const</span> pData;</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSubWidget.html">SubWidget</a>;</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTopLevelWidget.html">TopLevelWidget</a>;</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; </div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classWidget.html">Widget</a>)</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;};</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment"> /** Constuctor */</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="structWidget_1_1ScrollEvent.html#abee88b10b7b031ddcca1454e064a3cc3"> 220</a></span>&#160; <a class="code" href="structWidget_1_1ScrollEvent.html#abee88b10b7b031ddcca1454e064a3cc3">ScrollEvent</a>() noexcept</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; : <a class="code" href="structWidget_1_1BaseEvent.html">BaseEvent</a>(),</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; pos(0.0, 0.0),</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; absolutePos(0.0, 0.0),</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; delta(0.0, 0.0),</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; direction(kScrollSmooth) {}</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; };</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment"> Resize event.</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment"> @a size The new widget size.</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="comment"> @a oldSize The previous size, may be null.</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="comment"> @see onResize</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="structWidget_1_1ResizeEvent.html"> 234</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structWidget_1_1ResizeEvent.html">ResizeEvent</a> {</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="classSize.html">Size&lt;uint&gt;</a> size;</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="classSize.html">Size&lt;uint&gt;</a> oldSize;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment"> /** Constuctor */</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="structWidget_1_1ResizeEvent.html#ac92abcdb2820807cd3d020864b96b3bd"> 239</a></span>&#160; <a class="code" href="structWidget_1_1ResizeEvent.html#ac92abcdb2820807cd3d020864b96b3bd">ResizeEvent</a>() noexcept</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; : size(0, 0),</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; oldSize(0, 0) {}</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; };</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment"> Widget position changed event.</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment"> @a pos The new absolute position of the widget.</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment"> @a oldPos The previous absolute position of the widget.</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment"> @see onPositionChanged</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="structWidget_1_1PositionChangedEvent.html"> 250</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structWidget_1_1PositionChangedEvent.html">PositionChangedEvent</a> {</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="classPoint.html">Point&lt;int&gt;</a> pos;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="classPoint.html">Point&lt;int&gt;</a> oldPos;</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment"> /** Constuctor */</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="structWidget_1_1PositionChangedEvent.html#aa6360f57c0314621b04d049708bea45c"> 255</a></span>&#160; <a class="code" href="structWidget_1_1PositionChangedEvent.html#aa6360f57c0314621b04d049708bea45c">PositionChangedEvent</a>() noexcept</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; : pos(0, 0),</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; oldPos(0, 0) {}</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; };</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; </div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="keyword">private</span>:<span class="comment"></span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment"> Private constructor, reserved for TopLevelWidget class.</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classWidget.html">Widget</a>(<a class="code" href="classTopLevelWidget.html">TopLevelWidget</a>* topLevelWidget);</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="comment"> Private constructor, reserved for SubWidget class.</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classWidget.html">Widget</a>(<a class="code" href="classWidget.html">Widget</a>* widgetToGroupTo);</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="keyword">public</span>:<span class="comment"></span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment"> Destructor.</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classWidget.html#a714cf798aadb4d615f6f60a355382c02">~Widget</a>();</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment"> Check if this widget is visible within its parent window.</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="comment"> Invisible widgets do not receive events except resize.</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classWidget.html#a234a8ee8a685dc211ad11f492f0dbc71">isVisible</a>() const noexcept;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="comment"> Set widget visible (or not) according to @a visible.</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#a66088a03691f9c643ff335fa826576ba">setVisible</a>(<span class="keywordtype">bool</span> visible);</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment"> Show widget.</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment"> This is the same as calling setVisible(true).</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#a25ff178539e226b5f30ef0335d060f2b">show</a>();</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="comment"> Hide widget.</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="comment"> This is the same as calling setVisible(false).</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#a4a2f8eebacdd20db505b838f1a118c6b">hide</a>();</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="comment"> Get width.</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; uint <a class="code" href="classWidget.html#a169c317caf734c6664494a573e427b40">getWidth</a>() const noexcept;</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="comment"> Get height.</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; uint <a class="code" href="classWidget.html#aa20f6dc096a8836706173f31324c4db8">getHeight</a>() const noexcept;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="comment"> Get size.</span></div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; const <a class="code" href="classSize.html">Size</a>&lt;uint&gt; <a class="code" href="classWidget.html#a9044d42c20ead27dba983b710c94f8d6">getSize</a>() const noexcept;</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="comment"> Set width.</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#aed80a9cbc4a13c01641f35dd3d8688ea">setWidth</a>(uint width) noexcept;</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="comment"> Set height.</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#ac6d2e6cbb2ff96f3645493d804af07f7">setHeight</a>(uint height) noexcept;</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="comment"> Set size using @a width and @a height values.</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#ab4d9e0156e455db3ff23730f82544daa">setSize</a>(uint width, uint height) noexcept;</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="comment"> Set size.</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#ab4d9e0156e455db3ff23730f82544daa">setSize</a>(const <a class="code" href="classSize.html">Size</a>&lt;uint&gt;&amp; size) noexcept;</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="comment"> Get the Id associated with this widget.</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="comment"> @see setId</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; uint <a class="code" href="classWidget.html#a3ee6b2824e3f3719c1c9b3d070385f49">getId</a>() const noexcept;</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="comment"> Set an Id to be associated with this widget.</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="comment"> @see getId</span></div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWidget.html#abfba3652559de84ba1ae9ccbd3d35e31">setId</a>(uint <span class="keywordtype">id</span>) noexcept;</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="comment"> Get the application associated with this widget&#39;s window.</span></div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="comment"> This is the same as calling `getTopLevelWidget()-&gt;getApp()`.</span></div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <a class="code" href="classApplication.html">Application</a>&amp; <a class="code" href="classWidget.html#a373419bc6353abf50a502cdbebd736e7">getApp</a>() const noexcept;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="comment"> Get the window associated with this widget.</span></div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="comment"> This is the same as calling `getTopLevelWidget()-&gt;getWindow()`.</span></div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="classWindow.html">Window</a>&amp; <a class="code" href="classWidget.html#a0ef05695aec704b0eb1eb91c2e8af07d">getWindow</a>() const noexcept;</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="comment"> Get the graphics context associated with this widget&#39;s window.</span></div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="comment"> GraphicsContext is an empty struct and needs to be casted into a different type in order to be usable,</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="comment"> for example GraphicsContext.</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="comment"> @see CairoSubWidget, CairoTopLevelWidget</span></div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; const <a class="code" href="structGraphicsContext.html">GraphicsContext</a>&amp; <a class="code" href="classWidget.html#ae23d09ec0e5f0397a3451b603b407182">getGraphicsContext</a>() const noexcept;</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="comment"> Get top-level widget, as passed directly in the constructor</span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="comment"> or going up the chain of group widgets until it finds the top-level one.</span></div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <a class="code" href="classTopLevelWidget.html">TopLevelWidget</a>* <a class="code" href="classWidget.html#a607b153f7d3187ca60bf21004efc1314">getTopLevelWidget</a>() const noexcept;</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="comment"> Request repaint of this widget&#39;s area to the window this widget belongs to.</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="comment"> On the raw Widget class this function does nothing.</span></div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; virtual <span class="keywordtype">void</span> <a class="code" href="classWidget.html#abe8cfe0aaae71dd011cf9a86e930fd12">repaint</a>() noexcept;</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; </div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; DISTRHO_DEPRECATED_BY(&quot;<a class="code" href="classWidget.html#a373419bc6353abf50a502cdbebd736e7">getApp</a>()&quot;)</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <a class="code" href="classApplication.html">Application</a>&amp; getParentApp() const noexcept { <span class="keywordflow">return</span> <a class="code" href="classWidget.html#a373419bc6353abf50a502cdbebd736e7">getApp</a>(); }</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; </div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;getWindow()&quot;</span>)</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="classWindow.html">Window</a>&amp; getParentWindow() const noexcept { <span class="keywordflow">return</span> <a class="code" href="classWidget.html#a0ef05695aec704b0eb1eb91c2e8af07d">getWindow</a>(); }</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; </div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="keyword">protected</span>:<span class="comment"></span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="comment"> A function called to draw the widget contents.</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWidget.html#ae1554f348fe3b2f9d4c3c5c4f9ec55bd">onDisplay</a>() = 0;</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="comment"> A function called when a key is pressed or released.</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="comment"> @return True to stop event propagation, false otherwise.</span></div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classWidget.html#a9fa874aede538b41348f1029524aea11">onKeyboard</a>(<span class="keyword">const</span> KeyboardEvent&amp;);</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="comment"> A function called when a special key is pressed or released.</span></div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="comment"> @return True to stop event propagation, false otherwise.</span></div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classWidget.html#a3b42652fcb2f95c6f86bdd43a1727507">onSpecial</a>(<span class="keyword">const</span> SpecialEvent&amp;);</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="comment"> A function called when an UTF-8 character is received.</span></div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="comment"> @return True to stop event propagation, false otherwise.</span></div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classWidget.html#ad7fb24de24d8809305b04ff3750f0dea">onCharacterInput</a>(<span class="keyword">const</span> CharacterInputEvent&amp;);</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="comment"> A function called when a mouse button is pressed or released.</span></div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="comment"> @return True to stop event propagation, false otherwise.</span></div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classWidget.html#a097ec1d56a06bdc9e0a4e54880def378">onMouse</a>(<span class="keyword">const</span> MouseEvent&amp;);</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="comment"> A function called when the pointer moves.</span></div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="comment"> @return True to stop event propagation, false otherwise.</span></div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classWidget.html#a655569fb78a598652e9f24cefa1fe4a5">onMotion</a>(<span class="keyword">const</span> MotionEvent&amp;);</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="comment"> A function called on scrolling (e.g. mouse wheel or track pad).</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="comment"> @return True to stop event propagation, false otherwise.</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classWidget.html#a0d78d28bd4a98c3a016a38091b2d4185">onScroll</a>(<span class="keyword">const</span> ScrollEvent&amp;);</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="comment"> A function called when the widget is resized.</span></div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWidget.html#acc0365ec4b9245bdffb8d0285be55dea">onResize</a>(<span class="keyword">const</span> ResizeEvent&amp;);</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; </div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; </div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; </div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="preprocessor">#endif // DGL_WIDGET_HPP_INCLUDED</span></div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keyword">struct </span>PrivateData;</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; PrivateData* <span class="keyword">const</span> pData;</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSubWidget.html">SubWidget</a>;</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTopLevelWidget.html">TopLevelWidget</a>;</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; </div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classWidget.html">Widget</a>)</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;};</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; </div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="comment">// --------------------------------------------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; </div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; </div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="preprocessor">#endif // DGL_WIDGET_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="astructWidget_1_1ScrollEvent_html"><div class="ttname"><a href="structWidget_1_1ScrollEvent.html">Widget::ScrollEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:206</div></div>
<div class="ttc" id="astructWidget_1_1PositionChangedEvent_html_aa6360f57c0314621b04d049708bea45c"><div class="ttname"><a href="structWidget_1_1PositionChangedEvent.html#aa6360f57c0314621b04d049708bea45c">Widget::PositionChangedEvent::PositionChangedEvent</a></div><div class="ttdeci">PositionChangedEvent() noexcept</div><div class="ttdef"><b>Definition:</b> Widget.hpp:246</div></div>
<div class="ttc" id="astructWidget_1_1ScrollEvent_html"><div class="ttname"><a href="structWidget_1_1ScrollEvent.html">Widget::ScrollEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:213</div></div>
<div class="ttc" id="astructWidget_1_1PositionChangedEvent_html_aa6360f57c0314621b04d049708bea45c"><div class="ttname"><a href="structWidget_1_1PositionChangedEvent.html#aa6360f57c0314621b04d049708bea45c">Widget::PositionChangedEvent::PositionChangedEvent</a></div><div class="ttdeci">PositionChangedEvent() noexcept</div><div class="ttdef"><b>Definition:</b> Widget.hpp:255</div></div>
<div class="ttc" id="astructGraphicsContext_html"><div class="ttname"><a href="structGraphicsContext.html">GraphicsContext</a></div><div class="ttdef"><b>Definition:</b> Base.hpp:154</div></div>
<div class="ttc" id="astructWidget_1_1KeyboardEvent_html"><div class="ttname"><a href="structWidget_1_1KeyboardEvent.html">Widget::KeyboardEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:94</div></div>
<div class="ttc" id="astructWidget_1_1BaseEvent_html"><div class="ttname"><a href="structWidget_1_1BaseEvent.html">Widget::BaseEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:64</div></div>
@@ -519,8 +528,8 @@ $(function() {
<div class="ttc" id="aclassWidget_html_a9fa874aede538b41348f1029524aea11"><div class="ttname"><a href="classWidget.html#a9fa874aede538b41348f1029524aea11">Widget::onKeyboard</a></div><div class="ttdeci">virtual bool onKeyboard(const KeyboardEvent &amp;)</div></div>
<div class="ttc" id="aclassSize_html"><div class="ttname"><a href="classSize.html">Size&lt; uint &gt;</a></div></div>
<div class="ttc" id="aclassApplication_html"><div class="ttname"><a href="classApplication.html">Application</a></div><div class="ttdef"><b>Definition:</b> Application.hpp:34</div></div>
<div class="ttc" id="astructWidget_1_1ResizeEvent_html_ac92abcdb2820807cd3d020864b96b3bd"><div class="ttname"><a href="structWidget_1_1ResizeEvent.html#ac92abcdb2820807cd3d020864b96b3bd">Widget::ResizeEvent::ResizeEvent</a></div><div class="ttdeci">ResizeEvent() noexcept</div><div class="ttdef"><b>Definition:</b> Widget.hpp:230</div></div>
<div class="ttc" id="astructWidget_1_1MotionEvent_html"><div class="ttname"><a href="structWidget_1_1MotionEvent.html">Widget::MotionEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:183</div></div>
<div class="ttc" id="astructWidget_1_1ResizeEvent_html_ac92abcdb2820807cd3d020864b96b3bd"><div class="ttname"><a href="structWidget_1_1ResizeEvent.html#ac92abcdb2820807cd3d020864b96b3bd">Widget::ResizeEvent::ResizeEvent</a></div><div class="ttdeci">ResizeEvent() noexcept</div><div class="ttdef"><b>Definition:</b> Widget.hpp:239</div></div>
<div class="ttc" id="astructWidget_1_1MotionEvent_html"><div class="ttname"><a href="structWidget_1_1MotionEvent.html">Widget::MotionEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:187</div></div>
<div class="ttc" id="aclassWidget_html_a25ff178539e226b5f30ef0335d060f2b"><div class="ttname"><a href="classWidget.html#a25ff178539e226b5f30ef0335d060f2b">Widget::show</a></div><div class="ttdeci">void show()</div></div>
<div class="ttc" id="aclassWidget_html_ac6d2e6cbb2ff96f3645493d804af07f7"><div class="ttname"><a href="classWidget.html#ac6d2e6cbb2ff96f3645493d804af07f7">Widget::setHeight</a></div><div class="ttdeci">void setHeight(uint height) noexcept</div></div>
<div class="ttc" id="aclassWidget_html_ad7fb24de24d8809305b04ff3750f0dea"><div class="ttname"><a href="classWidget.html#ad7fb24de24d8809305b04ff3750f0dea">Widget::onCharacterInput</a></div><div class="ttdeci">virtual bool onCharacterInput(const CharacterInputEvent &amp;)</div></div>
@@ -531,8 +540,8 @@ $(function() {
<div class="ttc" id="aclassWidget_html_a373419bc6353abf50a502cdbebd736e7"><div class="ttname"><a href="classWidget.html#a373419bc6353abf50a502cdbebd736e7">Widget::getApp</a></div><div class="ttdeci">Application &amp; getApp() const noexcept</div></div>
<div class="ttc" id="astructWidget_1_1KeyboardEvent_html_a5a55a296264b9999a7915f2633eacb10"><div class="ttname"><a href="structWidget_1_1KeyboardEvent.html#a5a55a296264b9999a7915f2633eacb10">Widget::KeyboardEvent::KeyboardEvent</a></div><div class="ttdeci">KeyboardEvent() noexcept</div><div class="ttdef"><b>Definition:</b> Widget.hpp:100</div></div>
<div class="ttc" id="aclassWidget_html_a4a2f8eebacdd20db505b838f1a118c6b"><div class="ttname"><a href="classWidget.html#a4a2f8eebacdd20db505b838f1a118c6b">Widget::hide</a></div><div class="ttdeci">void hide()</div></div>
<div class="ttc" id="astructWidget_1_1ScrollEvent_html_abee88b10b7b031ddcca1454e064a3cc3"><div class="ttname"><a href="structWidget_1_1ScrollEvent.html#abee88b10b7b031ddcca1454e064a3cc3">Widget::ScrollEvent::ScrollEvent</a></div><div class="ttdeci">ScrollEvent() noexcept</div><div class="ttdef"><b>Definition:</b> Widget.hpp:212</div></div>
<div class="ttc" id="astructWidget_1_1PositionChangedEvent_html"><div class="ttname"><a href="structWidget_1_1PositionChangedEvent.html">Widget::PositionChangedEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:241</div></div>
<div class="ttc" id="astructWidget_1_1ScrollEvent_html_abee88b10b7b031ddcca1454e064a3cc3"><div class="ttname"><a href="structWidget_1_1ScrollEvent.html#abee88b10b7b031ddcca1454e064a3cc3">Widget::ScrollEvent::ScrollEvent</a></div><div class="ttdeci">ScrollEvent() noexcept</div><div class="ttdef"><b>Definition:</b> Widget.hpp:220</div></div>
<div class="ttc" id="astructWidget_1_1PositionChangedEvent_html"><div class="ttname"><a href="structWidget_1_1PositionChangedEvent.html">Widget::PositionChangedEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:250</div></div>
<div class="ttc" id="aclassWidget_html_acc0365ec4b9245bdffb8d0285be55dea"><div class="ttname"><a href="classWidget.html#acc0365ec4b9245bdffb8d0285be55dea">Widget::onResize</a></div><div class="ttdeci">virtual void onResize(const ResizeEvent &amp;)</div></div>
<div class="ttc" id="aclassWidget_html_a9044d42c20ead27dba983b710c94f8d6"><div class="ttname"><a href="classWidget.html#a9044d42c20ead27dba983b710c94f8d6">Widget::getSize</a></div><div class="ttdeci">const Size&lt; uint &gt; getSize() const noexcept</div></div>
<div class="ttc" id="aclassWidget_html_abfba3652559de84ba1ae9ccbd3d35e31"><div class="ttname"><a href="classWidget.html#abfba3652559de84ba1ae9ccbd3d35e31">Widget::setId</a></div><div class="ttdeci">void setId(uint id) noexcept</div></div>
@@ -541,12 +550,12 @@ $(function() {
<div class="ttc" id="aclassWidget_html_a0ef05695aec704b0eb1eb91c2e8af07d"><div class="ttname"><a href="classWidget.html#a0ef05695aec704b0eb1eb91c2e8af07d">Widget::getWindow</a></div><div class="ttdeci">Window &amp; getWindow() const noexcept</div></div>
<div class="ttc" id="aclassPoint_html"><div class="ttname"><a href="classPoint.html">Point&lt; double &gt;</a></div></div>
<div class="ttc" id="aclassSubWidget_html"><div class="ttname"><a href="classSubWidget.html">SubWidget</a></div><div class="ttdef"><b>Definition:</b> SubWidget.hpp:39</div></div>
<div class="ttc" id="astructWidget_1_1MouseEvent_html"><div class="ttname"><a href="structWidget_1_1MouseEvent.html">Widget::MouseEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:164</div></div>
<div class="ttc" id="astructWidget_1_1ResizeEvent_html"><div class="ttname"><a href="structWidget_1_1ResizeEvent.html">Widget::ResizeEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:225</div></div>
<div class="ttc" id="astructWidget_1_1MouseEvent_html"><div class="ttname"><a href="structWidget_1_1MouseEvent.html">Widget::MouseEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:165</div></div>
<div class="ttc" id="astructWidget_1_1ResizeEvent_html"><div class="ttname"><a href="structWidget_1_1ResizeEvent.html">Widget::ResizeEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:234</div></div>
<div class="ttc" id="aclassWidget_html_aed80a9cbc4a13c01641f35dd3d8688ea"><div class="ttname"><a href="classWidget.html#aed80a9cbc4a13c01641f35dd3d8688ea">Widget::setWidth</a></div><div class="ttdeci">void setWidth(uint width) noexcept</div></div>
<div class="ttc" id="aclassWidget_html_ae1554f348fe3b2f9d4c3c5c4f9ec55bd"><div class="ttname"><a href="classWidget.html#ae1554f348fe3b2f9d4c3c5c4f9ec55bd">Widget::onDisplay</a></div><div class="ttdeci">virtual void onDisplay()=0</div></div>
<div class="ttc" id="astructWidget_1_1SpecialEvent_html_aabddc200eb8494dccac663b83248b14b"><div class="ttname"><a href="structWidget_1_1SpecialEvent.html#aabddc200eb8494dccac663b83248b14b">Widget::SpecialEvent::SpecialEvent</a></div><div class="ttdeci">SpecialEvent() noexcept</div><div class="ttdef"><b>Definition:</b> Widget.hpp:122</div></div>
<div class="ttc" id="astructWidget_1_1MotionEvent_html_a0d2bf8f5c66002bb129968f10e0cc082"><div class="ttname"><a href="structWidget_1_1MotionEvent.html#a0d2bf8f5c66002bb129968f10e0cc082">Widget::MotionEvent::MotionEvent</a></div><div class="ttdeci">MotionEvent() noexcept</div><div class="ttdef"><b>Definition:</b> Widget.hpp:187</div></div>
<div class="ttc" id="astructWidget_1_1MotionEvent_html_a0d2bf8f5c66002bb129968f10e0cc082"><div class="ttname"><a href="structWidget_1_1MotionEvent.html#a0d2bf8f5c66002bb129968f10e0cc082">Widget::MotionEvent::MotionEvent</a></div><div class="ttdeci">MotionEvent() noexcept</div><div class="ttdef"><b>Definition:</b> Widget.hpp:192</div></div>
<div class="ttc" id="aclassWidget_html_a714cf798aadb4d615f6f60a355382c02"><div class="ttname"><a href="classWidget.html#a714cf798aadb4d615f6f60a355382c02">Widget::~Widget</a></div><div class="ttdeci">virtual ~Widget()</div></div>
<div class="ttc" id="aclassWidget_html_a607b153f7d3187ca60bf21004efc1314"><div class="ttname"><a href="classWidget.html#a607b153f7d3187ca60bf21004efc1314">Widget::getTopLevelWidget</a></div><div class="ttdeci">TopLevelWidget * getTopLevelWidget() const noexcept</div></div>
<div class="ttc" id="astructWidget_1_1BaseEvent_html_a18c1114caca474cadefd9a13e2d9c693"><div class="ttname"><a href="structWidget_1_1BaseEvent.html#a18c1114caca474cadefd9a13e2d9c693">Widget::BaseEvent::BaseEvent</a></div><div class="ttdeci">BaseEvent() noexcept</div><div class="ttdef"><b>Definition:</b> Widget.hpp:70</div></div>
@@ -555,13 +564,13 @@ $(function() {
<div class="ttc" id="aclassWidget_html_ab4d9e0156e455db3ff23730f82544daa"><div class="ttname"><a href="classWidget.html#ab4d9e0156e455db3ff23730f82544daa">Widget::setSize</a></div><div class="ttdeci">void setSize(uint width, uint height) noexcept</div></div>
<div class="ttc" id="aclassTopLevelWidget_html"><div class="ttname"><a href="classTopLevelWidget.html">TopLevelWidget</a></div><div class="ttdef"><b>Definition:</b> TopLevelWidget.hpp:46</div></div>
<div class="ttc" id="astructWidget_1_1BaseEvent_html_a58da172316b49f6d79b879b74ce5792a"><div class="ttname"><a href="structWidget_1_1BaseEvent.html#a58da172316b49f6d79b879b74ce5792a">Widget::BaseEvent::~BaseEvent</a></div><div class="ttdeci">virtual ~BaseEvent() noexcept</div><div class="ttdef"><b>Definition:</b> Widget.hpp:72</div></div>
<div class="ttc" id="astructWidget_1_1MouseEvent_html_aa37fee8a593c62c53e4ca5c67ad9278f"><div class="ttname"><a href="structWidget_1_1MouseEvent.html#aa37fee8a593c62c53e4ca5c67ad9278f">Widget::MouseEvent::MouseEvent</a></div><div class="ttdeci">MouseEvent() noexcept</div><div class="ttdef"><b>Definition:</b> Widget.hpp:170</div></div>
<div class="ttc" id="astructWidget_1_1MouseEvent_html_aa37fee8a593c62c53e4ca5c67ad9278f"><div class="ttname"><a href="structWidget_1_1MouseEvent.html#aa37fee8a593c62c53e4ca5c67ad9278f">Widget::MouseEvent::MouseEvent</a></div><div class="ttdeci">MouseEvent() noexcept</div><div class="ttdef"><b>Definition:</b> Widget.hpp:172</div></div>
<div class="ttc" id="astructWidget_1_1SpecialEvent_html"><div class="ttname"><a href="structWidget_1_1SpecialEvent.html">Widget::SpecialEvent</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:117</div></div>
<div class="ttc" id="aclassWidget_html"><div class="ttname"><a href="classWidget.html">Widget</a></div><div class="ttdef"><b>Definition:</b> Widget.hpp:53</div></div>
<div class="ttc" id="aclassWidget_html_ae23d09ec0e5f0397a3451b603b407182"><div class="ttname"><a href="classWidget.html#ae23d09ec0e5f0397a3451b603b407182">Widget::getGraphicsContext</a></div><div class="ttdeci">const GraphicsContext &amp; getGraphicsContext() const noexcept</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 399
- 325
Window_8hpp_source.html View File

@@ -120,381 +120,455 @@ $(function() {
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classWindow.html"> 50</a></span>&#160;<span class="keyword">class </span><a class="code" href="classWindow.html">Window</a></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">public</span>:<span class="comment"></span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> Constructor for a regular, standalone window.</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classWindow.html#a2f6257937261fcb3e627752dfb248d47">Window</a>(<a class="code" href="classApplication.html">Application</a>&amp; app);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> Constructor for a modal window, by having another window as its parent.</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> The Application instance must be the same between the 2 windows.</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classWindow.html#a2f6257937261fcb3e627752dfb248d47">Window</a>(<a class="code" href="classApplication.html">Application</a>&amp; app, <a class="code" href="classWindow.html">Window</a>&amp; parent);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> Constructor for an embed Window without known size,</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> typically used in modules or plugins that run inside another host.</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classWindow.html#a2f6257937261fcb3e627752dfb248d47">Window</a>(<a class="code" href="classApplication.html">Application</a>&amp; app,</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; uintptr_t parentWindowHandle,</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">double</span> scaleFactor,</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">bool</span> resizable);</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> Constructor for an embed Window with known size,</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> typically used in modules or plugins that run inside another host.</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classWindow.html#a2f6257937261fcb3e627752dfb248d47">Window</a>(<a class="code" href="classApplication.html">Application</a>&amp; app,</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; uintptr_t parentWindowHandle,</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; uint width,</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; uint height,</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">double</span> scaleFactor,</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordtype">bool</span> resizable);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"> Destructor.</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classWindow.html#a62b4a97b3c2e492f1d9a46092011e2d9">~Window</a>();</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"> Whether this Window is embed into another (usually not DGL-controlled) Window.</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classWindow.html#afb840ed25c1fe17bed66d80adfc420ab">isEmbed</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment"> Check if this window is visible / mapped.</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"> Invisible windows do not receive events except resize.</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"> @see setVisible(bool)</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classWindow.html#a6be53a737e7dfcc74167962437e93b8f">isVisible</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"> Set windows visible (or not) according to @a visible.</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment"> Only valid for standalones, embed windows are always visible.</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment"> @see isVisible(), hide(), show()</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a118e0356bb6fcf081955f2bd97686036">setVisible</a>(<span class="keywordtype">bool</span> visible);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment"> Show window.</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"> This is the same as calling setVisible(true).</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> @see isVisible(), setVisible(bool)</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a8f986e19a11c4c97ed8e6ad3d0e648b7">show</a>();</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"> Hide window.</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"> This is the same as calling setVisible(false).</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"> @see isVisible(), setVisible(bool)</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a4626829d3cb9d01285f739d2bbc69b74">hide</a>();</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"> Hide window and notify application of a window close event.</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"> The application event-loop will stop when all windows have been closed.</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> For standalone windows only, has no effect if window is embed.</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> @see isEmbed()</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> @note It is possible to hide the window while not stopping the event-loop.</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> A closed window is always hidden, but the reverse is not always true.</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#ifndef DGL_FILE_BROWSER_DISABLED</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> File browser options.</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> @see Window::openFileBrowser</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="structWindow_1_1FileBrowserOptions.html"> 58</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structWindow_1_1FileBrowserOptions.html">FileBrowserOptions</a> {<span class="comment"></span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> File browser button state.</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> This allows to customize the behaviour of the file browse dialog buttons.</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="structWindow_1_1FileBrowserOptions.html#a1e10c3a7c2c7b38d9476d24d73001504"> 63</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="structWindow_1_1FileBrowserOptions.html#a1e10c3a7c2c7b38d9476d24d73001504">ButtonState</a> {</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; kButtonInvisible,</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; kButtonVisibleUnchecked,</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; kButtonVisibleChecked,</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; };</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> /** Start directory, uses current working directory if null */</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="structWindow_1_1FileBrowserOptions.html#a5726fab4e98fa998f354323e73cf41d6"> 70</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structWindow_1_1FileBrowserOptions.html#a5726fab4e98fa998f354323e73cf41d6">startDir</a>;<span class="comment"></span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> /** File browser dialog window title, uses &quot;FileBrowser&quot; if null */</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structWindow_1_1FileBrowserOptions.html#a7d035823a9138df917f7460d06a33a00"> 72</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structWindow_1_1FileBrowserOptions.html#a7d035823a9138df917f7460d06a33a00">title</a>;<span class="comment"></span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> /** File browser dialog window width */</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structWindow_1_1FileBrowserOptions.html#ab696e00b9c17130d8d3b88279aaa86af"> 74</a></span>&#160; uint <a class="code" href="structWindow_1_1FileBrowserOptions.html#ab696e00b9c17130d8d3b88279aaa86af">width</a>;<span class="comment"></span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> /** File browser dialog window height */</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structWindow_1_1FileBrowserOptions.html#a808aab3ee364a65672841b323c1bd6ed"> 76</a></span>&#160; uint <a class="code" href="structWindow_1_1FileBrowserOptions.html#a808aab3ee364a65672841b323c1bd6ed">height</a>;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// TODO file filter</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment"> File browser buttons.</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structWindow_1_1FileBrowserOptions_1_1Buttons.html"> 82</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structWindow_1_1FileBrowserOptions_1_1Buttons.html">Buttons</a> {<span class="comment"></span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> /** Whether to list all files vs only those with matching file extension */</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structWindow_1_1FileBrowserOptions_1_1Buttons.html#a069dc1f379875585b536115bceaeacc3"> 84</a></span>&#160; <a class="code" href="structWindow_1_1FileBrowserOptions.html#a1e10c3a7c2c7b38d9476d24d73001504">ButtonState</a> <a class="code" href="structWindow_1_1FileBrowserOptions_1_1Buttons.html#a069dc1f379875585b536115bceaeacc3">listAllFiles</a>;<span class="comment"></span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"> /** Whether to show hidden files */</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structWindow_1_1FileBrowserOptions_1_1Buttons.html#a866b55e40b2eeb2f57c85d51aa6fa856"> 86</a></span>&#160; <a class="code" href="structWindow_1_1FileBrowserOptions.html#a1e10c3a7c2c7b38d9476d24d73001504">ButtonState</a> <a class="code" href="structWindow_1_1FileBrowserOptions_1_1Buttons.html#a866b55e40b2eeb2f57c85d51aa6fa856">showHidden</a>;<span class="comment"></span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"> /** Whether to show list of places (bookmarks) */</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structWindow_1_1FileBrowserOptions_1_1Buttons.html#a669f3aafa3eef0d48d7fcb9c7c020678"> 88</a></span>&#160; <a class="code" href="structWindow_1_1FileBrowserOptions.html#a1e10c3a7c2c7b38d9476d24d73001504">ButtonState</a> <a class="code" href="structWindow_1_1FileBrowserOptions_1_1Buttons.html#a669f3aafa3eef0d48d7fcb9c7c020678">showPlaces</a>;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"> /** Constuctor for default values */</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structWindow_1_1FileBrowserOptions_1_1Buttons.html#a0483d4ab39bdec4f6e69699fb3c272dd"> 91</a></span>&#160; <a class="code" href="structWindow_1_1FileBrowserOptions_1_1Buttons.html#a0483d4ab39bdec4f6e69699fb3c272dd">Buttons</a>()</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; : <a class="code" href="structWindow_1_1FileBrowserOptions_1_1Buttons.html#a069dc1f379875585b536115bceaeacc3">listAllFiles</a>(kButtonVisibleChecked),</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="structWindow_1_1FileBrowserOptions_1_1Buttons.html#a866b55e40b2eeb2f57c85d51aa6fa856">showHidden</a>(kButtonVisibleUnchecked),</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="structWindow_1_1FileBrowserOptions_1_1Buttons.html#a669f3aafa3eef0d48d7fcb9c7c020678">showPlaces</a>(kButtonVisibleUnchecked) {}</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; } buttons;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"> /** Constuctor for default values */</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="structWindow_1_1FileBrowserOptions.html#ad34fe0200a1bd00028f7753aeba9b2fc"> 98</a></span>&#160; <a class="code" href="structWindow_1_1FileBrowserOptions.html#ad34fe0200a1bd00028f7753aeba9b2fc">FileBrowserOptions</a>()</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; : <a class="code" href="structWindow_1_1FileBrowserOptions.html#a5726fab4e98fa998f354323e73cf41d6">startDir</a>(nullptr),</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="structWindow_1_1FileBrowserOptions.html#a7d035823a9138df917f7460d06a33a00">title</a>(nullptr),</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="structWindow_1_1FileBrowserOptions.html#ab696e00b9c17130d8d3b88279aaa86af">width</a>(0),</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="structWindow_1_1FileBrowserOptions.html#a808aab3ee364a65672841b323c1bd6ed">height</a>(0),</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; buttons() {}</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; };</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#endif // DGL_FILE_BROWSER_DISABLED</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment"> Constructor for a regular, standalone window.</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classWindow.html#a2f6257937261fcb3e627752dfb248d47">Window</a>(<a class="code" href="classApplication.html">Application</a>&amp; app);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"> Constructor for a modal window, by having another window as its parent.</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment"> The Application instance must be the same between the 2 windows.</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classWindow.html#a2f6257937261fcb3e627752dfb248d47">Window</a>(<a class="code" href="classApplication.html">Application</a>&amp; app, <a class="code" href="classWindow.html">Window</a>&amp; parent);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"> Constructor for an embed Window without known size,</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"> typically used in modules or plugins that run inside another host.</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classWindow.html#a2f6257937261fcb3e627752dfb248d47">Window</a>(<a class="code" href="classApplication.html">Application</a>&amp; app,</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; uintptr_t parentWindowHandle,</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">double</span> scaleFactor,</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">bool</span> resizable);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> Constructor for an embed Window with known size,</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> typically used in modules or plugins that run inside another host.</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a35055c04498121d39741bfcd5082705b">close</a>();</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">bool</span> isResizable() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">void</span> setResizable(<span class="keywordtype">bool</span> resizable);</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> Get width.</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; uint <a class="code" href="classWindow.html#ab19430997dd1b3d7bf9bd3640d73b007">getWidth</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"> Get height.</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; uint <a class="code" href="classWindow.html#a5d53bcba43455f8f77cfcbac61ec6c8e">getHeight</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment"> Get size.</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="classSize.html">Size&lt;uint&gt;</a> <a class="code" href="classWindow.html#acd158570648b07967a4af011d6223eea">getSize</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"> Set width.</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#acfc9a6f22176e204009acbb387d3861c">setWidth</a>(uint width);</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> Set height.</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a13f314cfd5c9048ec8ea0b88b611f54d">setHeight</a>(uint height);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"> Set size using @a width and @a height values.</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a89bd0c91920029ddcb21b8975e8b47d9">setSize</a>(uint width, uint height);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="comment"> Set size.</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a89bd0c91920029ddcb21b8975e8b47d9">setSize</a>(<span class="keyword">const</span> <a class="code" href="classSize.html">Size&lt;uint&gt;</a>&amp; size);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment"> Get the title of the window previously set with setTitle().</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classWindow.html#a2f6257937261fcb3e627752dfb248d47">Window</a>(<a class="code" href="classApplication.html">Application</a>&amp; app,</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; uintptr_t parentWindowHandle,</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; uint width,</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; uint height,</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">double</span> scaleFactor,</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">bool</span> resizable);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment"> Destructor.</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classWindow.html#a62b4a97b3c2e492f1d9a46092011e2d9">~Window</a>();</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"> Whether this Window is embed into another (usually not DGL-controlled) Window.</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classWindow.html#afb840ed25c1fe17bed66d80adfc420ab">isEmbed</a>() const noexcept;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment"> Check if this window is visible / mapped.</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"> Invisible windows do not receive events except resize.</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> @see setVisible(bool)</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classWindow.html#a6be53a737e7dfcc74167962437e93b8f">isVisible</a>() const noexcept;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment"> Set windows visible (or not) according to @a visible.</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> Only valid for standalones, embed windows are always visible.</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"> @see isVisible(), hide(), show()</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a118e0356bb6fcf081955f2bd97686036">setVisible</a>(<span class="keywordtype">bool</span> visible);</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"> Show window.</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> This is the same as calling setVisible(true).</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> @see isVisible(), setVisible(bool)</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a8f986e19a11c4c97ed8e6ad3d0e648b7">show</a>();</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="comment"> Hide window.</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment"> This is the same as calling setVisible(false).</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment"> @see isVisible(), setVisible(bool)</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classWindow.html#af437e6afd9104708f30ab769d9afce7a">getTitle</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a4626829d3cb9d01285f739d2bbc69b74">hide</a>();</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment"> Set the title of the window, typically displayed in the title bar or in window switchers.</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment"> This only makes sense for non-embedded windows.</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#ab2f1b80c5dfcafd2cbdf6b85b756fdbd">setTitle</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* title);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment"> Check if key repeat events are ignored.</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classWindow.html#ab5cbe1298a28a1860319198a4c843183">isIgnoringKeyRepeat</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment"> Set to ignore (or not) key repeat events according to @a ignore.</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment"> Hide window and notify application of a window close event.</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"> The application event-loop will stop when all windows have been closed.</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment"> For standalone windows only, has no effect if window is embed.</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment"> @see isEmbed()</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment"> @note It is possible to hide the window while not stopping the event-loop.</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> A closed window is always hidden, but the reverse is not always true.</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a35055c04498121d39741bfcd5082705b">close</a>();</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment"> Check if this window is resizable (by the user or window manager).</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment"> @see setResizable</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a36a04e5f5ecc6ee5228f9da6df43e865">setIgnoringKeyRepeat</a>(<span class="keywordtype">bool</span> ignore) noexcept;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classWindow.html#a1b888a7e6a5562968a253b915ccb7825">isResizable</a>() const noexcept;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"> Add a callback function to be triggered on every idle cycle or on a specific timer frequency.</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> You can add more than one, and remove them at anytime with removeIdleCallback().</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> This can be used to perform some action at a regular interval with relatively low frequency.</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment"> If providing a timer frequency, there are a few things to note:</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment"> 1. There is a platform-specific limit to the number of supported timers, and overhead associated with each,</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment"> so you should create only a few timers and perform several tasks in one if necessary.</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment"> 2. This timer frequency is not guaranteed to have a resolution better than 10ms</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"> (the maximum timer resolution on Windows) and may be rounded up if it is too short.</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment"> On X11 and MacOS, a resolution of about 1ms can usually be relied on.</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classWindow.html#ad17a7f53a62673982f4861cdc27fd54e">addIdleCallback</a>(<a class="code" href="structIdleCallback.html">IdleCallback</a>* callback, uint timerFrequencyInMs = 0);</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment"> Remove an idle callback previously added via addIdleCallback().</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classWindow.html#a5c5c4f53c53cb081b39a40d5ce9afd65">removeIdleCallback</a>(<a class="code" href="structIdleCallback.html">IdleCallback</a>* callback);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment"> Get the application associated with this window.</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classApplication.html">Application</a>&amp; <a class="code" href="classWindow.html#a92600b2e0715646b80474fccbcadf336">getApp</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment"> Get the graphics context associated with this window.</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment"> GraphicsContext is an empty struct and needs to be casted into a different type in order to be usable,</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment"> for example GraphicsContext.</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment"> @see CairoSubWidget, CairoTopLevelWidget</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">const</span> <a class="code" href="structGraphicsContext.html">GraphicsContext</a>&amp; <a class="code" href="classWindow.html#aa73a74df08f29d576e18cf1d61ea9897">getGraphicsContext</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="comment"> Get the &quot;native&quot; window handle.</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="comment"> Returned value depends on the platform:</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="comment"> - HaikuOS: This is a pointer to a `BView`.</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment"> - MacOS: This is a pointer to an `NSView*`.</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment"> - Windows: This is a `HWND`.</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="comment"> - Everything else: This is an [X11] `Window`.</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; uintptr_t <a class="code" href="classWindow.html#a01a9277a2e19766947f9a99b43147bfd">getNativeWindowHandle</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="comment"> Get the scale factor requested for this window.</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment"> This is purely informational, and up to developers to choose what to do with it.</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment"> If you do not want to deal with this yourself,</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment"> consider using setGeometryConstraints() where you can specify to automatically scale the window contents.</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment"> @see setGeometryConstraints</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordtype">double</span> <a class="code" href="classWindow.html#a77774c8ce4b01113fcd525079f9b8787">getScaleFactor</a>() <span class="keyword">const</span> noexcept;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment"> Grab the keyboard input focus.</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a03985e4ca2c9b4fcf572b5029e8c0115">focus</a>();</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="comment"> Request repaint of this window, for the entire area.</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a729ab39a1ac99d81b289e08a42582ade">repaint</a>() noexcept;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment"> Request partial repaint of this window, with bounds according to @a rect.</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a729ab39a1ac99d81b289e08a42582ade">repaint</a>(<span class="keyword">const</span> <a class="code" href="classRectangle.html">Rectangle&lt;uint&gt;</a>&amp; rect) noexcept;</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment"> Run this window as a modal, blocking input events from the parent.</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment"> Only valid for windows that have been created with another window as parent (as passed in the constructor).</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment"> Can optionally block-wait, but such option is only available if the application is running as standalone.</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a00108f3d1c5831d02b0c67cd4f226e4d">runAsModal</a>(<span class="keywordtype">bool</span> blockWait = <span class="keyword">false</span>);</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment"> Set geometry constraints for the Window when resized by the user, and optionally scale contents automatically.</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"> Set window as resizable (by the user or window manager).</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> It is always possible to resize a window programmatically, which is not the same as the user being allowed to it.</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> @note This function does nothing for plugins, where the resizable state is set via macro.</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment"> @see DISTRHO_UI_USER_RESIZABLE</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a10f6ff4b0f3e714298a4ac612edcdd7e">setResizable</a>(<span class="keywordtype">bool</span> resizable);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"> Get width.</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; uint <a class="code" href="classWindow.html#ab19430997dd1b3d7bf9bd3640d73b007">getWidth</a>() const noexcept;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment"> Get height.</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; uint <a class="code" href="classWindow.html#a5d53bcba43455f8f77cfcbac61ec6c8e">getHeight</a>() const noexcept;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="comment"> Get size.</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classSize.html">Size</a>&lt;uint&gt; <a class="code" href="classWindow.html#acd158570648b07967a4af011d6223eea">getSize</a>() const noexcept;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment"> Set width.</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#acfc9a6f22176e204009acbb387d3861c">setWidth</a>(uint width);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment"> Set height.</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a13f314cfd5c9048ec8ea0b88b611f54d">setHeight</a>(uint height);</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="comment"> Set size using @a width and @a height values.</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a89bd0c91920029ddcb21b8975e8b47d9">setSize</a>(uint width, uint height);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="comment"> Set size.</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a89bd0c91920029ddcb21b8975e8b47d9">setSize</a>(const <a class="code" href="classSize.html">Size</a>&lt;uint&gt;&amp; size);</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment"> Get the title of the window previously set with setTitle().</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; const <span class="keywordtype">char</span>* <a class="code" href="classWindow.html#af437e6afd9104708f30ab769d9afce7a">getTitle</a>() const noexcept;</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment"> Set the title of the window, typically displayed in the title bar or in window switchers.</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment"> This only makes sense for non-embedded windows.</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#ab2f1b80c5dfcafd2cbdf6b85b756fdbd">setTitle</a>(const <span class="keywordtype">char</span>* title);</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment"> Check if key repeat events are ignored.</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classWindow.html#ab5cbe1298a28a1860319198a4c843183">isIgnoringKeyRepeat</a>() const noexcept;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment"> Set to ignore (or not) key repeat events according to @a ignore.</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a36a04e5f5ecc6ee5228f9da6df43e865">setIgnoringKeyRepeat</a>(<span class="keywordtype">bool</span> ignore) noexcept;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment"> Add a callback function to be triggered on every idle cycle or on a specific timer frequency.</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="comment"> You can add more than one, and remove them at anytime with removeIdleCallback().</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment"> This can be used to perform some action at a regular interval with relatively low frequency.</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment"> If providing a timer frequency, there are a few things to note:</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment"> 1. There is a platform-specific limit to the number of supported timers, and overhead associated with each,</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment"> so you should create only a few timers and perform several tasks in one if necessary.</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment"> 2. This timer frequency is not guaranteed to have a resolution better than 10ms</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="comment"> (the maximum timer resolution on Windows) and may be rounded up if it is too short.</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment"> On X11 and MacOS, a resolution of about 1ms can usually be relied on.</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#aece9e08d0c4d3b6ec02cbb804583c175">setGeometryConstraints</a>(uint minimumWidth,</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; uint minimumHeight,</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordtype">bool</span> keepAspectRatio = <span class="keyword">false</span>,</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordtype">bool</span> automaticallyScale = <span class="keyword">false</span>);</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; </div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="comment">/*</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment"> void setTransientWinId(uintptr_t winId);</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; </div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;isIgnoringKeyRepeat()&quot;</span>)</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> getIgnoringKeyRepeat() <span class="keyword">const</span> noexcept { <span class="keywordflow">return</span> <a class="code" href="classWindow.html#ab5cbe1298a28a1860319198a4c843183">isIgnoringKeyRepeat</a>(); }</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; </div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;getScaleFactor()&quot;</span>)</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">double</span> getScaling() <span class="keyword">const</span> noexcept { <span class="keywordflow">return</span> <a class="code" href="classWindow.html#a77774c8ce4b01113fcd525079f9b8787">getScaleFactor</a>(); }</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; </div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;runAsModal(bool)&quot;</span>)</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> exec(<span class="keywordtype">bool</span> blockWait = <span class="keyword">false</span>) { <a class="code" href="classWindow.html#a00108f3d1c5831d02b0c67cd4f226e4d">runAsModal</a>(blockWait); }</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; </div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="keyword">protected</span>:<span class="comment"></span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment"> A function called when the window is attempted to be closed.</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="comment"> Returning true closes the window, which is the default behaviour.</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="comment"> Override this method and return false to prevent the window from being closed by the user.</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classWindow.html#a979cfd2bc52650f07b789217d6c6f570">onClose</a>();</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="comment"> A function called when the window gains or loses the keyboard focus.</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="comment"> The default implementation does nothing.</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a754415613248bd3b5068d76c4cfe3704">onFocus</a>(<span class="keywordtype">bool</span> <a class="code" href="classWindow.html#a03985e4ca2c9b4fcf572b5029e8c0115">focus</a>, CrossingMode mode);</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="comment"> A function called when the window is resized.</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="comment"> If there is a top-level widget associated with this window, its size will be set right after this function.</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a04207502372d42d0d17604b104c1d8d6">onReshape</a>(uint width, uint height);</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; </div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">struct </span>PrivateData;</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; PrivateData* <span class="keyword">const</span> pData;</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classApplication.html">Application</a>;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTopLevelWidget.html">TopLevelWidget</a>;</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; </div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classWindow.html">Window</a>);</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;};</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; </div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; </div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; </div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="comment">/* TODO</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="comment"> * add focusEvent with CrossingMode arg</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="comment"> * add eventcrossing/enter-leave event</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; </div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor">#if 0</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor">#ifndef DGL_FILE_BROWSER_DISABLED</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classWindow.html#ad17a7f53a62673982f4861cdc27fd54e">addIdleCallback</a>(<a class="code" href="structIdleCallback.html">IdleCallback</a>* callback, uint timerFrequencyInMs = 0);</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment"> Remove an idle callback previously added via addIdleCallback().</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classWindow.html#a5c5c4f53c53cb081b39a40d5ce9afd65">removeIdleCallback</a>(<a class="code" href="structIdleCallback.html">IdleCallback</a>* callback);</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment"> Get the application associated with this window.</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="classApplication.html">Application</a>&amp; <a class="code" href="classWindow.html#a92600b2e0715646b80474fccbcadf336">getApp</a>() const noexcept;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="comment"> Get the graphics context associated with this window.</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="comment"> GraphicsContext is an empty struct and needs to be casted into a different type in order to be usable,</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="comment"> for example GraphicsContext.</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="comment"> @see CairoSubWidget, CairoTopLevelWidget</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; const <a class="code" href="structGraphicsContext.html">GraphicsContext</a>&amp; <a class="code" href="classWindow.html#aa73a74df08f29d576e18cf1d61ea9897">getGraphicsContext</a>() const noexcept;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="comment"> Get the &quot;native&quot; window handle.</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="comment"> Returned value depends on the platform:</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="comment"> - HaikuOS: This is a pointer to a `BView`.</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="comment"> - MacOS: This is a pointer to an `NSView*`.</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="comment"> - Windows: This is a `HWND`.</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="comment"> - Everything else: This is an [X11] `Window`.</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; uintptr_t <a class="code" href="classWindow.html#a01a9277a2e19766947f9a99b43147bfd">getNativeWindowHandle</a>() const noexcept;</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="comment"> Get the scale factor requested for this window.</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="comment"> This is purely informational, and up to developers to choose what to do with it.</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="comment"> If you do not want to deal with this yourself,</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="comment"> consider using setGeometryConstraints() where you can specify to automatically scale the window contents.</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="comment"> @see setGeometryConstraints</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordtype">double</span> <a class="code" href="classWindow.html#a77774c8ce4b01113fcd525079f9b8787">getScaleFactor</a>() const noexcept;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="comment"> Grab the keyboard input focus.</span></div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a03985e4ca2c9b4fcf572b5029e8c0115">focus</a>();</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; </div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor">#ifndef DGL_FILE_BROWSER_DISABLED</span></div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="comment"> Open a file browser dialog with this window as parent.</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="comment"> A few options can be specified to setup the dialog.</span></div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="comment"> If a path is selected, onFileSelected() will be called with the user chosen path.</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="comment"> If the user cancels or does not pick a file, onFileSelected() will be called with nullptr as filename.</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="comment"> This function does not block the event loop.</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classWindow.html#aa0d7a058ff1194def1a07edb21c30f4c">openFileBrowser</a>(<span class="keyword">const</span> FileBrowserOptions&amp; options);</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="comment"> File browser options.</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="comment"> Request repaint of this window, for the entire area.</span></div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">struct </span>FileBrowserOptions {</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* startDir;</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* title;</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; uint width;</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; uint height;</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="comment"> File browser buttons.</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="comment"> 0 means hidden.</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="comment"> 1 means visible and unchecked.</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="comment"> 2 means visible and checked.</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">struct </span>Buttons {</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; uint listAllFiles;</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; uint showHidden;</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; uint showPlaces;</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="comment"> /** Constuctor for default values */</span></div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; Buttons()</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; : listAllFiles(2),</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; showHidden(1),</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; showPlaces(1) {}</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; } buttons;</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="comment"> /** Constuctor for default values */</span></div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; FileBrowserOptions()</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; : startDir(nullptr),</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; title(nullptr),</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; width(0),</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; height(0),</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; buttons() {}</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; };</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor">#endif // DGL_FILE_BROWSER_DISABLED</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; </div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordtype">void</span> addIdleCallback(<a class="code" href="structIdleCallback.html">IdleCallback</a>* <span class="keyword">const</span> callback);</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordtype">void</span> removeIdleCallback(<a class="code" href="structIdleCallback.html">IdleCallback</a>* <span class="keyword">const</span> callback);</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; </div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="preprocessor">#ifndef DGL_FILE_BROWSER_DISABLED</span></div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordtype">bool</span> openFileBrowser(<span class="keyword">const</span> FileBrowserOptions&amp; options);</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; </div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor">#ifndef DGL_FILE_BROWSER_DISABLED</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> fileBrowserSelected(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename);</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; </div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordtype">bool</span> handlePluginKeyboard(<span class="keyword">const</span> <span class="keywordtype">bool</span> press, <span class="keyword">const</span> uint key);</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordtype">bool</span> handlePluginSpecial(<span class="keyword">const</span> <span class="keywordtype">bool</span> press, <span class="keyword">const</span> Key key);</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; </div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; </div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor">#endif // DGL_WINDOW_HPP_INCLUDED</span></div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a729ab39a1ac99d81b289e08a42582ade">repaint</a>() noexcept;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="comment"> Request partial repaint of this window, with bounds according to @a rect.</span></div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a729ab39a1ac99d81b289e08a42582ade">repaint</a>(const <a class="code" href="classRectangle.html">Rectangle</a>&lt;uint&gt;&amp; rect) noexcept;</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="comment"> Run this window as a modal, blocking input events from the parent.</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="comment"> Only valid for windows that have been created with another window as parent (as passed in the constructor).</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="comment"> Can optionally block-wait, but such option is only available if the application is running as standalone.</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a00108f3d1c5831d02b0c67cd4f226e4d">runAsModal</a>(<span class="keywordtype">bool</span> blockWait = false);</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="comment"> Set geometry constraints for the Window when resized by the user, and optionally scale contents automatically.</span></div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classWindow.html#aece9e08d0c4d3b6ec02cbb804583c175">setGeometryConstraints</a>(uint minimumWidth,</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; uint minimumHeight,</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordtype">bool</span> keepAspectRatio = false,</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordtype">bool</span> automaticallyScale = false);</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="comment"> /** DEPRECATED Use isIgnoringKeyRepeat(). */</span></div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; DISTRHO_DEPRECATED_BY(&quot;<a class="code" href="classWindow.html#ab5cbe1298a28a1860319198a4c843183">isIgnoringKeyRepeat</a>()&quot;)</div>
<div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classWindow.html#a0e1895a4e93ee0d7c34a9b10953c968e"> 355</a></span>&#160; inline <span class="keywordtype">bool</span> <a class="code" href="classWindow.html#a0e1895a4e93ee0d7c34a9b10953c968e">getIgnoringKeyRepeat</a>() const noexcept { <span class="keywordflow">return</span> <a class="code" href="classWindow.html#ab5cbe1298a28a1860319198a4c843183">isIgnoringKeyRepeat</a>(); }</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="comment"> /** DEPRECATED Use getScaleFactor(). */</span></div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;getScaleFactor()&quot;</span>)</div>
<div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="classWindow.html#a9b94fea3236d1d49e3fbd53a8d9cc70b"> 359</a></span>&#160; inline <span class="keywordtype">double</span> <a class="code" href="classWindow.html#a9b94fea3236d1d49e3fbd53a8d9cc70b">getScaling</a>() const noexcept { <span class="keywordflow">return</span> <a class="code" href="classWindow.html#a77774c8ce4b01113fcd525079f9b8787">getScaleFactor</a>(); }</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="comment"> /** DEPRECATED Use runAsModal(bool). */</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;runAsModal(bool)&quot;</span>)</div>
<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="classWindow.html#addce529703b96ff6742428c8bd8c4cba"> 363</a></span>&#160; inline <span class="keywordtype">void</span> <a class="code" href="classWindow.html#addce529703b96ff6742428c8bd8c4cba">exec</a>(<span class="keywordtype">bool</span> blockWait = false) { <a class="code" href="classWindow.html#a00108f3d1c5831d02b0c67cd4f226e4d">runAsModal</a>(blockWait); }</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; </div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="comment">// TESTING, DO NOT USE</span></div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordtype">void</span> leaveContext();</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; </div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="keyword">protected</span>:<span class="comment"></span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="comment"> A function called when the window is attempted to be closed.</span></div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="comment"> Returning true closes the window, which is the default behaviour.</span></div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="comment"> Override this method and return false to prevent the window from being closed by the user.</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="comment"> This method is not used for embed windows, and not even made available in DISTRHO_NAMESPACE::UI.</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="comment"> For embed windows, closing is handled by the host/parent process and we have no control over it.</span></div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="comment"> As such, a close action on embed windows will always succeed and cannot be cancelled.</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classWindow.html#a979cfd2bc52650f07b789217d6c6f570">onClose</a>();</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="comment"> A function called when the window gains or loses the keyboard focus.</span></div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="comment"> The default implementation does nothing.</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a754415613248bd3b5068d76c4cfe3704">onFocus</a>(<span class="keywordtype">bool</span> <a class="code" href="classWindow.html#a03985e4ca2c9b4fcf572b5029e8c0115">focus</a>, CrossingMode mode);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="comment"> A function called when the window is resized.</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="comment"> If there is a top-level widget associated with this window, its size will be set right after this function.</span></div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="comment"> The default implementation sets up drawing context where necessary.</span></div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a04207502372d42d0d17604b104c1d8d6">onReshape</a>(uint width, uint height);</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="comment"> A function called when scale factor requested for this window changes.</span></div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="comment"> The default implementation does nothing.</span></div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="comment"> WARNING function needs a proper name</span></div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a306742ddc21c7c41f59b41e5761a38c7">onScaleFactorChanged</a>(<span class="keywordtype">double</span> scaleFactor);</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; </div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor">#ifndef DGL_FILE_BROWSER_DISABLED</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="comment"> A function called when a path is selected by the user, as triggered by openFileBrowser().</span></div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="comment"> This action happens after the user confirms the action, so the file browser dialog will be closed at this point.</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="comment"> The default implementation does nothing.</span></div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a887287be0807b58aa701139c802939a3">onFileSelected</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename);</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="comment"> /** DEPRECATED Use onFileSelected(). */</span></div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; DISTRHO_DEPRECATED_BY(<span class="stringliteral">&quot;onFileSelected(const char*)&quot;</span>)</div>
<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="classWindow.html#a6ec017881675f860ae746dad6c021b63"> 410</a></span>&#160; inline virtual <span class="keywordtype">void</span> <a class="code" href="classWindow.html#a6ec017881675f860ae746dad6c021b63">fileBrowserSelected</a>(const <span class="keywordtype">char</span>* filename) { <span class="keywordflow">return</span> <a class="code" href="classWindow.html#a887287be0807b58aa701139c802939a3">onFileSelected</a>(filename); }</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; </div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keyword">struct </span>PrivateData;</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; PrivateData* <span class="keyword">const</span> pData;</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classApplication.html">Application</a>;</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTopLevelWidget.html">TopLevelWidget</a>;</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; </div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(<a class="code" href="classWindow.html">Window</a>);</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;};</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; </div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; </div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;END_NAMESPACE_DGL</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; </div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="comment">/* TODO</span></div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="comment"> * add eventcrossing/enter-leave event</span></div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="preprocessor">#if 0</span></div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordtype">bool</span> handlePluginKeyboard(<span class="keyword">const</span> <span class="keywordtype">bool</span> press, <span class="keyword">const</span> uint key);</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordtype">bool</span> handlePluginSpecial(<span class="keyword">const</span> <span class="keywordtype">bool</span> press, <span class="keyword">const</span> Key key);</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; </div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="comment">// -----------------------------------------------------------------------</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; </div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="preprocessor">#endif // DGL_WINDOW_HPP_INCLUDED</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassWindow_html_a00108f3d1c5831d02b0c67cd4f226e4d"><div class="ttname"><a href="classWindow.html#a00108f3d1c5831d02b0c67cd4f226e4d">Window::runAsModal</a></div><div class="ttdeci">void runAsModal(bool blockWait=false)</div></div>
<div class="ttc" id="aclassWindow_html_a1b888a7e6a5562968a253b915ccb7825"><div class="ttname"><a href="classWindow.html#a1b888a7e6a5562968a253b915ccb7825">Window::isResizable</a></div><div class="ttdeci">bool isResizable() const noexcept</div></div>
<div class="ttc" id="astructWindow_1_1FileBrowserOptions_html_a7d035823a9138df917f7460d06a33a00"><div class="ttname"><a href="structWindow_1_1FileBrowserOptions.html#a7d035823a9138df917f7460d06a33a00">Window::FileBrowserOptions::title</a></div><div class="ttdeci">const char * title</div><div class="ttdef"><b>Definition:</b> Window.hpp:72</div></div>
<div class="ttc" id="aclassWindow_html_a6ec017881675f860ae746dad6c021b63"><div class="ttname"><a href="classWindow.html#a6ec017881675f860ae746dad6c021b63">Window::fileBrowserSelected</a></div><div class="ttdeci">virtual void fileBrowserSelected(const char *filename)</div><div class="ttdef"><b>Definition:</b> Window.hpp:410</div></div>
<div class="ttc" id="aclassWindow_html_a13f314cfd5c9048ec8ea0b88b611f54d"><div class="ttname"><a href="classWindow.html#a13f314cfd5c9048ec8ea0b88b611f54d">Window::setHeight</a></div><div class="ttdeci">void setHeight(uint height)</div></div>
<div class="ttc" id="aclassWindow_html_a754415613248bd3b5068d76c4cfe3704"><div class="ttname"><a href="classWindow.html#a754415613248bd3b5068d76c4cfe3704">Window::onFocus</a></div><div class="ttdeci">virtual void onFocus(bool focus, CrossingMode mode)</div></div>
<div class="ttc" id="astructWindow_1_1FileBrowserOptions_html_a5726fab4e98fa998f354323e73cf41d6"><div class="ttname"><a href="structWindow_1_1FileBrowserOptions.html#a5726fab4e98fa998f354323e73cf41d6">Window::FileBrowserOptions::startDir</a></div><div class="ttdeci">const char * startDir</div><div class="ttdef"><b>Definition:</b> Window.hpp:70</div></div>
<div class="ttc" id="astructWindow_1_1FileBrowserOptions_html_ab696e00b9c17130d8d3b88279aaa86af"><div class="ttname"><a href="structWindow_1_1FileBrowserOptions.html#ab696e00b9c17130d8d3b88279aaa86af">Window::FileBrowserOptions::width</a></div><div class="ttdeci">uint width</div><div class="ttdef"><b>Definition:</b> Window.hpp:74</div></div>
<div class="ttc" id="astructGraphicsContext_html"><div class="ttname"><a href="structGraphicsContext.html">GraphicsContext</a></div><div class="ttdef"><b>Definition:</b> Base.hpp:154</div></div>
<div class="ttc" id="aclassWindow_html_a8f986e19a11c4c97ed8e6ad3d0e648b7"><div class="ttname"><a href="classWindow.html#a8f986e19a11c4c97ed8e6ad3d0e648b7">Window::show</a></div><div class="ttdeci">void show()</div></div>
<div class="ttc" id="astructWindow_1_1FileBrowserOptions_1_1Buttons_html"><div class="ttname"><a href="structWindow_1_1FileBrowserOptions_1_1Buttons.html">Window::FileBrowserOptions::Buttons</a></div><div class="ttdef"><b>Definition:</b> Window.hpp:82</div></div>
<div class="ttc" id="aclassWindow_html_a01a9277a2e19766947f9a99b43147bfd"><div class="ttname"><a href="classWindow.html#a01a9277a2e19766947f9a99b43147bfd">Window::getNativeWindowHandle</a></div><div class="ttdeci">uintptr_t getNativeWindowHandle() const noexcept</div></div>
<div class="ttc" id="aclassWindow_html_a6be53a737e7dfcc74167962437e93b8f"><div class="ttname"><a href="classWindow.html#a6be53a737e7dfcc74167962437e93b8f">Window::isVisible</a></div><div class="ttdeci">bool isVisible() const noexcept</div></div>
<div class="ttc" id="astructWindow_1_1FileBrowserOptions_html_ad34fe0200a1bd00028f7753aeba9b2fc"><div class="ttname"><a href="structWindow_1_1FileBrowserOptions.html#ad34fe0200a1bd00028f7753aeba9b2fc">Window::FileBrowserOptions::FileBrowserOptions</a></div><div class="ttdeci">FileBrowserOptions()</div><div class="ttdef"><b>Definition:</b> Window.hpp:98</div></div>
<div class="ttc" id="aclassWindow_html_ab2f1b80c5dfcafd2cbdf6b85b756fdbd"><div class="ttname"><a href="classWindow.html#ab2f1b80c5dfcafd2cbdf6b85b756fdbd">Window::setTitle</a></div><div class="ttdeci">void setTitle(const char *title)</div></div>
<div class="ttc" id="aclassWindow_html_aece9e08d0c4d3b6ec02cbb804583c175"><div class="ttname"><a href="classWindow.html#aece9e08d0c4d3b6ec02cbb804583c175">Window::setGeometryConstraints</a></div><div class="ttdeci">void setGeometryConstraints(uint minimumWidth, uint minimumHeight, bool keepAspectRatio=false, bool automaticallyScale=false)</div></div>
<div class="ttc" id="aclassWindow_html"><div class="ttname"><a href="classWindow.html">Window</a></div><div class="ttdef"><b>Definition:</b> Window.hpp:50</div></div>
<div class="ttc" id="aclassWindow_html_a306742ddc21c7c41f59b41e5761a38c7"><div class="ttname"><a href="classWindow.html#a306742ddc21c7c41f59b41e5761a38c7">Window::onScaleFactorChanged</a></div><div class="ttdeci">virtual void onScaleFactorChanged(double scaleFactor)</div></div>
<div class="ttc" id="astructWindow_1_1FileBrowserOptions_1_1Buttons_html_a069dc1f379875585b536115bceaeacc3"><div class="ttname"><a href="structWindow_1_1FileBrowserOptions_1_1Buttons.html#a069dc1f379875585b536115bceaeacc3">Window::FileBrowserOptions::Buttons::listAllFiles</a></div><div class="ttdeci">ButtonState listAllFiles</div><div class="ttdef"><b>Definition:</b> Window.hpp:84</div></div>
<div class="ttc" id="aclassWindow_html_af437e6afd9104708f30ab769d9afce7a"><div class="ttname"><a href="classWindow.html#af437e6afd9104708f30ab769d9afce7a">Window::getTitle</a></div><div class="ttdeci">const char * getTitle() const noexcept</div></div>
<div class="ttc" id="aclassWindow_html_a77774c8ce4b01113fcd525079f9b8787"><div class="ttname"><a href="classWindow.html#a77774c8ce4b01113fcd525079f9b8787">Window::getScaleFactor</a></div><div class="ttdeci">double getScaleFactor() const noexcept</div></div>
<div class="ttc" id="aclassWindow_html_a62b4a97b3c2e492f1d9a46092011e2d9"><div class="ttname"><a href="classWindow.html#a62b4a97b3c2e492f1d9a46092011e2d9">Window::~Window</a></div><div class="ttdeci">virtual ~Window()</div></div>
<div class="ttc" id="aclassSize_html"><div class="ttname"><a href="classSize.html">Size&lt; uint &gt;</a></div></div>
<div class="ttc" id="aclassSize_html"><div class="ttname"><a href="classSize.html">Size</a></div><div class="ttdef"><b>Definition:</b> Geometry.hpp:132</div></div>
<div class="ttc" id="aclassRectangle_html"><div class="ttname"><a href="classRectangle.html">Rectangle</a></div><div class="ttdef"><b>Definition:</b> Geometry.hpp:30</div></div>
<div class="ttc" id="aclassApplication_html"><div class="ttname"><a href="classApplication.html">Application</a></div><div class="ttdef"><b>Definition:</b> Application.hpp:34</div></div>
<div class="ttc" id="aclassWindow_html_a729ab39a1ac99d81b289e08a42582ade"><div class="ttname"><a href="classWindow.html#a729ab39a1ac99d81b289e08a42582ade">Window::repaint</a></div><div class="ttdeci">void repaint() noexcept</div></div>
<div class="ttc" id="aclassWindow_html_ab19430997dd1b3d7bf9bd3640d73b007"><div class="ttname"><a href="classWindow.html#ab19430997dd1b3d7bf9bd3640d73b007">Window::getWidth</a></div><div class="ttdeci">uint getWidth() const noexcept</div></div>
<div class="ttc" id="aclassWindow_html_a979cfd2bc52650f07b789217d6c6f570"><div class="ttname"><a href="classWindow.html#a979cfd2bc52650f07b789217d6c6f570">Window::onClose</a></div><div class="ttdeci">virtual bool onClose()</div></div>
<div class="ttc" id="aclassWindow_html_aa73a74df08f29d576e18cf1d61ea9897"><div class="ttname"><a href="classWindow.html#aa73a74df08f29d576e18cf1d61ea9897">Window::getGraphicsContext</a></div><div class="ttdeci">const GraphicsContext &amp; getGraphicsContext() const noexcept</div></div>
<div class="ttc" id="astructWindow_1_1FileBrowserOptions_html_a808aab3ee364a65672841b323c1bd6ed"><div class="ttname"><a href="structWindow_1_1FileBrowserOptions.html#a808aab3ee364a65672841b323c1bd6ed">Window::FileBrowserOptions::height</a></div><div class="ttdeci">uint height</div><div class="ttdef"><b>Definition:</b> Window.hpp:76</div></div>
<div class="ttc" id="astructWindow_1_1FileBrowserOptions_1_1Buttons_html_a866b55e40b2eeb2f57c85d51aa6fa856"><div class="ttname"><a href="structWindow_1_1FileBrowserOptions_1_1Buttons.html#a866b55e40b2eeb2f57c85d51aa6fa856">Window::FileBrowserOptions::Buttons::showHidden</a></div><div class="ttdeci">ButtonState showHidden</div><div class="ttdef"><b>Definition:</b> Window.hpp:86</div></div>
<div class="ttc" id="aclassWindow_html_ad17a7f53a62673982f4861cdc27fd54e"><div class="ttname"><a href="classWindow.html#ad17a7f53a62673982f4861cdc27fd54e">Window::addIdleCallback</a></div><div class="ttdeci">bool addIdleCallback(IdleCallback *callback, uint timerFrequencyInMs=0)</div></div>
<div class="ttc" id="aclassWindow_html_a04207502372d42d0d17604b104c1d8d6"><div class="ttname"><a href="classWindow.html#a04207502372d42d0d17604b104c1d8d6">Window::onReshape</a></div><div class="ttdeci">virtual void onReshape(uint width, uint height)</div></div>
<div class="ttc" id="aclassWindow_html_a118e0356bb6fcf081955f2bd97686036"><div class="ttname"><a href="classWindow.html#a118e0356bb6fcf081955f2bd97686036">Window::setVisible</a></div><div class="ttdeci">void setVisible(bool visible)</div></div>
<div class="ttc" id="aclassWindow_html_a0e1895a4e93ee0d7c34a9b10953c968e"><div class="ttname"><a href="classWindow.html#a0e1895a4e93ee0d7c34a9b10953c968e">Window::getIgnoringKeyRepeat</a></div><div class="ttdeci">bool getIgnoringKeyRepeat() const noexcept</div><div class="ttdef"><b>Definition:</b> Window.hpp:355</div></div>
<div class="ttc" id="aclassWindow_html_acfc9a6f22176e204009acbb387d3861c"><div class="ttname"><a href="classWindow.html#acfc9a6f22176e204009acbb387d3861c">Window::setWidth</a></div><div class="ttdeci">void setWidth(uint width)</div></div>
<div class="ttc" id="aclassWindow_html_a89bd0c91920029ddcb21b8975e8b47d9"><div class="ttname"><a href="classWindow.html#a89bd0c91920029ddcb21b8975e8b47d9">Window::setSize</a></div><div class="ttdeci">void setSize(uint width, uint height)</div></div>
<div class="ttc" id="aclassWindow_html_afb840ed25c1fe17bed66d80adfc420ab"><div class="ttname"><a href="classWindow.html#afb840ed25c1fe17bed66d80adfc420ab">Window::isEmbed</a></div><div class="ttdeci">bool isEmbed() const noexcept</div></div>
<div class="ttc" id="aclassWindow_html_aa0d7a058ff1194def1a07edb21c30f4c"><div class="ttname"><a href="classWindow.html#aa0d7a058ff1194def1a07edb21c30f4c">Window::openFileBrowser</a></div><div class="ttdeci">bool openFileBrowser(const FileBrowserOptions &amp;options)</div></div>
<div class="ttc" id="aclassWindow_html_a887287be0807b58aa701139c802939a3"><div class="ttname"><a href="classWindow.html#a887287be0807b58aa701139c802939a3">Window::onFileSelected</a></div><div class="ttdeci">virtual void onFileSelected(const char *filename)</div></div>
<div class="ttc" id="aclassWindow_html_a2f6257937261fcb3e627752dfb248d47"><div class="ttname"><a href="classWindow.html#a2f6257937261fcb3e627752dfb248d47">Window::Window</a></div><div class="ttdeci">Window(Application &amp;app)</div></div>
<div class="ttc" id="astructWindow_1_1FileBrowserOptions_html"><div class="ttname"><a href="structWindow_1_1FileBrowserOptions.html">Window::FileBrowserOptions</a></div><div class="ttdef"><b>Definition:</b> Window.hpp:58</div></div>
<div class="ttc" id="aclassWindow_html_a92600b2e0715646b80474fccbcadf336"><div class="ttname"><a href="classWindow.html#a92600b2e0715646b80474fccbcadf336">Window::getApp</a></div><div class="ttdeci">Application &amp; getApp() const noexcept</div></div>
<div class="ttc" id="aclassWindow_html_addce529703b96ff6742428c8bd8c4cba"><div class="ttname"><a href="classWindow.html#addce529703b96ff6742428c8bd8c4cba">Window::exec</a></div><div class="ttdeci">void exec(bool blockWait=false)</div><div class="ttdef"><b>Definition:</b> Window.hpp:363</div></div>
<div class="ttc" id="astructWindow_1_1FileBrowserOptions_html_a1e10c3a7c2c7b38d9476d24d73001504"><div class="ttname"><a href="structWindow_1_1FileBrowserOptions.html#a1e10c3a7c2c7b38d9476d24d73001504">Window::FileBrowserOptions::ButtonState</a></div><div class="ttdeci">ButtonState</div><div class="ttdef"><b>Definition:</b> Window.hpp:63</div></div>
<div class="ttc" id="aclassWindow_html_a5c5c4f53c53cb081b39a40d5ce9afd65"><div class="ttname"><a href="classWindow.html#a5c5c4f53c53cb081b39a40d5ce9afd65">Window::removeIdleCallback</a></div><div class="ttdeci">bool removeIdleCallback(IdleCallback *callback)</div></div>
<div class="ttc" id="astructIdleCallback_html"><div class="ttname"><a href="structIdleCallback.html">IdleCallback</a></div><div class="ttdef"><b>Definition:</b> Base.hpp:159</div></div>
<div class="ttc" id="astructWindow_1_1FileBrowserOptions_1_1Buttons_html_a669f3aafa3eef0d48d7fcb9c7c020678"><div class="ttname"><a href="structWindow_1_1FileBrowserOptions_1_1Buttons.html#a669f3aafa3eef0d48d7fcb9c7c020678">Window::FileBrowserOptions::Buttons::showPlaces</a></div><div class="ttdeci">ButtonState showPlaces</div><div class="ttdef"><b>Definition:</b> Window.hpp:88</div></div>
<div class="ttc" id="aclassWindow_html_a9b94fea3236d1d49e3fbd53a8d9cc70b"><div class="ttname"><a href="classWindow.html#a9b94fea3236d1d49e3fbd53a8d9cc70b">Window::getScaling</a></div><div class="ttdeci">double getScaling() const noexcept</div><div class="ttdef"><b>Definition:</b> Window.hpp:359</div></div>
<div class="ttc" id="aclassWindow_html_acd158570648b07967a4af011d6223eea"><div class="ttname"><a href="classWindow.html#acd158570648b07967a4af011d6223eea">Window::getSize</a></div><div class="ttdeci">Size&lt; uint &gt; getSize() const noexcept</div></div>
<div class="ttc" id="aclassWindow_html_a03985e4ca2c9b4fcf572b5029e8c0115"><div class="ttname"><a href="classWindow.html#a03985e4ca2c9b4fcf572b5029e8c0115">Window::focus</a></div><div class="ttdeci">void focus()</div></div>
<div class="ttc" id="aclassWindow_html_a10f6ff4b0f3e714298a4ac612edcdd7e"><div class="ttname"><a href="classWindow.html#a10f6ff4b0f3e714298a4ac612edcdd7e">Window::setResizable</a></div><div class="ttdeci">void setResizable(bool resizable)</div></div>
<div class="ttc" id="aclassWindow_html_a36a04e5f5ecc6ee5228f9da6df43e865"><div class="ttname"><a href="classWindow.html#a36a04e5f5ecc6ee5228f9da6df43e865">Window::setIgnoringKeyRepeat</a></div><div class="ttdeci">void setIgnoringKeyRepeat(bool ignore) noexcept</div></div>
<div class="ttc" id="aclassWindow_html_ab5cbe1298a28a1860319198a4c843183"><div class="ttname"><a href="classWindow.html#ab5cbe1298a28a1860319198a4c843183">Window::isIgnoringKeyRepeat</a></div><div class="ttdeci">bool isIgnoringKeyRepeat() const noexcept</div></div>
<div class="ttc" id="aclassWindow_html_a5d53bcba43455f8f77cfcbac61ec6c8e"><div class="ttname"><a href="classWindow.html#a5d53bcba43455f8f77cfcbac61ec6c8e">Window::getHeight</a></div><div class="ttdeci">uint getHeight() const noexcept</div></div>
<div class="ttc" id="astructWindow_1_1FileBrowserOptions_1_1Buttons_html_a0483d4ab39bdec4f6e69699fb3c272dd"><div class="ttname"><a href="structWindow_1_1FileBrowserOptions_1_1Buttons.html#a0483d4ab39bdec4f6e69699fb3c272dd">Window::FileBrowserOptions::Buttons::Buttons</a></div><div class="ttdeci">Buttons()</div><div class="ttdef"><b>Definition:</b> Window.hpp:91</div></div>
<div class="ttc" id="aclassTopLevelWidget_html"><div class="ttname"><a href="classTopLevelWidget.html">TopLevelWidget</a></div><div class="ttdef"><b>Definition:</b> TopLevelWidget.hpp:46</div></div>
<div class="ttc" id="aclassWindow_html_a35055c04498121d39741bfcd5082705b"><div class="ttname"><a href="classWindow.html#a35055c04498121d39741bfcd5082705b">Window::close</a></div><div class="ttdeci">void close()</div></div>
<div class="ttc" id="aclassWindow_html_a4626829d3cb9d01285f739d2bbc69b74"><div class="ttname"><a href="classWindow.html#a4626829d3cb9d01285f739d2bbc69b74">Window::hide</a></div><div class="ttdeci">void hide()</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 80
- 69
annotated.html View File

@@ -66,83 +66,94 @@ $(function() {
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classApplication.html" target="_self">Application</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classAudioMidiSyncHelper.html" target="_self">AudioMidiSyncHelper</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structAudioPort.html" target="_self">AudioPort</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCairoBaseWidget.html" target="_self">CairoBaseWidget</a></td><td class="desc"></td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structCairoGraphicsContext.html" target="_self">CairoGraphicsContext</a></td><td class="desc"></td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCairoImage.html" target="_self">CairoImage</a></td><td class="desc"></td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCircle.html" target="_self">Circle</a></td><td class="desc"></td></tr>
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structColor.html" target="_self">Color</a></td><td class="desc"></td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classExternalWindow.html" target="_self">ExternalWindow</a></td><td class="desc"></td></tr>
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structGraphicsContext.html" target="_self">GraphicsContext</a></td><td class="desc"></td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structIdleCallback.html" target="_self">IdleCallback</a></td><td class="desc"></td></tr>
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageBase.html" target="_self">ImageBase</a></td><td class="desc"></td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageBaseAboutWindow.html" target="_self">ImageBaseAboutWindow</a></td><td class="desc"></td></tr>
<tr id="row_13_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_13_" class="arrow" onclick="toggleFolder('13_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageBaseButton.html" target="_self">ImageBaseButton</a></td><td class="desc"></td></tr>
<tr id="row_13_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageBaseButton_1_1Callback.html" target="_self">Callback</a></td><td class="desc"></td></tr>
<tr id="row_14_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_14_" class="arrow" onclick="toggleFolder('14_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageKnob.html" target="_self">ImageKnob</a></td><td class="desc"></td></tr>
<tr id="row_14_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageKnob_1_1Callback.html" target="_self">Callback</a></td><td class="desc"></td></tr>
<tr id="row_15_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_15_" class="arrow" onclick="toggleFolder('15_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageSlider.html" target="_self">ImageSlider</a></td><td class="desc"></td></tr>
<tr id="row_15_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageSlider_1_1Callback.html" target="_self">Callback</a></td><td class="desc"></td></tr>
<tr id="row_16_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_16_" class="arrow" onclick="toggleFolder('16_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageSwitch.html" target="_self">ImageSwitch</a></td><td class="desc"></td></tr>
<tr id="row_16_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageSwitch_1_1Callback.html" target="_self">Callback</a></td><td class="desc"></td></tr>
<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classLeakedObjectDetector.html" target="_self">LeakedObjectDetector</a></td><td class="desc"></td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classLine.html" target="_self">Line</a></td><td class="desc"></td></tr>
<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structMidiEvent.html" target="_self">MidiEvent</a></td><td class="desc"></td></tr>
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMutex.html" target="_self">Mutex</a></td><td class="desc"></td></tr>
<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classNanoBaseWidget.html" target="_self">NanoBaseWidget</a></td><td class="desc"></td></tr>
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classNanoImage.html" target="_self">NanoImage</a></td><td class="desc"></td></tr>
<tr id="row_23_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_23_" class="arrow" onclick="toggleFolder('23_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classNanoVG.html" target="_self">NanoVG</a></td><td class="desc"></td></tr>
<tr id="row_23_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structNanoVG_1_1GlyphPosition.html" target="_self">GlyphPosition</a></td><td class="desc"></td></tr>
<tr id="row_23_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structNanoVG_1_1Paint.html" target="_self">Paint</a></td><td class="desc"></td></tr>
<tr id="row_23_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structNanoVG_1_1TextRow.html" target="_self">TextRow</a></td><td class="desc"></td></tr>
<tr id="row_24_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structOpenGLGraphicsContext.html" target="_self">OpenGLGraphicsContext</a></td><td class="desc"></td></tr>
<tr id="row_25_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classOpenGLImage.html" target="_self">OpenGLImage</a></td><td class="desc"></td></tr>
<tr id="row_26_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structParameter.html" target="_self">Parameter</a></td><td class="desc"></td></tr>
<tr id="row_27_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structParameterEnumerationValue.html" target="_self">ParameterEnumerationValue</a></td><td class="desc"></td></tr>
<tr id="row_28_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structParameterEnumerationValues.html" target="_self">ParameterEnumerationValues</a></td><td class="desc"></td></tr>
<tr id="row_29_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structParameterRanges.html" target="_self">ParameterRanges</a></td><td class="desc"></td></tr>
<tr id="row_30_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classPlugin.html" target="_self">Plugin</a></td><td class="desc"></td></tr>
<tr id="row_31_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classPoint.html" target="_self">Point</a></td><td class="desc"></td></tr>
<tr id="row_32_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classRectangle.html" target="_self">Rectangle</a></td><td class="desc"></td></tr>
<tr id="row_33_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classRecursiveMutex.html" target="_self">RecursiveMutex</a></td><td class="desc"></td></tr>
<tr id="row_34_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classScopedPointer.html" target="_self">ScopedPointer</a></td><td class="desc"></td></tr>
<tr id="row_35_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classScopeLocker.html" target="_self">ScopeLocker</a></td><td class="desc"></td></tr>
<tr id="row_36_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classScopeTryLocker.html" target="_self">ScopeTryLocker</a></td><td class="desc"></td></tr>
<tr id="row_37_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classScopeUnlocker.html" target="_self">ScopeUnlocker</a></td><td class="desc"></td></tr>
<tr id="row_38_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSignal.html" target="_self">Signal</a></td><td class="desc"></td></tr>
<tr id="row_39_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSize.html" target="_self">Size</a></td><td class="desc"></td></tr>
<tr id="row_40_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classStandaloneWindow.html" target="_self">StandaloneWindow</a></td><td class="desc"></td></tr>
<tr id="row_41_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classString.html" target="_self">String</a></td><td class="desc"></td></tr>
<tr id="row_42_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSubWidget.html" target="_self">SubWidget</a></td><td class="desc"></td></tr>
<tr id="row_43_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classThread.html" target="_self">Thread</a></td><td class="desc"></td></tr>
<tr id="row_44_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_44_" class="arrow" onclick="toggleFolder('44_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTimePosition.html" target="_self">TimePosition</a></td><td class="desc"></td></tr>
<tr id="row_44_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTimePosition_1_1BarBeatTick.html" target="_self">BarBeatTick</a></td><td class="desc"></td></tr>
<tr id="row_45_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTopLevelWidget.html" target="_self">TopLevelWidget</a></td><td class="desc"></td></tr>
<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTriangle.html" target="_self">Triangle</a></td><td class="desc"></td></tr>
<tr id="row_47_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classUI.html" target="_self">UI</a></td><td class="desc"></td></tr>
<tr id="row_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classVstGuiStandaloneWindow.html" target="_self">VstGuiStandaloneWindow</a></td><td class="desc"></td></tr>
<tr id="row_49_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structVulkanGraphicsContext.html" target="_self">VulkanGraphicsContext</a></td><td class="desc"></td></tr>
<tr id="row_50_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classVulkanImage.html" target="_self">VulkanImage</a></td><td class="desc"></td></tr>
<tr id="row_51_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_51_" class="arrow" onclick="toggleFolder('51_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classWidget.html" target="_self">Widget</a></td><td class="desc"></td></tr>
<tr id="row_51_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1BaseEvent.html" target="_self">BaseEvent</a></td><td class="desc"></td></tr>
<tr id="row_51_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1CharacterInputEvent.html" target="_self">CharacterInputEvent</a></td><td class="desc"></td></tr>
<tr id="row_51_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1KeyboardEvent.html" target="_self">KeyboardEvent</a></td><td class="desc"></td></tr>
<tr id="row_51_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1MotionEvent.html" target="_self">MotionEvent</a></td><td class="desc"></td></tr>
<tr id="row_51_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1MouseEvent.html" target="_self">MouseEvent</a></td><td class="desc"></td></tr>
<tr id="row_51_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1PositionChangedEvent.html" target="_self">PositionChangedEvent</a></td><td class="desc"></td></tr>
<tr id="row_51_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1ResizeEvent.html" target="_self">ResizeEvent</a></td><td class="desc"></td></tr>
<tr id="row_51_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1ScrollEvent.html" target="_self">ScrollEvent</a></td><td class="desc"></td></tr>
<tr id="row_51_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1SpecialEvent.html" target="_self">SpecialEvent</a></td><td class="desc"></td></tr>
<tr id="row_52_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classWindow.html" target="_self">Window</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structBigStackBuffer.html" target="_self">BigStackBuffer</a></td><td class="desc"></td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCairoBaseWidget.html" target="_self">CairoBaseWidget</a></td><td class="desc"></td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structCairoGraphicsContext.html" target="_self">CairoGraphicsContext</a></td><td class="desc"></td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCairoImage.html" target="_self">CairoImage</a></td><td class="desc"></td></tr>
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCircle.html" target="_self">Circle</a></td><td class="desc"></td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structColor.html" target="_self">Color</a></td><td class="desc"></td></tr>
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classExternalWindow.html" target="_self">ExternalWindow</a></td><td class="desc"></td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structGraphicsContext.html" target="_self">GraphicsContext</a></td><td class="desc"></td></tr>
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structHeapBuffer.html" target="_self">HeapBuffer</a></td><td class="desc"></td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classHeapRingBuffer.html" target="_self">HeapRingBuffer</a></td><td class="desc"></td></tr>
<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structHugeStackBuffer.html" target="_self">HugeStackBuffer</a></td><td class="desc"></td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structIdleCallback.html" target="_self">IdleCallback</a></td><td class="desc"></td></tr>
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageBase.html" target="_self">ImageBase</a></td><td class="desc"></td></tr>
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageBaseAboutWindow.html" target="_self">ImageBaseAboutWindow</a></td><td class="desc"></td></tr>
<tr id="row_17_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_17_" class="arrow" onclick="toggleFolder('17_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageBaseButton.html" target="_self">ImageBaseButton</a></td><td class="desc"></td></tr>
<tr id="row_17_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageBaseButton_1_1Callback.html" target="_self">Callback</a></td><td class="desc"></td></tr>
<tr id="row_18_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_18_" class="arrow" onclick="toggleFolder('18_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageBaseKnob.html" target="_self">ImageBaseKnob</a></td><td class="desc"></td></tr>
<tr id="row_18_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageBaseKnob_1_1Callback.html" target="_self">Callback</a></td><td class="desc"></td></tr>
<tr id="row_19_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_19_" class="arrow" onclick="toggleFolder('19_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageBaseSlider.html" target="_self">ImageBaseSlider</a></td><td class="desc"></td></tr>
<tr id="row_19_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageBaseSlider_1_1Callback.html" target="_self">Callback</a></td><td class="desc"></td></tr>
<tr id="row_20_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_20_" class="arrow" onclick="toggleFolder('20_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageBaseSwitch.html" target="_self">ImageBaseSwitch</a></td><td class="desc"></td></tr>
<tr id="row_20_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classImageBaseSwitch_1_1Callback.html" target="_self">Callback</a></td><td class="desc"></td></tr>
<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classLeakedObjectDetector.html" target="_self">LeakedObjectDetector</a></td><td class="desc"></td></tr>
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classLine.html" target="_self">Line</a></td><td class="desc"></td></tr>
<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structMidiEvent.html" target="_self">MidiEvent</a></td><td class="desc"></td></tr>
<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMutex.html" target="_self">Mutex</a></td><td class="desc"></td></tr>
<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classNanoBaseWidget.html" target="_self">NanoBaseWidget</a></td><td class="desc"></td></tr>
<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classNanoImage.html" target="_self">NanoImage</a></td><td class="desc"></td></tr>
<tr id="row_27_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_27_" class="arrow" onclick="toggleFolder('27_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classNanoVG.html" target="_self">NanoVG</a></td><td class="desc"></td></tr>
<tr id="row_27_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structNanoVG_1_1GlyphPosition.html" target="_self">GlyphPosition</a></td><td class="desc"></td></tr>
<tr id="row_27_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structNanoVG_1_1Paint.html" target="_self">Paint</a></td><td class="desc"></td></tr>
<tr id="row_27_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structNanoVG_1_1TextRow.html" target="_self">TextRow</a></td><td class="desc"></td></tr>
<tr id="row_28_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structOpenGLGraphicsContext.html" target="_self">OpenGLGraphicsContext</a></td><td class="desc"></td></tr>
<tr id="row_29_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classOpenGLImage.html" target="_self">OpenGLImage</a></td><td class="desc"></td></tr>
<tr id="row_30_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structParameter.html" target="_self">Parameter</a></td><td class="desc"></td></tr>
<tr id="row_31_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structParameterEnumerationValue.html" target="_self">ParameterEnumerationValue</a></td><td class="desc"></td></tr>
<tr id="row_32_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structParameterEnumerationValues.html" target="_self">ParameterEnumerationValues</a></td><td class="desc"></td></tr>
<tr id="row_33_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structParameterRanges.html" target="_self">ParameterRanges</a></td><td class="desc"></td></tr>
<tr id="row_34_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classPlugin.html" target="_self">Plugin</a></td><td class="desc"></td></tr>
<tr id="row_35_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classPoint.html" target="_self">Point</a></td><td class="desc"></td></tr>
<tr id="row_36_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structPortGroup.html" target="_self">PortGroup</a></td><td class="desc"></td></tr>
<tr id="row_37_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classRectangle.html" target="_self">Rectangle</a></td><td class="desc"></td></tr>
<tr id="row_38_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classRecursiveMutex.html" target="_self">RecursiveMutex</a></td><td class="desc"></td></tr>
<tr id="row_39_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classRingBufferControl.html" target="_self">RingBufferControl</a></td><td class="desc"></td></tr>
<tr id="row_40_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classScopedPointer.html" target="_self">ScopedPointer</a></td><td class="desc"></td></tr>
<tr id="row_41_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classScopedSafeLocale.html" target="_self">ScopedSafeLocale</a></td><td class="desc"></td></tr>
<tr id="row_42_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classScopeLocker.html" target="_self">ScopeLocker</a></td><td class="desc"></td></tr>
<tr id="row_43_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classScopeTryLocker.html" target="_self">ScopeTryLocker</a></td><td class="desc"></td></tr>
<tr id="row_44_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classScopeUnlocker.html" target="_self">ScopeUnlocker</a></td><td class="desc"></td></tr>
<tr id="row_45_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSignal.html" target="_self">Signal</a></td><td class="desc"></td></tr>
<tr id="row_46_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSize.html" target="_self">Size</a></td><td class="desc"></td></tr>
<tr id="row_47_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structSmallStackBuffer.html" target="_self">SmallStackBuffer</a></td><td class="desc"></td></tr>
<tr id="row_48_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSmallStackRingBuffer.html" target="_self">SmallStackRingBuffer</a></td><td class="desc"></td></tr>
<tr id="row_49_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classStandaloneWindow.html" target="_self">StandaloneWindow</a></td><td class="desc"></td></tr>
<tr id="row_50_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classString.html" target="_self">String</a></td><td class="desc"></td></tr>
<tr id="row_51_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSubWidget.html" target="_self">SubWidget</a></td><td class="desc"></td></tr>
<tr id="row_52_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classThread.html" target="_self">Thread</a></td><td class="desc"></td></tr>
<tr id="row_53_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_53_" class="arrow" onclick="toggleFolder('53_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTimePosition.html" target="_self">TimePosition</a></td><td class="desc"></td></tr>
<tr id="row_53_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTimePosition_1_1BarBeatTick.html" target="_self">BarBeatTick</a></td><td class="desc"></td></tr>
<tr id="row_54_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTopLevelWidget.html" target="_self">TopLevelWidget</a></td><td class="desc"></td></tr>
<tr id="row_55_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTriangle.html" target="_self">Triangle</a></td><td class="desc"></td></tr>
<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classUI.html" target="_self">UI</a></td><td class="desc"></td></tr>
<tr id="row_57_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classVstGuiStandaloneWindow.html" target="_self">VstGuiStandaloneWindow</a></td><td class="desc"></td></tr>
<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structVulkanGraphicsContext.html" target="_self">VulkanGraphicsContext</a></td><td class="desc"></td></tr>
<tr id="row_59_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classVulkanImage.html" target="_self">VulkanImage</a></td><td class="desc"></td></tr>
<tr id="row_60_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_60_" class="arrow" onclick="toggleFolder('60_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classWidget.html" target="_self">Widget</a></td><td class="desc"></td></tr>
<tr id="row_60_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1BaseEvent.html" target="_self">BaseEvent</a></td><td class="desc"></td></tr>
<tr id="row_60_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1CharacterInputEvent.html" target="_self">CharacterInputEvent</a></td><td class="desc"></td></tr>
<tr id="row_60_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1KeyboardEvent.html" target="_self">KeyboardEvent</a></td><td class="desc"></td></tr>
<tr id="row_60_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1MotionEvent.html" target="_self">MotionEvent</a></td><td class="desc"></td></tr>
<tr id="row_60_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1MouseEvent.html" target="_self">MouseEvent</a></td><td class="desc"></td></tr>
<tr id="row_60_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1PositionChangedEvent.html" target="_self">PositionChangedEvent</a></td><td class="desc"></td></tr>
<tr id="row_60_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1ResizeEvent.html" target="_self">ResizeEvent</a></td><td class="desc"></td></tr>
<tr id="row_60_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1ScrollEvent.html" target="_self">ScrollEvent</a></td><td class="desc"></td></tr>
<tr id="row_60_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWidget_1_1SpecialEvent.html" target="_self">SpecialEvent</a></td><td class="desc"></td></tr>
<tr id="row_61_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_61_" class="arrow" onclick="toggleFolder('61_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classWindow.html" target="_self">Window</a></td><td class="desc"></td></tr>
<tr id="row_61_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_61_0_" class="arrow" onclick="toggleFolder('61_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWindow_1_1FileBrowserOptions.html" target="_self">FileBrowserOptions</a></td><td class="desc"></td></tr>
<tr id="row_61_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structWindow_1_1FileBrowserOptions_1_1Buttons.html" target="_self">Buttons</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 5
- 4
classApplication-members.html View File

@@ -70,17 +70,18 @@ $(function() {
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classApplication.html#ad6aab76a79b7b3c2883785040b46017a">addIdleCallback</a>(IdleCallback *callback)</td><td class="entry"><a class="el" href="classApplication.html">Application</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classApplication.html#af9dd089d30cf442f8ffda646305089bb">Application</a>(bool isStandalone=true)</td><td class="entry"><a class="el" href="classApplication.html">Application</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classApplication.html#a866d2145b9aa35bb7f88b1b9fd0aa9cc">exec</a>(uint idleTimeInMs=10)</td><td class="entry"><a class="el" href="classApplication.html">Application</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classApplication.html#a805dd37af3b9adfc1d0ee1e734ad81e3">exec</a>(uint idleTimeInMs=30)</td><td class="entry"><a class="el" href="classApplication.html">Application</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classApplication.html#ac8382754f04f4de15768981459a28e3a">idle</a>()</td><td class="entry"><a class="el" href="classApplication.html">Application</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classApplication.html#a7e5fe58c9cdc488a34d61cf95b55fdc7">isQuiting</a>() const noexcept</td><td class="entry"><a class="el" href="classApplication.html">Application</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classApplication.html#af77b716ee803aecb2ce1674695dc3986">quit</a>()</td><td class="entry"><a class="el" href="classApplication.html">Application</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classApplication.html#a082f532e2922924c6c72517f9272f67d">removeIdleCallback</a>(IdleCallback *callback)</td><td class="entry"><a class="el" href="classApplication.html">Application</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>Window</b> (defined in <a class="el" href="classApplication.html">Application</a>)</td><td class="entry"><a class="el" href="classApplication.html">Application</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classApplication.html#a20573928a0d53fb96d929513bc5acde6">~Application</a>()</td><td class="entry"><a class="el" href="classApplication.html">Application</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classApplication.html#a203d22d1ce0c0de90c2379f6bc839815">setClassName</a>(const char *name)</td><td class="entry"><a class="el" href="classApplication.html">Application</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Window</b> (defined in <a class="el" href="classApplication.html">Application</a>)</td><td class="entry"><a class="el" href="classApplication.html">Application</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
<tr><td class="entry"><a class="el" href="classApplication.html#a20573928a0d53fb96d929513bc5acde6">~Application</a>()</td><td class="entry"><a class="el" href="classApplication.html">Application</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 29
- 6
classApplication.html View File

@@ -80,8 +80,8 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a20573928a0d53fb96d929513bc5acde6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8382754f04f4de15768981459a28e3a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApplication.html#ac8382754f04f4de15768981459a28e3a">idle</a> ()</td></tr>
<tr class="separator:ac8382754f04f4de15768981459a28e3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a866d2145b9aa35bb7f88b1b9fd0aa9cc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApplication.html#a866d2145b9aa35bb7f88b1b9fd0aa9cc">exec</a> (uint idleTimeInMs=10)</td></tr>
<tr class="separator:a866d2145b9aa35bb7f88b1b9fd0aa9cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a805dd37af3b9adfc1d0ee1e734ad81e3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApplication.html#a805dd37af3b9adfc1d0ee1e734ad81e3">exec</a> (uint idleTimeInMs=30)</td></tr>
<tr class="separator:a805dd37af3b9adfc1d0ee1e734ad81e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af77b716ee803aecb2ce1674695dc3986"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApplication.html#af77b716ee803aecb2ce1674695dc3986">quit</a> ()</td></tr>
<tr class="separator:af77b716ee803aecb2ce1674695dc3986"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e5fe58c9cdc488a34d61cf95b55fdc7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApplication.html#a7e5fe58c9cdc488a34d61cf95b55fdc7">isQuiting</a> () const noexcept</td></tr>
@@ -90,6 +90,8 @@ Public Member Functions</h2></td></tr>
<tr class="separator:ad6aab76a79b7b3c2883785040b46017a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a082f532e2922924c6c72517f9272f67d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApplication.html#a082f532e2922924c6c72517f9272f67d">removeIdleCallback</a> (<a class="el" href="structIdleCallback.html">IdleCallback</a> *callback)</td></tr>
<tr class="separator:a082f532e2922924c6c72517f9272f67d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a203d22d1ce0c0de90c2379f6bc839815"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApplication.html#a203d22d1ce0c0de90c2379f6bc839815">setClassName</a> (const char *name)</td></tr>
<tr class="separator:a203d22d1ce0c0de90c2379f6bc839815"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
@@ -166,8 +168,8 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>Window</b></td></tr>

</div>
</div>
<a id="a866d2145b9aa35bb7f88b1b9fd0aa9cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a866d2145b9aa35bb7f88b1b9fd0aa9cc">&#9670;&nbsp;</a></span>exec()</h2>
<a id="a805dd37af3b9adfc1d0ee1e734ad81e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a805dd37af3b9adfc1d0ee1e734ad81e3">&#9670;&nbsp;</a></span>exec()</h2>

<div class="memitem">
<div class="memproto">
@@ -176,7 +178,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>Window</b></td></tr>
<td class="memname">void Application::exec </td>
<td>(</td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>idleTimeInMs</em> = <code>10</code></td><td>)</td>
<td class="paramname"><em>idleTimeInMs</em> = <code>30</code></td><td>)</td>
<td></td>
</tr>
</table>
@@ -265,6 +267,27 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>Window</b></td></tr>
</div><div class="memdoc">
<p>Remove an idle callback previously added via <a class="el" href="classApplication.html#ad6aab76a79b7b3c2883785040b46017a">addIdleCallback()</a>. </p>

</div>
</div>
<a id="a203d22d1ce0c0de90c2379f6bc839815"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a203d22d1ce0c0de90c2379f6bc839815">&#9670;&nbsp;</a></span>setClassName()</h2>

<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Application::setClassName </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the class name of the application.</p>
<p>This is a stable identifier for the application, used as the window class/instance name on X11 and Windows. It is not displayed to the user, but can be used in scripts and by window managers, so it should be the same for every instance of the application, but different from other applications.</p>
<p>Plugins created with DPF have their class name automatically set based on DGL_NAMESPACE and plugin name. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
@@ -273,7 +296,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>Window</b></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classAudioMidiSyncHelper-members.html View File

@@ -77,7 +77,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 2
- 2
classAudioMidiSyncHelper.html View File

@@ -208,13 +208,13 @@ uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>midiEventCount</b
<li>distrho/<a class="el" href="DistrhoPluginUtils_8hpp_source.html">DistrhoPluginUtils.hpp</a></li>
</ul>
</div><!-- contents -->
<div class="ttc" id="astructMidiEvent_html"><div class="ttname"><a href="structMidiEvent.html">MidiEvent</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:502</div></div>
<div class="ttc" id="astructMidiEvent_html"><div class="ttname"><a href="structMidiEvent.html">MidiEvent</a></div><div class="ttdef"><b>Definition:</b> DistrhoPlugin.hpp:616</div></div>
<div class="ttc" id="aclassAudioMidiSyncHelper_html_a7b54cae0fdaae3d23aaccf2dbb9344ef"><div class="ttname"><a href="classAudioMidiSyncHelper.html#a7b54cae0fdaae3d23aaccf2dbb9344ef">AudioMidiSyncHelper::outputs</a></div><div class="ttdeci">float * outputs[2]</div><div class="ttdef"><b>Definition:</b> DistrhoPluginUtils.hpp:53</div></div>
<div class="ttc" id="aclassAudioMidiSyncHelper_html_a43f354c1520893449d81a27b3e7a81fe"><div class="ttname"><a href="classAudioMidiSyncHelper.html#a43f354c1520893449d81a27b3e7a81fe">AudioMidiSyncHelper::nextEvent</a></div><div class="ttdeci">bool nextEvent()</div><div class="ttdef"><b>Definition:</b> DistrhoPluginUtils.hpp:78</div></div>
<div class="ttc" id="aclassAudioMidiSyncHelper_html"><div class="ttname"><a href="classAudioMidiSyncHelper.html">AudioMidiSyncHelper</a></div><div class="ttdef"><b>Definition:</b> DistrhoPluginUtils.hpp:50</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classCairoBaseWidget-members.html View File

@@ -77,7 +77,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 5
- 5
classCairoBaseWidget.html View File

@@ -127,7 +127,7 @@ template&lt;class BaseWidget &gt; </div>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor for a CairoSubWidget. </p><dl class="section see"><dt>See also</dt><dd>CreateFlags </dd></dl>
<p>Constructor for a CairoSubWidget. </p>

</div>
</div>
@@ -156,7 +156,7 @@ template&lt;class BaseWidget &gt; </div>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor for a CairoTopLevelWidget. </p><dl class="section see"><dt>See also</dt><dd>CreateFlags </dd></dl>
<p>Constructor for a CairoTopLevelWidget. </p>

</div>
</div>
@@ -185,7 +185,7 @@ template&lt;class BaseWidget &gt; </div>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor for a CairoStandaloneWindow without parent window. </p><dl class="section see"><dt>See also</dt><dd>CreateFlags </dd></dl>
<p>Constructor for a CairoStandaloneWindow without parent window. </p>

</div>
</div>
@@ -224,7 +224,7 @@ template&lt;class BaseWidget &gt; </div>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor for a CairoStandaloneWindow with parent window. </p><dl class="section see"><dt>See also</dt><dd>CreateFlags </dd></dl>
<p>Constructor for a CairoStandaloneWindow with parent window. </p>

</div>
</div>
@@ -292,7 +292,7 @@ template&lt;class BaseWidget &gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:11 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 12
- 10
classCairoImage-members.html View File

@@ -80,15 +80,17 @@ $(function() {
<tr><td class="entry"><a class="el" href="classImageBase.html#aff56029a17822f19b518560e82aba878">getHeight</a>() const noexcept</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classImageBase.html#aea60747a216159b14a8d020cb9b19546">getRawData</a>() const noexcept</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classImageBase.html#a7609a68efebd27587bb98e386db0e9e2">getSize</a>() const noexcept</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classImageBase.html#a82057493bae9af996a9a10b1aa731666">getWidth</a>() const noexcept</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classImageBase.html#a1a1f82fcab01adea2f8783547e8a18aa">ImageBase</a>()</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classImageBase.html#a494cd9221fe88f34ce011f004eea7596">ImageBase</a>(const char *rawData, uint width, uint height, ImageFormat format)</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="classImageBase.html#aa61181afeb3abd0253ae0a25712164ee">ImageBase</a>(const char *rawData, const Size&lt; uint &gt; &amp;size, ImageFormat format)</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classImageBase.html#a56dd89a0a5c0abc604044e33c8b1db59">ImageBase</a>(const ImageBase &amp;image)</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="classImageBase.html#a83ea79fff6adfa0720985f2e9794ed2d">isInvalid</a>() const noexcept</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classImageBase.html#ab5b2bc7d68b0aff3452478f906aa960f">isValid</a>() const noexcept</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classCairoImage.html#a861bdbb5cd592feaef43e2202397deed">loadFromMemory</a>(const char *rawData, const Size&lt; uint &gt; &amp;size, ImageFormat format=kImageFormatBGRA) noexcept override</td><td class="entry"><a class="el" href="classCairoImage.html">CairoImage</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>loadFromMemory</b>(const char *rawData, uint w, uint h, ImageFormat format=kImageFormatBGRA) (defined in <a class="el" href="classCairoImage.html">CairoImage</a>)</td><td class="entry"><a class="el" href="classCairoImage.html">CairoImage</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classCairoImage.html#a5ce76c4866b396a771caafa80acf162b">getSurface</a>() const noexcept</td><td class="entry"><a class="el" href="classCairoImage.html">CairoImage</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classImageBase.html#a82057493bae9af996a9a10b1aa731666">getWidth</a>() const noexcept</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classImageBase.html#a1a1f82fcab01adea2f8783547e8a18aa">ImageBase</a>()</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="classImageBase.html#a494cd9221fe88f34ce011f004eea7596">ImageBase</a>(const char *rawData, uint width, uint height, ImageFormat format)</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classImageBase.html#aa61181afeb3abd0253ae0a25712164ee">ImageBase</a>(const char *rawData, const Size&lt; uint &gt; &amp;size, ImageFormat format)</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="classImageBase.html#a56dd89a0a5c0abc604044e33c8b1db59">ImageBase</a>(const ImageBase &amp;image)</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classImageBase.html#a83ea79fff6adfa0720985f2e9794ed2d">isInvalid</a>() const noexcept</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classImageBase.html#ab5b2bc7d68b0aff3452478f906aa960f">isValid</a>() const noexcept</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classCairoImage.html#a861bdbb5cd592feaef43e2202397deed">loadFromMemory</a>(const char *rawData, const Size&lt; uint &gt; &amp;size, ImageFormat format=kImageFormatBGRA) noexcept override</td><td class="entry"><a class="el" href="classCairoImage.html">CairoImage</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>loadFromMemory</b>(const char *rdata, uint w, uint h, ImageFormat fmt=kImageFormatBGRA) (defined in <a class="el" href="classCairoImage.html">CairoImage</a>)</td><td class="entry"><a class="el" href="classCairoImage.html">CairoImage</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classCairoImage.html#a94c1707943b9874e362e11473bdcf768">loadFromPNG</a>(const char *pngData, uint dataSize) noexcept</td><td class="entry"><a class="el" href="classCairoImage.html">CairoImage</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator!=</b>(const ImageBase &amp;image) const noexcept (defined in <a class="el" href="classImageBase.html">ImageBase</a>)</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classCairoImage.html#af5f422a5a77f4639a907f8e5dde29ef7">operator=</a>(const CairoImage &amp;image) noexcept</td><td class="entry"><a class="el" href="classCairoImage.html">CairoImage</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classImageBase.html#ac352a5a4291cd0945c663b17631598dc">ImageBase::operator=</a>(const ImageBase &amp;image) noexcept</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
@@ -100,7 +102,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 72
- 5
classCairoImage.html View File

@@ -94,13 +94,17 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a36abbee6a47fc3447f00270aa16a82b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a861bdbb5cd592feaef43e2202397deed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairoImage.html#a861bdbb5cd592feaef43e2202397deed">loadFromMemory</a> (const char *rawData, const <a class="el" href="classSize.html">Size</a>&lt; uint &gt; &amp;size, ImageFormat format=kImageFormatBGRA) noexcept override</td></tr>
<tr class="separator:a861bdbb5cd592feaef43e2202397deed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94c1707943b9874e362e11473bdcf768"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairoImage.html#a94c1707943b9874e362e11473bdcf768">loadFromPNG</a> (const char *pngData, uint dataSize) noexcept</td></tr>
<tr class="separator:a94c1707943b9874e362e11473bdcf768"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa60a5e3b68032170e8e59fb506c7d3b7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairoImage.html#aa60a5e3b68032170e8e59fb506c7d3b7">drawAt</a> (const <a class="el" href="structGraphicsContext.html">GraphicsContext</a> &amp;context, const <a class="el" href="classPoint.html">Point</a>&lt; int &gt; &amp;pos) override</td></tr>
<tr class="separator:aa60a5e3b68032170e8e59fb506c7d3b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ce76c4866b396a771caafa80acf162b"><td class="memItemLeft" align="right" valign="top">cairo_surface_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairoImage.html#a5ce76c4866b396a771caafa80acf162b">getSurface</a> () const noexcept</td></tr>
<tr class="separator:a5ce76c4866b396a771caafa80acf162b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5f422a5a77f4639a907f8e5dde29ef7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCairoImage.html">CairoImage</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairoImage.html#af5f422a5a77f4639a907f8e5dde29ef7">operator=</a> (const <a class="el" href="classCairoImage.html">CairoImage</a> &amp;image) noexcept</td></tr>
<tr class="separator:af5f422a5a77f4639a907f8e5dde29ef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16d253efabc2a7132bd44a000178480b"><td class="memItemLeft" align="right" valign="top"><a id="a16d253efabc2a7132bd44a000178480b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>loadFromMemory</b> (const char *rawData, uint w, uint h, ImageFormat format=kImageFormatBGRA)</td></tr>
<tr class="separator:a16d253efabc2a7132bd44a000178480b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d952fe7065dfbf079053a30463214e8"><td class="memItemLeft" align="right" valign="top"><a id="a9d952fe7065dfbf079053a30463214e8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>loadFromMemory</b> (const char *rdata, uint w, uint h, ImageFormat fmt=kImageFormatBGRA)</td></tr>
<tr class="separator:a9d952fe7065dfbf079053a30463214e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad41816f9a994a98c4a23efaf75797402"><td class="memItemLeft" align="right" valign="top"><a id="ad41816f9a994a98c4a23efaf75797402"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>draw</b> (const <a class="el" href="structGraphicsContext.html">GraphicsContext</a> &amp;context)</td></tr>
<tr class="separator:ad41816f9a994a98c4a23efaf75797402"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -344,10 +348,47 @@ ImageFormat&#160;</td><td class="memItemRight" valign="bottom"><b>format</b></td
</tr>
</table>
</div><div class="memdoc">
<p>Load image data from memory. </p><dl class="section note"><dt>Note</dt><dd><em>rawData</em> must remain valid for the lifetime of this Image. </dd></dl>
<p>Load raw image data from memory. </p><dl class="section note"><dt>Note</dt><dd><em>rawData</em> must remain valid for the lifetime of this Image. </dd></dl>

<p>Reimplemented from <a class="el" href="classImageBase.html#a2c922b2ba7133937e74e1629fdde4f0e">ImageBase</a>.</p>

</div>
</div>
<a id="a94c1707943b9874e362e11473bdcf768"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94c1707943b9874e362e11473bdcf768">&#9670;&nbsp;</a></span>loadFromPNG()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void CairoImage::loadFromPNG </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>pngData</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>dataSize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Load PNG image from memory. Image size is read from PNG contents. </p><dl class="section note"><dt>Note</dt><dd><em>pngData</em> must remain valid for the lifetime of this Image. </dd></dl>

</div>
</div>
<a id="aa60a5e3b68032170e8e59fb506c7d3b7"></a>
@@ -387,6 +428,32 @@ ImageFormat&#160;</td><td class="memItemRight" valign="bottom"><b>format</b></td

<p>Implements <a class="el" href="classImageBase.html#afef0b2e0d1baa305312435d0de2e027c">ImageBase</a>.</p>

</div>
</div>
<a id="a5ce76c4866b396a771caafa80acf162b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ce76c4866b396a771caafa80acf162b">&#9670;&nbsp;</a></span>getSurface()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">cairo_surface_t* CairoImage::getSurface </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the cairo surface currently associated with this image. FIXME might be removed </p>

</div>
</div>
<a id="af5f422a5a77f4639a907f8e5dde29ef7"></a>
@@ -422,7 +489,7 @@ ImageFormat&#160;</td><td class="memItemRight" valign="bottom"><b>format</b></td
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classCircle-members.html View File

@@ -93,7 +93,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classCircle.html View File

@@ -683,7 +683,7 @@ DEPRECATED Please use <a class="el" href="classCircle.html#ac81aa76956931eb30717
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classExternalWindow-members.html View File

@@ -86,7 +86,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classExternalWindow.html View File

@@ -128,7 +128,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>UIExporter</b></td><
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 117
- 0
classHeapRingBuffer-members.html View File

@@ -0,0 +1,117 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">HeapRingBuffer Member List</div> </div>
</div><!--header-->
<div class="contents">

<p>This is the complete list of members for <a class="el" href="classHeapRingBuffer.html">HeapRingBuffer</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>clearData</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classRingBufferControl.html#afe0c53d2591eb265d657c1cab6800036">commitWrite</a>() noexcept</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classHeapRingBuffer.html#ab7d60a3acc757e88e1c7254626ce9709">createBuffer</a>(const uint32_t size) noexcept</td><td class="entry"><a class="el" href="classHeapRingBuffer.html">HeapRingBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classHeapRingBuffer.html#a940bc4c023a53a0d511d6f99186d8224">deleteBuffer</a>() noexcept</td><td class="entry"><a class="el" href="classHeapRingBuffer.html">HeapRingBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getAvailableDataSize</b>() const noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classHeapRingBuffer.html#a6a3c03b584b5b20ad2829e26f5e6ed0e">HeapRingBuffer</a>() noexcept</td><td class="entry"><a class="el" href="classHeapRingBuffer.html">HeapRingBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>isDataAvailableForReading</b>() const noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>isEmpty</b>() const noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>readBool</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>readByte</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRingBufferControl.html#aafdb126b2885c507cec852bc63fd6cb8">readCustomData</a>(void *const data, const uint32_t size) noexcept</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classRingBufferControl.html#aaaf4efe13ec2555c390047f545d2660d">readCustomType</a>(T &amp;type) noexcept</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>readDouble</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>readFloat</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>readInt</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>readLong</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>readShort</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>readUInt</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>readULong</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>readUShort</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>RingBufferControl</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setRingBuffer</b>(HeapBuffer *const ringBuf, const bool clearRingBufferData) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>tryRead</b>(void *const buf, const uint32_t size) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>tryWrite</b>(const void *const buf, const uint32_t size) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>writeBool</b>(const bool value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>writeByte</b>(const uint8_t value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRingBufferControl.html#a72e173dcae573f6e2e8ac4cfeb8aa96b">writeCustomData</a>(const void *const data, const uint32_t size) noexcept</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classRingBufferControl.html#a3e9c1857e11f0d9efcc2944d6000504b">writeCustomType</a>(const T &amp;type) noexcept</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>writeDouble</b>(const double value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>writeFloat</b>(const float value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>writeInt</b>(const int32_t value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>writeLong</b>(const int64_t value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>writeShort</b>(const int16_t value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>writeUInt</b>(const uint32_t value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>writeULong</b>(const uint64_t value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>writeUShort</b>(const uint16_t value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classHeapRingBuffer.html#ae2e25c610073d35998efd7106b5eb8a0">~HeapRingBuffer</a>() noexcept override</td><td class="entry"><a class="el" href="classHeapRingBuffer.html">HeapRingBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>~RingBufferControl</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

+ 310
- 0
classHeapRingBuffer.html View File

@@ -0,0 +1,310 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: HeapRingBuffer Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classHeapRingBuffer-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">HeapRingBuffer Class Reference</div> </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="RingBuffer_8hpp_source.html">RingBuffer.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for HeapRingBuffer:</div>
<div class="dyncontent">
<div class="center">
<img src="classHeapRingBuffer.png" usemap="#HeapRingBuffer_map" alt=""/>
<map id="HeapRingBuffer_map" name="HeapRingBuffer_map">
<area href="classRingBufferControl.html" alt="RingBufferControl&lt; HeapBuffer &gt;" shape="rect" coords="0,0,202,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a6a3c03b584b5b20ad2829e26f5e6ed0e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHeapRingBuffer.html#a6a3c03b584b5b20ad2829e26f5e6ed0e">HeapRingBuffer</a> () noexcept</td></tr>
<tr class="separator:a6a3c03b584b5b20ad2829e26f5e6ed0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2e25c610073d35998efd7106b5eb8a0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHeapRingBuffer.html#ae2e25c610073d35998efd7106b5eb8a0">~HeapRingBuffer</a> () noexcept override</td></tr>
<tr class="separator:ae2e25c610073d35998efd7106b5eb8a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7d60a3acc757e88e1c7254626ce9709"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHeapRingBuffer.html#ab7d60a3acc757e88e1c7254626ce9709">createBuffer</a> (const uint32_t size) noexcept</td></tr>
<tr class="separator:ab7d60a3acc757e88e1c7254626ce9709"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a940bc4c023a53a0d511d6f99186d8224"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classHeapRingBuffer.html#a940bc4c023a53a0d511d6f99186d8224">deleteBuffer</a> () noexcept</td></tr>
<tr class="separator:a940bc4c023a53a0d511d6f99186d8224"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classRingBufferControl"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classRingBufferControl')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td></tr>
<tr class="memitem:a5a857b3ce6d8570899e1310bbaa166c2 inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a5a857b3ce6d8570899e1310bbaa166c2"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>isDataAvailableForReading</b> () const noexcept</td></tr>
<tr class="separator:a5a857b3ce6d8570899e1310bbaa166c2 inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac795fc07ffa5c591b9516b514dedc7aa inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="ac795fc07ffa5c591b9516b514dedc7aa"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>isEmpty</b> () const noexcept</td></tr>
<tr class="separator:ac795fc07ffa5c591b9516b514dedc7aa inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed6ec8bf3b3bc4ef2e490bd1f34f5cfb inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="aed6ec8bf3b3bc4ef2e490bd1f34f5cfb"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>getAvailableDataSize</b> () const noexcept</td></tr>
<tr class="separator:aed6ec8bf3b3bc4ef2e490bd1f34f5cfb inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a93880bd798351b66c7c546ee91d7af inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a8a93880bd798351b66c7c546ee91d7af"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>clearData</b> () noexcept</td></tr>
<tr class="separator:a8a93880bd798351b66c7c546ee91d7af inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7861a13bc22c3a692490002e11cfa001 inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a7861a13bc22c3a692490002e11cfa001"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>readBool</b> () noexcept</td></tr>
<tr class="separator:a7861a13bc22c3a692490002e11cfa001 inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b08be900bb851cb08ea17797afde52b inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a7b08be900bb851cb08ea17797afde52b"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>readByte</b> () noexcept</td></tr>
<tr class="separator:a7b08be900bb851cb08ea17797afde52b inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a481ba7979e8dfa0077225fb4eeedcdf4 inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a481ba7979e8dfa0077225fb4eeedcdf4"></a>
int16_t&#160;</td><td class="memItemRight" valign="bottom"><b>readShort</b> () noexcept</td></tr>
<tr class="separator:a481ba7979e8dfa0077225fb4eeedcdf4 inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a568b35da8271fd136d3e52254c3a6e inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a3a568b35da8271fd136d3e52254c3a6e"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>readUShort</b> () noexcept</td></tr>
<tr class="separator:a3a568b35da8271fd136d3e52254c3a6e inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f9f287326a852f40dc8c2f477eac61d inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a6f9f287326a852f40dc8c2f477eac61d"></a>
int32_t&#160;</td><td class="memItemRight" valign="bottom"><b>readInt</b> () noexcept</td></tr>
<tr class="separator:a6f9f287326a852f40dc8c2f477eac61d inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cb216fe6c4ae7955f7a1e6fde3fdaaa inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a8cb216fe6c4ae7955f7a1e6fde3fdaaa"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>readUInt</b> () noexcept</td></tr>
<tr class="separator:a8cb216fe6c4ae7955f7a1e6fde3fdaaa inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00e4069c4e71a15aba05cbd20416f9c2 inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a00e4069c4e71a15aba05cbd20416f9c2"></a>
int64_t&#160;</td><td class="memItemRight" valign="bottom"><b>readLong</b> () noexcept</td></tr>
<tr class="separator:a00e4069c4e71a15aba05cbd20416f9c2 inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84d06ef9f64dda3c61e02744bee598b5 inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a84d06ef9f64dda3c61e02744bee598b5"></a>
uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>readULong</b> () noexcept</td></tr>
<tr class="separator:a84d06ef9f64dda3c61e02744bee598b5 inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cfb2a83c9788607530c96e122f1a5cb inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a0cfb2a83c9788607530c96e122f1a5cb"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>readFloat</b> () noexcept</td></tr>
<tr class="separator:a0cfb2a83c9788607530c96e122f1a5cb inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4181c35249c1cfa5115836766552a9f7 inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a4181c35249c1cfa5115836766552a9f7"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>readDouble</b> () noexcept</td></tr>
<tr class="separator:a4181c35249c1cfa5115836766552a9f7 inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafdb126b2885c507cec852bc63fd6cb8 inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRingBufferControl.html#aafdb126b2885c507cec852bc63fd6cb8">readCustomData</a> (void *const data, const uint32_t size) noexcept</td></tr>
<tr class="separator:aafdb126b2885c507cec852bc63fd6cb8 inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaf4efe13ec2555c390047f545d2660d inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRingBufferControl.html#aaaf4efe13ec2555c390047f545d2660d">readCustomType</a> (T &amp;type) noexcept</td></tr>
<tr class="separator:aaaf4efe13ec2555c390047f545d2660d inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d560bf7255bf3f9b3ab91d178c8a514 inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a8d560bf7255bf3f9b3ab91d178c8a514"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeBool</b> (const bool value) noexcept</td></tr>
<tr class="separator:a8d560bf7255bf3f9b3ab91d178c8a514 inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57d59476536b91746d8bf52bfae74755 inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a57d59476536b91746d8bf52bfae74755"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeByte</b> (const uint8_t value) noexcept</td></tr>
<tr class="separator:a57d59476536b91746d8bf52bfae74755 inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05763b20c7a59eab5b9ec7f32c758954 inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a05763b20c7a59eab5b9ec7f32c758954"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeShort</b> (const int16_t value) noexcept</td></tr>
<tr class="separator:a05763b20c7a59eab5b9ec7f32c758954 inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b4e2008d32cf8ae36cbce37db935fa0 inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a9b4e2008d32cf8ae36cbce37db935fa0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeUShort</b> (const uint16_t value) noexcept</td></tr>
<tr class="separator:a9b4e2008d32cf8ae36cbce37db935fa0 inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55d6d467fbb82ec942eaa88ee9de056f inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a55d6d467fbb82ec942eaa88ee9de056f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeInt</b> (const int32_t value) noexcept</td></tr>
<tr class="separator:a55d6d467fbb82ec942eaa88ee9de056f inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b3e0c77afe562049ebef1a5dd534ffe inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a3b3e0c77afe562049ebef1a5dd534ffe"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeUInt</b> (const uint32_t value) noexcept</td></tr>
<tr class="separator:a3b3e0c77afe562049ebef1a5dd534ffe inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5400bbf87025d3f6b4bf307538eacd8e inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a5400bbf87025d3f6b4bf307538eacd8e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeLong</b> (const int64_t value) noexcept</td></tr>
<tr class="separator:a5400bbf87025d3f6b4bf307538eacd8e inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2bc16d54ac5d10065124719abb95a87 inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="ac2bc16d54ac5d10065124719abb95a87"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeULong</b> (const uint64_t value) noexcept</td></tr>
<tr class="separator:ac2bc16d54ac5d10065124719abb95a87 inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97f63ccaa7e578346938b32dfb47224e inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a97f63ccaa7e578346938b32dfb47224e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeFloat</b> (const float value) noexcept</td></tr>
<tr class="separator:a97f63ccaa7e578346938b32dfb47224e inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ad016c6ff0e3b3469060ad5ca758e73 inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a6ad016c6ff0e3b3469060ad5ca758e73"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeDouble</b> (const double value) noexcept</td></tr>
<tr class="separator:a6ad016c6ff0e3b3469060ad5ca758e73 inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72e173dcae573f6e2e8ac4cfeb8aa96b inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRingBufferControl.html#a72e173dcae573f6e2e8ac4cfeb8aa96b">writeCustomData</a> (const void *const data, const uint32_t size) noexcept</td></tr>
<tr class="separator:a72e173dcae573f6e2e8ac4cfeb8aa96b inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e9c1857e11f0d9efcc2944d6000504b inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRingBufferControl.html#a3e9c1857e11f0d9efcc2944d6000504b">writeCustomType</a> (const T &amp;type) noexcept</td></tr>
<tr class="separator:a3e9c1857e11f0d9efcc2944d6000504b inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe0c53d2591eb265d657c1cab6800036 inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRingBufferControl.html#afe0c53d2591eb265d657c1cab6800036">commitWrite</a> () noexcept</td></tr>
<tr class="separator:afe0c53d2591eb265d657c1cab6800036 inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1d302eb13fa5f41a2f9cb94974f2355 inherit pub_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="ac1d302eb13fa5f41a2f9cb94974f2355"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setRingBuffer</b> (<a class="el" href="structHeapBuffer.html">HeapBuffer</a> *const ringBuf, const bool clearRingBufferData) noexcept</td></tr>
<tr class="separator:ac1d302eb13fa5f41a2f9cb94974f2355 inherit pub_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_methods_classRingBufferControl"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classRingBufferControl')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></td></tr>
<tr class="memitem:ae52a43afbe6404494aeb2abfb305342b inherit pro_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="ae52a43afbe6404494aeb2abfb305342b"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>tryRead</b> (void *const buf, const uint32_t size) noexcept</td></tr>
<tr class="separator:ae52a43afbe6404494aeb2abfb305342b inherit pro_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a121bc17537c3ff7841d8e684e84fbb7a inherit pro_methods_classRingBufferControl"><td class="memItemLeft" align="right" valign="top"><a id="a121bc17537c3ff7841d8e684e84fbb7a"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>tryWrite</b> (const void *const buf, const uint32_t size) noexcept</td></tr>
<tr class="separator:a121bc17537c3ff7841d8e684e84fbb7a inherit pro_methods_classRingBufferControl"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classRingBufferControl.html">RingBufferControl</a> with a heap buffer. This is a convenience class that provides a method for creating and destroying the heap data. Requires the use of <a class="el" href="classHeapRingBuffer.html#ab7d60a3acc757e88e1c7254626ce9709">createBuffer(uint32_t)</a> to make the ring buffer usable. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a6a3c03b584b5b20ad2829e26f5e6ed0e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a3c03b584b5b20ad2829e26f5e6ed0e">&#9670;&nbsp;</a></span>HeapRingBuffer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">HeapRingBuffer::HeapRingBuffer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor. </p>

</div>
</div>
<a id="ae2e25c610073d35998efd7106b5eb8a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2e25c610073d35998efd7106b5eb8a0">&#9670;&nbsp;</a></span>~HeapRingBuffer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">HeapRingBuffer::~HeapRingBuffer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destructor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ab7d60a3acc757e88e1c7254626ce9709"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7d60a3acc757e88e1c7254626ce9709">&#9670;&nbsp;</a></span>createBuffer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool HeapRingBuffer::createBuffer </td>
<td>(</td>
<td class="paramtype">const uint32_t&#160;</td>
<td class="paramname"><em>size</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a buffer of the specified size. </p>

</div>
</div>
<a id="a940bc4c023a53a0d511d6f99186d8224"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a940bc4c023a53a0d511d6f99186d8224">&#9670;&nbsp;</a></span>deleteBuffer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void HeapRingBuffer::deleteBuffer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Delete the previously allocated buffer. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>distrho/extra/<a class="el" href="RingBuffer_8hpp_source.html">RingBuffer.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

BIN
classHeapRingBuffer.png View File

Before After
Width: 202  |  Height: 80  |  Size: 733B

+ 1
- 1
classImageBase-members.html View File

@@ -94,7 +94,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classImageBase.html View File

@@ -723,7 +723,7 @@ ImageFormat&#160;</td><td class="memItemRight" valign="bottom"><b>format</b></td
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 27
- 23
classImageBaseAboutWindow-members.html View File

@@ -70,20 +70,20 @@ $(function() {
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>addIdleCallback</b>(IdleCallback *callback, uint timerFrequencyInMs=0) (defined in <a class="el" href="classStandaloneWindow.html">StandaloneWindow</a>)</td><td class="entry"><a class="el" href="classStandaloneWindow.html">StandaloneWindow</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#a35055c04498121d39741bfcd5082705b">close</a>()</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>exec</b>(bool blockWait=false) (defined in <a class="el" href="classWindow.html">Window</a>)</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#a03985e4ca2c9b4fcf572b5029e8c0115">focus</a>()</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWindow.html#a92600b2e0715646b80474fccbcadf336">Window::getApp</a>() const noexcept</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classTopLevelWidget.html#af5c5c403ba231c14b3a41684bef45648">TopLevelWidget::getApp</a>() const noexcept</td><td class="entry"><a class="el" href="classTopLevelWidget.html">TopLevelWidget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getGraphicsContext</b>() const noexcept (defined in <a class="el" href="classStandaloneWindow.html">StandaloneWindow</a>)</td><td class="entry"><a class="el" href="classStandaloneWindow.html">StandaloneWindow</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getHeight</b>() const noexcept (defined in <a class="el" href="classStandaloneWindow.html">StandaloneWindow</a>)</td><td class="entry"><a class="el" href="classStandaloneWindow.html">StandaloneWindow</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a3ee6b2824e3f3719c1c9b3d070385f49">getId</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getIgnoringKeyRepeat</b>() const noexcept (defined in <a class="el" href="classWindow.html">Window</a>)</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWindow.html#a01a9277a2e19766947f9a99b43147bfd">getNativeWindowHandle</a>() const noexcept</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getParentApp</b>() const noexcept (defined in <a class="el" href="classTopLevelWidget.html">TopLevelWidget</a>)</td><td class="entry"><a class="el" href="classTopLevelWidget.html">TopLevelWidget</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getParentWindow</b>() const noexcept (defined in <a class="el" href="classTopLevelWidget.html">TopLevelWidget</a>)</td><td class="entry"><a class="el" href="classTopLevelWidget.html">TopLevelWidget</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#a77774c8ce4b01113fcd525079f9b8787">Window::getScaleFactor</a>() const noexcept</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getScaleFactor</b>() const noexcept (defined in <a class="el" href="classTopLevelWidget.html">TopLevelWidget</a>)</td><td class="entry"><a class="el" href="classTopLevelWidget.html">TopLevelWidget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getScaling</b>() const noexcept (defined in <a class="el" href="classWindow.html">Window</a>)</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWindow.html#addce529703b96ff6742428c8bd8c4cba">exec</a>(bool blockWait=false)</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#a6ec017881675f860ae746dad6c021b63">fileBrowserSelected</a>(const char *filename)</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWindow.html#a03985e4ca2c9b4fcf572b5029e8c0115">focus</a>()</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#a92600b2e0715646b80474fccbcadf336">Window::getApp</a>() const noexcept</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classTopLevelWidget.html#af5c5c403ba231c14b3a41684bef45648">TopLevelWidget::getApp</a>() const noexcept</td><td class="entry"><a class="el" href="classTopLevelWidget.html">TopLevelWidget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getGraphicsContext</b>() const noexcept (defined in <a class="el" href="classStandaloneWindow.html">StandaloneWindow</a>)</td><td class="entry"><a class="el" href="classStandaloneWindow.html">StandaloneWindow</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getHeight</b>() const noexcept (defined in <a class="el" href="classStandaloneWindow.html">StandaloneWindow</a>)</td><td class="entry"><a class="el" href="classStandaloneWindow.html">StandaloneWindow</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a3ee6b2824e3f3719c1c9b3d070385f49">getId</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWindow.html#a0e1895a4e93ee0d7c34a9b10953c968e">getIgnoringKeyRepeat</a>() const noexcept</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#a01a9277a2e19766947f9a99b43147bfd">getNativeWindowHandle</a>() const noexcept</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getParentApp</b>() const noexcept (defined in <a class="el" href="classTopLevelWidget.html">TopLevelWidget</a>)</td><td class="entry"><a class="el" href="classTopLevelWidget.html">TopLevelWidget</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getParentWindow</b>() const noexcept (defined in <a class="el" href="classTopLevelWidget.html">TopLevelWidget</a>)</td><td class="entry"><a class="el" href="classTopLevelWidget.html">TopLevelWidget</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getScaleFactor</b>() const noexcept (defined in <a class="el" href="classStandaloneWindow.html">StandaloneWindow</a>)</td><td class="entry"><a class="el" href="classStandaloneWindow.html">StandaloneWindow</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#a9b94fea3236d1d49e3fbd53a8d9cc70b">getScaling</a>() const noexcept</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getSize</b>() const noexcept (defined in <a class="el" href="classStandaloneWindow.html">StandaloneWindow</a>)</td><td class="entry"><a class="el" href="classStandaloneWindow.html">StandaloneWindow</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#af437e6afd9104708f30ab769d9afce7a">getTitle</a>() const noexcept</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a607b153f7d3187ca60bf21004efc1314">getTopLevelWidget</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
@@ -94,19 +94,23 @@ $(function() {
<tr bgcolor="#f0f0f0"><td class="entry"><b>ImageBaseAboutWindow</b>(TopLevelWidget *parentTopLevelWidget, const ImageType &amp;image=ImageType()) (defined in <a class="el" href="classImageBaseAboutWindow.html">ImageBaseAboutWindow&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseAboutWindow.html">ImageBaseAboutWindow&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWindow.html#afb840ed25c1fe17bed66d80adfc420ab">isEmbed</a>() const noexcept</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#ab5cbe1298a28a1860319198a4c843183">isIgnoringKeyRepeat</a>() const noexcept</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>isResizable</b>() const noexcept (defined in <a class="el" href="classWindow.html">Window</a>)</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWindow.html#a1b888a7e6a5562968a253b915ccb7825">isResizable</a>() const noexcept</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classStandaloneWindow.html#a645f7c56f44d9a8a72e81595b28650e2">isVisible</a>() const noexcept</td><td class="entry"><a class="el" href="classStandaloneWindow.html">StandaloneWindow</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#ad7fb24de24d8809305b04ff3750f0dea">onCharacterInput</a>(const CharacterInputEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#a979cfd2bc52650f07b789217d6c6f570">onClose</a>()</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classImageBaseAboutWindow.html#a3e675bef6bb84375cb762767d216e8f7">onDisplay</a>() override</td><td class="entry"><a class="el" href="classImageBaseAboutWindow.html">ImageBaseAboutWindow&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>leaveContext</b>() (defined in <a class="el" href="classWindow.html">Window</a>)</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#ad7fb24de24d8809305b04ff3750f0dea">onCharacterInput</a>(const CharacterInputEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWindow.html#a979cfd2bc52650f07b789217d6c6f570">onClose</a>()</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classImageBaseAboutWindow.html#a3e675bef6bb84375cb762767d216e8f7">onDisplay</a>() override</td><td class="entry"><a class="el" href="classImageBaseAboutWindow.html">ImageBaseAboutWindow&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWindow.html#a887287be0807b58aa701139c802939a3">onFileSelected</a>(const char *filename)</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#a754415613248bd3b5068d76c4cfe3704">onFocus</a>(bool focus, CrossingMode mode)</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classImageBaseAboutWindow.html#a239bf25a7ac8063d2cf3d4db250396e2">onKeyboard</a>(const KeyboardEvent &amp;) override</td><td class="entry"><a class="el" href="classImageBaseAboutWindow.html">ImageBaseAboutWindow&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a655569fb78a598652e9f24cefa1fe4a5">onMotion</a>(const MotionEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classImageBaseAboutWindow.html#ad2c3d4c6943a5562574baf60f58de483">onMouse</a>(const MouseEvent &amp;) override</td><td class="entry"><a class="el" href="classImageBaseAboutWindow.html">ImageBaseAboutWindow&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classImageBaseAboutWindow.html#a79e4534fae619e04b3947f3d5e2b344d">onReshape</a>(uint width, uint height) override</td><td class="entry"><a class="el" href="classImageBaseAboutWindow.html">ImageBaseAboutWindow&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#a04207502372d42d0d17604b104c1d8d6">onReshape</a>(uint width, uint height)</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#acc0365ec4b9245bdffb8d0285be55dea">onResize</a>(const ResizeEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a0d78d28bd4a98c3a016a38091b2d4185">onScroll</a>(const ScrollEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a3b42652fcb2f95c6f86bdd43a1727507">onSpecial</a>(const SpecialEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#a306742ddc21c7c41f59b41e5761a38c7">onScaleFactorChanged</a>(double scaleFactor)</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a0d78d28bd4a98c3a016a38091b2d4185">onScroll</a>(const ScrollEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a3b42652fcb2f95c6f86bdd43a1727507">onSpecial</a>(const SpecialEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWindow.html#aa0d7a058ff1194def1a07edb21c30f4c">openFileBrowser</a>(const FileBrowserOptions &amp;options)</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>removeIdleCallback</b>(IdleCallback *callback) (defined in <a class="el" href="classStandaloneWindow.html">StandaloneWindow</a>)</td><td class="entry"><a class="el" href="classStandaloneWindow.html">StandaloneWindow</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classStandaloneWindow.html#aa1475d362245c793b516a232deab70ff">repaint</a>() noexcept</td><td class="entry"><a class="el" href="classStandaloneWindow.html">StandaloneWindow</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#a33f9518b6f3209cd8201106260c9e42c">Window::repaint</a>(const Rectangle&lt; uint &gt; &amp;rect) noexcept</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
@@ -117,7 +121,7 @@ $(function() {
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#abfba3652559de84ba1ae9ccbd3d35e31">setId</a>(uint id) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#a36a04e5f5ecc6ee5228f9da6df43e865">setIgnoringKeyRepeat</a>(bool ignore) noexcept</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setImage</b>(const ImageType &amp;image) (defined in <a class="el" href="classImageBaseAboutWindow.html">ImageBaseAboutWindow&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseAboutWindow.html">ImageBaseAboutWindow&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setResizable</b>(bool resizable) (defined in <a class="el" href="classWindow.html">Window</a>)</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWindow.html#a10f6ff4b0f3e714298a4ac612edcdd7e">setResizable</a>(bool resizable)</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setSize</b>(uint width, uint height) (defined in <a class="el" href="classStandaloneWindow.html">StandaloneWindow</a>)</td><td class="entry"><a class="el" href="classStandaloneWindow.html">StandaloneWindow</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setSize</b>(const Size&lt; uint &gt; &amp;size) (defined in <a class="el" href="classStandaloneWindow.html">StandaloneWindow</a>)</td><td class="entry"><a class="el" href="classStandaloneWindow.html">StandaloneWindow</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWindow.html#ab2f1b80c5dfcafd2cbdf6b85b756fdbd">setTitle</a>(const char *title)</td><td class="entry"><a class="el" href="classWindow.html">Window</a></td><td class="entry"></td></tr>
@@ -137,7 +141,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 30
- 54
classImageBaseAboutWindow.html View File

@@ -141,6 +141,9 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>removeIdleCallback</b
<tr class="memitem:a601a0750e50ad545d30d544a86e7b7c9 inherit pub_methods_classStandaloneWindow"><td class="memItemLeft" align="right" valign="top"><a id="a601a0750e50ad545d30d544a86e7b7c9"></a>
const <a class="el" href="structGraphicsContext.html">GraphicsContext</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getGraphicsContext</b> () const noexcept</td></tr>
<tr class="separator:a601a0750e50ad545d30d544a86e7b7c9 inherit pub_methods_classStandaloneWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b8e1fe44d2e2a7443e78c2485ef87e2 inherit pub_methods_classStandaloneWindow"><td class="memItemLeft" align="right" valign="top"><a id="a5b8e1fe44d2e2a7443e78c2485ef87e2"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>getScaleFactor</b> () const noexcept</td></tr>
<tr class="separator:a5b8e1fe44d2e2a7443e78c2485ef87e2 inherit pub_methods_classStandaloneWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfcc60ee3e74ae2042a2d708ddc0c7aa inherit pub_methods_classStandaloneWindow"><td class="memItemLeft" align="right" valign="top"><a id="adfcc60ee3e74ae2042a2d708ddc0c7aa"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setGeometryConstraints</b> (uint minimumWidth, uint minimumHeight, bool keepAspectRatio=false, bool automaticallyScale=false)</td></tr>
<tr class="separator:adfcc60ee3e74ae2042a2d708ddc0c7aa inherit pub_methods_classStandaloneWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -167,11 +170,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>setGeometryConstraint
<tr class="separator:a4626829d3cb9d01285f739d2bbc69b74 inherit pub_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35055c04498121d39741bfcd5082705b inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#a35055c04498121d39741bfcd5082705b">close</a> ()</td></tr>
<tr class="separator:a35055c04498121d39741bfcd5082705b inherit pub_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b888a7e6a5562968a253b915ccb7825 inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top"><a id="a1b888a7e6a5562968a253b915ccb7825"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>isResizable</b> () const noexcept</td></tr>
<tr class="memitem:a1b888a7e6a5562968a253b915ccb7825 inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#a1b888a7e6a5562968a253b915ccb7825">isResizable</a> () const noexcept</td></tr>
<tr class="separator:a1b888a7e6a5562968a253b915ccb7825 inherit pub_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10f6ff4b0f3e714298a4ac612edcdd7e inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top"><a id="a10f6ff4b0f3e714298a4ac612edcdd7e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setResizable</b> (bool resizable)</td></tr>
<tr class="memitem:a10f6ff4b0f3e714298a4ac612edcdd7e inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#a10f6ff4b0f3e714298a4ac612edcdd7e">setResizable</a> (bool resizable)</td></tr>
<tr class="separator:a10f6ff4b0f3e714298a4ac612edcdd7e inherit pub_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab19430997dd1b3d7bf9bd3640d73b007 inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#ab19430997dd1b3d7bf9bd3640d73b007">getWidth</a> () const noexcept</td></tr>
<tr class="separator:ab19430997dd1b3d7bf9bd3640d73b007 inherit pub_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -209,6 +210,8 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>setResizable</b> (boo
<tr class="separator:a77774c8ce4b01113fcd525079f9b8787 inherit pub_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03985e4ca2c9b4fcf572b5029e8c0115 inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#a03985e4ca2c9b4fcf572b5029e8c0115">focus</a> ()</td></tr>
<tr class="separator:a03985e4ca2c9b4fcf572b5029e8c0115 inherit pub_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0d7a058ff1194def1a07edb21c30f4c inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#aa0d7a058ff1194def1a07edb21c30f4c">openFileBrowser</a> (const <a class="el" href="structWindow_1_1FileBrowserOptions.html">FileBrowserOptions</a> &amp;options)</td></tr>
<tr class="separator:aa0d7a058ff1194def1a07edb21c30f4c inherit pub_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a729ab39a1ac99d81b289e08a42582ade inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#a729ab39a1ac99d81b289e08a42582ade">repaint</a> () noexcept</td></tr>
<tr class="separator:a729ab39a1ac99d81b289e08a42582ade inherit pub_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33f9518b6f3209cd8201106260c9e42c inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#a33f9518b6f3209cd8201106260c9e42c">repaint</a> (const <a class="el" href="classRectangle.html">Rectangle</a>&lt; uint &gt; &amp;rect) noexcept</td></tr>
@@ -217,15 +220,15 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>setResizable</b> (boo
<tr class="separator:a00108f3d1c5831d02b0c67cd4f226e4d inherit pub_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aece9e08d0c4d3b6ec02cbb804583c175 inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#aece9e08d0c4d3b6ec02cbb804583c175">setGeometryConstraints</a> (uint minimumWidth, uint minimumHeight, bool keepAspectRatio=false, bool automaticallyScale=false)</td></tr>
<tr class="separator:aece9e08d0c4d3b6ec02cbb804583c175 inherit pub_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e1895a4e93ee0d7c34a9b10953c968e inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top"><a id="a0e1895a4e93ee0d7c34a9b10953c968e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getIgnoringKeyRepeat</b> () const noexcept</td></tr>
<tr class="memitem:a0e1895a4e93ee0d7c34a9b10953c968e inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#a0e1895a4e93ee0d7c34a9b10953c968e">getIgnoringKeyRepeat</a> () const noexcept</td></tr>
<tr class="separator:a0e1895a4e93ee0d7c34a9b10953c968e inherit pub_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b94fea3236d1d49e3fbd53a8d9cc70b inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top"><a id="a9b94fea3236d1d49e3fbd53a8d9cc70b"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>getScaling</b> () const noexcept</td></tr>
<tr class="memitem:a9b94fea3236d1d49e3fbd53a8d9cc70b inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#a9b94fea3236d1d49e3fbd53a8d9cc70b">getScaling</a> () const noexcept</td></tr>
<tr class="separator:a9b94fea3236d1d49e3fbd53a8d9cc70b inherit pub_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addce529703b96ff6742428c8bd8c4cba inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top"><a id="addce529703b96ff6742428c8bd8c4cba"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>exec</b> (bool blockWait=false)</td></tr>
<tr class="memitem:addce529703b96ff6742428c8bd8c4cba inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#addce529703b96ff6742428c8bd8c4cba">exec</a> (bool blockWait=false)</td></tr>
<tr class="separator:addce529703b96ff6742428c8bd8c4cba inherit pub_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3d243704812865f1693b3b7389093df inherit pub_methods_classWindow"><td class="memItemLeft" align="right" valign="top"><a id="aa3d243704812865f1693b3b7389093df"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>leaveContext</b> ()</td></tr>
<tr class="separator:aa3d243704812865f1693b3b7389093df inherit pub_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classTopLevelWidget"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classTopLevelWidget')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classTopLevelWidget.html">TopLevelWidget</a></td></tr>
<tr class="memitem:a3cdeec5e7b144cc48d89e748a37f538e inherit pub_methods_classTopLevelWidget"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTopLevelWidget.html#a3cdeec5e7b144cc48d89e748a37f538e">TopLevelWidget</a> (<a class="el" href="classWindow.html">Window</a> &amp;windowToMapTo)</td></tr>
<tr class="separator:a3cdeec5e7b144cc48d89e748a37f538e inherit pub_methods_classTopLevelWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -235,6 +238,14 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>exec</b> (bool blockW
<tr class="separator:af5c5c403ba231c14b3a41684bef45648 inherit pub_methods_classTopLevelWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ceb7af6e9372a139d40a5859dfd0e4d inherit pub_methods_classTopLevelWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWindow.html">Window</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTopLevelWidget.html#a3ceb7af6e9372a139d40a5859dfd0e4d">getWindow</a> () const noexcept</td></tr>
<tr class="separator:a3ceb7af6e9372a139d40a5859dfd0e4d inherit pub_methods_classTopLevelWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a95eb3bb76704737ef9cf405e800617 inherit pub_methods_classTopLevelWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTopLevelWidget.html#a4a95eb3bb76704737ef9cf405e800617">setWidth</a> (uint width)</td></tr>
<tr class="separator:a4a95eb3bb76704737ef9cf405e800617 inherit pub_methods_classTopLevelWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a607afeaa7fc1bd6cf52ef3138c38360f inherit pub_methods_classTopLevelWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTopLevelWidget.html#a607afeaa7fc1bd6cf52ef3138c38360f">setHeight</a> (uint height)</td></tr>
<tr class="separator:a607afeaa7fc1bd6cf52ef3138c38360f inherit pub_methods_classTopLevelWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41fa486da289fb082bb840aaaad72a08 inherit pub_methods_classTopLevelWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTopLevelWidget.html#a41fa486da289fb082bb840aaaad72a08">setSize</a> (uint width, uint height)</td></tr>
<tr class="separator:a41fa486da289fb082bb840aaaad72a08 inherit pub_methods_classTopLevelWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94f526903d739bf2e812fb785fc66aae inherit pub_methods_classTopLevelWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTopLevelWidget.html#a94f526903d739bf2e812fb785fc66aae">setSize</a> (const <a class="el" href="classSize.html">Size</a>&lt; uint &gt; &amp;size)</td></tr>
<tr class="separator:a94f526903d739bf2e812fb785fc66aae inherit pub_methods_classTopLevelWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5569262e4859b2b59832af4fb8409ddc inherit pub_methods_classTopLevelWidget"><td class="memItemLeft" align="right" valign="top"><a id="a5569262e4859b2b59832af4fb8409ddc"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>addIdleCallback</b> (<a class="el" href="structIdleCallback.html">IdleCallback</a> *callback, uint timerFrequencyInMs=0)</td></tr>
<tr class="separator:a5569262e4859b2b59832af4fb8409ddc inherit pub_methods_classTopLevelWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -310,13 +321,19 @@ Protected Member Functions</h2></td></tr>
<tr class="separator:a239bf25a7ac8063d2cf3d4db250396e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2c3d4c6943a5562574baf60f58de483"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classImageBaseAboutWindow.html#ad2c3d4c6943a5562574baf60f58de483">onMouse</a> (const <a class="el" href="structWidget_1_1MouseEvent.html">MouseEvent</a> &amp;) override</td></tr>
<tr class="separator:ad2c3d4c6943a5562574baf60f58de483"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79e4534fae619e04b3947f3d5e2b344d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classImageBaseAboutWindow.html#a79e4534fae619e04b3947f3d5e2b344d">onReshape</a> (uint width, uint height) override</td></tr>
<tr class="separator:a79e4534fae619e04b3947f3d5e2b344d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classWindow"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classWindow')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classWindow.html">Window</a></td></tr>
<tr class="memitem:a979cfd2bc52650f07b789217d6c6f570 inherit pro_methods_classWindow"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#a979cfd2bc52650f07b789217d6c6f570">onClose</a> ()</td></tr>
<tr class="separator:a979cfd2bc52650f07b789217d6c6f570 inherit pro_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a754415613248bd3b5068d76c4cfe3704 inherit pro_methods_classWindow"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#a754415613248bd3b5068d76c4cfe3704">onFocus</a> (bool <a class="el" href="classWindow.html#a03985e4ca2c9b4fcf572b5029e8c0115">focus</a>, CrossingMode mode)</td></tr>
<tr class="separator:a754415613248bd3b5068d76c4cfe3704 inherit pro_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04207502372d42d0d17604b104c1d8d6 inherit pro_methods_classWindow"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#a04207502372d42d0d17604b104c1d8d6">onReshape</a> (uint width, uint height)</td></tr>
<tr class="separator:a04207502372d42d0d17604b104c1d8d6 inherit pro_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a306742ddc21c7c41f59b41e5761a38c7 inherit pro_methods_classWindow"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#a306742ddc21c7c41f59b41e5761a38c7">onScaleFactorChanged</a> (double scaleFactor)</td></tr>
<tr class="separator:a306742ddc21c7c41f59b41e5761a38c7 inherit pro_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a887287be0807b58aa701139c802939a3 inherit pro_methods_classWindow"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#a887287be0807b58aa701139c802939a3">onFileSelected</a> (const char *filename)</td></tr>
<tr class="separator:a887287be0807b58aa701139c802939a3 inherit pro_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ec017881675f860ae746dad6c021b63 inherit pro_methods_classWindow"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWindow.html#a6ec017881675f860ae746dad6c021b63">fileBrowserSelected</a> (const char *filename)</td></tr>
<tr class="separator:a6ec017881675f860ae746dad6c021b63 inherit pro_methods_classWindow"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classWidget"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classWidget')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classWidget.html">Widget</a></td></tr>
<tr class="memitem:a3b42652fcb2f95c6f86bdd43a1727507 inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a3b42652fcb2f95c6f86bdd43a1727507">onSpecial</a> (const <a class="el" href="structWidget_1_1SpecialEvent.html">SpecialEvent</a> &amp;)</td></tr>
<tr class="separator:a3b42652fcb2f95c6f86bdd43a1727507 inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -420,47 +437,6 @@ template&lt;class ImageType &gt; </div>

<p>Reimplemented from <a class="el" href="classWidget.html#a097ec1d56a06bdc9e0a4e54880def378">Widget</a>.</p>

</div>
</div>
<a id="a79e4534fae619e04b3947f3d5e2b344d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79e4534fae619e04b3947f3d5e2b344d">&#9670;&nbsp;</a></span>onReshape()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ImageType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classImageBaseAboutWindow.html">ImageBaseAboutWindow</a>&lt; ImageType &gt;::onReshape </td>
<td>(</td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint&#160;</td>
<td class="paramname"><em>height</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A function called when the window is resized. If there is a top-level widget associated with this window, its size will be set right after this function. </p>

<p>Reimplemented from <a class="el" href="classWindow.html#a04207502372d42d0d17604b104c1d8d6">Window</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
@@ -469,7 +445,7 @@ template&lt;class ImageType &gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 9
- 6
classImageBaseButton-members.html View File

@@ -109,19 +109,22 @@ $(function() {
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#ac6d2e6cbb2ff96f3645493d804af07f7">setHeight</a>(uint height) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#abfba3652559de84ba1ae9ccbd3d35e31">setId</a>(uint id) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a926884690b66c762f7bdb1196c58522b">setNeedsFullViewportDrawing</a>(bool needsFullViewportForDrawing=true)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#ab4d9e0156e455db3ff23730f82544daa">setSize</a>(uint width, uint height) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#afce784b204902c0f11e9ed02bc692362">setSize</a>(const Size&lt; uint &gt; &amp;size) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a5cd703976adf24decbb66dd3dbc1db8b">setNeedsViewportScaling</a>(bool needsViewportScaling=true, double autoScaleFactor=0.0)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#ab4d9e0156e455db3ff23730f82544daa">setSize</a>(uint width, uint height) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#afce784b204902c0f11e9ed02bc692362">setSize</a>(const Size&lt; uint &gt; &amp;size) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#adb38f61c0205d7832ddfd090f7f60f2a">setSkipDrawing</a>(bool skipDrawing=true)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a66088a03691f9c643ff335fa826576ba">setVisible</a>(bool visible)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#aed80a9cbc4a13c01641f35dd3d8688ea">setWidth</a>(uint width) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a25ff178539e226b5f30ef0335d060f2b">show</a>()</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a9fda448971613b2758fd9570c3065f7a">SubWidget</a>(Widget *parentWidget)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>~ImageBaseButton</b>() override (defined in <a class="el" href="classImageBaseButton.html">ImageBaseButton&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseButton.html">ImageBaseButton&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a0f6225f53db69cd682910939edc9fd96">~SubWidget</a>()</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a714cf798aadb4d615f6f60a355382c02">~Widget</a>()</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a3426cbcf0104c8a5c9996e3efff75381">toFront</a>()</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~ImageBaseButton</b>() override (defined in <a class="el" href="classImageBaseButton.html">ImageBaseButton&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseButton.html">ImageBaseButton&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a0f6225f53db69cd682910939edc9fd96">~SubWidget</a>()</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a714cf798aadb4d615f6f60a355382c02">~Widget</a>()</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 7
- 1
classImageBaseButton.html View File

@@ -133,8 +133,14 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>setCallback</b> (<a c
<tr class="separator:a2d658e71ccb9502b8409a08782d8b345 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13910739dc797b600502e2dfa7daef87 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a13910739dc797b600502e2dfa7daef87">repaint</a> () noexcept override</td></tr>
<tr class="separator:a13910739dc797b600502e2dfa7daef87 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3426cbcf0104c8a5c9996e3efff75381 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a3426cbcf0104c8a5c9996e3efff75381">toFront</a> ()</td></tr>
<tr class="separator:a3426cbcf0104c8a5c9996e3efff75381 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a926884690b66c762f7bdb1196c58522b inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a926884690b66c762f7bdb1196c58522b">setNeedsFullViewportDrawing</a> (bool needsFullViewportForDrawing=true)</td></tr>
<tr class="separator:a926884690b66c762f7bdb1196c58522b inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cd703976adf24decbb66dd3dbc1db8b inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a5cd703976adf24decbb66dd3dbc1db8b">setNeedsViewportScaling</a> (bool needsViewportScaling=true, double autoScaleFactor=0.0)</td></tr>
<tr class="separator:a5cd703976adf24decbb66dd3dbc1db8b inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb38f61c0205d7832ddfd090f7f60f2a inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#adb38f61c0205d7832ddfd090f7f60f2a">setSkipDrawing</a> (bool skipDrawing=true)</td></tr>
<tr class="separator:adb38f61c0205d7832ddfd090f7f60f2a inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classWidget"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classWidget')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classWidget.html">Widget</a></td></tr>
<tr class="memitem:a714cf798aadb4d615f6f60a355382c02 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a714cf798aadb4d615f6f60a355382c02">~Widget</a> ()</td></tr>
<tr class="separator:a714cf798aadb4d615f6f60a355382c02 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -301,7 +307,7 @@ template&lt;class ImageType &gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classImageBaseButton_1_1Callback-members.html View File

@@ -77,7 +77,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classImageBaseButton_1_1Callback.html View File

@@ -85,7 +85,7 @@ virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>imageButtonCl
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:31 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 144
- 0
classImageBaseKnob-members.html View File

@@ -0,0 +1,144 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">ImageBaseKnob&lt; ImageType &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">

<p>This is the complete list of members for <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#ac9b4d3e2a3a39e588504dd33c1d9ca95">contains</a>(T x, T y) const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#ac5b584dfb15c98b67c03a2d9699651b7">contains</a>(const Point&lt; T &gt; &amp;pos) const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#af2f289973c4a58d78eb6bb12bcbf093a">getAbsoluteArea</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a1c67b16fb0234941f387a960a0f0cb76">getAbsolutePos</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a5a641f035fa0ce5b5e87ee9b3ab7bf34">getAbsoluteX</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#aefe10cc8f9d62950b56f71559d1e3f5e">getAbsoluteY</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a373419bc6353abf50a502cdbebd736e7">getApp</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a72bf08fe6f61fc935f6f0836d308bc9e">getConstrainedAbsoluteArea</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#ae23d09ec0e5f0397a3451b603b407182">getGraphicsContext</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#aa20f6dc096a8836706173f31324c4db8">getHeight</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a3ee6b2824e3f3719c1c9b3d070385f49">getId</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getParentApp</b>() const noexcept (defined in <a class="el" href="classWidget.html">Widget</a>)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a2d658e71ccb9502b8409a08782d8b345">getParentWidget</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getParentWindow</b>() const noexcept (defined in <a class="el" href="classWidget.html">Widget</a>)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a9044d42c20ead27dba983b710c94f8d6">getSize</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a607b153f7d3187ca60bf21004efc1314">getTopLevelWidget</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getValue</b>() const noexcept (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a169c317caf734c6664494a573e427b40">getWidth</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a0ef05695aec704b0eb1eb91c2e8af07d">getWindow</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a4a2f8eebacdd20db505b838f1a118c6b">hide</a>()</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Horizontal</b> enum value (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>ImageBaseKnob</b>(Widget *parentWidget, const ImageType &amp;image, Orientation orientation=Vertical) noexcept (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ImageBaseKnob</b>(const ImageBaseKnob &amp;imageKnob) (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a234a8ee8a685dc211ad11f492f0dbc71">isVisible</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#ad7fb24de24d8809305b04ff3750f0dea">onCharacterInput</a>(const CharacterInputEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classImageBaseKnob.html#a9a4d1a1ff6fe7e51be7491148c20d1c5">onDisplay</a>() override</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a9fa874aede538b41348f1029524aea11">onKeyboard</a>(const KeyboardEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classImageBaseKnob.html#ab7fc0602637a98d5a0a5ecfd74557636">onMotion</a>(const MotionEvent &amp;) override</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classImageBaseKnob.html#a6cd97ff56064b28a56d1321508e29f8b">onMouse</a>(const MouseEvent &amp;) override</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a80ac88898a4a87047d63a7e49a5a0946">onPositionChanged</a>(const PositionChangedEvent &amp;)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#acc0365ec4b9245bdffb8d0285be55dea">onResize</a>(const ResizeEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classImageBaseKnob.html#aeb9c35449f4b48741ceb8ba8253648bb">onScroll</a>(const ScrollEvent &amp;) override</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a3b42652fcb2f95c6f86bdd43a1727507">onSpecial</a>(const SpecialEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const ImageBaseKnob &amp;imageKnob) (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Orientation</b> enum name (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a13910739dc797b600502e2dfa7daef87">repaint</a>() noexcept override</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a0e7a4dd27eee8a3a1b7bf12d9f21769f">setAbsolutePos</a>(int x, int y) noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a05c5e533e9b10186d0f72ae94f72196d">setAbsolutePos</a>(const Point&lt; int &gt; &amp;pos) noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#abcd0a00a4c3cdc402aea56044df26cc3">setAbsoluteX</a>(int x) noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a3c674e3c46206ac29a562c0f02dcf82c">setAbsoluteY</a>(int y) noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setCallback</b>(Callback *callback) noexcept (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setDefault</b>(float def) noexcept (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#ac6d2e6cbb2ff96f3645493d804af07f7">setHeight</a>(uint height) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#abfba3652559de84ba1ae9ccbd3d35e31">setId</a>(uint id) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setImageLayerCount</b>(uint count) noexcept (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a926884690b66c762f7bdb1196c58522b">setNeedsFullViewportDrawing</a>(bool needsFullViewportForDrawing=true)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a5cd703976adf24decbb66dd3dbc1db8b">setNeedsViewportScaling</a>(bool needsViewportScaling=true, double autoScaleFactor=0.0)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setOrientation</b>(Orientation orientation) noexcept (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setRange</b>(float min, float max) noexcept (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setRotationAngle</b>(int angle) (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#ab4d9e0156e455db3ff23730f82544daa">setSize</a>(uint width, uint height) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#afce784b204902c0f11e9ed02bc692362">setSize</a>(const Size&lt; uint &gt; &amp;size) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#adb38f61c0205d7832ddfd090f7f60f2a">setSkipDrawing</a>(bool skipDrawing=true)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setStep</b>(float step) noexcept (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setUsingLogScale</b>(bool yesNo) noexcept (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setValue</b>(float value, bool sendCallback=false) noexcept (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a66088a03691f9c643ff335fa826576ba">setVisible</a>(bool visible)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#aed80a9cbc4a13c01641f35dd3d8688ea">setWidth</a>(uint width) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a25ff178539e226b5f30ef0335d060f2b">show</a>()</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a9fda448971613b2758fd9570c3065f7a">SubWidget</a>(Widget *parentWidget)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a3426cbcf0104c8a5c9996e3efff75381">toFront</a>()</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>Vertical</b> enum value (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~ImageBaseKnob</b>() override (defined in <a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a0f6225f53db69cd682910939edc9fd96">~SubWidget</a>()</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a714cf798aadb4d615f6f60a355382c02">~Widget</a>()</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

+ 381
- 0
classImageBaseKnob.html View File

@@ -0,0 +1,381 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: ImageBaseKnob&lt; ImageType &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classImageBaseKnob-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ImageBaseKnob&lt; ImageType &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for ImageBaseKnob&lt; ImageType &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="classImageBaseKnob.png" usemap="#ImageBaseKnob_3C_20ImageType_20_3E_map" alt=""/>
<map id="ImageBaseKnob_3C_20ImageType_20_3E_map" name="ImageBaseKnob_3C_20ImageType_20_3E_map">
<area href="classSubWidget.html" alt="SubWidget" shape="rect" coords="0,56,187,80"/>
<area href="classWidget.html" alt="Widget" shape="rect" coords="0,0,187,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classImageBaseKnob_1_1Callback.html">Callback</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:adf67b5a1a2013720eee09889f27e4a41"><td class="memItemLeft" align="right" valign="top"><a id="adf67b5a1a2013720eee09889f27e4a41"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>Orientation</b> { <b>Horizontal</b>,
<b>Vertical</b>
}</td></tr>
<tr class="separator:adf67b5a1a2013720eee09889f27e4a41"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a32cd0b096893d8d6b4dbe728bcc7cf3e"><td class="memItemLeft" align="right" valign="top"><a id="a32cd0b096893d8d6b4dbe728bcc7cf3e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>ImageBaseKnob</b> (<a class="el" href="classWidget.html">Widget</a> *parentWidget, const ImageType &amp;image, Orientation orientation=Vertical) noexcept</td></tr>
<tr class="separator:a32cd0b096893d8d6b4dbe728bcc7cf3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36028941727dfceb788f89672e295a2f"><td class="memItemLeft" align="right" valign="top"><a id="a36028941727dfceb788f89672e295a2f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>ImageBaseKnob</b> (const <a class="el" href="classImageBaseKnob.html">ImageBaseKnob</a> &amp;imageKnob)</td></tr>
<tr class="separator:a36028941727dfceb788f89672e295a2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bb5698a53e7029d748f20d7f68328c8"><td class="memItemLeft" align="right" valign="top"><a id="a4bb5698a53e7029d748f20d7f68328c8"></a>
<a class="el" href="classImageBaseKnob.html">ImageBaseKnob</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classImageBaseKnob.html">ImageBaseKnob</a> &amp;imageKnob)</td></tr>
<tr class="separator:a4bb5698a53e7029d748f20d7f68328c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4af2059060a5215d3f8873e7000926fd"><td class="memItemLeft" align="right" valign="top"><a id="a4af2059060a5215d3f8873e7000926fd"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>getValue</b> () const noexcept</td></tr>
<tr class="separator:a4af2059060a5215d3f8873e7000926fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50b1da00111002856d74ee5d26bd5e31"><td class="memItemLeft" align="right" valign="top"><a id="a50b1da00111002856d74ee5d26bd5e31"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setDefault</b> (float def) noexcept</td></tr>
<tr class="separator:a50b1da00111002856d74ee5d26bd5e31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82068076187da2a546b74d3b5652b7d8"><td class="memItemLeft" align="right" valign="top"><a id="a82068076187da2a546b74d3b5652b7d8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setRange</b> (float min, float max) noexcept</td></tr>
<tr class="separator:a82068076187da2a546b74d3b5652b7d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a540f4dd220e16ef85d62f962ce18134c"><td class="memItemLeft" align="right" valign="top"><a id="a540f4dd220e16ef85d62f962ce18134c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setStep</b> (float step) noexcept</td></tr>
<tr class="separator:a540f4dd220e16ef85d62f962ce18134c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6273f931686fbef63959ada484f6f60c"><td class="memItemLeft" align="right" valign="top"><a id="a6273f931686fbef63959ada484f6f60c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setValue</b> (float value, bool sendCallback=false) noexcept</td></tr>
<tr class="separator:a6273f931686fbef63959ada484f6f60c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c0e68232fc2d794b3ed8ea2ab7f77aa"><td class="memItemLeft" align="right" valign="top"><a id="a7c0e68232fc2d794b3ed8ea2ab7f77aa"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setUsingLogScale</b> (bool yesNo) noexcept</td></tr>
<tr class="separator:a7c0e68232fc2d794b3ed8ea2ab7f77aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90ae2ea11f5f0b80ff19141d53f87f60"><td class="memItemLeft" align="right" valign="top"><a id="a90ae2ea11f5f0b80ff19141d53f87f60"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setCallback</b> (<a class="el" href="classImageBaseKnob_1_1Callback.html">Callback</a> *callback) noexcept</td></tr>
<tr class="separator:a90ae2ea11f5f0b80ff19141d53f87f60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ece7f5dddf2aaff8d264e4f7f15f09e"><td class="memItemLeft" align="right" valign="top"><a id="a9ece7f5dddf2aaff8d264e4f7f15f09e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setOrientation</b> (Orientation orientation) noexcept</td></tr>
<tr class="separator:a9ece7f5dddf2aaff8d264e4f7f15f09e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d023e9c42a09842a900ff4b185dae05"><td class="memItemLeft" align="right" valign="top"><a id="a9d023e9c42a09842a900ff4b185dae05"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setRotationAngle</b> (int angle)</td></tr>
<tr class="separator:a9d023e9c42a09842a900ff4b185dae05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93a44db53146b438820209546e01e4fc"><td class="memItemLeft" align="right" valign="top"><a id="a93a44db53146b438820209546e01e4fc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setImageLayerCount</b> (uint count) noexcept</td></tr>
<tr class="separator:a93a44db53146b438820209546e01e4fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classSubWidget"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSubWidget')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSubWidget.html">SubWidget</a></td></tr>
<tr class="memitem:a9fda448971613b2758fd9570c3065f7a inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a9fda448971613b2758fd9570c3065f7a">SubWidget</a> (<a class="el" href="classWidget.html">Widget</a> *parentWidget)</td></tr>
<tr class="separator:a9fda448971613b2758fd9570c3065f7a inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f6225f53db69cd682910939edc9fd96 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a0f6225f53db69cd682910939edc9fd96">~SubWidget</a> ()</td></tr>
<tr class="separator:a0f6225f53db69cd682910939edc9fd96 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9b4d3e2a3a39e588504dd33c1d9ca95 inherit pub_methods_classSubWidget"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ac9b4d3e2a3a39e588504dd33c1d9ca95 inherit pub_methods_classSubWidget"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classSubWidget.html#ac9b4d3e2a3a39e588504dd33c1d9ca95">contains</a> (T x, T y) const noexcept</td></tr>
<tr class="separator:ac9b4d3e2a3a39e588504dd33c1d9ca95 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5b584dfb15c98b67c03a2d9699651b7 inherit pub_methods_classSubWidget"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ac5b584dfb15c98b67c03a2d9699651b7 inherit pub_methods_classSubWidget"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classSubWidget.html#ac5b584dfb15c98b67c03a2d9699651b7">contains</a> (const <a class="el" href="classPoint.html">Point</a>&lt; T &gt; &amp;pos) const noexcept</td></tr>
<tr class="separator:ac5b584dfb15c98b67c03a2d9699651b7 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a641f035fa0ce5b5e87ee9b3ab7bf34 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a5a641f035fa0ce5b5e87ee9b3ab7bf34">getAbsoluteX</a> () const noexcept</td></tr>
<tr class="separator:a5a641f035fa0ce5b5e87ee9b3ab7bf34 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefe10cc8f9d62950b56f71559d1e3f5e inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#aefe10cc8f9d62950b56f71559d1e3f5e">getAbsoluteY</a> () const noexcept</td></tr>
<tr class="separator:aefe10cc8f9d62950b56f71559d1e3f5e inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c67b16fb0234941f387a960a0f0cb76 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classPoint.html">Point</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a1c67b16fb0234941f387a960a0f0cb76">getAbsolutePos</a> () const noexcept</td></tr>
<tr class="separator:a1c67b16fb0234941f387a960a0f0cb76 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2f289973c4a58d78eb6bb12bcbf093a inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRectangle.html">Rectangle</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#af2f289973c4a58d78eb6bb12bcbf093a">getAbsoluteArea</a> () const noexcept</td></tr>
<tr class="separator:af2f289973c4a58d78eb6bb12bcbf093a inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72bf08fe6f61fc935f6f0836d308bc9e inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRectangle.html">Rectangle</a>&lt; uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a72bf08fe6f61fc935f6f0836d308bc9e">getConstrainedAbsoluteArea</a> () const noexcept</td></tr>
<tr class="separator:a72bf08fe6f61fc935f6f0836d308bc9e inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcd0a00a4c3cdc402aea56044df26cc3 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#abcd0a00a4c3cdc402aea56044df26cc3">setAbsoluteX</a> (int x) noexcept</td></tr>
<tr class="separator:abcd0a00a4c3cdc402aea56044df26cc3 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c674e3c46206ac29a562c0f02dcf82c inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a3c674e3c46206ac29a562c0f02dcf82c">setAbsoluteY</a> (int y) noexcept</td></tr>
<tr class="separator:a3c674e3c46206ac29a562c0f02dcf82c inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e7a4dd27eee8a3a1b7bf12d9f21769f inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a0e7a4dd27eee8a3a1b7bf12d9f21769f">setAbsolutePos</a> (int x, int y) noexcept</td></tr>
<tr class="separator:a0e7a4dd27eee8a3a1b7bf12d9f21769f inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05c5e533e9b10186d0f72ae94f72196d inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a05c5e533e9b10186d0f72ae94f72196d">setAbsolutePos</a> (const <a class="el" href="classPoint.html">Point</a>&lt; int &gt; &amp;pos) noexcept</td></tr>
<tr class="separator:a05c5e533e9b10186d0f72ae94f72196d inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d658e71ccb9502b8409a08782d8b345 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWidget.html">Widget</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a2d658e71ccb9502b8409a08782d8b345">getParentWidget</a> () const noexcept</td></tr>
<tr class="separator:a2d658e71ccb9502b8409a08782d8b345 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13910739dc797b600502e2dfa7daef87 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a13910739dc797b600502e2dfa7daef87">repaint</a> () noexcept override</td></tr>
<tr class="separator:a13910739dc797b600502e2dfa7daef87 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3426cbcf0104c8a5c9996e3efff75381 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a3426cbcf0104c8a5c9996e3efff75381">toFront</a> ()</td></tr>
<tr class="separator:a3426cbcf0104c8a5c9996e3efff75381 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a926884690b66c762f7bdb1196c58522b inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a926884690b66c762f7bdb1196c58522b">setNeedsFullViewportDrawing</a> (bool needsFullViewportForDrawing=true)</td></tr>
<tr class="separator:a926884690b66c762f7bdb1196c58522b inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cd703976adf24decbb66dd3dbc1db8b inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a5cd703976adf24decbb66dd3dbc1db8b">setNeedsViewportScaling</a> (bool needsViewportScaling=true, double autoScaleFactor=0.0)</td></tr>
<tr class="separator:a5cd703976adf24decbb66dd3dbc1db8b inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb38f61c0205d7832ddfd090f7f60f2a inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#adb38f61c0205d7832ddfd090f7f60f2a">setSkipDrawing</a> (bool skipDrawing=true)</td></tr>
<tr class="separator:adb38f61c0205d7832ddfd090f7f60f2a inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classWidget"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classWidget')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classWidget.html">Widget</a></td></tr>
<tr class="memitem:a714cf798aadb4d615f6f60a355382c02 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a714cf798aadb4d615f6f60a355382c02">~Widget</a> ()</td></tr>
<tr class="separator:a714cf798aadb4d615f6f60a355382c02 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a234a8ee8a685dc211ad11f492f0dbc71 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a234a8ee8a685dc211ad11f492f0dbc71">isVisible</a> () const noexcept</td></tr>
<tr class="separator:a234a8ee8a685dc211ad11f492f0dbc71 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66088a03691f9c643ff335fa826576ba inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a66088a03691f9c643ff335fa826576ba">setVisible</a> (bool visible)</td></tr>
<tr class="separator:a66088a03691f9c643ff335fa826576ba inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25ff178539e226b5f30ef0335d060f2b inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a25ff178539e226b5f30ef0335d060f2b">show</a> ()</td></tr>
<tr class="separator:a25ff178539e226b5f30ef0335d060f2b inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a2f8eebacdd20db505b838f1a118c6b inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a4a2f8eebacdd20db505b838f1a118c6b">hide</a> ()</td></tr>
<tr class="separator:a4a2f8eebacdd20db505b838f1a118c6b inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a169c317caf734c6664494a573e427b40 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a169c317caf734c6664494a573e427b40">getWidth</a> () const noexcept</td></tr>
<tr class="separator:a169c317caf734c6664494a573e427b40 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa20f6dc096a8836706173f31324c4db8 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#aa20f6dc096a8836706173f31324c4db8">getHeight</a> () const noexcept</td></tr>
<tr class="separator:aa20f6dc096a8836706173f31324c4db8 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9044d42c20ead27dba983b710c94f8d6 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSize.html">Size</a>&lt; uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a9044d42c20ead27dba983b710c94f8d6">getSize</a> () const noexcept</td></tr>
<tr class="separator:a9044d42c20ead27dba983b710c94f8d6 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed80a9cbc4a13c01641f35dd3d8688ea inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#aed80a9cbc4a13c01641f35dd3d8688ea">setWidth</a> (uint width) noexcept</td></tr>
<tr class="separator:aed80a9cbc4a13c01641f35dd3d8688ea inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6d2e6cbb2ff96f3645493d804af07f7 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#ac6d2e6cbb2ff96f3645493d804af07f7">setHeight</a> (uint height) noexcept</td></tr>
<tr class="separator:ac6d2e6cbb2ff96f3645493d804af07f7 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4d9e0156e455db3ff23730f82544daa inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#ab4d9e0156e455db3ff23730f82544daa">setSize</a> (uint width, uint height) noexcept</td></tr>
<tr class="separator:ab4d9e0156e455db3ff23730f82544daa inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afce784b204902c0f11e9ed02bc692362 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#afce784b204902c0f11e9ed02bc692362">setSize</a> (const <a class="el" href="classSize.html">Size</a>&lt; uint &gt; &amp;size) noexcept</td></tr>
<tr class="separator:afce784b204902c0f11e9ed02bc692362 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ee6b2824e3f3719c1c9b3d070385f49 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a3ee6b2824e3f3719c1c9b3d070385f49">getId</a> () const noexcept</td></tr>
<tr class="separator:a3ee6b2824e3f3719c1c9b3d070385f49 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfba3652559de84ba1ae9ccbd3d35e31 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#abfba3652559de84ba1ae9ccbd3d35e31">setId</a> (uint id) noexcept</td></tr>
<tr class="separator:abfba3652559de84ba1ae9ccbd3d35e31 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a373419bc6353abf50a502cdbebd736e7 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classApplication.html">Application</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a373419bc6353abf50a502cdbebd736e7">getApp</a> () const noexcept</td></tr>
<tr class="separator:a373419bc6353abf50a502cdbebd736e7 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ef05695aec704b0eb1eb91c2e8af07d inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWindow.html">Window</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a0ef05695aec704b0eb1eb91c2e8af07d">getWindow</a> () const noexcept</td></tr>
<tr class="separator:a0ef05695aec704b0eb1eb91c2e8af07d inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae23d09ec0e5f0397a3451b603b407182 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGraphicsContext.html">GraphicsContext</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#ae23d09ec0e5f0397a3451b603b407182">getGraphicsContext</a> () const noexcept</td></tr>
<tr class="separator:ae23d09ec0e5f0397a3451b603b407182 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a607b153f7d3187ca60bf21004efc1314 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTopLevelWidget.html">TopLevelWidget</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a607b153f7d3187ca60bf21004efc1314">getTopLevelWidget</a> () const noexcept</td></tr>
<tr class="separator:a607b153f7d3187ca60bf21004efc1314 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa514fb1c20038ba9793e4409e9b18876 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top"><a id="aa514fb1c20038ba9793e4409e9b18876"></a>
<a class="el" href="classApplication.html">Application</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getParentApp</b> () const noexcept</td></tr>
<tr class="separator:aa514fb1c20038ba9793e4409e9b18876 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e0b0b2293bb63b2d84774542cc6a421 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top"><a id="a0e0b0b2293bb63b2d84774542cc6a421"></a>
<a class="el" href="classWindow.html">Window</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getParentWindow</b> () const noexcept</td></tr>
<tr class="separator:a0e0b0b2293bb63b2d84774542cc6a421 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a9a4d1a1ff6fe7e51be7491148c20d1c5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classImageBaseKnob.html#a9a4d1a1ff6fe7e51be7491148c20d1c5">onDisplay</a> () override</td></tr>
<tr class="separator:a9a4d1a1ff6fe7e51be7491148c20d1c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cd97ff56064b28a56d1321508e29f8b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classImageBaseKnob.html#a6cd97ff56064b28a56d1321508e29f8b">onMouse</a> (const <a class="el" href="structWidget_1_1MouseEvent.html">MouseEvent</a> &amp;) override</td></tr>
<tr class="separator:a6cd97ff56064b28a56d1321508e29f8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7fc0602637a98d5a0a5ecfd74557636"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classImageBaseKnob.html#ab7fc0602637a98d5a0a5ecfd74557636">onMotion</a> (const <a class="el" href="structWidget_1_1MotionEvent.html">MotionEvent</a> &amp;) override</td></tr>
<tr class="separator:ab7fc0602637a98d5a0a5ecfd74557636"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb9c35449f4b48741ceb8ba8253648bb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classImageBaseKnob.html#aeb9c35449f4b48741ceb8ba8253648bb">onScroll</a> (const <a class="el" href="structWidget_1_1ScrollEvent.html">ScrollEvent</a> &amp;) override</td></tr>
<tr class="separator:aeb9c35449f4b48741ceb8ba8253648bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classSubWidget"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSubWidget')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classSubWidget.html">SubWidget</a></td></tr>
<tr class="memitem:a80ac88898a4a87047d63a7e49a5a0946 inherit pro_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a80ac88898a4a87047d63a7e49a5a0946">onPositionChanged</a> (const <a class="el" href="structWidget_1_1PositionChangedEvent.html">PositionChangedEvent</a> &amp;)</td></tr>
<tr class="separator:a80ac88898a4a87047d63a7e49a5a0946 inherit pro_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classWidget"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classWidget')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classWidget.html">Widget</a></td></tr>
<tr class="memitem:a9fa874aede538b41348f1029524aea11 inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a9fa874aede538b41348f1029524aea11">onKeyboard</a> (const <a class="el" href="structWidget_1_1KeyboardEvent.html">KeyboardEvent</a> &amp;)</td></tr>
<tr class="separator:a9fa874aede538b41348f1029524aea11 inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b42652fcb2f95c6f86bdd43a1727507 inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a3b42652fcb2f95c6f86bdd43a1727507">onSpecial</a> (const <a class="el" href="structWidget_1_1SpecialEvent.html">SpecialEvent</a> &amp;)</td></tr>
<tr class="separator:a3b42652fcb2f95c6f86bdd43a1727507 inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7fb24de24d8809305b04ff3750f0dea inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#ad7fb24de24d8809305b04ff3750f0dea">onCharacterInput</a> (const <a class="el" href="structWidget_1_1CharacterInputEvent.html">CharacterInputEvent</a> &amp;)</td></tr>
<tr class="separator:ad7fb24de24d8809305b04ff3750f0dea inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc0365ec4b9245bdffb8d0285be55dea inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#acc0365ec4b9245bdffb8d0285be55dea">onResize</a> (const <a class="el" href="structWidget_1_1ResizeEvent.html">ResizeEvent</a> &amp;)</td></tr>
<tr class="separator:acc0365ec4b9245bdffb8d0285be55dea inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a9a4d1a1ff6fe7e51be7491148c20d1c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a4d1a1ff6fe7e51be7491148c20d1c5">&#9670;&nbsp;</a></span>onDisplay()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ImageType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classImageBaseKnob.html">ImageBaseKnob</a>&lt; ImageType &gt;::onDisplay </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A function called to draw the widget contents. </p>

<p>Implements <a class="el" href="classWidget.html#ae1554f348fe3b2f9d4c3c5c4f9ec55bd">Widget</a>.</p>

</div>
</div>
<a id="a6cd97ff56064b28a56d1321508e29f8b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cd97ff56064b28a56d1321508e29f8b">&#9670;&nbsp;</a></span>onMouse()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ImageType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classImageBaseKnob.html">ImageBaseKnob</a>&lt; ImageType &gt;::onMouse </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structWidget_1_1MouseEvent.html">MouseEvent</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A function called when a mouse button is pressed or released. </p><dl class="section return"><dt>Returns</dt><dd>True to stop event propagation, false otherwise. </dd></dl>

<p>Reimplemented from <a class="el" href="classWidget.html#a097ec1d56a06bdc9e0a4e54880def378">Widget</a>.</p>

</div>
</div>
<a id="ab7fc0602637a98d5a0a5ecfd74557636"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7fc0602637a98d5a0a5ecfd74557636">&#9670;&nbsp;</a></span>onMotion()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ImageType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classImageBaseKnob.html">ImageBaseKnob</a>&lt; ImageType &gt;::onMotion </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structWidget_1_1MotionEvent.html">MotionEvent</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A function called when the pointer moves. </p><dl class="section return"><dt>Returns</dt><dd>True to stop event propagation, false otherwise. </dd></dl>

<p>Reimplemented from <a class="el" href="classWidget.html#a655569fb78a598652e9f24cefa1fe4a5">Widget</a>.</p>

</div>
</div>
<a id="aeb9c35449f4b48741ceb8ba8253648bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb9c35449f4b48741ceb8ba8253648bb">&#9670;&nbsp;</a></span>onScroll()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ImageType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classImageBaseKnob.html">ImageBaseKnob</a>&lt; ImageType &gt;::onScroll </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structWidget_1_1ScrollEvent.html">ScrollEvent</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A function called on scrolling (e.g. mouse wheel or track pad). </p><dl class="section return"><dt>Returns</dt><dd>True to stop event propagation, false otherwise. </dd></dl>

<p>Reimplemented from <a class="el" href="classWidget.html#a0d78d28bd4a98c3a016a38091b2d4185">Widget</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>dgl/<a class="el" href="ImageBaseWidgets_8hpp_source.html">ImageBaseWidgets.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

BIN
classImageBaseKnob.png View File

Before After
Width: 187  |  Height: 136  |  Size: 881B

+ 87
- 0
classImageBaseKnob_1_1Callback-members.html View File

@@ -0,0 +1,87 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob</a></li><li class="navelem"><a class="el" href="classImageBaseKnob_1_1Callback.html">Callback</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">ImageBaseKnob&lt; ImageType &gt;::Callback Member List</div> </div>
</div><!--header-->
<div class="contents">

<p>This is the complete list of members for <a class="el" href="classImageBaseKnob_1_1Callback.html">ImageBaseKnob&lt; ImageType &gt;::Callback</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>imageKnobDragFinished</b>(ImageBaseKnob *imageKnob)=0 (defined in <a class="el" href="classImageBaseKnob_1_1Callback.html">ImageBaseKnob&lt; ImageType &gt;::Callback</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob_1_1Callback.html">ImageBaseKnob&lt; ImageType &gt;::Callback</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>imageKnobDragStarted</b>(ImageBaseKnob *imageKnob)=0 (defined in <a class="el" href="classImageBaseKnob_1_1Callback.html">ImageBaseKnob&lt; ImageType &gt;::Callback</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob_1_1Callback.html">ImageBaseKnob&lt; ImageType &gt;::Callback</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>imageKnobValueChanged</b>(ImageBaseKnob *imageKnob, float value)=0 (defined in <a class="el" href="classImageBaseKnob_1_1Callback.html">ImageBaseKnob&lt; ImageType &gt;::Callback</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob_1_1Callback.html">ImageBaseKnob&lt; ImageType &gt;::Callback</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>~Callback</b>() (defined in <a class="el" href="classImageBaseKnob_1_1Callback.html">ImageBaseKnob&lt; ImageType &gt;::Callback</a>)</td><td class="entry"><a class="el" href="classImageBaseKnob_1_1Callback.html">ImageBaseKnob&lt; ImageType &gt;::Callback</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

+ 99
- 0
classImageBaseKnob_1_1Callback.html View File

@@ -0,0 +1,99 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: ImageBaseKnob&lt; ImageType &gt;::Callback Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="classImageBaseKnob.html">ImageBaseKnob</a></li><li class="navelem"><a class="el" href="classImageBaseKnob_1_1Callback.html">Callback</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classImageBaseKnob_1_1Callback-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ImageBaseKnob&lt; ImageType &gt;::Callback Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1efcf57ab5500cf3e851e62f82a33fe6"><td class="memItemLeft" align="right" valign="top"><a id="a1efcf57ab5500cf3e851e62f82a33fe6"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>imageKnobDragStarted</b> (<a class="el" href="classImageBaseKnob.html">ImageBaseKnob</a> *imageKnob)=0</td></tr>
<tr class="separator:a1efcf57ab5500cf3e851e62f82a33fe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f26e4f1a2354a8b83f07ed90e07e0ea"><td class="memItemLeft" align="right" valign="top"><a id="a8f26e4f1a2354a8b83f07ed90e07e0ea"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>imageKnobDragFinished</b> (<a class="el" href="classImageBaseKnob.html">ImageBaseKnob</a> *imageKnob)=0</td></tr>
<tr class="separator:a8f26e4f1a2354a8b83f07ed90e07e0ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a835413f9c7dbc9be3c430e4dc16af963"><td class="memItemLeft" align="right" valign="top"><a id="a835413f9c7dbc9be3c430e4dc16af963"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>imageKnobValueChanged</b> (<a class="el" href="classImageBaseKnob.html">ImageBaseKnob</a> *imageKnob, float value)=0</td></tr>
<tr class="separator:a835413f9c7dbc9be3c430e4dc16af963"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>dgl/<a class="el" href="ImageBaseWidgets_8hpp_source.html">ImageBaseWidgets.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

+ 140
- 0
classImageBaseSlider-members.html View File

@@ -0,0 +1,140 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">ImageBaseSlider&lt; ImageType &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">

<p>This is the complete list of members for <a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#ac9b4d3e2a3a39e588504dd33c1d9ca95">contains</a>(T x, T y) const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#ac5b584dfb15c98b67c03a2d9699651b7">contains</a>(const Point&lt; T &gt; &amp;pos) const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#af2f289973c4a58d78eb6bb12bcbf093a">getAbsoluteArea</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a1c67b16fb0234941f387a960a0f0cb76">getAbsolutePos</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a5a641f035fa0ce5b5e87ee9b3ab7bf34">getAbsoluteX</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#aefe10cc8f9d62950b56f71559d1e3f5e">getAbsoluteY</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a373419bc6353abf50a502cdbebd736e7">getApp</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a72bf08fe6f61fc935f6f0836d308bc9e">getConstrainedAbsoluteArea</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#ae23d09ec0e5f0397a3451b603b407182">getGraphicsContext</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#aa20f6dc096a8836706173f31324c4db8">getHeight</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a3ee6b2824e3f3719c1c9b3d070385f49">getId</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getParentApp</b>() const noexcept (defined in <a class="el" href="classWidget.html">Widget</a>)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a2d658e71ccb9502b8409a08782d8b345">getParentWidget</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getParentWindow</b>() const noexcept (defined in <a class="el" href="classWidget.html">Widget</a>)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a9044d42c20ead27dba983b710c94f8d6">getSize</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a607b153f7d3187ca60bf21004efc1314">getTopLevelWidget</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getValue</b>() const noexcept (defined in <a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a169c317caf734c6664494a573e427b40">getWidth</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a0ef05695aec704b0eb1eb91c2e8af07d">getWindow</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a4a2f8eebacdd20db505b838f1a118c6b">hide</a>()</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ImageBaseSlider</b>(Widget *parentWidget, const ImageType &amp;image) noexcept (defined in <a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a234a8ee8a685dc211ad11f492f0dbc71">isVisible</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#ad7fb24de24d8809305b04ff3750f0dea">onCharacterInput</a>(const CharacterInputEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classImageBaseSlider.html#ad51cf7404dd7791eaa83126f346ae6c5">onDisplay</a>() override</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a9fa874aede538b41348f1029524aea11">onKeyboard</a>(const KeyboardEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classImageBaseSlider.html#a2b50b9c33b7f0685c6d3037afe65ebae">onMotion</a>(const MotionEvent &amp;) override</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classImageBaseSlider.html#af1caea46d10b3decd14ad795e0a58a9d">onMouse</a>(const MouseEvent &amp;) override</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a80ac88898a4a87047d63a7e49a5a0946">onPositionChanged</a>(const PositionChangedEvent &amp;)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#acc0365ec4b9245bdffb8d0285be55dea">onResize</a>(const ResizeEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a0d78d28bd4a98c3a016a38091b2d4185">onScroll</a>(const ScrollEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a3b42652fcb2f95c6f86bdd43a1727507">onSpecial</a>(const SpecialEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a13910739dc797b600502e2dfa7daef87">repaint</a>() noexcept override</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a0e7a4dd27eee8a3a1b7bf12d9f21769f">SubWidget::setAbsolutePos</a>(int x, int y) noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a05c5e533e9b10186d0f72ae94f72196d">SubWidget::setAbsolutePos</a>(const Point&lt; int &gt; &amp;pos) noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#abcd0a00a4c3cdc402aea56044df26cc3">SubWidget::setAbsoluteX</a>(int x) noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a3c674e3c46206ac29a562c0f02dcf82c">SubWidget::setAbsoluteY</a>(int y) noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setCallback</b>(Callback *callback) noexcept (defined in <a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setDefault</b>(float def) noexcept (defined in <a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setEndPos</b>(const Point&lt; int &gt; &amp;endPos) noexcept (defined in <a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setEndPos</b>(int x, int y) noexcept (defined in <a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#ac6d2e6cbb2ff96f3645493d804af07f7">setHeight</a>(uint height) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#abfba3652559de84ba1ae9ccbd3d35e31">setId</a>(uint id) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setInverted</b>(bool inverted) noexcept (defined in <a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a926884690b66c762f7bdb1196c58522b">setNeedsFullViewportDrawing</a>(bool needsFullViewportForDrawing=true)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a5cd703976adf24decbb66dd3dbc1db8b">setNeedsViewportScaling</a>(bool needsViewportScaling=true, double autoScaleFactor=0.0)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setRange</b>(float min, float max) noexcept (defined in <a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#ab4d9e0156e455db3ff23730f82544daa">setSize</a>(uint width, uint height) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#afce784b204902c0f11e9ed02bc692362">setSize</a>(const Size&lt; uint &gt; &amp;size) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#adb38f61c0205d7832ddfd090f7f60f2a">setSkipDrawing</a>(bool skipDrawing=true)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setStartPos</b>(const Point&lt; int &gt; &amp;startPos) noexcept (defined in <a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setStartPos</b>(int x, int y) noexcept (defined in <a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setStep</b>(float step) noexcept (defined in <a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setValue</b>(float value, bool sendCallback=false) noexcept (defined in <a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a66088a03691f9c643ff335fa826576ba">setVisible</a>(bool visible)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#aed80a9cbc4a13c01641f35dd3d8688ea">setWidth</a>(uint width) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a25ff178539e226b5f30ef0335d060f2b">show</a>()</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a9fda448971613b2758fd9570c3065f7a">SubWidget</a>(Widget *parentWidget)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a3426cbcf0104c8a5c9996e3efff75381">toFront</a>()</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~ImageBaseSlider</b>() override (defined in <a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a0f6225f53db69cd682910939edc9fd96">~SubWidget</a>()</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a714cf798aadb4d615f6f60a355382c02">~Widget</a>()</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

+ 339
- 0
classImageBaseSlider.html View File

@@ -0,0 +1,339 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: ImageBaseSlider&lt; ImageType &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classImageBaseSlider-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ImageBaseSlider&lt; ImageType &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for ImageBaseSlider&lt; ImageType &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="classImageBaseSlider.png" usemap="#ImageBaseSlider_3C_20ImageType_20_3E_map" alt=""/>
<map id="ImageBaseSlider_3C_20ImageType_20_3E_map" name="ImageBaseSlider_3C_20ImageType_20_3E_map">
<area href="classSubWidget.html" alt="SubWidget" shape="rect" coords="0,56,191,80"/>
<area href="classWidget.html" alt="Widget" shape="rect" coords="0,0,191,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classImageBaseSlider_1_1Callback.html">Callback</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ad0f10c3ec073c3ea2ce6fd7865a91165"><td class="memItemLeft" align="right" valign="top"><a id="ad0f10c3ec073c3ea2ce6fd7865a91165"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>ImageBaseSlider</b> (<a class="el" href="classWidget.html">Widget</a> *parentWidget, const ImageType &amp;image) noexcept</td></tr>
<tr class="separator:ad0f10c3ec073c3ea2ce6fd7865a91165"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e4762a07fa1d612493d5b482550af84"><td class="memItemLeft" align="right" valign="top"><a id="a4e4762a07fa1d612493d5b482550af84"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>getValue</b> () const noexcept</td></tr>
<tr class="separator:a4e4762a07fa1d612493d5b482550af84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d84799dbb7cac7f3808d460e115c46b"><td class="memItemLeft" align="right" valign="top"><a id="a2d84799dbb7cac7f3808d460e115c46b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setValue</b> (float value, bool sendCallback=false) noexcept</td></tr>
<tr class="separator:a2d84799dbb7cac7f3808d460e115c46b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a222f6e363da9b4274f8943e4237c1155"><td class="memItemLeft" align="right" valign="top"><a id="a222f6e363da9b4274f8943e4237c1155"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setDefault</b> (float def) noexcept</td></tr>
<tr class="separator:a222f6e363da9b4274f8943e4237c1155"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46c0bbed3cc4aa9671e22b61810b82d4"><td class="memItemLeft" align="right" valign="top"><a id="a46c0bbed3cc4aa9671e22b61810b82d4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setStartPos</b> (const <a class="el" href="classPoint.html">Point</a>&lt; int &gt; &amp;startPos) noexcept</td></tr>
<tr class="separator:a46c0bbed3cc4aa9671e22b61810b82d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecfdcc78edcebdf505aa35c07add6f0e"><td class="memItemLeft" align="right" valign="top"><a id="aecfdcc78edcebdf505aa35c07add6f0e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setStartPos</b> (int x, int y) noexcept</td></tr>
<tr class="separator:aecfdcc78edcebdf505aa35c07add6f0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5fc3a6f565005d8a77b65150cdfd890"><td class="memItemLeft" align="right" valign="top"><a id="ae5fc3a6f565005d8a77b65150cdfd890"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setEndPos</b> (const <a class="el" href="classPoint.html">Point</a>&lt; int &gt; &amp;endPos) noexcept</td></tr>
<tr class="separator:ae5fc3a6f565005d8a77b65150cdfd890"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40cc7bc36e2c0edb852c60ffa8054bc8"><td class="memItemLeft" align="right" valign="top"><a id="a40cc7bc36e2c0edb852c60ffa8054bc8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setEndPos</b> (int x, int y) noexcept</td></tr>
<tr class="separator:a40cc7bc36e2c0edb852c60ffa8054bc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad90ad9c79f81550c3b9040c231ce3db1"><td class="memItemLeft" align="right" valign="top"><a id="ad90ad9c79f81550c3b9040c231ce3db1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setInverted</b> (bool inverted) noexcept</td></tr>
<tr class="separator:ad90ad9c79f81550c3b9040c231ce3db1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87d375b1b2734e6d8f70841a2903f3f8"><td class="memItemLeft" align="right" valign="top"><a id="a87d375b1b2734e6d8f70841a2903f3f8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setRange</b> (float min, float max) noexcept</td></tr>
<tr class="separator:a87d375b1b2734e6d8f70841a2903f3f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af387b656fb75daf777565ed11dab77ec"><td class="memItemLeft" align="right" valign="top"><a id="af387b656fb75daf777565ed11dab77ec"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setStep</b> (float step) noexcept</td></tr>
<tr class="separator:af387b656fb75daf777565ed11dab77ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9677067f19a970d0ecc3f558944b648"><td class="memItemLeft" align="right" valign="top"><a id="ac9677067f19a970d0ecc3f558944b648"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setCallback</b> (<a class="el" href="classImageBaseSlider_1_1Callback.html">Callback</a> *callback) noexcept</td></tr>
<tr class="separator:ac9677067f19a970d0ecc3f558944b648"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classSubWidget"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSubWidget')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSubWidget.html">SubWidget</a></td></tr>
<tr class="memitem:a9fda448971613b2758fd9570c3065f7a inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a9fda448971613b2758fd9570c3065f7a">SubWidget</a> (<a class="el" href="classWidget.html">Widget</a> *parentWidget)</td></tr>
<tr class="separator:a9fda448971613b2758fd9570c3065f7a inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f6225f53db69cd682910939edc9fd96 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a0f6225f53db69cd682910939edc9fd96">~SubWidget</a> ()</td></tr>
<tr class="separator:a0f6225f53db69cd682910939edc9fd96 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9b4d3e2a3a39e588504dd33c1d9ca95 inherit pub_methods_classSubWidget"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ac9b4d3e2a3a39e588504dd33c1d9ca95 inherit pub_methods_classSubWidget"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classSubWidget.html#ac9b4d3e2a3a39e588504dd33c1d9ca95">contains</a> (T x, T y) const noexcept</td></tr>
<tr class="separator:ac9b4d3e2a3a39e588504dd33c1d9ca95 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5b584dfb15c98b67c03a2d9699651b7 inherit pub_methods_classSubWidget"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ac5b584dfb15c98b67c03a2d9699651b7 inherit pub_methods_classSubWidget"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classSubWidget.html#ac5b584dfb15c98b67c03a2d9699651b7">contains</a> (const <a class="el" href="classPoint.html">Point</a>&lt; T &gt; &amp;pos) const noexcept</td></tr>
<tr class="separator:ac5b584dfb15c98b67c03a2d9699651b7 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a641f035fa0ce5b5e87ee9b3ab7bf34 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a5a641f035fa0ce5b5e87ee9b3ab7bf34">getAbsoluteX</a> () const noexcept</td></tr>
<tr class="separator:a5a641f035fa0ce5b5e87ee9b3ab7bf34 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefe10cc8f9d62950b56f71559d1e3f5e inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#aefe10cc8f9d62950b56f71559d1e3f5e">getAbsoluteY</a> () const noexcept</td></tr>
<tr class="separator:aefe10cc8f9d62950b56f71559d1e3f5e inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c67b16fb0234941f387a960a0f0cb76 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classPoint.html">Point</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a1c67b16fb0234941f387a960a0f0cb76">getAbsolutePos</a> () const noexcept</td></tr>
<tr class="separator:a1c67b16fb0234941f387a960a0f0cb76 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2f289973c4a58d78eb6bb12bcbf093a inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRectangle.html">Rectangle</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#af2f289973c4a58d78eb6bb12bcbf093a">getAbsoluteArea</a> () const noexcept</td></tr>
<tr class="separator:af2f289973c4a58d78eb6bb12bcbf093a inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72bf08fe6f61fc935f6f0836d308bc9e inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRectangle.html">Rectangle</a>&lt; uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a72bf08fe6f61fc935f6f0836d308bc9e">getConstrainedAbsoluteArea</a> () const noexcept</td></tr>
<tr class="separator:a72bf08fe6f61fc935f6f0836d308bc9e inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcd0a00a4c3cdc402aea56044df26cc3 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#abcd0a00a4c3cdc402aea56044df26cc3">setAbsoluteX</a> (int x) noexcept</td></tr>
<tr class="separator:abcd0a00a4c3cdc402aea56044df26cc3 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c674e3c46206ac29a562c0f02dcf82c inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a3c674e3c46206ac29a562c0f02dcf82c">setAbsoluteY</a> (int y) noexcept</td></tr>
<tr class="separator:a3c674e3c46206ac29a562c0f02dcf82c inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e7a4dd27eee8a3a1b7bf12d9f21769f inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a0e7a4dd27eee8a3a1b7bf12d9f21769f">setAbsolutePos</a> (int x, int y) noexcept</td></tr>
<tr class="separator:a0e7a4dd27eee8a3a1b7bf12d9f21769f inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05c5e533e9b10186d0f72ae94f72196d inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a05c5e533e9b10186d0f72ae94f72196d">setAbsolutePos</a> (const <a class="el" href="classPoint.html">Point</a>&lt; int &gt; &amp;pos) noexcept</td></tr>
<tr class="separator:a05c5e533e9b10186d0f72ae94f72196d inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d658e71ccb9502b8409a08782d8b345 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWidget.html">Widget</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a2d658e71ccb9502b8409a08782d8b345">getParentWidget</a> () const noexcept</td></tr>
<tr class="separator:a2d658e71ccb9502b8409a08782d8b345 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13910739dc797b600502e2dfa7daef87 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a13910739dc797b600502e2dfa7daef87">repaint</a> () noexcept override</td></tr>
<tr class="separator:a13910739dc797b600502e2dfa7daef87 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3426cbcf0104c8a5c9996e3efff75381 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a3426cbcf0104c8a5c9996e3efff75381">toFront</a> ()</td></tr>
<tr class="separator:a3426cbcf0104c8a5c9996e3efff75381 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a926884690b66c762f7bdb1196c58522b inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a926884690b66c762f7bdb1196c58522b">setNeedsFullViewportDrawing</a> (bool needsFullViewportForDrawing=true)</td></tr>
<tr class="separator:a926884690b66c762f7bdb1196c58522b inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cd703976adf24decbb66dd3dbc1db8b inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a5cd703976adf24decbb66dd3dbc1db8b">setNeedsViewportScaling</a> (bool needsViewportScaling=true, double autoScaleFactor=0.0)</td></tr>
<tr class="separator:a5cd703976adf24decbb66dd3dbc1db8b inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb38f61c0205d7832ddfd090f7f60f2a inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#adb38f61c0205d7832ddfd090f7f60f2a">setSkipDrawing</a> (bool skipDrawing=true)</td></tr>
<tr class="separator:adb38f61c0205d7832ddfd090f7f60f2a inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classWidget"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classWidget')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classWidget.html">Widget</a></td></tr>
<tr class="memitem:a714cf798aadb4d615f6f60a355382c02 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a714cf798aadb4d615f6f60a355382c02">~Widget</a> ()</td></tr>
<tr class="separator:a714cf798aadb4d615f6f60a355382c02 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a234a8ee8a685dc211ad11f492f0dbc71 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a234a8ee8a685dc211ad11f492f0dbc71">isVisible</a> () const noexcept</td></tr>
<tr class="separator:a234a8ee8a685dc211ad11f492f0dbc71 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66088a03691f9c643ff335fa826576ba inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a66088a03691f9c643ff335fa826576ba">setVisible</a> (bool visible)</td></tr>
<tr class="separator:a66088a03691f9c643ff335fa826576ba inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25ff178539e226b5f30ef0335d060f2b inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a25ff178539e226b5f30ef0335d060f2b">show</a> ()</td></tr>
<tr class="separator:a25ff178539e226b5f30ef0335d060f2b inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a2f8eebacdd20db505b838f1a118c6b inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a4a2f8eebacdd20db505b838f1a118c6b">hide</a> ()</td></tr>
<tr class="separator:a4a2f8eebacdd20db505b838f1a118c6b inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a169c317caf734c6664494a573e427b40 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a169c317caf734c6664494a573e427b40">getWidth</a> () const noexcept</td></tr>
<tr class="separator:a169c317caf734c6664494a573e427b40 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa20f6dc096a8836706173f31324c4db8 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#aa20f6dc096a8836706173f31324c4db8">getHeight</a> () const noexcept</td></tr>
<tr class="separator:aa20f6dc096a8836706173f31324c4db8 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9044d42c20ead27dba983b710c94f8d6 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSize.html">Size</a>&lt; uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a9044d42c20ead27dba983b710c94f8d6">getSize</a> () const noexcept</td></tr>
<tr class="separator:a9044d42c20ead27dba983b710c94f8d6 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed80a9cbc4a13c01641f35dd3d8688ea inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#aed80a9cbc4a13c01641f35dd3d8688ea">setWidth</a> (uint width) noexcept</td></tr>
<tr class="separator:aed80a9cbc4a13c01641f35dd3d8688ea inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6d2e6cbb2ff96f3645493d804af07f7 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#ac6d2e6cbb2ff96f3645493d804af07f7">setHeight</a> (uint height) noexcept</td></tr>
<tr class="separator:ac6d2e6cbb2ff96f3645493d804af07f7 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4d9e0156e455db3ff23730f82544daa inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#ab4d9e0156e455db3ff23730f82544daa">setSize</a> (uint width, uint height) noexcept</td></tr>
<tr class="separator:ab4d9e0156e455db3ff23730f82544daa inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afce784b204902c0f11e9ed02bc692362 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#afce784b204902c0f11e9ed02bc692362">setSize</a> (const <a class="el" href="classSize.html">Size</a>&lt; uint &gt; &amp;size) noexcept</td></tr>
<tr class="separator:afce784b204902c0f11e9ed02bc692362 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ee6b2824e3f3719c1c9b3d070385f49 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a3ee6b2824e3f3719c1c9b3d070385f49">getId</a> () const noexcept</td></tr>
<tr class="separator:a3ee6b2824e3f3719c1c9b3d070385f49 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfba3652559de84ba1ae9ccbd3d35e31 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#abfba3652559de84ba1ae9ccbd3d35e31">setId</a> (uint id) noexcept</td></tr>
<tr class="separator:abfba3652559de84ba1ae9ccbd3d35e31 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a373419bc6353abf50a502cdbebd736e7 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classApplication.html">Application</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a373419bc6353abf50a502cdbebd736e7">getApp</a> () const noexcept</td></tr>
<tr class="separator:a373419bc6353abf50a502cdbebd736e7 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ef05695aec704b0eb1eb91c2e8af07d inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWindow.html">Window</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a0ef05695aec704b0eb1eb91c2e8af07d">getWindow</a> () const noexcept</td></tr>
<tr class="separator:a0ef05695aec704b0eb1eb91c2e8af07d inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae23d09ec0e5f0397a3451b603b407182 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGraphicsContext.html">GraphicsContext</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#ae23d09ec0e5f0397a3451b603b407182">getGraphicsContext</a> () const noexcept</td></tr>
<tr class="separator:ae23d09ec0e5f0397a3451b603b407182 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a607b153f7d3187ca60bf21004efc1314 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTopLevelWidget.html">TopLevelWidget</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a607b153f7d3187ca60bf21004efc1314">getTopLevelWidget</a> () const noexcept</td></tr>
<tr class="separator:a607b153f7d3187ca60bf21004efc1314 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa514fb1c20038ba9793e4409e9b18876 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top"><a id="aa514fb1c20038ba9793e4409e9b18876"></a>
<a class="el" href="classApplication.html">Application</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getParentApp</b> () const noexcept</td></tr>
<tr class="separator:aa514fb1c20038ba9793e4409e9b18876 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e0b0b2293bb63b2d84774542cc6a421 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top"><a id="a0e0b0b2293bb63b2d84774542cc6a421"></a>
<a class="el" href="classWindow.html">Window</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getParentWindow</b> () const noexcept</td></tr>
<tr class="separator:a0e0b0b2293bb63b2d84774542cc6a421 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ad51cf7404dd7791eaa83126f346ae6c5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classImageBaseSlider.html#ad51cf7404dd7791eaa83126f346ae6c5">onDisplay</a> () override</td></tr>
<tr class="separator:ad51cf7404dd7791eaa83126f346ae6c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1caea46d10b3decd14ad795e0a58a9d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classImageBaseSlider.html#af1caea46d10b3decd14ad795e0a58a9d">onMouse</a> (const <a class="el" href="structWidget_1_1MouseEvent.html">MouseEvent</a> &amp;) override</td></tr>
<tr class="separator:af1caea46d10b3decd14ad795e0a58a9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b50b9c33b7f0685c6d3037afe65ebae"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classImageBaseSlider.html#a2b50b9c33b7f0685c6d3037afe65ebae">onMotion</a> (const <a class="el" href="structWidget_1_1MotionEvent.html">MotionEvent</a> &amp;) override</td></tr>
<tr class="separator:a2b50b9c33b7f0685c6d3037afe65ebae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classSubWidget"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSubWidget')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classSubWidget.html">SubWidget</a></td></tr>
<tr class="memitem:a80ac88898a4a87047d63a7e49a5a0946 inherit pro_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a80ac88898a4a87047d63a7e49a5a0946">onPositionChanged</a> (const <a class="el" href="structWidget_1_1PositionChangedEvent.html">PositionChangedEvent</a> &amp;)</td></tr>
<tr class="separator:a80ac88898a4a87047d63a7e49a5a0946 inherit pro_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classWidget"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classWidget')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classWidget.html">Widget</a></td></tr>
<tr class="memitem:a9fa874aede538b41348f1029524aea11 inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a9fa874aede538b41348f1029524aea11">onKeyboard</a> (const <a class="el" href="structWidget_1_1KeyboardEvent.html">KeyboardEvent</a> &amp;)</td></tr>
<tr class="separator:a9fa874aede538b41348f1029524aea11 inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b42652fcb2f95c6f86bdd43a1727507 inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a3b42652fcb2f95c6f86bdd43a1727507">onSpecial</a> (const <a class="el" href="structWidget_1_1SpecialEvent.html">SpecialEvent</a> &amp;)</td></tr>
<tr class="separator:a3b42652fcb2f95c6f86bdd43a1727507 inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7fb24de24d8809305b04ff3750f0dea inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#ad7fb24de24d8809305b04ff3750f0dea">onCharacterInput</a> (const <a class="el" href="structWidget_1_1CharacterInputEvent.html">CharacterInputEvent</a> &amp;)</td></tr>
<tr class="separator:ad7fb24de24d8809305b04ff3750f0dea inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d78d28bd4a98c3a016a38091b2d4185 inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a0d78d28bd4a98c3a016a38091b2d4185">onScroll</a> (const <a class="el" href="structWidget_1_1ScrollEvent.html">ScrollEvent</a> &amp;)</td></tr>
<tr class="separator:a0d78d28bd4a98c3a016a38091b2d4185 inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc0365ec4b9245bdffb8d0285be55dea inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#acc0365ec4b9245bdffb8d0285be55dea">onResize</a> (const <a class="el" href="structWidget_1_1ResizeEvent.html">ResizeEvent</a> &amp;)</td></tr>
<tr class="separator:acc0365ec4b9245bdffb8d0285be55dea inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ad51cf7404dd7791eaa83126f346ae6c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad51cf7404dd7791eaa83126f346ae6c5">&#9670;&nbsp;</a></span>onDisplay()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ImageType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classImageBaseSlider.html">ImageBaseSlider</a>&lt; ImageType &gt;::onDisplay </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A function called to draw the widget contents. </p>

<p>Implements <a class="el" href="classWidget.html#ae1554f348fe3b2f9d4c3c5c4f9ec55bd">Widget</a>.</p>

</div>
</div>
<a id="af1caea46d10b3decd14ad795e0a58a9d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1caea46d10b3decd14ad795e0a58a9d">&#9670;&nbsp;</a></span>onMouse()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ImageType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classImageBaseSlider.html">ImageBaseSlider</a>&lt; ImageType &gt;::onMouse </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structWidget_1_1MouseEvent.html">MouseEvent</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A function called when a mouse button is pressed or released. </p><dl class="section return"><dt>Returns</dt><dd>True to stop event propagation, false otherwise. </dd></dl>

<p>Reimplemented from <a class="el" href="classWidget.html#a097ec1d56a06bdc9e0a4e54880def378">Widget</a>.</p>

</div>
</div>
<a id="a2b50b9c33b7f0685c6d3037afe65ebae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b50b9c33b7f0685c6d3037afe65ebae">&#9670;&nbsp;</a></span>onMotion()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ImageType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classImageBaseSlider.html">ImageBaseSlider</a>&lt; ImageType &gt;::onMotion </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structWidget_1_1MotionEvent.html">MotionEvent</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A function called when the pointer moves. </p><dl class="section return"><dt>Returns</dt><dd>True to stop event propagation, false otherwise. </dd></dl>

<p>Reimplemented from <a class="el" href="classWidget.html#a655569fb78a598652e9f24cefa1fe4a5">Widget</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>dgl/<a class="el" href="ImageBaseWidgets_8hpp_source.html">ImageBaseWidgets.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

BIN
classImageBaseSlider.png View File

Before After
Width: 191  |  Height: 136  |  Size: 906B

+ 87
- 0
classImageBaseSlider_1_1Callback-members.html View File

@@ -0,0 +1,87 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider</a></li><li class="navelem"><a class="el" href="classImageBaseSlider_1_1Callback.html">Callback</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">ImageBaseSlider&lt; ImageType &gt;::Callback Member List</div> </div>
</div><!--header-->
<div class="contents">

<p>This is the complete list of members for <a class="el" href="classImageBaseSlider_1_1Callback.html">ImageBaseSlider&lt; ImageType &gt;::Callback</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>imageSliderDragFinished</b>(ImageBaseSlider *imageSlider)=0 (defined in <a class="el" href="classImageBaseSlider_1_1Callback.html">ImageBaseSlider&lt; ImageType &gt;::Callback</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider_1_1Callback.html">ImageBaseSlider&lt; ImageType &gt;::Callback</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>imageSliderDragStarted</b>(ImageBaseSlider *imageSlider)=0 (defined in <a class="el" href="classImageBaseSlider_1_1Callback.html">ImageBaseSlider&lt; ImageType &gt;::Callback</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider_1_1Callback.html">ImageBaseSlider&lt; ImageType &gt;::Callback</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>imageSliderValueChanged</b>(ImageBaseSlider *imageSlider, float value)=0 (defined in <a class="el" href="classImageBaseSlider_1_1Callback.html">ImageBaseSlider&lt; ImageType &gt;::Callback</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider_1_1Callback.html">ImageBaseSlider&lt; ImageType &gt;::Callback</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>~Callback</b>() (defined in <a class="el" href="classImageBaseSlider_1_1Callback.html">ImageBaseSlider&lt; ImageType &gt;::Callback</a>)</td><td class="entry"><a class="el" href="classImageBaseSlider_1_1Callback.html">ImageBaseSlider&lt; ImageType &gt;::Callback</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

+ 99
- 0
classImageBaseSlider_1_1Callback.html View File

@@ -0,0 +1,99 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: ImageBaseSlider&lt; ImageType &gt;::Callback Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="classImageBaseSlider.html">ImageBaseSlider</a></li><li class="navelem"><a class="el" href="classImageBaseSlider_1_1Callback.html">Callback</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classImageBaseSlider_1_1Callback-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ImageBaseSlider&lt; ImageType &gt;::Callback Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae17380f2236d494fc8383facd42fffd6"><td class="memItemLeft" align="right" valign="top"><a id="ae17380f2236d494fc8383facd42fffd6"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>imageSliderDragStarted</b> (<a class="el" href="classImageBaseSlider.html">ImageBaseSlider</a> *imageSlider)=0</td></tr>
<tr class="separator:ae17380f2236d494fc8383facd42fffd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0fb5a19f53779c50e03faa9ba2dda48"><td class="memItemLeft" align="right" valign="top"><a id="aa0fb5a19f53779c50e03faa9ba2dda48"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>imageSliderDragFinished</b> (<a class="el" href="classImageBaseSlider.html">ImageBaseSlider</a> *imageSlider)=0</td></tr>
<tr class="separator:aa0fb5a19f53779c50e03faa9ba2dda48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a683c3a4a7fad1848fcedcb21bbbd8b74"><td class="memItemLeft" align="right" valign="top"><a id="a683c3a4a7fad1848fcedcb21bbbd8b74"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>imageSliderValueChanged</b> (<a class="el" href="classImageBaseSlider.html">ImageBaseSlider</a> *imageSlider, float value)=0</td></tr>
<tr class="separator:a683c3a4a7fad1848fcedcb21bbbd8b74"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>dgl/<a class="el" href="ImageBaseWidgets_8hpp_source.html">ImageBaseWidgets.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

+ 134
- 0
classImageBaseSwitch-members.html View File

@@ -0,0 +1,134 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">ImageBaseSwitch&lt; ImageType &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">

<p>This is the complete list of members for <a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#ac9b4d3e2a3a39e588504dd33c1d9ca95">contains</a>(T x, T y) const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#ac5b584dfb15c98b67c03a2d9699651b7">contains</a>(const Point&lt; T &gt; &amp;pos) const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#af2f289973c4a58d78eb6bb12bcbf093a">getAbsoluteArea</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a1c67b16fb0234941f387a960a0f0cb76">getAbsolutePos</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a5a641f035fa0ce5b5e87ee9b3ab7bf34">getAbsoluteX</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#aefe10cc8f9d62950b56f71559d1e3f5e">getAbsoluteY</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a373419bc6353abf50a502cdbebd736e7">getApp</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a72bf08fe6f61fc935f6f0836d308bc9e">getConstrainedAbsoluteArea</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#ae23d09ec0e5f0397a3451b603b407182">getGraphicsContext</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#aa20f6dc096a8836706173f31324c4db8">getHeight</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a3ee6b2824e3f3719c1c9b3d070385f49">getId</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getParentApp</b>() const noexcept (defined in <a class="el" href="classWidget.html">Widget</a>)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a2d658e71ccb9502b8409a08782d8b345">getParentWidget</a>() const noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getParentWindow</b>() const noexcept (defined in <a class="el" href="classWidget.html">Widget</a>)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a9044d42c20ead27dba983b710c94f8d6">getSize</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a607b153f7d3187ca60bf21004efc1314">getTopLevelWidget</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a169c317caf734c6664494a573e427b40">getWidth</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a0ef05695aec704b0eb1eb91c2e8af07d">getWindow</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a4a2f8eebacdd20db505b838f1a118c6b">hide</a>()</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>ImageBaseSwitch</b>(Widget *parentWidget, const ImageType &amp;imageNormal, const ImageType &amp;imageDown) noexcept (defined in <a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ImageBaseSwitch</b>(const ImageBaseSwitch &amp;imageSwitch) noexcept (defined in <a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>isDown</b>() const noexcept (defined in <a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a234a8ee8a685dc211ad11f492f0dbc71">isVisible</a>() const noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#ad7fb24de24d8809305b04ff3750f0dea">onCharacterInput</a>(const CharacterInputEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classImageBaseSwitch.html#aee9ad32db22d06c98b37d4b62904f92b">onDisplay</a>() override</td><td class="entry"><a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a9fa874aede538b41348f1029524aea11">onKeyboard</a>(const KeyboardEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a655569fb78a598652e9f24cefa1fe4a5">onMotion</a>(const MotionEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classImageBaseSwitch.html#a6912be0532a24c33e6dac851779fc8f0">onMouse</a>(const MouseEvent &amp;) override</td><td class="entry"><a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a80ac88898a4a87047d63a7e49a5a0946">onPositionChanged</a>(const PositionChangedEvent &amp;)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#acc0365ec4b9245bdffb8d0285be55dea">onResize</a>(const ResizeEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a0d78d28bd4a98c3a016a38091b2d4185">onScroll</a>(const ScrollEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a3b42652fcb2f95c6f86bdd43a1727507">onSpecial</a>(const SpecialEvent &amp;)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const ImageBaseSwitch &amp;imageSwitch) noexcept (defined in <a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a13910739dc797b600502e2dfa7daef87">repaint</a>() noexcept override</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a0e7a4dd27eee8a3a1b7bf12d9f21769f">setAbsolutePos</a>(int x, int y) noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a05c5e533e9b10186d0f72ae94f72196d">setAbsolutePos</a>(const Point&lt; int &gt; &amp;pos) noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#abcd0a00a4c3cdc402aea56044df26cc3">setAbsoluteX</a>(int x) noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a3c674e3c46206ac29a562c0f02dcf82c">setAbsoluteY</a>(int y) noexcept</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setCallback</b>(Callback *callback) noexcept (defined in <a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setDown</b>(bool down) noexcept (defined in <a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#ac6d2e6cbb2ff96f3645493d804af07f7">setHeight</a>(uint height) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#abfba3652559de84ba1ae9ccbd3d35e31">setId</a>(uint id) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a926884690b66c762f7bdb1196c58522b">setNeedsFullViewportDrawing</a>(bool needsFullViewportForDrawing=true)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a5cd703976adf24decbb66dd3dbc1db8b">setNeedsViewportScaling</a>(bool needsViewportScaling=true, double autoScaleFactor=0.0)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#ab4d9e0156e455db3ff23730f82544daa">setSize</a>(uint width, uint height) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#afce784b204902c0f11e9ed02bc692362">setSize</a>(const Size&lt; uint &gt; &amp;size) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#adb38f61c0205d7832ddfd090f7f60f2a">setSkipDrawing</a>(bool skipDrawing=true)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a66088a03691f9c643ff335fa826576ba">setVisible</a>(bool visible)</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#aed80a9cbc4a13c01641f35dd3d8688ea">setWidth</a>(uint width) noexcept</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classWidget.html#a25ff178539e226b5f30ef0335d060f2b">show</a>()</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classSubWidget.html#a9fda448971613b2758fd9570c3065f7a">SubWidget</a>(Widget *parentWidget)</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a3426cbcf0104c8a5c9996e3efff75381">toFront</a>()</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~ImageBaseSwitch</b>() override (defined in <a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a>)</td><td class="entry"><a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch&lt; ImageType &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classSubWidget.html#a0f6225f53db69cd682910939edc9fd96">~SubWidget</a>()</td><td class="entry"><a class="el" href="classSubWidget.html">SubWidget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classWidget.html#a714cf798aadb4d615f6f60a355382c02">~Widget</a>()</td><td class="entry"><a class="el" href="classWidget.html">Widget</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

+ 290
- 0
classImageBaseSwitch.html View File

@@ -0,0 +1,290 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: ImageBaseSwitch&lt; ImageType &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classImageBaseSwitch-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ImageBaseSwitch&lt; ImageType &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for ImageBaseSwitch&lt; ImageType &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="classImageBaseSwitch.png" usemap="#ImageBaseSwitch_3C_20ImageType_20_3E_map" alt=""/>
<map id="ImageBaseSwitch_3C_20ImageType_20_3E_map" name="ImageBaseSwitch_3C_20ImageType_20_3E_map">
<area href="classSubWidget.html" alt="SubWidget" shape="rect" coords="0,56,195,80"/>
<area href="classWidget.html" alt="Widget" shape="rect" coords="0,0,195,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classImageBaseSwitch_1_1Callback.html">Callback</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aad904418ad84bd5d0dbea3db40788241"><td class="memItemLeft" align="right" valign="top"><a id="aad904418ad84bd5d0dbea3db40788241"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>ImageBaseSwitch</b> (<a class="el" href="classWidget.html">Widget</a> *parentWidget, const ImageType &amp;imageNormal, const ImageType &amp;imageDown) noexcept</td></tr>
<tr class="separator:aad904418ad84bd5d0dbea3db40788241"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3425e5f87486634df128bb8adfbd4fdd"><td class="memItemLeft" align="right" valign="top"><a id="a3425e5f87486634df128bb8adfbd4fdd"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>ImageBaseSwitch</b> (const <a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch</a> &amp;imageSwitch) noexcept</td></tr>
<tr class="separator:a3425e5f87486634df128bb8adfbd4fdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac3564576646a757d9e4193687bdb263"><td class="memItemLeft" align="right" valign="top"><a id="aac3564576646a757d9e4193687bdb263"></a>
<a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch</a> &amp;imageSwitch) noexcept</td></tr>
<tr class="separator:aac3564576646a757d9e4193687bdb263"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51230a0ab0a089c8429874447e481c43"><td class="memItemLeft" align="right" valign="top"><a id="a51230a0ab0a089c8429874447e481c43"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>isDown</b> () const noexcept</td></tr>
<tr class="separator:a51230a0ab0a089c8429874447e481c43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a611db4539e7c89e147d481c00368b833"><td class="memItemLeft" align="right" valign="top"><a id="a611db4539e7c89e147d481c00368b833"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setDown</b> (bool down) noexcept</td></tr>
<tr class="separator:a611db4539e7c89e147d481c00368b833"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab91db5511591a7bae6636ade804b156d"><td class="memItemLeft" align="right" valign="top"><a id="ab91db5511591a7bae6636ade804b156d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setCallback</b> (<a class="el" href="classImageBaseSwitch_1_1Callback.html">Callback</a> *callback) noexcept</td></tr>
<tr class="separator:ab91db5511591a7bae6636ade804b156d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classSubWidget"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSubWidget')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSubWidget.html">SubWidget</a></td></tr>
<tr class="memitem:a9fda448971613b2758fd9570c3065f7a inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a9fda448971613b2758fd9570c3065f7a">SubWidget</a> (<a class="el" href="classWidget.html">Widget</a> *parentWidget)</td></tr>
<tr class="separator:a9fda448971613b2758fd9570c3065f7a inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f6225f53db69cd682910939edc9fd96 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a0f6225f53db69cd682910939edc9fd96">~SubWidget</a> ()</td></tr>
<tr class="separator:a0f6225f53db69cd682910939edc9fd96 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9b4d3e2a3a39e588504dd33c1d9ca95 inherit pub_methods_classSubWidget"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ac9b4d3e2a3a39e588504dd33c1d9ca95 inherit pub_methods_classSubWidget"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classSubWidget.html#ac9b4d3e2a3a39e588504dd33c1d9ca95">contains</a> (T x, T y) const noexcept</td></tr>
<tr class="separator:ac9b4d3e2a3a39e588504dd33c1d9ca95 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5b584dfb15c98b67c03a2d9699651b7 inherit pub_methods_classSubWidget"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ac5b584dfb15c98b67c03a2d9699651b7 inherit pub_methods_classSubWidget"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classSubWidget.html#ac5b584dfb15c98b67c03a2d9699651b7">contains</a> (const <a class="el" href="classPoint.html">Point</a>&lt; T &gt; &amp;pos) const noexcept</td></tr>
<tr class="separator:ac5b584dfb15c98b67c03a2d9699651b7 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a641f035fa0ce5b5e87ee9b3ab7bf34 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a5a641f035fa0ce5b5e87ee9b3ab7bf34">getAbsoluteX</a> () const noexcept</td></tr>
<tr class="separator:a5a641f035fa0ce5b5e87ee9b3ab7bf34 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefe10cc8f9d62950b56f71559d1e3f5e inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#aefe10cc8f9d62950b56f71559d1e3f5e">getAbsoluteY</a> () const noexcept</td></tr>
<tr class="separator:aefe10cc8f9d62950b56f71559d1e3f5e inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c67b16fb0234941f387a960a0f0cb76 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classPoint.html">Point</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a1c67b16fb0234941f387a960a0f0cb76">getAbsolutePos</a> () const noexcept</td></tr>
<tr class="separator:a1c67b16fb0234941f387a960a0f0cb76 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2f289973c4a58d78eb6bb12bcbf093a inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRectangle.html">Rectangle</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#af2f289973c4a58d78eb6bb12bcbf093a">getAbsoluteArea</a> () const noexcept</td></tr>
<tr class="separator:af2f289973c4a58d78eb6bb12bcbf093a inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72bf08fe6f61fc935f6f0836d308bc9e inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRectangle.html">Rectangle</a>&lt; uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a72bf08fe6f61fc935f6f0836d308bc9e">getConstrainedAbsoluteArea</a> () const noexcept</td></tr>
<tr class="separator:a72bf08fe6f61fc935f6f0836d308bc9e inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcd0a00a4c3cdc402aea56044df26cc3 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#abcd0a00a4c3cdc402aea56044df26cc3">setAbsoluteX</a> (int x) noexcept</td></tr>
<tr class="separator:abcd0a00a4c3cdc402aea56044df26cc3 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c674e3c46206ac29a562c0f02dcf82c inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a3c674e3c46206ac29a562c0f02dcf82c">setAbsoluteY</a> (int y) noexcept</td></tr>
<tr class="separator:a3c674e3c46206ac29a562c0f02dcf82c inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e7a4dd27eee8a3a1b7bf12d9f21769f inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a0e7a4dd27eee8a3a1b7bf12d9f21769f">setAbsolutePos</a> (int x, int y) noexcept</td></tr>
<tr class="separator:a0e7a4dd27eee8a3a1b7bf12d9f21769f inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05c5e533e9b10186d0f72ae94f72196d inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a05c5e533e9b10186d0f72ae94f72196d">setAbsolutePos</a> (const <a class="el" href="classPoint.html">Point</a>&lt; int &gt; &amp;pos) noexcept</td></tr>
<tr class="separator:a05c5e533e9b10186d0f72ae94f72196d inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d658e71ccb9502b8409a08782d8b345 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWidget.html">Widget</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a2d658e71ccb9502b8409a08782d8b345">getParentWidget</a> () const noexcept</td></tr>
<tr class="separator:a2d658e71ccb9502b8409a08782d8b345 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13910739dc797b600502e2dfa7daef87 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a13910739dc797b600502e2dfa7daef87">repaint</a> () noexcept override</td></tr>
<tr class="separator:a13910739dc797b600502e2dfa7daef87 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3426cbcf0104c8a5c9996e3efff75381 inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a3426cbcf0104c8a5c9996e3efff75381">toFront</a> ()</td></tr>
<tr class="separator:a3426cbcf0104c8a5c9996e3efff75381 inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a926884690b66c762f7bdb1196c58522b inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a926884690b66c762f7bdb1196c58522b">setNeedsFullViewportDrawing</a> (bool needsFullViewportForDrawing=true)</td></tr>
<tr class="separator:a926884690b66c762f7bdb1196c58522b inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cd703976adf24decbb66dd3dbc1db8b inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a5cd703976adf24decbb66dd3dbc1db8b">setNeedsViewportScaling</a> (bool needsViewportScaling=true, double autoScaleFactor=0.0)</td></tr>
<tr class="separator:a5cd703976adf24decbb66dd3dbc1db8b inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb38f61c0205d7832ddfd090f7f60f2a inherit pub_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#adb38f61c0205d7832ddfd090f7f60f2a">setSkipDrawing</a> (bool skipDrawing=true)</td></tr>
<tr class="separator:adb38f61c0205d7832ddfd090f7f60f2a inherit pub_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classWidget"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classWidget')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classWidget.html">Widget</a></td></tr>
<tr class="memitem:a714cf798aadb4d615f6f60a355382c02 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a714cf798aadb4d615f6f60a355382c02">~Widget</a> ()</td></tr>
<tr class="separator:a714cf798aadb4d615f6f60a355382c02 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a234a8ee8a685dc211ad11f492f0dbc71 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a234a8ee8a685dc211ad11f492f0dbc71">isVisible</a> () const noexcept</td></tr>
<tr class="separator:a234a8ee8a685dc211ad11f492f0dbc71 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66088a03691f9c643ff335fa826576ba inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a66088a03691f9c643ff335fa826576ba">setVisible</a> (bool visible)</td></tr>
<tr class="separator:a66088a03691f9c643ff335fa826576ba inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25ff178539e226b5f30ef0335d060f2b inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a25ff178539e226b5f30ef0335d060f2b">show</a> ()</td></tr>
<tr class="separator:a25ff178539e226b5f30ef0335d060f2b inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a2f8eebacdd20db505b838f1a118c6b inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a4a2f8eebacdd20db505b838f1a118c6b">hide</a> ()</td></tr>
<tr class="separator:a4a2f8eebacdd20db505b838f1a118c6b inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a169c317caf734c6664494a573e427b40 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a169c317caf734c6664494a573e427b40">getWidth</a> () const noexcept</td></tr>
<tr class="separator:a169c317caf734c6664494a573e427b40 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa20f6dc096a8836706173f31324c4db8 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#aa20f6dc096a8836706173f31324c4db8">getHeight</a> () const noexcept</td></tr>
<tr class="separator:aa20f6dc096a8836706173f31324c4db8 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9044d42c20ead27dba983b710c94f8d6 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSize.html">Size</a>&lt; uint &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a9044d42c20ead27dba983b710c94f8d6">getSize</a> () const noexcept</td></tr>
<tr class="separator:a9044d42c20ead27dba983b710c94f8d6 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed80a9cbc4a13c01641f35dd3d8688ea inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#aed80a9cbc4a13c01641f35dd3d8688ea">setWidth</a> (uint width) noexcept</td></tr>
<tr class="separator:aed80a9cbc4a13c01641f35dd3d8688ea inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6d2e6cbb2ff96f3645493d804af07f7 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#ac6d2e6cbb2ff96f3645493d804af07f7">setHeight</a> (uint height) noexcept</td></tr>
<tr class="separator:ac6d2e6cbb2ff96f3645493d804af07f7 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4d9e0156e455db3ff23730f82544daa inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#ab4d9e0156e455db3ff23730f82544daa">setSize</a> (uint width, uint height) noexcept</td></tr>
<tr class="separator:ab4d9e0156e455db3ff23730f82544daa inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afce784b204902c0f11e9ed02bc692362 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#afce784b204902c0f11e9ed02bc692362">setSize</a> (const <a class="el" href="classSize.html">Size</a>&lt; uint &gt; &amp;size) noexcept</td></tr>
<tr class="separator:afce784b204902c0f11e9ed02bc692362 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ee6b2824e3f3719c1c9b3d070385f49 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a3ee6b2824e3f3719c1c9b3d070385f49">getId</a> () const noexcept</td></tr>
<tr class="separator:a3ee6b2824e3f3719c1c9b3d070385f49 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfba3652559de84ba1ae9ccbd3d35e31 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#abfba3652559de84ba1ae9ccbd3d35e31">setId</a> (uint id) noexcept</td></tr>
<tr class="separator:abfba3652559de84ba1ae9ccbd3d35e31 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a373419bc6353abf50a502cdbebd736e7 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classApplication.html">Application</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a373419bc6353abf50a502cdbebd736e7">getApp</a> () const noexcept</td></tr>
<tr class="separator:a373419bc6353abf50a502cdbebd736e7 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ef05695aec704b0eb1eb91c2e8af07d inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWindow.html">Window</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a0ef05695aec704b0eb1eb91c2e8af07d">getWindow</a> () const noexcept</td></tr>
<tr class="separator:a0ef05695aec704b0eb1eb91c2e8af07d inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae23d09ec0e5f0397a3451b603b407182 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGraphicsContext.html">GraphicsContext</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#ae23d09ec0e5f0397a3451b603b407182">getGraphicsContext</a> () const noexcept</td></tr>
<tr class="separator:ae23d09ec0e5f0397a3451b603b407182 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a607b153f7d3187ca60bf21004efc1314 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTopLevelWidget.html">TopLevelWidget</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a607b153f7d3187ca60bf21004efc1314">getTopLevelWidget</a> () const noexcept</td></tr>
<tr class="separator:a607b153f7d3187ca60bf21004efc1314 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa514fb1c20038ba9793e4409e9b18876 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top"><a id="aa514fb1c20038ba9793e4409e9b18876"></a>
<a class="el" href="classApplication.html">Application</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getParentApp</b> () const noexcept</td></tr>
<tr class="separator:aa514fb1c20038ba9793e4409e9b18876 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e0b0b2293bb63b2d84774542cc6a421 inherit pub_methods_classWidget"><td class="memItemLeft" align="right" valign="top"><a id="a0e0b0b2293bb63b2d84774542cc6a421"></a>
<a class="el" href="classWindow.html">Window</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getParentWindow</b> () const noexcept</td></tr>
<tr class="separator:a0e0b0b2293bb63b2d84774542cc6a421 inherit pub_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:aee9ad32db22d06c98b37d4b62904f92b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classImageBaseSwitch.html#aee9ad32db22d06c98b37d4b62904f92b">onDisplay</a> () override</td></tr>
<tr class="separator:aee9ad32db22d06c98b37d4b62904f92b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6912be0532a24c33e6dac851779fc8f0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classImageBaseSwitch.html#a6912be0532a24c33e6dac851779fc8f0">onMouse</a> (const <a class="el" href="structWidget_1_1MouseEvent.html">MouseEvent</a> &amp;) override</td></tr>
<tr class="separator:a6912be0532a24c33e6dac851779fc8f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classSubWidget"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSubWidget')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classSubWidget.html">SubWidget</a></td></tr>
<tr class="memitem:a80ac88898a4a87047d63a7e49a5a0946 inherit pro_methods_classSubWidget"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSubWidget.html#a80ac88898a4a87047d63a7e49a5a0946">onPositionChanged</a> (const <a class="el" href="structWidget_1_1PositionChangedEvent.html">PositionChangedEvent</a> &amp;)</td></tr>
<tr class="separator:a80ac88898a4a87047d63a7e49a5a0946 inherit pro_methods_classSubWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classWidget"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classWidget')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classWidget.html">Widget</a></td></tr>
<tr class="memitem:a9fa874aede538b41348f1029524aea11 inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a9fa874aede538b41348f1029524aea11">onKeyboard</a> (const <a class="el" href="structWidget_1_1KeyboardEvent.html">KeyboardEvent</a> &amp;)</td></tr>
<tr class="separator:a9fa874aede538b41348f1029524aea11 inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b42652fcb2f95c6f86bdd43a1727507 inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a3b42652fcb2f95c6f86bdd43a1727507">onSpecial</a> (const <a class="el" href="structWidget_1_1SpecialEvent.html">SpecialEvent</a> &amp;)</td></tr>
<tr class="separator:a3b42652fcb2f95c6f86bdd43a1727507 inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7fb24de24d8809305b04ff3750f0dea inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#ad7fb24de24d8809305b04ff3750f0dea">onCharacterInput</a> (const <a class="el" href="structWidget_1_1CharacterInputEvent.html">CharacterInputEvent</a> &amp;)</td></tr>
<tr class="separator:ad7fb24de24d8809305b04ff3750f0dea inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a655569fb78a598652e9f24cefa1fe4a5 inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a655569fb78a598652e9f24cefa1fe4a5">onMotion</a> (const <a class="el" href="structWidget_1_1MotionEvent.html">MotionEvent</a> &amp;)</td></tr>
<tr class="separator:a655569fb78a598652e9f24cefa1fe4a5 inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d78d28bd4a98c3a016a38091b2d4185 inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#a0d78d28bd4a98c3a016a38091b2d4185">onScroll</a> (const <a class="el" href="structWidget_1_1ScrollEvent.html">ScrollEvent</a> &amp;)</td></tr>
<tr class="separator:a0d78d28bd4a98c3a016a38091b2d4185 inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc0365ec4b9245bdffb8d0285be55dea inherit pro_methods_classWidget"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWidget.html#acc0365ec4b9245bdffb8d0285be55dea">onResize</a> (const <a class="el" href="structWidget_1_1ResizeEvent.html">ResizeEvent</a> &amp;)</td></tr>
<tr class="separator:acc0365ec4b9245bdffb8d0285be55dea inherit pro_methods_classWidget"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aee9ad32db22d06c98b37d4b62904f92b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee9ad32db22d06c98b37d4b62904f92b">&#9670;&nbsp;</a></span>onDisplay()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ImageType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch</a>&lt; ImageType &gt;::onDisplay </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A function called to draw the widget contents. </p>

<p>Implements <a class="el" href="classWidget.html#ae1554f348fe3b2f9d4c3c5c4f9ec55bd">Widget</a>.</p>

</div>
</div>
<a id="a6912be0532a24c33e6dac851779fc8f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6912be0532a24c33e6dac851779fc8f0">&#9670;&nbsp;</a></span>onMouse()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ImageType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch</a>&lt; ImageType &gt;::onMouse </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structWidget_1_1MouseEvent.html">MouseEvent</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A function called when a mouse button is pressed or released. </p><dl class="section return"><dt>Returns</dt><dd>True to stop event propagation, false otherwise. </dd></dl>

<p>Reimplemented from <a class="el" href="classWidget.html#a097ec1d56a06bdc9e0a4e54880def378">Widget</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>dgl/<a class="el" href="ImageBaseWidgets_8hpp_source.html">ImageBaseWidgets.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

BIN
classImageBaseSwitch.png View File

Before After
Width: 195  |  Height: 136  |  Size: 916B

+ 85
- 0
classImageBaseSwitch_1_1Callback-members.html View File

@@ -0,0 +1,85 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch</a></li><li class="navelem"><a class="el" href="classImageBaseSwitch_1_1Callback.html">Callback</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">ImageBaseSwitch&lt; ImageType &gt;::Callback Member List</div> </div>
</div><!--header-->
<div class="contents">

<p>This is the complete list of members for <a class="el" href="classImageBaseSwitch_1_1Callback.html">ImageBaseSwitch&lt; ImageType &gt;::Callback</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>imageSwitchClicked</b>(ImageBaseSwitch *imageSwitch, bool down)=0 (defined in <a class="el" href="classImageBaseSwitch_1_1Callback.html">ImageBaseSwitch&lt; ImageType &gt;::Callback</a>)</td><td class="entry"><a class="el" href="classImageBaseSwitch_1_1Callback.html">ImageBaseSwitch&lt; ImageType &gt;::Callback</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>~Callback</b>() (defined in <a class="el" href="classImageBaseSwitch_1_1Callback.html">ImageBaseSwitch&lt; ImageType &gt;::Callback</a>)</td><td class="entry"><a class="el" href="classImageBaseSwitch_1_1Callback.html">ImageBaseSwitch&lt; ImageType &gt;::Callback</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

+ 93
- 0
classImageBaseSwitch_1_1Callback.html View File

@@ -0,0 +1,93 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: ImageBaseSwitch&lt; ImageType &gt;::Callback Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch</a></li><li class="navelem"><a class="el" href="classImageBaseSwitch_1_1Callback.html">Callback</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classImageBaseSwitch_1_1Callback-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ImageBaseSwitch&lt; ImageType &gt;::Callback Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aec61769ca693331b3e2abd1180e6c503"><td class="memItemLeft" align="right" valign="top"><a id="aec61769ca693331b3e2abd1180e6c503"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>imageSwitchClicked</b> (<a class="el" href="classImageBaseSwitch.html">ImageBaseSwitch</a> *imageSwitch, bool down)=0</td></tr>
<tr class="separator:aec61769ca693331b3e2abd1180e6c503"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>dgl/<a class="el" href="ImageBaseWidgets_8hpp_source.html">ImageBaseWidgets.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

+ 1
- 1
classLeakedObjectDetector-members.html View File

@@ -74,7 +74,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classLeakedObjectDetector.html View File

@@ -124,7 +124,7 @@ template&lt;class OwnerClass &gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classLine-members.html View File

@@ -100,7 +100,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classLine.html View File

@@ -982,7 +982,7 @@ DEPRECATED Please use draw(const GraphicsContext&amp;) instead. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 2
- 2
classMutex-members.html View File

@@ -69,14 +69,14 @@ $(function() {
<p>This is the complete list of members for <a class="el" href="classMutex.html">Mutex</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>lock</b>() const noexcept (defined in <a class="el" href="classMutex.html">Mutex</a>)</td><td class="entry"><a class="el" href="classMutex.html">Mutex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>Mutex</b>(bool inheritPriority=true) noexcept (defined in <a class="el" href="classMutex.html">Mutex</a>)</td><td class="entry"><a class="el" href="classMutex.html">Mutex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>Mutex</b>(const bool inheritPriority=true) noexcept (defined in <a class="el" href="classMutex.html">Mutex</a>)</td><td class="entry"><a class="el" href="classMutex.html">Mutex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>tryLock</b>() const noexcept (defined in <a class="el" href="classMutex.html">Mutex</a>)</td><td class="entry"><a class="el" href="classMutex.html">Mutex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>unlock</b>() const noexcept (defined in <a class="el" href="classMutex.html">Mutex</a>)</td><td class="entry"><a class="el" href="classMutex.html">Mutex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Mutex</b>() noexcept (defined in <a class="el" href="classMutex.html">Mutex</a>)</td><td class="entry"><a class="el" href="classMutex.html">Mutex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 7
- 7
classMutex.html View File

@@ -71,12 +71,12 @@ $(function() {
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae4938779082d83f6fe849c43836b2378"><td class="memItemLeft" align="right" valign="top"><a id="ae4938779082d83f6fe849c43836b2378"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Mutex</b> (bool inheritPriority=true) noexcept</td></tr>
<tr class="separator:ae4938779082d83f6fe849c43836b2378"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9c24ec8ad0d7635897034c88239c040"><td class="memItemLeft" align="right" valign="top"><a id="ac9c24ec8ad0d7635897034c88239c040"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>lock</b> () const noexcept</td></tr>
<tr class="separator:ac9c24ec8ad0d7635897034c88239c040"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5478081a3e44ea4fa1887801bb305f0"><td class="memItemLeft" align="right" valign="top"><a id="aa5478081a3e44ea4fa1887801bb305f0"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Mutex</b> (const bool inheritPriority=true) noexcept</td></tr>
<tr class="separator:aa5478081a3e44ea4fa1887801bb305f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf6630ca8b28f258aae29572d842f617"><td class="memItemLeft" align="right" valign="top"><a id="acf6630ca8b28f258aae29572d842f617"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>lock</b> () const noexcept</td></tr>
<tr class="separator:acf6630ca8b28f258aae29572d842f617"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fa677e5c0bf43f5c45da77b9cf39e32"><td class="memItemLeft" align="right" valign="top"><a id="a8fa677e5c0bf43f5c45da77b9cf39e32"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>tryLock</b> () const noexcept</td></tr>
<tr class="separator:a8fa677e5c0bf43f5c45da77b9cf39e32"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -90,7 +90,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>unlock</b> () const n
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classNanoBaseWidget-members.html View File

@@ -196,7 +196,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classNanoBaseWidget.html View File

@@ -569,7 +569,7 @@ template&lt;class BaseWidget &gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classNanoImage-members.html View File

@@ -79,7 +79,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classNanoImage.html View File

@@ -251,7 +251,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>NanoVG</b></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 109
- 110
classNanoVG-members.html View File

@@ -83,119 +83,118 @@ $(function() {
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a1cd7ee075338cbd5069e0862dff70b41">beginPath</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>BEVEL</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a44831e8c0c5e457eda688c9141e10f68">bezierTo</a>(float c1x, float c1y, float c2x, float c2y, float x, float y)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>BlendishWidget</b> (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a1496424cb5a9e40844ebb4d8dad83799">boxGradient</a>(float x, float y, float w, float h, float r, float f, const Color &amp;icol, const Color &amp;ocol)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>BUTT</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a5c47888aaa114b8ca9a0431383c1c0f1">cancelFrame</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>CCW</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#aa3230d48ce48f050d3ad636fc2ff4235">circle</a>(float cx, float cy, float r)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a74ae13eec498c0afb9fa20199eecbd48">closePath</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a54ec9a68401121aab78976df6d3891a9a4fb2bb2ad2eccc922e6e5613ca1bf19e">CREATE_ANTIALIAS</a> enum value</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a54ec9a68401121aab78976df6d3891a9ace85d2e89072533bdc5d326df30f82c5">CREATE_DEBUG</a> enum value</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a54ec9a68401121aab78976df6d3891a9aa4539b7424f6885f382ad911c5eb4ad3">CREATE_STENCIL_STROKES</a> enum value</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a54ec9a68401121aab78976df6d3891a9">CreateFlags</a> enum name</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a202e31bed7a83c59d417fa016f66f12a">createFontFromFile</a>(const char *name, const char *filename)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a304f4fcf7fc4dff936563606cec7ea63">createFontFromMemory</a>(const char *name, const uchar *data, uint dataSize, bool freeData)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a2a6d7cc76cb4c7f35ef51a388f5818f6">createImageFromFile</a>(const char *filename, ImageFlags imageFlags)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a7555d49ba847a92fb2c56b2f9f68f366">createImageFromFile</a>(const char *filename, int imageFlags)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a395cde178d473c548e3d92c48d430ca1">createImageFromMemory</a>(uchar *data, uint dataSize, ImageFlags imageFlags)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#acf7d2cac5deeb625a91c40448ed70b6a">createImageFromMemory</a>(uchar *data, uint dataSize, int imageFlags)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a68cfbff787af38a017eecdb4e77e1b45">createImageFromRGBA</a>(uint w, uint h, const uchar *data, ImageFlags imageFlags)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#ac4e97dd35ebface5fd9160ef1d5e8cbb">createImageFromRGBA</a>(uint w, uint h, const uchar *data, int imageFlags)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#af37971e5d04d57c9ad98f0164164ea79">createImageFromTextureHandle</a>(GLuint textureId, uint w, uint h, ImageFlags imageFlags, bool deleteTexture=false)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#aa4ebb0baddb15fdc74c1f68b6403eaaf">createImageFromTextureHandle</a>(GLuint textureId, uint w, uint h, int imageFlags, bool deleteTexture=false)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#ad51cefbcf8819d365205fa004a10b976">currentTransform</a>(float xform[6])</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>CW</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#ae3913bdf0efc2f5504422f558dca2c45">degToRad</a>(float deg)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a2081ea8d4c33481d24ae98d1a65a6f9b">ellipse</a>(float cx, float cy, float rx, float ry)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a432d8c79b21f61eb1010a75cc13ee711">endFrame</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#ae6e189b2c0b5a67c8c227d89b9bdb56e">fill</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a9a802d6e276195d13bc33d0f4b39cff9">fillColor</a>(const Color &amp;color)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a9b88f568b952402bbcfec289095734a7">fillColor</a>(const int red, const int green, const int blue, const int alpha=255)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a364794e2641625310aab9b7755b1e3d5">fillColor</a>(const float red, const float green, const float blue, const float alpha=1.0f)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#aca56cc6d1c2455fc9f750cce4dc132d0">fillPaint</a>(const Paint &amp;paint)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#afbcfaa824c76e00eb22bd3f7dd5d1ab0">findFont</a>(const char *name)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#aa0a42259164f0893ea63929cfce29a75">fontBlur</a>(float blur)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a22fa48b86dac0cc4ab1cd922de39c52b">fontFace</a>(const char *font)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a2d32dbd0fb0dd0ae36fdc6ef2be65f6c">fontFaceId</a>(FontId font)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>FontId</b> typedef (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a23353792b4267d74f8f7a665d358c1a4">fontSize</a>(float size)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a8b6f8caad8acb883fadc06a606ccade7">getContext</a>() const noexcept</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#acbae67cbb34b396bd1dff9cdc3c6712b">globalAlpha</a>(float alpha)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>HOLE</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>IMAGE_FLIP_Y</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>IMAGE_GENERATE_MIPMAPS</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>IMAGE_PREMULTIPLIED</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>IMAGE_REPEAT_X</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>IMAGE_REPEAT_Y</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ImageFlags</b> enum name (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a00c718a017652e8888a48ff1577b57ef">imagePattern</a>(float ox, float oy, float ex, float ey, float angle, const NanoImage &amp;image, float alpha)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a0d86d93bc09fc8da01f2b2fdd97f7448">intersectScissor</a>(float x, float y, float w, float h)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#aa74a49bb588beb28654565a07022a178">linearGradient</a>(float sx, float sy, float ex, float ey, const Color &amp;icol, const Color &amp;ocol)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>LineCap</b> enum name (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a95dfc697ae6fe9c8d525430c09f839d1">lineCap</a>(LineCap cap=BUTT)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a73767c9ade6a757bc6e1f4a2d45bdaeb">lineJoin</a>(LineCap join=MITER)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a63f509eaeb04475a8541ed8e846f352f">lineTo</a>(float x, float y)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a210f19213fef82c2c7d8797e7cfea8aa">loadSharedResources</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>MITER</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a8a5ade44d39d21f28dcd02d27da62d14">miterLimit</a>(float limit)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#af1ac0918567c17c93e0586c4284e04b9">moveTo</a>(float x, float y)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a79dfc0b6c38ec95cef030df2b7a663ef">NanoVG</a>(int flags=CREATE_ANTIALIAS)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#aaf7f45fc45cf920d261a8b2cfebf9026">pathWinding</a>(Winding dir)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#ad21dce44617cb0ed89bcafa794c56fde">quadTo</a>(float cx, float cy, float x, float y)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a19d27b1b3a22afe9a6d27f4f9f8bf167">radialGradient</a>(float cx, float cy, float inr, float outr, const Color &amp;icol, const Color &amp;ocol)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a175f4c41e0d89ae5d8bdb65e5580c637">radToDeg</a>(float rad)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a1bc27cc57b0e2d3bc0fd12d519312251">rect</a>(float x, float y, float w, float h)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#ad5ddb240794b35105eeadd1534f0911b">reset</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#aff2eaea01970f0ec2005d1051f25ad35">resetScissor</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#aac35e4a0ce84c0f4bf8d881d1b8a5b34">resetTransform</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#aa1da11cb97d4f6718ffe8b4622684c3b">restore</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a13da8f469cd43117c19d8459c178b905">rotate</a>(float angle)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>ROUND</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#ac9d8502c3cbf6745ff3a41d1b97b6529">roundedRect</a>(float x, float y, float w, float h, float r)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a05fd441d579c42c76d786bd4a7b437af">save</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a76273b763fa9b84c4a86d37065accee7">scale</a>(float x, float y)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a7ac24b9a1ab2b901ab18d4d8dbb92c1c">scissor</a>(float x, float y, float w, float h)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a4f45e3cf465060491e73427e5868573f">skewX</a>(float angle)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a508c4fde6212c1b0598d9f8b32cba0f6">skewY</a>(float angle)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SOLID</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>Solidity</b> enum name (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SQUARE</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#aeed167687a8a269c4f9c44a7db4d3746">stroke</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#acefc70128644fb8ee5abe6dc04d4f710">strokeColor</a>(const Color &amp;color)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a6242c3e68789ed57b46fb75ba396506d">strokeColor</a>(const int red, const int green, const int blue, const int alpha=255)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a22bac7e1806c9203a637337478a90165">strokeColor</a>(const float red, const float green, const float blue, const float alpha=1.0f)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a8d00b35e0ab5c428af120cc78ff32804">strokePaint</a>(const Paint &amp;paint)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a373190894070313e8d321b2af0bbab58">strokeWidth</a>(float size)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#af9526a1c4b2d5e1db0190c32ba9a1eaa">text</a>(float x, float y, const char *string, const char *end)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a9c942ced1722beff8e326a6cf0c9a1d1">textAlign</a>(Align align)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a9a1a5e00351ff92ebb9795a2127f0529">textAlign</a>(int align)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a281c71d51c5f9d6fb5d6e8369ca650f4">textBounds</a>(float x, float y, const char *string, const char *end, Rectangle&lt; float &gt; &amp;bounds)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a16f910cddbecd570d3c125e217f51e10">textBox</a>(float x, float y, float breakRowWidth, const char *string, const char *end=nullptr)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a47e41ef76a4682f0418ba8d0a60f6ea8">textBoxBounds</a>(float x, float y, float breakRowWidth, const char *string, const char *end, float bounds[4])</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#ab403a3cdf19dd2af4c75bb180c5e0fb8">textBreakLines</a>(const char *string, const char *end, float breakRowWidth, TextRow &amp;rows, int maxRows)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#ae8476a381526e6ef89150529594cbf35">textGlyphPositions</a>(float x, float y, const char *string, const char *end, GlyphPosition &amp;positions, int maxPositions)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#ad768aae0871c1685ca5dc590859d5c1b">textLetterSpacing</a>(float spacing)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#aab69aa4f2ae1b15adcceb9d065ea8aa6">textLineHeight</a>(float lineHeight)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a5e84bf7dec65064733aec488389568b0">textMetrics</a>(float *ascender, float *descender, float *lineh)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#ad06096ade68bf78bcc256005cd6f2c45">transform</a>(float a, float b, float c, float d, float e, float f)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a81c8b60a87be8a8d4a5efce8eeaf1915">transformIdentity</a>(float dst[6])</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#ac5692f82bcac4858f44d9fd0df287cad">transformInverse</a>(float dst[6], const float src[6])</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a3ac9aade102afb3a4f84966f0727c6c6">transformMultiply</a>(float dst[6], const float src[6])</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#ae2e49763ab7f503016c0dede0dbfd3cc">transformPoint</a>(float &amp;dstx, float &amp;dsty, const float xform[6], float srcx, float srcy)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a1416fbff2a0ecada90b2d9852bfbaf42">transformPremultiply</a>(float dst[6], const float src[6])</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a43e16d0f94dc0a49dae5128d69e75e3c">transformRotate</a>(float dst[6], float a)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a94c1f78baadff1d6c6a5a4d52dd770d7">transformScale</a>(float dst[6], float sx, float sy)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a178b6b9a8c755cda91ccba2b6239d279">transformSkewX</a>(float dst[6], float a)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#af23e7f6a6056e5efe72944fa68767704">transformSkewY</a>(float dst[6], float a)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a022e3cdfa06f5bc9103b37dfa64adb2c">transformTranslate</a>(float dst[6], float tx, float ty)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#abc1d6466eb7fdc57a869ec7b9fdd6bdf">translate</a>(float x, float y)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Winding</b> enum name (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a3e05169f4e66e811537adaea17e4bb3f">~NanoVG</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a1496424cb5a9e40844ebb4d8dad83799">boxGradient</a>(float x, float y, float w, float h, float r, float f, const Color &amp;icol, const Color &amp;ocol)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>BUTT</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a5c47888aaa114b8ca9a0431383c1c0f1">cancelFrame</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CCW</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#aa3230d48ce48f050d3ad636fc2ff4235">circle</a>(float cx, float cy, float r)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a74ae13eec498c0afb9fa20199eecbd48">closePath</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a54ec9a68401121aab78976df6d3891a9a4fb2bb2ad2eccc922e6e5613ca1bf19e">CREATE_ANTIALIAS</a> enum value</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a54ec9a68401121aab78976df6d3891a9ace85d2e89072533bdc5d326df30f82c5">CREATE_DEBUG</a> enum value</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a54ec9a68401121aab78976df6d3891a9aa4539b7424f6885f382ad911c5eb4ad3">CREATE_STENCIL_STROKES</a> enum value</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a54ec9a68401121aab78976df6d3891a9">CreateFlags</a> enum name</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a202e31bed7a83c59d417fa016f66f12a">createFontFromFile</a>(const char *name, const char *filename)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a304f4fcf7fc4dff936563606cec7ea63">createFontFromMemory</a>(const char *name, const uchar *data, uint dataSize, bool freeData)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a2a6d7cc76cb4c7f35ef51a388f5818f6">createImageFromFile</a>(const char *filename, ImageFlags imageFlags)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a7555d49ba847a92fb2c56b2f9f68f366">createImageFromFile</a>(const char *filename, int imageFlags)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a395cde178d473c548e3d92c48d430ca1">createImageFromMemory</a>(uchar *data, uint dataSize, ImageFlags imageFlags)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#acf7d2cac5deeb625a91c40448ed70b6a">createImageFromMemory</a>(uchar *data, uint dataSize, int imageFlags)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a68cfbff787af38a017eecdb4e77e1b45">createImageFromRGBA</a>(uint w, uint h, const uchar *data, ImageFlags imageFlags)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#ac4e97dd35ebface5fd9160ef1d5e8cbb">createImageFromRGBA</a>(uint w, uint h, const uchar *data, int imageFlags)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#af37971e5d04d57c9ad98f0164164ea79">createImageFromTextureHandle</a>(GLuint textureId, uint w, uint h, ImageFlags imageFlags, bool deleteTexture=false)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#aa4ebb0baddb15fdc74c1f68b6403eaaf">createImageFromTextureHandle</a>(GLuint textureId, uint w, uint h, int imageFlags, bool deleteTexture=false)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#ad51cefbcf8819d365205fa004a10b976">currentTransform</a>(float xform[6])</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CW</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#ae3913bdf0efc2f5504422f558dca2c45">degToRad</a>(float deg)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a2081ea8d4c33481d24ae98d1a65a6f9b">ellipse</a>(float cx, float cy, float rx, float ry)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a432d8c79b21f61eb1010a75cc13ee711">endFrame</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#ae6e189b2c0b5a67c8c227d89b9bdb56e">fill</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a9a802d6e276195d13bc33d0f4b39cff9">fillColor</a>(const Color &amp;color)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a9b88f568b952402bbcfec289095734a7">fillColor</a>(const int red, const int green, const int blue, const int alpha=255)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a364794e2641625310aab9b7755b1e3d5">fillColor</a>(const float red, const float green, const float blue, const float alpha=1.0f)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#aca56cc6d1c2455fc9f750cce4dc132d0">fillPaint</a>(const Paint &amp;paint)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#afbcfaa824c76e00eb22bd3f7dd5d1ab0">findFont</a>(const char *name)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#aa0a42259164f0893ea63929cfce29a75">fontBlur</a>(float blur)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a22fa48b86dac0cc4ab1cd922de39c52b">fontFace</a>(const char *font)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a2d32dbd0fb0dd0ae36fdc6ef2be65f6c">fontFaceId</a>(FontId font)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>FontId</b> typedef (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a23353792b4267d74f8f7a665d358c1a4">fontSize</a>(float size)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a8b6f8caad8acb883fadc06a606ccade7">getContext</a>() const noexcept</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#acbae67cbb34b396bd1dff9cdc3c6712b">globalAlpha</a>(float alpha)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>HOLE</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>IMAGE_FLIP_Y</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>IMAGE_GENERATE_MIPMAPS</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>IMAGE_PREMULTIPLIED</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>IMAGE_REPEAT_X</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>IMAGE_REPEAT_Y</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>ImageFlags</b> enum name (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a00c718a017652e8888a48ff1577b57ef">imagePattern</a>(float ox, float oy, float ex, float ey, float angle, const NanoImage &amp;image, float alpha)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a0d86d93bc09fc8da01f2b2fdd97f7448">intersectScissor</a>(float x, float y, float w, float h)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#aa74a49bb588beb28654565a07022a178">linearGradient</a>(float sx, float sy, float ex, float ey, const Color &amp;icol, const Color &amp;ocol)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>LineCap</b> enum name (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a95dfc697ae6fe9c8d525430c09f839d1">lineCap</a>(LineCap cap=BUTT)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a73767c9ade6a757bc6e1f4a2d45bdaeb">lineJoin</a>(LineCap join=MITER)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a63f509eaeb04475a8541ed8e846f352f">lineTo</a>(float x, float y)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a210f19213fef82c2c7d8797e7cfea8aa">loadSharedResources</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>MITER</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a8a5ade44d39d21f28dcd02d27da62d14">miterLimit</a>(float limit)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#af1ac0918567c17c93e0586c4284e04b9">moveTo</a>(float x, float y)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a79dfc0b6c38ec95cef030df2b7a663ef">NanoVG</a>(int flags=CREATE_ANTIALIAS)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#aaf7f45fc45cf920d261a8b2cfebf9026">pathWinding</a>(Winding dir)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#ad21dce44617cb0ed89bcafa794c56fde">quadTo</a>(float cx, float cy, float x, float y)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a19d27b1b3a22afe9a6d27f4f9f8bf167">radialGradient</a>(float cx, float cy, float inr, float outr, const Color &amp;icol, const Color &amp;ocol)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a175f4c41e0d89ae5d8bdb65e5580c637">radToDeg</a>(float rad)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a1bc27cc57b0e2d3bc0fd12d519312251">rect</a>(float x, float y, float w, float h)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#ad5ddb240794b35105eeadd1534f0911b">reset</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#aff2eaea01970f0ec2005d1051f25ad35">resetScissor</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#aac35e4a0ce84c0f4bf8d881d1b8a5b34">resetTransform</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#aa1da11cb97d4f6718ffe8b4622684c3b">restore</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a13da8f469cd43117c19d8459c178b905">rotate</a>(float angle)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ROUND</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#ac9d8502c3cbf6745ff3a41d1b97b6529">roundedRect</a>(float x, float y, float w, float h, float r)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a05fd441d579c42c76d786bd4a7b437af">save</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a76273b763fa9b84c4a86d37065accee7">scale</a>(float x, float y)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a7ac24b9a1ab2b901ab18d4d8dbb92c1c">scissor</a>(float x, float y, float w, float h)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a4f45e3cf465060491e73427e5868573f">skewX</a>(float angle)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a508c4fde6212c1b0598d9f8b32cba0f6">skewY</a>(float angle)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>SOLID</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Solidity</b> enum name (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>SQUARE</b> enum value (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#aeed167687a8a269c4f9c44a7db4d3746">stroke</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#acefc70128644fb8ee5abe6dc04d4f710">strokeColor</a>(const Color &amp;color)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a6242c3e68789ed57b46fb75ba396506d">strokeColor</a>(const int red, const int green, const int blue, const int alpha=255)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a22bac7e1806c9203a637337478a90165">strokeColor</a>(const float red, const float green, const float blue, const float alpha=1.0f)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a8d00b35e0ab5c428af120cc78ff32804">strokePaint</a>(const Paint &amp;paint)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a373190894070313e8d321b2af0bbab58">strokeWidth</a>(float size)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#af9526a1c4b2d5e1db0190c32ba9a1eaa">text</a>(float x, float y, const char *string, const char *end)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a9c942ced1722beff8e326a6cf0c9a1d1">textAlign</a>(Align align)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a9a1a5e00351ff92ebb9795a2127f0529">textAlign</a>(int align)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a281c71d51c5f9d6fb5d6e8369ca650f4">textBounds</a>(float x, float y, const char *string, const char *end, Rectangle&lt; float &gt; &amp;bounds)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a16f910cddbecd570d3c125e217f51e10">textBox</a>(float x, float y, float breakRowWidth, const char *string, const char *end=nullptr)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a47e41ef76a4682f0418ba8d0a60f6ea8">textBoxBounds</a>(float x, float y, float breakRowWidth, const char *string, const char *end, float bounds[4])</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#ab403a3cdf19dd2af4c75bb180c5e0fb8">textBreakLines</a>(const char *string, const char *end, float breakRowWidth, TextRow &amp;rows, int maxRows)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#ae8476a381526e6ef89150529594cbf35">textGlyphPositions</a>(float x, float y, const char *string, const char *end, GlyphPosition &amp;positions, int maxPositions)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#ad768aae0871c1685ca5dc590859d5c1b">textLetterSpacing</a>(float spacing)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#aab69aa4f2ae1b15adcceb9d065ea8aa6">textLineHeight</a>(float lineHeight)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a5e84bf7dec65064733aec488389568b0">textMetrics</a>(float *ascender, float *descender, float *lineh)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#ad06096ade68bf78bcc256005cd6f2c45">transform</a>(float a, float b, float c, float d, float e, float f)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a81c8b60a87be8a8d4a5efce8eeaf1915">transformIdentity</a>(float dst[6])</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#ac5692f82bcac4858f44d9fd0df287cad">transformInverse</a>(float dst[6], const float src[6])</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a3ac9aade102afb3a4f84966f0727c6c6">transformMultiply</a>(float dst[6], const float src[6])</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#ae2e49763ab7f503016c0dede0dbfd3cc">transformPoint</a>(float &amp;dstx, float &amp;dsty, const float xform[6], float srcx, float srcy)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a1416fbff2a0ecada90b2d9852bfbaf42">transformPremultiply</a>(float dst[6], const float src[6])</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a43e16d0f94dc0a49dae5128d69e75e3c">transformRotate</a>(float dst[6], float a)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a94c1f78baadff1d6c6a5a4d52dd770d7">transformScale</a>(float dst[6], float sx, float sy)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a178b6b9a8c755cda91ccba2b6239d279">transformSkewX</a>(float dst[6], float a)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#af23e7f6a6056e5efe72944fa68767704">transformSkewY</a>(float dst[6], float a)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classNanoVG.html#a022e3cdfa06f5bc9103b37dfa64adb2c">transformTranslate</a>(float dst[6], float tx, float ty)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#abc1d6466eb7fdc57a869ec7b9fdd6bdf">translate</a>(float x, float y)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>Winding</b> enum name (defined in <a class="el" href="classNanoVG.html">NanoVG</a>)</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classNanoVG.html#a3e05169f4e66e811537adaea17e4bb3f">~NanoVG</a>()</td><td class="entry"><a class="el" href="classNanoVG.html">NanoVG</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 8
classNanoVG.html View File

@@ -66,7 +66,6 @@ $(function() {
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classNanoVG-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">NanoVG Class Reference</div> </div>
@@ -333,12 +332,6 @@ Static Public Member Functions</h2></td></tr>
<tr class="separator:ae3913bdf0efc2f5504422f558dca2c45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a175f4c41e0d89ae5d8bdb65e5580c637"><td class="memItemLeft" align="right" valign="top">static float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classNanoVG.html#a175f4c41e0d89ae5d8bdb65e5580c637">radToDeg</a> (float rad)</td></tr>
<tr class="separator:a175f4c41e0d89ae5d8bdb65e5580c637"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a506059106b80c8f64ce587b39c7944fc"><td class="memItemLeft" align="right" valign="top"><a id="a506059106b80c8f64ce587b39c7944fc"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>BlendishWidget</b></td></tr>
<tr class="separator:a506059106b80c8f64ce587b39c7944fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classNanoVG.html">NanoVG</a> class.</p>
@@ -3345,7 +3338,7 @@ Text</h1>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 5
- 5
classOpenGLImage-members.html View File

@@ -72,7 +72,7 @@ $(function() {
<tr><td class="entry"><a class="el" href="classOpenGLImage.html#a0bd3a7e2a8d8e36ebacf4277a3f915cc">draw</a>()</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classOpenGLImage.html#ab97d09a7496436d2823c064708a61287">drawAt</a>(const GraphicsContext &amp;context, const Point&lt; int &gt; &amp;pos) override</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>drawAt</b>(const GraphicsContext &amp;context, int x, int y) (defined in <a class="el" href="classOpenGLImage.html">OpenGLImage</a>)</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classOpenGLImage.html#a4ba7a320245e2991890f12c2b68f165a">drawAt</a>(const int x, const int y)</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classOpenGLImage.html#a9b707a6bc3994826b250cd92059b711a">drawAt</a>(int x, int y)</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classOpenGLImage.html#affc660fed1d4be803512d1ff7a0ccaf5">drawAt</a>(const Point&lt; int &gt; &amp;pos)</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>format</b> (defined in <a class="el" href="classImageBase.html">ImageBase</a>)</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="classImageBase.html#a4b0c40113f956eaf2f2e0e51395b0926">getFormat</a>() const noexcept</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
@@ -88,13 +88,13 @@ $(function() {
<tr><td class="entry"><a class="el" href="classImageBase.html#a83ea79fff6adfa0720985f2e9794ed2d">isInvalid</a>() const noexcept</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classImageBase.html#ab5b2bc7d68b0aff3452478f906aa960f">isValid</a>() const noexcept</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classOpenGLImage.html#a5ee11a12fb84219cf5216396c1cf3c0a">loadFromMemory</a>(const char *rawData, const Size&lt; uint &gt; &amp;size, ImageFormat format=kImageFormatBGRA) noexcept override</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>loadFromMemory</b>(const char *rawData, uint w, uint h, ImageFormat format=kImageFormatBGRA) (defined in <a class="el" href="classOpenGLImage.html">OpenGLImage</a>)</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>loadFromMemory</b>(const char *rdata, uint w, uint h, ImageFormat fmt=kImageFormatBGRA) (defined in <a class="el" href="classOpenGLImage.html">OpenGLImage</a>)</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classOpenGLImage.html#a7292ff9abcd2137c0cf8d7c0d57d1eb5">OpenGLImage</a>()</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classOpenGLImage.html#ab3846413c806171a98ec3f41f5db20a8">OpenGLImage</a>(const char *rawData, uint width, uint height, ImageFormat format=kImageFormatBGRA)</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classOpenGLImage.html#af61ca1a163bae128817d3ad0ea6095f4">OpenGLImage</a>(const char *rawData, const Size&lt; uint &gt; &amp;size, ImageFormat format=kImageFormatBGRA)</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classOpenGLImage.html#a9cd14d74c793c77c3ee3a8f9d291a706">OpenGLImage</a>(const OpenGLImage &amp;image)</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classOpenGLImage.html#ae980ff640a778500ee1f2472585a1677">OpenGLImage</a>(const char *rawData, uint width, uint height, GLenum format)</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classOpenGLImage.html#ad30ba9f64c611b496bddbc3880b395bc">OpenGLImage</a>(const char *rawData, const Size&lt; uint &gt; &amp;size, GLenum format)</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classOpenGLImage.html#a729ba128952454d53054e23ea9d3a73f">OpenGLImage</a>(const char *rawData, uint width, uint height, GLenum glFormat)</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classOpenGLImage.html#a9f6ac5e7437a8a0aaa28bc298ab9350f">OpenGLImage</a>(const char *rawData, const Size&lt; uint &gt; &amp;size, GLenum glFormat)</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator!=</b>(const ImageBase &amp;image) const noexcept (defined in <a class="el" href="classImageBase.html">ImageBase</a>)</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classOpenGLImage.html#a289cbeb6a607985c323e0cd5a8fbd19a">operator=</a>(const OpenGLImage &amp;image) noexcept</td><td class="entry"><a class="el" href="classOpenGLImage.html">OpenGLImage</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classImageBase.html#ac352a5a4291cd0945c663b17631598dc">ImageBase::operator=</a>(const ImageBase &amp;image) noexcept</td><td class="entry"><a class="el" href="classImageBase.html">ImageBase</a></td><td class="entry"></td></tr>
@@ -106,7 +106,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 20
- 20
classOpenGLImage.html View File

@@ -98,23 +98,23 @@ Public Member Functions</h2></td></tr>
<tr class="separator:ab97d09a7496436d2823c064708a61287"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a289cbeb6a607985c323e0cd5a8fbd19a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classOpenGLImage.html">OpenGLImage</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOpenGLImage.html#a289cbeb6a607985c323e0cd5a8fbd19a">operator=</a> (const <a class="el" href="classOpenGLImage.html">OpenGLImage</a> &amp;image) noexcept</td></tr>
<tr class="separator:a289cbeb6a607985c323e0cd5a8fbd19a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19264f7b576c8ac37d62e25212d2c3e6"><td class="memItemLeft" align="right" valign="top"><a id="a19264f7b576c8ac37d62e25212d2c3e6"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>loadFromMemory</b> (const char *rawData, uint w, uint h, ImageFormat format=kImageFormatBGRA)</td></tr>
<tr class="separator:a19264f7b576c8ac37d62e25212d2c3e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3c4f26c661b786ad362c48bdf7b8aab"><td class="memItemLeft" align="right" valign="top"><a id="ae3c4f26c661b786ad362c48bdf7b8aab"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>loadFromMemory</b> (const char *rdata, uint w, uint h, ImageFormat fmt=kImageFormatBGRA)</td></tr>
<tr class="separator:ae3c4f26c661b786ad362c48bdf7b8aab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fd0ace0b1534e978ecf9a6c463d5854"><td class="memItemLeft" align="right" valign="top"><a id="a2fd0ace0b1534e978ecf9a6c463d5854"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>draw</b> (const <a class="el" href="structGraphicsContext.html">GraphicsContext</a> &amp;context)</td></tr>
<tr class="separator:a2fd0ace0b1534e978ecf9a6c463d5854"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02a7923551390d4d0082c708b3083b83"><td class="memItemLeft" align="right" valign="top"><a id="a02a7923551390d4d0082c708b3083b83"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>drawAt</b> (const <a class="el" href="structGraphicsContext.html">GraphicsContext</a> &amp;context, int x, int y)</td></tr>
<tr class="separator:a02a7923551390d4d0082c708b3083b83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae980ff640a778500ee1f2472585a1677"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOpenGLImage.html#ae980ff640a778500ee1f2472585a1677">OpenGLImage</a> (const char *rawData, uint width, uint height, GLenum format)</td></tr>
<tr class="separator:ae980ff640a778500ee1f2472585a1677"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad30ba9f64c611b496bddbc3880b395bc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOpenGLImage.html#ad30ba9f64c611b496bddbc3880b395bc">OpenGLImage</a> (const char *rawData, const <a class="el" href="classSize.html">Size</a>&lt; uint &gt; &amp;size, GLenum format)</td></tr>
<tr class="separator:ad30ba9f64c611b496bddbc3880b395bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a729ba128952454d53054e23ea9d3a73f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOpenGLImage.html#a729ba128952454d53054e23ea9d3a73f">OpenGLImage</a> (const char *rawData, uint width, uint height, GLenum glFormat)</td></tr>
<tr class="separator:a729ba128952454d53054e23ea9d3a73f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f6ac5e7437a8a0aaa28bc298ab9350f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOpenGLImage.html#a9f6ac5e7437a8a0aaa28bc298ab9350f">OpenGLImage</a> (const char *rawData, const <a class="el" href="classSize.html">Size</a>&lt; uint &gt; &amp;size, GLenum glFormat)</td></tr>
<tr class="separator:a9f6ac5e7437a8a0aaa28bc298ab9350f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bd3a7e2a8d8e36ebacf4277a3f915cc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOpenGLImage.html#a0bd3a7e2a8d8e36ebacf4277a3f915cc">draw</a> ()</td></tr>
<tr class="separator:a0bd3a7e2a8d8e36ebacf4277a3f915cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ba7a320245e2991890f12c2b68f165a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOpenGLImage.html#a4ba7a320245e2991890f12c2b68f165a">drawAt</a> (const int x, const int y)</td></tr>
<tr class="separator:a4ba7a320245e2991890f12c2b68f165a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b707a6bc3994826b250cd92059b711a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOpenGLImage.html#a9b707a6bc3994826b250cd92059b711a">drawAt</a> (int x, int y)</td></tr>
<tr class="separator:a9b707a6bc3994826b250cd92059b711a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affc660fed1d4be803512d1ff7a0ccaf5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOpenGLImage.html#affc660fed1d4be803512d1ff7a0ccaf5">drawAt</a> (const <a class="el" href="classPoint.html">Point</a>&lt; int &gt; &amp;pos)</td></tr>
<tr class="separator:affc660fed1d4be803512d1ff7a0ccaf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6eb1a0e289c0e29bf8d8cfb3310f40e"><td class="memItemLeft" align="right" valign="top">DISTRHO_DEPRECATED GLenum&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOpenGLImage.html#ac6eb1a0e289c0e29bf8d8cfb3310f40e">getType</a> () const noexcept</td></tr>
@@ -318,8 +318,8 @@ ImageFormat&#160;</td><td class="memItemRight" valign="bottom"><b>format</b></td

</div>
</div>
<a id="ae980ff640a778500ee1f2472585a1677"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae980ff640a778500ee1f2472585a1677">&#9670;&nbsp;</a></span>OpenGLImage() <span class="overload">[5/6]</span></h2>
<a id="a729ba128952454d53054e23ea9d3a73f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a729ba128952454d53054e23ea9d3a73f">&#9670;&nbsp;</a></span>OpenGLImage() <span class="overload">[5/6]</span></h2>

<div class="memitem">
<div class="memproto">
@@ -349,7 +349,7 @@ ImageFormat&#160;</td><td class="memItemRight" valign="bottom"><b>format</b></td
<td class="paramkey"></td>
<td></td>
<td class="paramtype">GLenum&#160;</td>
<td class="paramname"><em>format</em>&#160;</td>
<td class="paramname"><em>glFormat</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -367,8 +367,8 @@ ImageFormat&#160;</td><td class="memItemRight" valign="bottom"><b>format</b></td

</div>
</div>
<a id="ad30ba9f64c611b496bddbc3880b395bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad30ba9f64c611b496bddbc3880b395bc">&#9670;&nbsp;</a></span>OpenGLImage() <span class="overload">[6/6]</span></h2>
<a id="a9f6ac5e7437a8a0aaa28bc298ab9350f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f6ac5e7437a8a0aaa28bc298ab9350f">&#9670;&nbsp;</a></span>OpenGLImage() <span class="overload">[6/6]</span></h2>

<div class="memitem">
<div class="memproto">
@@ -392,7 +392,7 @@ ImageFormat&#160;</td><td class="memItemRight" valign="bottom"><b>format</b></td
<td class="paramkey"></td>
<td></td>
<td class="paramtype">GLenum&#160;</td>
<td class="paramname"><em>format</em>&#160;</td>
<td class="paramname"><em>glFormat</em>&#160;</td>
</tr>
<tr>
<td></td>
@@ -540,8 +540,8 @@ ImageFormat&#160;</td><td class="memItemRight" valign="bottom"><b>format</b></td

</div>
</div>
<a id="a4ba7a320245e2991890f12c2b68f165a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ba7a320245e2991890f12c2b68f165a">&#9670;&nbsp;</a></span>drawAt() <span class="overload">[2/3]</span></h2>
<a id="a9b707a6bc3994826b250cd92059b711a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9b707a6bc3994826b250cd92059b711a">&#9670;&nbsp;</a></span>drawAt() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
@@ -549,13 +549,13 @@ ImageFormat&#160;</td><td class="memItemRight" valign="bottom"><b>format</b></td
<tr>
<td class="memname">void OpenGLImage::drawAt </td>
<td>(</td>
<td class="paramtype">const int&#160;</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int&#160;</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
@@ -620,7 +620,7 @@ ImageFormat&#160;</td><td class="memItemRight" valign="bottom"><b>format</b></td
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 14
- 13
classPlugin-members.html View File

@@ -104,33 +104,34 @@ $(function() {
<tr><td class="entry"><a class="el" href="classPlugin.html#a75f30935198a0acba25f4ea92af72dc4">initAudioPort</a>(bool input, uint32_t index, AudioPort &amp;port)</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#a5b0ec59527a1c2f4b01f17fc8c18ea8b">initParameter</a>(uint32_t index, Parameter &amp;parameter)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#a5b0ec59527a1c2f4b01f17fc8c18ea8b">initParameter</a>(uint32_t index, Parameter &amp;parameter)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#a54d66af3111541b7c118f9749ef0231b">initProgramName</a>(uint32_t index, String &amp;programName)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#a71b876c8157b087b3552960f2877a44d">initPortGroup</a>(uint32_t groupId, PortGroup &amp;portGroup)</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#a54d66af3111541b7c118f9749ef0231b">initProgramName</a>(uint32_t index, String &amp;programName)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#ae301a970a8b5cff3c7ecef927ea20080">initState</a>(uint32_t index, String &amp;stateKey, String &amp;defaultStateValue)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#a54d66af3111541b7c118f9749ef0231b">initProgramName</a>(uint32_t index, String &amp;programName)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#ae301a970a8b5cff3c7ecef927ea20080">initState</a>(uint32_t index, String &amp;stateKey, String &amp;defaultStateValue)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#ab629f35c60406d6f2c0b9d530e67cf09">loadProgram</a>(uint32_t index)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#ae301a970a8b5cff3c7ecef927ea20080">initState</a>(uint32_t index, String &amp;stateKey, String &amp;defaultStateValue)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#ab629f35c60406d6f2c0b9d530e67cf09">loadProgram</a>(uint32_t index)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#acb5a3632da5a5c4110172a3a78e1fd32">Plugin</a>(uint32_t parameterCount, uint32_t programCount, uint32_t stateCount)</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#ab629f35c60406d6f2c0b9d530e67cf09">loadProgram</a>(uint32_t index)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#acb5a3632da5a5c4110172a3a78e1fd32">Plugin</a>(uint32_t parameterCount, uint32_t programCount, uint32_t stateCount)</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PluginExporter</b> (defined in <a class="el" href="classPlugin.html">Plugin</a>)</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">run</a>(const float **inputs, float **outputs, uint32_t frames, const MidiEvent *midiEvents, uint32_t midiEventCount)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#acb5a3632da5a5c4110172a3a78e1fd32">Plugin</a>(uint32_t parameterCount, uint32_t programCount, uint32_t stateCount)</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>PluginExporter</b> (defined in <a class="el" href="classPlugin.html">Plugin</a>)</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">run</a>(const float **inputs, float **outputs, uint32_t frames, const MidiEvent *midiEvents, uint32_t midiEventCount)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#a2fcbfa1893f44e661d0d8cd53391dadc">sampleRateChanged</a>(double newSampleRate)</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#a0a969c78f8455ac6ba65fa42e8c498f6">run</a>(const float **inputs, float **outputs, uint32_t frames, const MidiEvent *midiEvents, uint32_t midiEventCount)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#a2fcbfa1893f44e661d0d8cd53391dadc">sampleRateChanged</a>(double newSampleRate)</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#a2a70c4ec55d74d9bc26862975d8df8a7">setLatency</a>(uint32_t frames) noexcept</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#a2fcbfa1893f44e661d0d8cd53391dadc">sampleRateChanged</a>(double newSampleRate)</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#a2a70c4ec55d74d9bc26862975d8df8a7">setLatency</a>(uint32_t frames) noexcept</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#a6911a881fabb9eca9daf0eadbaad8599">setParameterValue</a>(uint32_t index, float value)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#a2a70c4ec55d74d9bc26862975d8df8a7">setLatency</a>(uint32_t frames) noexcept</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#a6911a881fabb9eca9daf0eadbaad8599">setParameterValue</a>(uint32_t index, float value)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#ad25ed64a2f00f48c86d2ae0016ea3e59">setState</a>(const char *key, const char *value)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#a6911a881fabb9eca9daf0eadbaad8599">setParameterValue</a>(uint32_t index, float value)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#ad25ed64a2f00f48c86d2ae0016ea3e59">setState</a>(const char *key, const char *value)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#a0467eef817ac130cbbe1c0fbe09660c6">writeMidiEvent</a>(const MidiEvent &amp;midiEvent) noexcept</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#ad25ed64a2f00f48c86d2ae0016ea3e59">setState</a>(const char *key, const char *value)=0</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#a0467eef817ac130cbbe1c0fbe09660c6">writeMidiEvent</a>(const MidiEvent &amp;midiEvent) noexcept</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#a89814b8f0b1c91e49140d42eb8331383">~Plugin</a>()</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#a0467eef817ac130cbbe1c0fbe09660c6">writeMidiEvent</a>(const MidiEvent &amp;midiEvent) noexcept</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classPlugin.html#a89814b8f0b1c91e49140d42eb8331383">~Plugin</a>()</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classPlugin.html#a89814b8f0b1c91e49140d42eb8331383">~Plugin</a>()</td><td class="entry"><a class="el" href="classPlugin.html">Plugin</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 41
- 1
classPlugin.html View File

@@ -126,6 +126,8 @@ Protected Member Functions</h2></td></tr>
<tr class="separator:a75f30935198a0acba25f4ea92af72dc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a5b0ec59527a1c2f4b01f17fc8c18ea8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a71b876c8157b087b3552960f2877a44d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a54d66af3111541b7c118f9749ef0231b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
@@ -780,6 +782,44 @@ This function will be called once, shortly after the plugin is created. </p>
<p>Initialize the parameter <em>index</em>.<br />
This function will be called once, shortly after the plugin is created. </p>

</div>
</div>
<a id="a71b876c8157b087b3552960f2877a44d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71b876c8157b087b3552960f2877a44d">&#9670;&nbsp;</a></span>initPortGroup()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void Plugin::initPortGroup </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>groupId</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structPortGroup.html">PortGroup</a> &amp;&#160;</td>
<td class="paramname"><em>portGroup</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize the port group <em>groupId</em>.<br />
This function will be called once, shortly after the plugin is created and all audio ports and parameters have been enumerated. </p>

</div>
</div>
<a id="a54d66af3111541b7c118f9749ef0231b"></a>
@@ -2050,7 +2090,7 @@ This function will only be called when the plugin is deactivated. </p><dl class=
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classPoint-members.html View File

@@ -95,7 +95,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classPoint.html View File

@@ -557,7 +557,7 @@ template&lt;typename T &gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 43
- 42
classRectangle-members.html View File

@@ -70,51 +70,52 @@ $(function() {
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a08b0741e6259e88552106136cdbff489">contains</a>(const T &amp;x, const T &amp;y) const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a4420a73414a0fd1b85abd468a2c890d3">contains</a>(const Point&lt; T &gt; &amp;pos) const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a71d17fdf110e4ed2350d2a5fe248e540">containsX</a>(const T &amp;x) const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a38b56f4f8b38597fd34f68c677de2559">containsY</a>(const T &amp;y) const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a2ed6472a18407217f011d5fffd2806e2">draw</a>(const GraphicsContext &amp;context)</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a415da25901ad63d87e3bac7755535cda">draw</a>()</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#ab07a01fb85e96f8f7a87e4b3e842a537">drawOutline</a>(const GraphicsContext &amp;context, T lineWidth=1)</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a562e46203701309da8748dcc5277373e">drawOutline</a>()</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a46b5c88ccfdf1b9f5c1086bb0852c94a">getHeight</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#aa91fa8951b6a77c86a3df804b1ed0717">getPos</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a89992b11e6d09286c2d6f4504b49d05f">getSize</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a5974e66bef8300fa6e052d846d07afb1">getWidth</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#aa7a5dc1efa46ac87abdc57850f65c1ef">getX</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a8f2fb02ceea742b6155a476be3694ec9">getY</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a043d677b0fa28c50a18ed30bcb84e02b">growBy</a>(double multiplier) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a4606fd36eafb48a35cc890a781075177">isInvalid</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a418138f282293797af5273163a307356">isNotNull</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#ae49e802c09f810bef2e98698d94a7416">isNull</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a364ee7449a1d11207322e56aac024376">isValid</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a040f154cde2faff853fd0bde9ca884b9">moveBy</a>(const T &amp;x, const T &amp;y) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a9e81627f1201111f0e36cce15e317000">moveBy</a>(const Point&lt; T &gt; &amp;pos) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator!=</b>(const Rectangle&lt; T &gt; &amp;size) const noexcept (defined in <a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator*=</b>(double m) noexcept (defined in <a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator/=</b>(double d) noexcept (defined in <a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const Rectangle&lt; T &gt; &amp;rect) noexcept (defined in <a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator==</b>(const Rectangle&lt; T &gt; &amp;size) const noexcept (defined in <a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#acf4a7cdc13c4176d44965db53a3561f3">Rectangle</a>() noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a883fb137e26b5b7e95791d91c232603f">Rectangle</a>(const T &amp;x, const T &amp;y, const T &amp;width, const T &amp;height) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#ae2560ef4446450f535414f70d7f46aa0">Rectangle</a>(const T &amp;x, const T &amp;y, const Size&lt; T &gt; &amp;size) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a7e55381bd7fe33d52a8847f65e9883ed">Rectangle</a>(const Point&lt; T &gt; &amp;pos, const T &amp;width, const T &amp;height) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a4b4d34708248ee56900916cdf1138edc">Rectangle</a>(const Point&lt; T &gt; &amp;pos, const Size&lt; T &gt; &amp;size) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#ac492f53d4f548c4f572c90c485606db8">Rectangle</a>(const Rectangle&lt; T &gt; &amp;rect) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a5ff3aca88c9ef31a2e3f8e6cee846155">setHeight</a>(const T &amp;height) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a52adba9ba93242a51de29865818fd776">setPos</a>(const T &amp;x, const T &amp;y) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#ae0904b281ed4811e6901d0d78c30f08e">setPos</a>(const Point&lt; T &gt; &amp;pos) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a2907d68a36a3ba97cb8ef14f86d85075">setRectangle</a>(const Point&lt; T &gt; &amp;pos, const Size&lt; T &gt; &amp;size) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#ac74be2c368aee380680c0221c432cb7f">setRectangle</a>(const Rectangle&lt; T &gt; &amp;rect) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a6af8f18557397f909cae8eb65f8367a4">setSize</a>(const T &amp;width, const T &amp;height) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a23d728827f9c22167929c461aa65882e">setSize</a>(const Size&lt; T &gt; &amp;size) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a75ce3e3a2e8745a1d749dd9da02e9443">setWidth</a>(const T &amp;width) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#af618ee618bd029fbe66291228041990e">setX</a>(const T &amp;x) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#abe5b6c92cece58bbc0c7cb4855e73dac">setY</a>(const T &amp;y) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a22e5029d09c7eac8ebee0e079dab075f">shrinkBy</a>(double divider) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#aa39ae4cb4a8c27f91db466fa12aef254">contains</a>(const Point&lt; T2 &gt; &amp;pos) const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a71d17fdf110e4ed2350d2a5fe248e540">containsX</a>(const T &amp;x) const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a38b56f4f8b38597fd34f68c677de2559">containsY</a>(const T &amp;y) const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a2ed6472a18407217f011d5fffd2806e2">draw</a>(const GraphicsContext &amp;context)</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a415da25901ad63d87e3bac7755535cda">draw</a>()</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#ab07a01fb85e96f8f7a87e4b3e842a537">drawOutline</a>(const GraphicsContext &amp;context, T lineWidth=1)</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a562e46203701309da8748dcc5277373e">drawOutline</a>()</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a46b5c88ccfdf1b9f5c1086bb0852c94a">getHeight</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#aa91fa8951b6a77c86a3df804b1ed0717">getPos</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a89992b11e6d09286c2d6f4504b49d05f">getSize</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a5974e66bef8300fa6e052d846d07afb1">getWidth</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#aa7a5dc1efa46ac87abdc57850f65c1ef">getX</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a8f2fb02ceea742b6155a476be3694ec9">getY</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a043d677b0fa28c50a18ed30bcb84e02b">growBy</a>(double multiplier) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a4606fd36eafb48a35cc890a781075177">isInvalid</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a418138f282293797af5273163a307356">isNotNull</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#ae49e802c09f810bef2e98698d94a7416">isNull</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a364ee7449a1d11207322e56aac024376">isValid</a>() const noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a040f154cde2faff853fd0bde9ca884b9">moveBy</a>(const T &amp;x, const T &amp;y) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a9e81627f1201111f0e36cce15e317000">moveBy</a>(const Point&lt; T &gt; &amp;pos) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator!=</b>(const Rectangle&lt; T &gt; &amp;size) const noexcept (defined in <a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator*=</b>(double m) noexcept (defined in <a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator/=</b>(double d) noexcept (defined in <a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const Rectangle&lt; T &gt; &amp;rect) noexcept (defined in <a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator==</b>(const Rectangle&lt; T &gt; &amp;size) const noexcept (defined in <a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#acf4a7cdc13c4176d44965db53a3561f3">Rectangle</a>() noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a883fb137e26b5b7e95791d91c232603f">Rectangle</a>(const T &amp;x, const T &amp;y, const T &amp;width, const T &amp;height) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#ae2560ef4446450f535414f70d7f46aa0">Rectangle</a>(const T &amp;x, const T &amp;y, const Size&lt; T &gt; &amp;size) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a7e55381bd7fe33d52a8847f65e9883ed">Rectangle</a>(const Point&lt; T &gt; &amp;pos, const T &amp;width, const T &amp;height) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a4b4d34708248ee56900916cdf1138edc">Rectangle</a>(const Point&lt; T &gt; &amp;pos, const Size&lt; T &gt; &amp;size) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#ac492f53d4f548c4f572c90c485606db8">Rectangle</a>(const Rectangle&lt; T &gt; &amp;rect) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a5ff3aca88c9ef31a2e3f8e6cee846155">setHeight</a>(const T &amp;height) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a52adba9ba93242a51de29865818fd776">setPos</a>(const T &amp;x, const T &amp;y) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#ae0904b281ed4811e6901d0d78c30f08e">setPos</a>(const Point&lt; T &gt; &amp;pos) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a2907d68a36a3ba97cb8ef14f86d85075">setRectangle</a>(const Point&lt; T &gt; &amp;pos, const Size&lt; T &gt; &amp;size) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#ac74be2c368aee380680c0221c432cb7f">setRectangle</a>(const Rectangle&lt; T &gt; &amp;rect) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a6af8f18557397f909cae8eb65f8367a4">setSize</a>(const T &amp;width, const T &amp;height) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a23d728827f9c22167929c461aa65882e">setSize</a>(const Size&lt; T &gt; &amp;size) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#a75ce3e3a2e8745a1d749dd9da02e9443">setWidth</a>(const T &amp;width) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#af618ee618bd029fbe66291228041990e">setX</a>(const T &amp;x) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRectangle.html#abe5b6c92cece58bbc0c7cb4855e73dac">setY</a>(const T &amp;y) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRectangle.html#a22e5029d09c7eac8ebee0e079dab075f">shrinkBy</a>(double divider) noexcept</td><td class="entry"><a class="el" href="classRectangle.html">Rectangle&lt; T &gt;</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 37
- 3
classRectangle.html View File

@@ -129,6 +129,9 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a08b0741e6259e88552106136cdbff489"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4420a73414a0fd1b85abd468a2c890d3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRectangle.html#a4420a73414a0fd1b85abd468a2c890d3">contains</a> (const <a class="el" href="classPoint.html">Point</a>&lt; T &gt; &amp;pos) const noexcept</td></tr>
<tr class="separator:a4420a73414a0fd1b85abd468a2c890d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa39ae4cb4a8c27f91db466fa12aef254"><td class="memTemplParams" colspan="2">template&lt;typename T2 &gt; </td></tr>
<tr class="memitem:aa39ae4cb4a8c27f91db466fa12aef254"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classRectangle.html#aa39ae4cb4a8c27f91db466fa12aef254">contains</a> (const <a class="el" href="classPoint.html">Point</a>&lt; T2 &gt; &amp;pos) const noexcept</td></tr>
<tr class="separator:aa39ae4cb4a8c27f91db466fa12aef254"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71d17fdf110e4ed2350d2a5fe248e540"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRectangle.html#a71d17fdf110e4ed2350d2a5fe248e540">containsX</a> (const T &amp;x) const noexcept</td></tr>
<tr class="separator:a71d17fdf110e4ed2350d2a5fe248e540"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38b56f4f8b38597fd34f68c677de2559"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRectangle.html#a38b56f4f8b38597fd34f68c677de2559">containsY</a> (const T &amp;y) const noexcept</td></tr>
@@ -1025,7 +1028,7 @@ template&lt;typename T &gt; </div>
</div>
</div>
<a id="a08b0741e6259e88552106136cdbff489"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08b0741e6259e88552106136cdbff489">&#9670;&nbsp;</a></span>contains() <span class="overload">[1/2]</span></h2>
<h2 class="memtitle"><span class="permalink"><a href="#a08b0741e6259e88552106136cdbff489">&#9670;&nbsp;</a></span>contains() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
@@ -1064,7 +1067,7 @@ template&lt;typename T &gt; </div>
</div>
</div>
<a id="a4420a73414a0fd1b85abd468a2c890d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4420a73414a0fd1b85abd468a2c890d3">&#9670;&nbsp;</a></span>contains() <span class="overload">[2/2]</span></h2>
<h2 class="memtitle"><span class="permalink"><a href="#a4420a73414a0fd1b85abd468a2c890d3">&#9670;&nbsp;</a></span>contains() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
@@ -1090,6 +1093,37 @@ template&lt;typename T &gt; </div>
</div><div class="memdoc">
<p>Check if this rectangle contains the point <em>pos</em>. </p>

</div>
</div>
<a id="aa39ae4cb4a8c27f91db466fa12aef254"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa39ae4cb4a8c27f91db466fa12aef254">&#9670;&nbsp;</a></span>contains() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<div class="memtemplate">
template&lt;typename T2 &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classRectangle.html">Rectangle</a>&lt; T &gt;::contains </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classPoint.html">Point</a>&lt; T2 &gt; &amp;&#160;</td>
<td class="paramname"><em>pos</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Check if this rectangle contains the point <em>pos</em> of another type. </p>

</div>
</div>
<a id="a71d17fdf110e4ed2350d2a5fe248e540"></a>
@@ -1362,7 +1396,7 @@ DEPRECATED Please use <a class="el" href="classRectangle.html#ab07a01fb85e96f8f7
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classRecursiveMutex-members.html View File

@@ -76,7 +76,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 4
- 4
classRecursiveMutex.html View File

@@ -71,9 +71,9 @@ $(function() {
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a650ef5727ca8b4d5816ab036e711e3a4"><td class="memItemLeft" align="right" valign="top"><a id="a650ef5727ca8b4d5816ab036e711e3a4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>lock</b> () const noexcept</td></tr>
<tr class="separator:a650ef5727ca8b4d5816ab036e711e3a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35e1c8b0d21fd38613c36aa6925c34ec"><td class="memItemLeft" align="right" valign="top"><a id="a35e1c8b0d21fd38613c36aa6925c34ec"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>lock</b> () const noexcept</td></tr>
<tr class="separator:a35e1c8b0d21fd38613c36aa6925c34ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40d6b2ffb3a6f0f420a12948eba633a8"><td class="memItemLeft" align="right" valign="top"><a id="a40d6b2ffb3a6f0f420a12948eba633a8"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>tryLock</b> () const noexcept</td></tr>
<tr class="separator:a40d6b2ffb3a6f0f420a12948eba633a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -87,7 +87,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>unlock</b> () const n
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 113
- 0
classRingBufferControl-members.html View File

@@ -0,0 +1,113 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">RingBufferControl&lt; BufferStruct &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">

<p>This is the complete list of members for <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>clearData</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classRingBufferControl.html#afe0c53d2591eb265d657c1cab6800036">commitWrite</a>() noexcept</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getAvailableDataSize</b>() const noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>isDataAvailableForReading</b>() const noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>isEmpty</b>() const noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>readBool</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>readByte</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classRingBufferControl.html#aafdb126b2885c507cec852bc63fd6cb8">readCustomData</a>(void *const data, const uint32_t size) noexcept</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRingBufferControl.html#aaaf4efe13ec2555c390047f545d2660d">readCustomType</a>(T &amp;type) noexcept</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>readDouble</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>readFloat</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>readInt</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>readLong</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>readShort</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>readUInt</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>readULong</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>readUShort</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>RingBufferControl</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setRingBuffer</b>(BufferStruct *const ringBuf, const bool clearRingBufferData) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>tryRead</b>(void *const buf, const uint32_t size) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>tryWrite</b>(const void *const buf, const uint32_t size) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>writeBool</b>(const bool value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>writeByte</b>(const uint8_t value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classRingBufferControl.html#a72e173dcae573f6e2e8ac4cfeb8aa96b">writeCustomData</a>(const void *const data, const uint32_t size) noexcept</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRingBufferControl.html#a3e9c1857e11f0d9efcc2944d6000504b">writeCustomType</a>(const T &amp;type) noexcept</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>writeDouble</b>(const double value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>writeFloat</b>(const float value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>writeInt</b>(const int32_t value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>writeLong</b>(const int64_t value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>writeShort</b>(const int16_t value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>writeUInt</b>(const uint32_t value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>writeULong</b>(const uint64_t value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>writeUShort</b>(const uint16_t value) noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>~RingBufferControl</b>() noexcept (defined in <a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a>)</td><td class="entry"><a class="el" href="classRingBufferControl.html">RingBufferControl&lt; BufferStruct &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

+ 387
- 0
classRingBufferControl.html View File

@@ -0,0 +1,387 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DISTRHO Plugin Framework: RingBufferControl&lt; BufferStruct &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">DISTRHO Plugin Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classRingBufferControl-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">RingBufferControl&lt; BufferStruct &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="RingBuffer_8hpp_source.html">RingBuffer.hpp</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a5a857b3ce6d8570899e1310bbaa166c2"><td class="memItemLeft" align="right" valign="top"><a id="a5a857b3ce6d8570899e1310bbaa166c2"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>isDataAvailableForReading</b> () const noexcept</td></tr>
<tr class="separator:a5a857b3ce6d8570899e1310bbaa166c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac795fc07ffa5c591b9516b514dedc7aa"><td class="memItemLeft" align="right" valign="top"><a id="ac795fc07ffa5c591b9516b514dedc7aa"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>isEmpty</b> () const noexcept</td></tr>
<tr class="separator:ac795fc07ffa5c591b9516b514dedc7aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed6ec8bf3b3bc4ef2e490bd1f34f5cfb"><td class="memItemLeft" align="right" valign="top"><a id="aed6ec8bf3b3bc4ef2e490bd1f34f5cfb"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>getAvailableDataSize</b> () const noexcept</td></tr>
<tr class="separator:aed6ec8bf3b3bc4ef2e490bd1f34f5cfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a93880bd798351b66c7c546ee91d7af"><td class="memItemLeft" align="right" valign="top"><a id="a8a93880bd798351b66c7c546ee91d7af"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>clearData</b> () noexcept</td></tr>
<tr class="separator:a8a93880bd798351b66c7c546ee91d7af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7861a13bc22c3a692490002e11cfa001"><td class="memItemLeft" align="right" valign="top"><a id="a7861a13bc22c3a692490002e11cfa001"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>readBool</b> () noexcept</td></tr>
<tr class="separator:a7861a13bc22c3a692490002e11cfa001"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b08be900bb851cb08ea17797afde52b"><td class="memItemLeft" align="right" valign="top"><a id="a7b08be900bb851cb08ea17797afde52b"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>readByte</b> () noexcept</td></tr>
<tr class="separator:a7b08be900bb851cb08ea17797afde52b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a481ba7979e8dfa0077225fb4eeedcdf4"><td class="memItemLeft" align="right" valign="top"><a id="a481ba7979e8dfa0077225fb4eeedcdf4"></a>
int16_t&#160;</td><td class="memItemRight" valign="bottom"><b>readShort</b> () noexcept</td></tr>
<tr class="separator:a481ba7979e8dfa0077225fb4eeedcdf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a568b35da8271fd136d3e52254c3a6e"><td class="memItemLeft" align="right" valign="top"><a id="a3a568b35da8271fd136d3e52254c3a6e"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>readUShort</b> () noexcept</td></tr>
<tr class="separator:a3a568b35da8271fd136d3e52254c3a6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f9f287326a852f40dc8c2f477eac61d"><td class="memItemLeft" align="right" valign="top"><a id="a6f9f287326a852f40dc8c2f477eac61d"></a>
int32_t&#160;</td><td class="memItemRight" valign="bottom"><b>readInt</b> () noexcept</td></tr>
<tr class="separator:a6f9f287326a852f40dc8c2f477eac61d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cb216fe6c4ae7955f7a1e6fde3fdaaa"><td class="memItemLeft" align="right" valign="top"><a id="a8cb216fe6c4ae7955f7a1e6fde3fdaaa"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>readUInt</b> () noexcept</td></tr>
<tr class="separator:a8cb216fe6c4ae7955f7a1e6fde3fdaaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00e4069c4e71a15aba05cbd20416f9c2"><td class="memItemLeft" align="right" valign="top"><a id="a00e4069c4e71a15aba05cbd20416f9c2"></a>
int64_t&#160;</td><td class="memItemRight" valign="bottom"><b>readLong</b> () noexcept</td></tr>
<tr class="separator:a00e4069c4e71a15aba05cbd20416f9c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84d06ef9f64dda3c61e02744bee598b5"><td class="memItemLeft" align="right" valign="top"><a id="a84d06ef9f64dda3c61e02744bee598b5"></a>
uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>readULong</b> () noexcept</td></tr>
<tr class="separator:a84d06ef9f64dda3c61e02744bee598b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cfb2a83c9788607530c96e122f1a5cb"><td class="memItemLeft" align="right" valign="top"><a id="a0cfb2a83c9788607530c96e122f1a5cb"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>readFloat</b> () noexcept</td></tr>
<tr class="separator:a0cfb2a83c9788607530c96e122f1a5cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4181c35249c1cfa5115836766552a9f7"><td class="memItemLeft" align="right" valign="top"><a id="a4181c35249c1cfa5115836766552a9f7"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>readDouble</b> () noexcept</td></tr>
<tr class="separator:a4181c35249c1cfa5115836766552a9f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafdb126b2885c507cec852bc63fd6cb8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRingBufferControl.html#aafdb126b2885c507cec852bc63fd6cb8">readCustomData</a> (void *const data, const uint32_t size) noexcept</td></tr>
<tr class="separator:aafdb126b2885c507cec852bc63fd6cb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaf4efe13ec2555c390047f545d2660d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aaaf4efe13ec2555c390047f545d2660d"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classRingBufferControl.html#aaaf4efe13ec2555c390047f545d2660d">readCustomType</a> (T &amp;type) noexcept</td></tr>
<tr class="separator:aaaf4efe13ec2555c390047f545d2660d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d560bf7255bf3f9b3ab91d178c8a514"><td class="memItemLeft" align="right" valign="top"><a id="a8d560bf7255bf3f9b3ab91d178c8a514"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeBool</b> (const bool value) noexcept</td></tr>
<tr class="separator:a8d560bf7255bf3f9b3ab91d178c8a514"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57d59476536b91746d8bf52bfae74755"><td class="memItemLeft" align="right" valign="top"><a id="a57d59476536b91746d8bf52bfae74755"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeByte</b> (const uint8_t value) noexcept</td></tr>
<tr class="separator:a57d59476536b91746d8bf52bfae74755"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05763b20c7a59eab5b9ec7f32c758954"><td class="memItemLeft" align="right" valign="top"><a id="a05763b20c7a59eab5b9ec7f32c758954"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeShort</b> (const int16_t value) noexcept</td></tr>
<tr class="separator:a05763b20c7a59eab5b9ec7f32c758954"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b4e2008d32cf8ae36cbce37db935fa0"><td class="memItemLeft" align="right" valign="top"><a id="a9b4e2008d32cf8ae36cbce37db935fa0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeUShort</b> (const uint16_t value) noexcept</td></tr>
<tr class="separator:a9b4e2008d32cf8ae36cbce37db935fa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55d6d467fbb82ec942eaa88ee9de056f"><td class="memItemLeft" align="right" valign="top"><a id="a55d6d467fbb82ec942eaa88ee9de056f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeInt</b> (const int32_t value) noexcept</td></tr>
<tr class="separator:a55d6d467fbb82ec942eaa88ee9de056f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b3e0c77afe562049ebef1a5dd534ffe"><td class="memItemLeft" align="right" valign="top"><a id="a3b3e0c77afe562049ebef1a5dd534ffe"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeUInt</b> (const uint32_t value) noexcept</td></tr>
<tr class="separator:a3b3e0c77afe562049ebef1a5dd534ffe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5400bbf87025d3f6b4bf307538eacd8e"><td class="memItemLeft" align="right" valign="top"><a id="a5400bbf87025d3f6b4bf307538eacd8e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeLong</b> (const int64_t value) noexcept</td></tr>
<tr class="separator:a5400bbf87025d3f6b4bf307538eacd8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2bc16d54ac5d10065124719abb95a87"><td class="memItemLeft" align="right" valign="top"><a id="ac2bc16d54ac5d10065124719abb95a87"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeULong</b> (const uint64_t value) noexcept</td></tr>
<tr class="separator:ac2bc16d54ac5d10065124719abb95a87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97f63ccaa7e578346938b32dfb47224e"><td class="memItemLeft" align="right" valign="top"><a id="a97f63ccaa7e578346938b32dfb47224e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeFloat</b> (const float value) noexcept</td></tr>
<tr class="separator:a97f63ccaa7e578346938b32dfb47224e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ad016c6ff0e3b3469060ad5ca758e73"><td class="memItemLeft" align="right" valign="top"><a id="a6ad016c6ff0e3b3469060ad5ca758e73"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>writeDouble</b> (const double value) noexcept</td></tr>
<tr class="separator:a6ad016c6ff0e3b3469060ad5ca758e73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72e173dcae573f6e2e8ac4cfeb8aa96b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRingBufferControl.html#a72e173dcae573f6e2e8ac4cfeb8aa96b">writeCustomData</a> (const void *const data, const uint32_t size) noexcept</td></tr>
<tr class="separator:a72e173dcae573f6e2e8ac4cfeb8aa96b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e9c1857e11f0d9efcc2944d6000504b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a3e9c1857e11f0d9efcc2944d6000504b"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classRingBufferControl.html#a3e9c1857e11f0d9efcc2944d6000504b">writeCustomType</a> (const T &amp;type) noexcept</td></tr>
<tr class="separator:a3e9c1857e11f0d9efcc2944d6000504b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe0c53d2591eb265d657c1cab6800036"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRingBufferControl.html#afe0c53d2591eb265d657c1cab6800036">commitWrite</a> () noexcept</td></tr>
<tr class="separator:afe0c53d2591eb265d657c1cab6800036"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1d302eb13fa5f41a2f9cb94974f2355"><td class="memItemLeft" align="right" valign="top"><a id="ac1d302eb13fa5f41a2f9cb94974f2355"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setRingBuffer</b> (BufferStruct *const ringBuf, const bool clearRingBufferData) noexcept</td></tr>
<tr class="separator:ac1d302eb13fa5f41a2f9cb94974f2355"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ae52a43afbe6404494aeb2abfb305342b"><td class="memItemLeft" align="right" valign="top"><a id="ae52a43afbe6404494aeb2abfb305342b"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>tryRead</b> (void *const buf, const uint32_t size) noexcept</td></tr>
<tr class="separator:ae52a43afbe6404494aeb2abfb305342b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a121bc17537c3ff7841d8e684e84fbb7a"><td class="memItemLeft" align="right" valign="top"><a id="a121bc17537c3ff7841d8e684e84fbb7a"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>tryWrite</b> (const void *const buf, const uint32_t size) noexcept</td></tr>
<tr class="separator:a121bc17537c3ff7841d8e684e84fbb7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class BufferStruct&gt;<br />
class RingBufferControl&lt; BufferStruct &gt;</h3>

<p>DPF built-in RingBuffer class. <a class="el" href="classRingBufferControl.html">RingBufferControl</a> takes one buffer struct to take control over, and operates over it.</p>
<p>This is meant for single-writer, single-reader type of control. Writing and reading is wait and lock-free.</p>
<p>Typically usage involves: </p><div class="fragment"><div class="line"><span class="comment">// definition</span></div>
<div class="line"><a class="code" href="classRingBufferControl.html">RingBufferControl&lt;HeapBuffer&gt;</a> myHeapBuffer; <span class="comment">// or HeapRingBuffer class directly</span></div>
<div class="line"> </div>
<div class="line"><span class="comment">// construction, only needed for heap buffers</span></div>
<div class="line">myHeapBuffer.createBuffer(8192);</div>
<div class="line"> </div>
<div class="line"><span class="comment">// writing data</span></div>
<div class="line">myHeapBuffer.writeUInt(size);</div>
<div class="line">myHeapBuffer.<a class="code" href="classRingBufferControl.html#a72e173dcae573f6e2e8ac4cfeb8aa96b">writeCustomData</a>(someOtherData, size);</div>
<div class="line">myHeapBuffer.<a class="code" href="classRingBufferControl.html#afe0c53d2591eb265d657c1cab6800036">commitWrite</a>();</div>
<div class="line"> </div>
<div class="line"><span class="comment">// reading data</span></div>
<div class="line"><span class="keywordflow">if</span> (myHeapBuffer.isDataAvailableForReading())</div>
<div class="line">{</div>
<div class="line"> uint32_t size;</div>
<div class="line"> <span class="keywordflow">if</span> (myHeapBuffer.readUInt(size) &amp;&amp; <a class="code" href="classRingBufferControl.html#aafdb126b2885c507cec852bc63fd6cb8">readCustomData</a>(&amp;anotherData, size))</div>
<div class="line"> {</div>
<div class="line"> <span class="comment">// do something with &quot;anotherData&quot;</span></div>
<div class="line"> }</div>
<div class="line">}</div>
</div><!-- fragment --><dl class="section see"><dt>See also</dt><dd><a class="el" href="structHeapBuffer.html">HeapBuffer</a> </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aafdb126b2885c507cec852bc63fd6cb8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafdb126b2885c507cec852bc63fd6cb8">&#9670;&nbsp;</a></span>readCustomData()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class BufferStruct &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classRingBufferControl.html">RingBufferControl</a>&lt; BufferStruct &gt;::readCustomData </td>
<td>(</td>
<td class="paramtype">void *const&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read an arbitrary amount of data, specified by <em>size</em>. data pointer must be non-null, and size &gt; 0.</p>
<p>Returns true if reading succeeds. In case of failure, <em>data</em> pointer is automatically cleared by <em>size</em> bytes. </p>

</div>
</div>
<a id="aaaf4efe13ec2555c390047f545d2660d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaaf4efe13ec2555c390047f545d2660d">&#9670;&nbsp;</a></span>readCustomType()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class BufferStruct &gt; </div>
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classRingBufferControl.html">RingBufferControl</a>&lt; BufferStruct &gt;::readCustomType </td>
<td>(</td>
<td class="paramtype">T &amp;&#160;</td>
<td class="paramname"><em>type</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read a custom data type specified by the template typename used, with size being automatically deduced by the compiler (through the use of sizeof).</p>
<p>Returns true if reading succeeds. In case of failure, <em>type</em> value is automatically cleared by its deduced size. </p>

</div>
</div>
<a id="a72e173dcae573f6e2e8ac4cfeb8aa96b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72e173dcae573f6e2e8ac4cfeb8aa96b">&#9670;&nbsp;</a></span>writeCustomData()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class BufferStruct &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classRingBufferControl.html">RingBufferControl</a>&lt; BufferStruct &gt;::writeCustomData </td>
<td>(</td>
<td class="paramtype">const void *const&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Write an arbitrary amount of data, specified by <em>size</em>. data pointer must be non-null, and size &gt; 0. </p>

</div>
</div>
<a id="a3e9c1857e11f0d9efcc2944d6000504b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e9c1857e11f0d9efcc2944d6000504b">&#9670;&nbsp;</a></span>writeCustomType()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class BufferStruct &gt; </div>
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classRingBufferControl.html">RingBufferControl</a>&lt; BufferStruct &gt;::writeCustomType </td>
<td>(</td>
<td class="paramtype">const T &amp;&#160;</td>
<td class="paramname"><em>type</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Write a custom data type specified by the template typename used, with size being automatically deduced by the compiler (through the use of sizeof). </p>

</div>
</div>
<a id="afe0c53d2591eb265d657c1cab6800036"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe0c53d2591eb265d657c1cab6800036">&#9670;&nbsp;</a></span>commitWrite()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class BufferStruct &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classRingBufferControl.html">RingBufferControl</a>&lt; BufferStruct &gt;::commitWrite </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Commit all previous write operations to the ringbuffer. If a write operation has previously failed, this will reset/invalidate the previous write attempts. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>distrho/extra/<a class="el" href="RingBuffer_8hpp_source.html">RingBuffer.hpp</a></li>
</ul>
</div><!-- contents -->
<div class="ttc" id="aclassRingBufferControl_html_afe0c53d2591eb265d657c1cab6800036"><div class="ttname"><a href="classRingBufferControl.html#afe0c53d2591eb265d657c1cab6800036">RingBufferControl::commitWrite</a></div><div class="ttdeci">bool commitWrite() noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:484</div></div>
<div class="ttc" id="aclassRingBufferControl_html"><div class="ttname"><a href="classRingBufferControl.html">RingBufferControl&lt; HeapBuffer &gt;</a></div></div>
<div class="ttc" id="aclassRingBufferControl_html_a72e173dcae573f6e2e8ac4cfeb8aa96b"><div class="ttname"><a href="classRingBufferControl.html#a72e173dcae573f6e2e8ac4cfeb8aa96b">RingBufferControl::writeCustomData</a></div><div class="ttdeci">bool writeCustomData(const void *const data, const uint32_t size) noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:460</div></div>
<div class="ttc" id="aclassRingBufferControl_html_aafdb126b2885c507cec852bc63fd6cb8"><div class="ttname"><a href="classRingBufferControl.html#aafdb126b2885c507cec852bc63fd6cb8">RingBufferControl::readCustomData</a></div><div class="ttdeci">bool readCustomData(void *const data, const uint32_t size) noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:344</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

+ 1
- 1
classScopeLocker-members.html View File

@@ -73,7 +73,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


+ 1
- 1
classScopeLocker.html View File

@@ -81,7 +81,7 @@ Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 18 2021 11:26:32 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Mon Jun 14 2021 12:26:12 for DISTRHO Plugin Framework by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save