VCV Rack API v2
Loading...
Searching...
No Matches
rack.hpp
Go to the documentation of this file.
1#pragma once
2
3/*
4The following headers are the "public" API of Rack.
5
6Directly 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.
7*/
8
9#ifdef PRIVATE
10#warning "Plugins must only include rack.hpp. Including other Rack headers is unsupported."
11#endif
12
15#ifdef __clang__
16#define PRIVATE __attribute__((deprecated("Using internal Rack function or symbol")))
17#else
18#define PRIVATE __attribute__((error("Using internal Rack function or symbol")))
19#endif
20
21
22#include <common.hpp>
23#include <math.hpp>
24#include <string.hpp>
25#include <system.hpp>
26#include <mutex.hpp>
27#include <random.hpp>
28#include <network.hpp>
29#include <asset.hpp>
30#include <window/Window.hpp>
31#include <context.hpp>
32#include <audio.hpp>
33#include <midi.hpp>
34#include <settings.hpp>
35#include <helpers.hpp>
36#include <componentlibrary.hpp>
37
43#include <widget/event.hpp>
44#include <widget/ZoomWidget.hpp>
45#include <widget/SvgWidget.hpp>
46#include <widget/Widget.hpp>
47
48#include <ui/Tooltip.hpp>
49#include <ui/MenuLabel.hpp>
50#include <ui/MenuEntry.hpp>
51#include <ui/List.hpp>
52#include <ui/TooltipOverlay.hpp>
53#include <ui/Slider.hpp>
54#include <ui/Scrollbar.hpp>
55#include <ui/ProgressBar.hpp>
56#include <ui/MenuSeparator.hpp>
57#include <ui/MenuOverlay.hpp>
58#include <ui/Label.hpp>
59#include <ui/TextField.hpp>
61#include <ui/MenuItem.hpp>
62#include <ui/Button.hpp>
63#include <ui/ChoiceButton.hpp>
64#include <ui/OptionButton.hpp>
65#include <ui/RadioButton.hpp>
66#include <ui/Menu.hpp>
67#include <ui/ScrollWidget.hpp>
68
69#include <app/SliderKnob.hpp>
71#include <app/MidiDisplay.hpp>
73#include <app/AudioDisplay.hpp>
74#include <app/LedDisplay.hpp>
76#include <app/LightWidget.hpp>
77#include <app/RailWidget.hpp>
78#include <app/PortWidget.hpp>
79#include <app/CableWidget.hpp>
80#include <app/Switch.hpp>
82#include <app/Knob.hpp>
83#include <app/Scene.hpp>
84#include <app/RackWidget.hpp>
85#include <app/ParamWidget.hpp>
86#include <app/SvgKnob.hpp>
87#include <app/SvgPanel.hpp>
88#include <app/SvgPort.hpp>
89#include <app/SvgSwitch.hpp>
90#include <app/SvgScrew.hpp>
91#include <app/ModuleWidget.hpp>
92#include <app/SvgSlider.hpp>
93#include <app/SvgButton.hpp>
94
95#include <engine/Param.hpp>
97#include <engine/LightInfo.hpp>
98#include <engine/PortInfo.hpp>
99#include <engine/Light.hpp>
100#include <engine/Cable.hpp>
101#include <engine/Port.hpp>
103#include <engine/Module.hpp>
104#include <engine/Engine.hpp>
105
106#include <plugin.hpp>
107#include <plugin/callbacks.hpp>
108
109#include <dsp/common.hpp>
110#include <dsp/window.hpp>
111#include <dsp/ode.hpp>
112#include <dsp/minblep.hpp>
113#include <dsp/fft.hpp>
114#include <dsp/ringbuffer.hpp>
115#include <dsp/resampler.hpp>
116#include <dsp/fir.hpp>
117#include <dsp/approx.hpp>
118#include <dsp/midi.hpp>
119#include <dsp/vumeter.hpp>
120#include <dsp/filter.hpp>
121#include <dsp/digital.hpp>
122#include <dsp/convert.hpp>
123
124#include <simd/Vector.hpp>
125#include <simd/functions.hpp>
126
127
128namespace rack {
129
130
131// Import some namespaces for convenience
132using namespace logger;
133using namespace math;
134using namespace window;
135using namespace widget;
136using namespace ui;
137using namespace app;
138using plugin::Plugin;
139using plugin::Model;
140using namespace engine;
141using namespace componentlibrary;
142
143
144} // namespace rack
Root namespace for the Rack API.
Definition AudioDisplay.hpp:9