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

rack.hpp 3.7KB

8 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. #pragma once
  2. /*
  3. The following headers are the "public" API of Rack.
  4. Directly including Rack headers other than rack.hpp in your plugin is unsupported/unstable, since filenames and locations of symbols may change in any Rack version.
  5. */
  6. #ifdef PRIVATE
  7. #warning "Plugins must only include rack.hpp. Including other Rack headers is unsupported."
  8. #endif
  9. /** Functions with the PRIVATE attribute should not be called by plugins.
  10. */
  11. #ifdef __clang__
  12. #define PRIVATE __attribute__((deprecated("Using internal Rack function or symbol")))
  13. #else
  14. #define PRIVATE __attribute__((error("Using internal Rack function or symbol")))
  15. #endif
  16. #include <common.hpp>
  17. #include <math.hpp>
  18. #include <string.hpp>
  19. #include <system.hpp>
  20. #include <mutex.hpp>
  21. #include <random.hpp>
  22. #include <network.hpp>
  23. #include <asset.hpp>
  24. #include <window/Window.hpp>
  25. #include <context.hpp>
  26. #include <audio.hpp>
  27. #include <midi.hpp>
  28. #include <settings.hpp>
  29. #include <helpers.hpp>
  30. #include <componentlibrary.hpp>
  31. #include <widget/TransparentWidget.hpp>
  32. #include <widget/OpenGlWidget.hpp>
  33. #include <widget/OpaqueWidget.hpp>
  34. #include <widget/FramebufferWidget.hpp>
  35. #include <widget/TransformWidget.hpp>
  36. #include <widget/event.hpp>
  37. #include <widget/ZoomWidget.hpp>
  38. #include <widget/SvgWidget.hpp>
  39. #include <widget/Widget.hpp>
  40. #include <ui/Tooltip.hpp>
  41. #include <ui/MenuLabel.hpp>
  42. #include <ui/MenuEntry.hpp>
  43. #include <ui/List.hpp>
  44. #include <ui/TooltipOverlay.hpp>
  45. #include <ui/Slider.hpp>
  46. #include <ui/Scrollbar.hpp>
  47. #include <ui/ProgressBar.hpp>
  48. #include <ui/MenuSeparator.hpp>
  49. #include <ui/MenuOverlay.hpp>
  50. #include <ui/Label.hpp>
  51. #include <ui/TextField.hpp>
  52. #include <ui/SequentialLayout.hpp>
  53. #include <ui/MenuItem.hpp>
  54. #include <ui/Button.hpp>
  55. #include <ui/ChoiceButton.hpp>
  56. #include <ui/OptionButton.hpp>
  57. #include <ui/RadioButton.hpp>
  58. #include <ui/Menu.hpp>
  59. #include <ui/ScrollWidget.hpp>
  60. #include <app/SliderKnob.hpp>
  61. #include <app/MultiLightWidget.hpp>
  62. #include <app/MidiDisplay.hpp>
  63. #include <app/CircularShadow.hpp>
  64. #include <app/AudioDisplay.hpp>
  65. #include <app/LedDisplay.hpp>
  66. #include <app/ModuleLightWidget.hpp>
  67. #include <app/LightWidget.hpp>
  68. #include <app/RailWidget.hpp>
  69. #include <app/PortWidget.hpp>
  70. #include <app/CableWidget.hpp>
  71. #include <app/Switch.hpp>
  72. #include <app/RackScrollWidget.hpp>
  73. #include <app/Knob.hpp>
  74. #include <app/Scene.hpp>
  75. #include <app/RackWidget.hpp>
  76. #include <app/ParamWidget.hpp>
  77. #include <app/SvgKnob.hpp>
  78. #include <app/SvgPanel.hpp>
  79. #include <app/SvgPort.hpp>
  80. #include <app/SvgSwitch.hpp>
  81. #include <app/SvgScrew.hpp>
  82. #include <app/ModuleWidget.hpp>
  83. #include <app/SvgSlider.hpp>
  84. #include <app/SvgButton.hpp>
  85. #include <engine/Param.hpp>
  86. #include <engine/ParamHandle.hpp>
  87. #include <engine/LightInfo.hpp>
  88. #include <engine/PortInfo.hpp>
  89. #include <engine/Light.hpp>
  90. #include <engine/Cable.hpp>
  91. #include <engine/Port.hpp>
  92. #include <engine/ParamQuantity.hpp>
  93. #include <engine/Module.hpp>
  94. #include <engine/Engine.hpp>
  95. #include <plugin/Plugin.hpp>
  96. #include <plugin/Model.hpp>
  97. #include <plugin/callbacks.hpp>
  98. #include <dsp/common.hpp>
  99. #include <dsp/window.hpp>
  100. #include <dsp/ode.hpp>
  101. #include <dsp/minblep.hpp>
  102. #include <dsp/fft.hpp>
  103. #include <dsp/ringbuffer.hpp>
  104. #include <dsp/resampler.hpp>
  105. #include <dsp/fir.hpp>
  106. #include <dsp/approx.hpp>
  107. #include <dsp/midi.hpp>
  108. #include <dsp/vumeter.hpp>
  109. #include <dsp/filter.hpp>
  110. #include <dsp/digital.hpp>
  111. #include <dsp/convert.hpp>
  112. #include <simd/Vector.hpp>
  113. #include <simd/functions.hpp>
  114. namespace rack {
  115. // Import some namespaces for convenience
  116. using namespace logger;
  117. using namespace math;
  118. using namespace window;
  119. using namespace widget;
  120. using namespace ui;
  121. using namespace app;
  122. using plugin::Plugin;
  123. using plugin::Model;
  124. using namespace engine;
  125. using namespace componentlibrary;
  126. } // namespace rack