StoneyVCV v2
StoneyDSP Modules for VCV Rack 2.
Loading...
Searching...
No Matches
HP1.hpp
Go to the documentation of this file.
1
31#pragma once
32
33#define STONEYVCV_HP1_HPP_INCLUDED 1
34
35#if defined (STONEYVCV_BUILD_HP1)
36
37//==============================================================================
38
39#include "StoneyVCV/plugin.hpp"
40
41//==============================================================================
42
43#include <rack.hpp>
44#include <StoneyDSP/Core.hpp>
45
46//==============================================================================
47
48namespace StoneyDSP
49{
54//==============================================================================
55
56namespace StoneyVCV
57{
62//==============================================================================
63
71namespace HP1
72{
77//==============================================================================
78
83struct HP1Module final :
84 ::rack::engine::Module
85{
86 //==========================================================================
87
88public:
89
90 using ProcessArgs = ::rack::engine::Module::ProcessArgs;
91
92 //==========================================================================
93
98
103
108
113
114 //==========================================================================
115
121
126 virtual ~HP1Module();
127
128 //==========================================================================
129
130private:
131
132 //==========================================================================
133
134 STONEYDSP_DECLARE_NON_COPYABLE(HP1Module)
135 STONEYDSP_DECLARE_NON_MOVEABLE(HP1Module)
136};
137
138//==============================================================================
139
144struct HP1Widget final :
145 ::rack::widget::Widget
146{
147 //==========================================================================
148
149public:
150
151 using DrawArgs = ::rack::widget::Widget::DrawArgs;
152
153 //==========================================================================
154
160
165 virtual ~HP1Widget();
166
167 //==========================================================================
168
173 virtual void step() override;
174
182 virtual void draw(const ::StoneyDSP::StoneyVCV::HP1::HP1Widget::DrawArgs& args) override;
183
184 //==========================================================================
185
190 ::rack::widget::FramebufferWidget* hp1WidgetFrameBuffer;
191
196 ::rack::widget::Widget* panelBorder;
197
198 //==========================================================================
199
200private:
201
202 //==========================================================================
203
204 STONEYDSP_DECLARE_NON_COPYABLE(HP1Widget)
205 STONEYDSP_DECLARE_NON_MOVEABLE(HP1Widget)
206};
207
208//==============================================================================
209
214struct HP1ModuleWidget final :
215 ::rack::app::ModuleWidget
216{
217 //==========================================================================
218
219public:
220
221 //==========================================================================
222
230
236
237 //==========================================================================
238
243 virtual void step() override;
244
245 //==========================================================================
246
247private:
248
249 //==========================================================================
250
254 const ::rack::math::Vec size;
255
259 ::rack::app::ThemedSvgPanel* panel;
260
266
271 ::rack::widget::FramebufferWidget* hp1ModuleWidgetFrameBuffer;
272
273 //==========================================================================
274
279 const ::rack::math::Vec screwsPositions [2];
280
285 ::rack::componentlibrary::ThemedScrew* screws [2];
286
287 //==========================================================================
288
294
295 //==========================================================================
296
297 STONEYDSP_DECLARE_NON_COPYABLE(HP1ModuleWidget)
298 STONEYDSP_DECLARE_NON_MOVEABLE(HP1ModuleWidget)
299};
300
301//==============================================================================
302
308::rack::plugin::Model* createHP1(); // STONEYDSP_NOEXCEPT(false);
309
310//==============================================================================
311
313} // namespace HP1
314
315//==============================================================================
316
318} // namespace StoneyVCV
319
320//==============================================================================
321
323} // namespace StoneyDSP
324
325//==============================================================================
326
327#endif // defined (STONEYVCV_BUILD_HP1)
328
329//==============================================================================
::rack::plugin::Model * createHP1()
Definition HP1.hpp:49
StoneyDSP Modules for VCV Rack 2.
The HP1ModuleWidget struct.
Definition HP1.hpp:216
HP1ModuleWidget(::StoneyDSP::StoneyVCV::HP1::HP1Module *module)
Construct a new HP1ModuleWidget object.
const ::rack::math::Vec size
Definition HP1.hpp:254
::rack::app::ThemedSvgPanel * panel
Definition HP1.hpp:259
virtual void step() override
Advances the module by one frame.
::rack::widget::FramebufferWidget * hp1ModuleWidgetFrameBuffer
Definition HP1.hpp:271
virtual ~HP1ModuleWidget()
Destroys the HP1ModuleWidget object.
::StoneyDSP::StoneyVCV::HP1::HP1Widget * hp1Widget
Definition HP1.hpp:265
bool lastPrefersDarkPanels
Definition HP1.hpp:293
The HP1Module struct.
Definition HP1.hpp:85
@ NUM_INPUTS
Number of Input ports.
Definition HP1.hpp:101
HP1Module()
Construct a new HP1Module object.
virtual ~HP1Module()
Destroys the HP1Module object.
::rack::engine::Module::ProcessArgs ProcessArgs
Definition HP1.hpp:90
IdxOutputs
Definition HP1.hpp:104
@ NUM_OUTPUTS
Number of Output ports.
Definition HP1.hpp:106
@ NUM_PARAMS
Number of Parameters.
Definition HP1.hpp:96
@ NUM_LIGHTS
Number of Lights.
Definition HP1.hpp:111
The HP1Widget struct.
Definition HP1.hpp:146
virtual void draw(const ::StoneyDSP::StoneyVCV::HP1::HP1Widget::DrawArgs &args) override
Draws the widget to the NanoVG context.
::rack::widget::Widget::DrawArgs DrawArgs
Definition HP1.hpp:151
HP1Widget()
Construct a new HP1Widget object.
virtual ~HP1Widget()
Destroys the HP1Widget object.
virtual void step() override
Advances the module by one frame.
::rack::widget::Widget * panelBorder
Definition HP1.hpp:196
::rack::widget::FramebufferWidget * hp1WidgetFrameBuffer
Definition HP1.hpp:190