Loading...
Searching...
No Matches
WidgetInlets.hpp
1#pragma once
2#include <Process/Dataflow/Port.hpp>
3
5
6#include <ossia/network/domain/domain.hpp>
7
8namespace Process
9{
10struct FloatSlider;
11struct FloatKnob;
12struct LogFloatSlider;
13struct IntSlider;
14struct IntRangeSlider;
15struct FloatRangeSlider;
16struct IntRangeSpinBox;
17struct FloatRangeSpinBox;
18struct IntSpinBox;
19struct FloatSpinBox;
20struct TimeChooser;
21struct Toggle;
22struct ChooserToggle;
23struct ComboBox;
24struct LineEdit;
25struct ProgramEdit;
26struct FileChooser;
27struct AudioFileChooser;
28struct VideoFileChooser;
29struct Enum;
30struct Button;
31struct ImpulseButton;
32struct HSVSlider;
33struct XYSlider;
34struct XYZSlider;
35struct XYSpinboxes;
36struct XYZSpinboxes;
37struct MultiSlider;
38struct MultiSliderXY;
39struct PathGeneratorXY;
40struct Bargraph;
41} // namespace Process
42
43
44
45UUID_METADATA(
46 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::FloatSlider,
47 "af2b4fc3-aecb-4c15-a5aa-1c573a239925")
48UUID_METADATA(
49 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::FloatKnob,
50 "82427d27-084a-4ab6-9c4e-db83929a1200")
51UUID_METADATA(
52 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::LogFloatSlider,
53 "5554eb67-bcc8-45ab-8ec2-37a3f191aa64")
54
55UUID_METADATA(
56 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::IntSlider,
57 "348b80a4-45dc-4f70-8f5f-6546c85089a2")
58
59UUID_METADATA(
60 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::IntRangeSlider,
61 "0c1902bc-e282-11ec-8fea-0242ac120002")
62UUID_METADATA(
63 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::FloatRangeSlider,
64 "73ae3e85-0c91-497e-b612-b1391f87ac72")
65
66UUID_METADATA(
67 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::IntRangeSpinBox,
68 "54dc640b-4385-4a5a-b9da-e44fe63701d9")
69UUID_METADATA(
70 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::FloatRangeSpinBox,
71 "25be1f08-a3fb-4ce3-a34e-4d8f54f15874")
72
73UUID_METADATA(
74 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::IntSpinBox,
75 "238399a0-7e81-47e3-896f-08e8856e2973")
76UUID_METADATA(
77 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::FloatSpinBox,
78 "10d62b0d-5bc9-4ac9-9540-9e8ac0c24947")
79
80UUID_METADATA(
81 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::Toggle,
82 "fb27e4cb-ea7f-41e2-ad92-2354498c1b6b")
83
84UUID_METADATA(
85 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::ChooserToggle,
86 "27d488b6-784b-4bfc-8e7f-e28ef030c248")
87UUID_METADATA(
88 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::TimeChooser,
89 "b631d9b7-cbe3-4d9c-b470-f139e348aecb")
90
91UUID_METADATA(
92 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::LineEdit,
93 "9ae797ea-d94c-4792-acec-9ec1932bae5d")
94UUID_METADATA(
95 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::FileChooser,
96 "40833147-4c42-4b8b-bb80-0b1d15dae129")
97UUID_METADATA(
98 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::AudioFileChooser,
99 "c347b510-927a-4924-9da1-c76871623567")
100UUID_METADATA(
101 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::VideoFileChooser,
102 "7d5a68ae-501f-4038-bb24-4a7ffc049923")
103UUID_METADATA(
104 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::ProgramEdit,
105 "de15c0da-429b-49d3-bb07-7c41f5f205c8")
106
107UUID_METADATA(
108 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::Enum,
109 "8b1d76c4-3838-4ac0-9b9c-c12bc5db8e8a")
110
111UUID_METADATA(
112 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::ComboBox,
113 "485680cc-b8b9-4a01-acc7-3e8334bdc016")
114
115UUID_METADATA(
116 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::Button,
117 "feb87e84-e0d2-428f-96ff-a123ac964f59")
118
119UUID_METADATA(
120 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::ImpulseButton,
121 "7cd210d3-ebd1-4f71-9de6-cccfb639cbc3")
122
123UUID_METADATA(
124 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::HSVSlider,
125 "8f38638e-9f9f-48b0-ae36-1cba86ef5703")
126UUID_METADATA(
127 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::XYSlider,
128 "8093743c-584f-4bb9-97d4-6c7602f87116")
129UUID_METADATA(
130 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::XYZSlider,
131 "bae00244-cd93-4893-a4ad-71489adb3fa1")
132UUID_METADATA(
133 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::XYSpinboxes,
134 "0adbbdda-fda4-451e-91cc-1da731bde9d5")
135UUID_METADATA(
136 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::XYZSpinboxes,
137 "377e8205-b442-4d54-8832-3761def522b2")
138UUID_METADATA(
139 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::MultiSlider,
140 "25de6d71-1554-4fe1-bf3f-9cbf12bdadeb")
141UUID_METADATA(
142 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::MultiSliderXY,
143 "ce12611f-f3b0-4f99-b3c0-3f0b25a38aa1")
144UUID_METADATA(
145 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::PathGeneratorXY,
146 "b60d0059-733b-4b57-a1c1-65fa140d3b8a")
147UUID_METADATA(
148 SCORE_LIB_PROCESS_EXPORT, Process::Port, Process::Bargraph,
149 "f6d740ce-acc0-44c0-932a-0a03345af84f")
150
151namespace Process
152{
153struct SCORE_LIB_PROCESS_EXPORT FloatSlider : public Process::ControlInlet
154{
155 MODEL_METADATA_IMPL(FloatSlider)
156 FloatSlider(
157 float min, float max, float init, const QString& name, Id<Process::Port> id,
158 QObject* parent);
159 ~FloatSlider();
160
161 auto getMin() const noexcept { return domain().get().convert_min<float>(); }
162 auto getMax() const noexcept { return domain().get().convert_max<float>(); }
163 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
164 using Process::ControlInlet::ControlInlet;
165};
166
167struct SCORE_LIB_PROCESS_EXPORT FloatKnob : public Process::ControlInlet
168{
169 MODEL_METADATA_IMPL(FloatKnob)
170 FloatKnob(
171 float min, float max, float init, const QString& name, Id<Process::Port> id,
172 QObject* parent);
173 ~FloatKnob();
174
175 auto getMin() const noexcept { return domain().get().convert_min<float>(); }
176 auto getMax() const noexcept { return domain().get().convert_max<float>(); }
177 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
178
179 using Process::ControlInlet::ControlInlet;
180};
181
182struct SCORE_LIB_PROCESS_EXPORT LogFloatSlider : public Process::ControlInlet
183{
184 MODEL_METADATA_IMPL(LogFloatSlider)
185 LogFloatSlider(
186 float min, float max, float init, const QString& name, Id<Process::Port> id,
187 QObject* parent);
188 ~LogFloatSlider();
189
190 auto getMin() const noexcept { return domain().get().convert_min<float>(); }
191 auto getMax() const noexcept { return domain().get().convert_max<float>(); }
192 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
193
194 using Process::ControlInlet::ControlInlet;
195};
196
197struct SCORE_LIB_PROCESS_EXPORT IntSlider : public Process::ControlInlet
198{
199 MODEL_METADATA_IMPL(IntSlider)
200 IntSlider(
201 int min, int max, int init, const QString& name, Id<Process::Port> id,
202 QObject* parent);
203 ~IntSlider();
204
205 auto getMin() const noexcept { return domain().get().convert_min<int>(); }
206 auto getMax() const noexcept { return domain().get().convert_max<int>(); }
207 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
208
209 using Process::ControlInlet::ControlInlet;
210};
211
212struct SCORE_LIB_PROCESS_EXPORT IntRangeSlider : public Process::ControlInlet
213{
214 MODEL_METADATA_IMPL(IntRangeSlider)
215 IntRangeSlider(
216 int min, int max, ossia::vec2f init, const QString& name, Id<Process::Port> id,
217 QObject* parent);
218 ~IntRangeSlider();
219
220 auto getMin() const noexcept { return domain().get().convert_min<int>(); }
221 auto getMax() const noexcept { return domain().get().convert_max<int>(); }
222 auto getInit() const noexcept { return ossia::convert<ossia::vec2f>(this->init()); }
223 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
224
225 using Process::ControlInlet::ControlInlet;
226};
227
228struct SCORE_LIB_PROCESS_EXPORT FloatRangeSlider : public Process::ControlInlet
229{
230 MODEL_METADATA_IMPL(FloatRangeSlider)
231 FloatRangeSlider(
232 float min, float max, ossia::vec2f init, const QString& name, Id<Process::Port> id,
233 QObject* parent);
234 ~FloatRangeSlider();
235
236 auto getMin() const noexcept { return domain().get().convert_min<float>(); }
237 auto getMax() const noexcept { return domain().get().convert_max<float>(); }
238 auto getInit() const noexcept { return ossia::convert<ossia::vec2f>(this->init()); }
239 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
240
241 using Process::ControlInlet::ControlInlet;
242};
243
244struct SCORE_LIB_PROCESS_EXPORT IntRangeSpinBox : public Process::ControlInlet
245{
246 MODEL_METADATA_IMPL(IntRangeSpinBox)
247 IntRangeSpinBox(
248 int min, int max, ossia::vec2f init, const QString& name, Id<Process::Port> id,
249 QObject* parent);
250 ~IntRangeSpinBox();
251
252 auto getMin() const noexcept { return domain().get().convert_min<int>(); }
253 auto getMax() const noexcept { return domain().get().convert_max<int>(); }
254 auto getInit() const noexcept { return ossia::convert<ossia::vec2f>(this->init()); }
255 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
256
257 using Process::ControlInlet::ControlInlet;
258};
259
260struct SCORE_LIB_PROCESS_EXPORT FloatRangeSpinBox : public Process::ControlInlet
261{
262 MODEL_METADATA_IMPL(FloatRangeSpinBox)
263 FloatRangeSpinBox(
264 float min, float max, ossia::vec2f init, const QString& name, Id<Process::Port> id,
265 QObject* parent);
266 ~FloatRangeSpinBox();
267
268 auto getMin() const noexcept { return domain().get().convert_min<float>(); }
269 auto getMax() const noexcept { return domain().get().convert_max<float>(); }
270 auto getInit() const noexcept { return ossia::convert<ossia::vec2f>(this->init()); }
271 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
272
273 using Process::ControlInlet::ControlInlet;
274};
275
276struct SCORE_LIB_PROCESS_EXPORT IntSpinBox : public Process::ControlInlet
277{
278 MODEL_METADATA_IMPL(IntSpinBox)
279 IntSpinBox(
280 int min, int max, int init, const QString& name, Id<Process::Port> id,
281 QObject* parent);
282 ~IntSpinBox();
283
284 auto getMin() const noexcept { return domain().get().convert_min<int>(); }
285 auto getMax() const noexcept { return domain().get().convert_max<int>(); }
286 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
287
288 using Process::ControlInlet::ControlInlet;
289};
290
291struct SCORE_LIB_PROCESS_EXPORT FloatSpinBox : public Process::ControlInlet
292{
293 MODEL_METADATA_IMPL(FloatSpinBox)
294 FloatSpinBox(
295 float min, float max, float init, const QString& name, Id<Process::Port> id,
296 QObject* parent);
297 ~FloatSpinBox();
298
299 auto getMin() const noexcept { return domain().get().convert_min<float>(); }
300 auto getMax() const noexcept { return domain().get().convert_max<float>(); }
301 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
302
303 using Process::ControlInlet::ControlInlet;
304};
305struct SCORE_LIB_PROCESS_EXPORT TimeChooser : public Process::ControlInlet
306{
307 MODEL_METADATA_IMPL(TimeChooser)
308 TimeChooser(
309 float min, float max, float init, const QString& name, Id<Process::Port> id,
310 QObject* parent);
311 ~TimeChooser();
312
313 auto getMin() const noexcept { return domain().get().convert_min<float>(); }
314 auto getMax() const noexcept { return domain().get().convert_max<float>(); }
315 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
316 using Process::ControlInlet::ControlInlet;
317};
318
319struct SCORE_LIB_PROCESS_EXPORT Toggle : public Process::ControlInlet
320{
321 MODEL_METADATA_IMPL(Toggle)
322 Toggle(bool init, const QString& name, Id<Process::Port> id, QObject* parent);
323 ~Toggle();
324
325 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
326
327 using Process::ControlInlet::ControlInlet;
328};
329
330struct SCORE_LIB_PROCESS_EXPORT ChooserToggle : public Process::ControlInlet
331{
332 MODEL_METADATA_IMPL(ChooserToggle)
333 ChooserToggle(
334 QStringList alternatives, bool init, const QString& name, Id<Process::Port> id,
335 QObject* parent);
336 ~ChooserToggle();
337
338 QStringList alternatives() const noexcept;
339 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
340
341 using Process::ControlInlet::ControlInlet;
342};
343
344struct SCORE_LIB_PROCESS_EXPORT LineEdit : public Process::ControlInlet
345{
346 MODEL_METADATA_IMPL(LineEdit)
347 LineEdit(QString init, const QString& name, Id<Process::Port> id, QObject* parent);
348 ~LineEdit();
349
350 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
351
352 using Process::ControlInlet::ControlInlet;
353};
354
355struct SCORE_LIB_PROCESS_EXPORT FileChooserBase : public Process::ControlInlet
356{
357 W_OBJECT(FileChooserBase)
358public:
359 FileChooserBase(
360 QString init, QString filters, const QString& name, Id<Process::Port> id,
361 QObject* parent);
362 ~FileChooserBase();
363 using Process::ControlInlet::ControlInlet;
364
365 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
366 const QString& filters() const noexcept { return m_filters; };
367 void setFilters(QString nf) { m_filters = std::move(nf); }
368
369 void enableFileWatch();
370 void destroying() W_SIGNAL(destroying);
371
372private:
373 QString m_filters;
374};
375struct SCORE_LIB_PROCESS_EXPORT FileChooser : public FileChooserBase
376{
377 MODEL_METADATA_IMPL(FileChooser)
378 W_OBJECT(FileChooser)
379public:
380 FileChooser(
381 QString init, QString filters, const QString& name, Id<Process::Port> id,
382 QObject* parent);
383 ~FileChooser();
384 using Process::FileChooserBase::FileChooserBase;
385};
386
387struct SCORE_LIB_PROCESS_EXPORT AudioFileChooser : public FileChooserBase
388{
389 MODEL_METADATA_IMPL(AudioFileChooser)
390 W_OBJECT(AudioFileChooser)
391public:
392 AudioFileChooser(
393 QString init, QString filters, const QString& name, Id<Process::Port> id,
394 QObject* parent);
395 ~AudioFileChooser();
396 using Process::FileChooserBase::FileChooserBase;
397};
398
399struct SCORE_LIB_PROCESS_EXPORT VideoFileChooser : public FileChooserBase
400{
401 MODEL_METADATA_IMPL(VideoFileChooser)
402 W_OBJECT(VideoFileChooser)
403public:
404 VideoFileChooser(
405 QString init, QString filters, const QString& name, Id<Process::Port> id,
406 QObject* parent);
407 ~VideoFileChooser();
408 using Process::FileChooserBase::FileChooserBase;
409};
410
411struct SCORE_LIB_PROCESS_EXPORT ProgramEdit : public Process::ControlInlet
412{
413 MODEL_METADATA_IMPL(ProgramEdit)
414 ProgramEdit(QString init, const QString& name, Id<Process::Port> id, QObject* parent);
415 ~ProgramEdit();
416
417 std::string language;
418
419 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
420
421 using Process::ControlInlet::ControlInlet;
422};
423
424struct SCORE_LIB_PROCESS_EXPORT ComboBox : public Process::ControlInlet
425{
426 MODEL_METADATA_IMPL(ComboBox)
427 std::vector<std::pair<QString, ossia::value>> alternatives;
428 ComboBox(
429 std::vector<std::pair<QString, ossia::value>> values, ossia::value init,
430 const QString& name, Id<Process::Port> id, QObject* parent);
431 ~ComboBox();
432
433 const auto& getValues() const noexcept { return alternatives; }
434 auto count() const noexcept { return alternatives.size(); }
435
436 ComboBox(DataStream::Deserializer& vis, QObject* parent);
437 ComboBox(JSONObject::Deserializer& vis, QObject* parent);
438 ComboBox(DataStream::Deserializer&& vis, QObject* parent);
439 ComboBox(JSONObject::Deserializer&& vis, QObject* parent);
440
441 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
442};
443
444struct SCORE_LIB_PROCESS_EXPORT Enum : public Process::ControlInlet
445{
446 MODEL_METADATA_IMPL(Enum)
447 std::vector<QString> values;
448 std::vector<QString> pixmaps;
449 Enum(
450 const std::vector<std::string>& dom, std::vector<QString> pixmaps,
451 std::string init, const QString& name, Id<Process::Port> id, QObject* parent);
452
453 Enum(
454 const QStringList& values, std::vector<QString> pixmaps, std::string init,
455 const QString& name, Id<Process::Port> id, QObject* parent);
456 ~Enum();
457
458 const std::vector<QString>& getValues() const { return values; }
459
460 Enum(DataStream::Deserializer& vis, QObject* parent);
461 Enum(JSONObject::Deserializer& vis, QObject* parent);
462 Enum(DataStream::Deserializer&& vis, QObject* parent);
463 Enum(JSONObject::Deserializer&& vis, QObject* parent);
464
465 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
466};
467
468struct SCORE_LIB_PROCESS_EXPORT Button : public Process::ControlInlet
469{
470 MODEL_METADATA_IMPL(Button)
471 Button(const QString& name, Id<Process::Port> id, QObject* parent);
472 ~Button();
473
474 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
475
476 using Process::ControlInlet::ControlInlet;
477};
478
479struct SCORE_LIB_PROCESS_EXPORT ImpulseButton : public Process::ControlInlet
480{
481 MODEL_METADATA_IMPL(ImpulseButton)
482 W_OBJECT(ImpulseButton)
483public:
484 ImpulseButton(const QString& name, Id<Process::Port> id, QObject* parent);
485 ~ImpulseButton();
486
487 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
488
489 using Process::ControlInlet::ControlInlet;
490};
491
492struct SCORE_LIB_PROCESS_EXPORT HSVSlider : public Process::ControlInlet
493{
494 MODEL_METADATA_IMPL(HSVSlider)
495 HSVSlider(
496 ossia::vec4f init, const QString& name, Id<Process::Port> id, QObject* parent);
497 ~HSVSlider();
498
499 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
500 auto getMin() const noexcept { return ossia::vec4f{0., 0., 0., 0.}; }
501 auto getMax() const noexcept { return ossia::vec4f{1., 1., 1., 1.}; }
502 using Process::ControlInlet::ControlInlet;
503};
504
505struct SCORE_LIB_PROCESS_EXPORT XYSlider : public Process::ControlInlet
506{
507 MODEL_METADATA_IMPL(XYSlider)
508 XYSlider(
509 ossia::vec2f init, const QString& name, Id<Process::Port> id, QObject* parent);
510 XYSlider(
511 ossia::vec2f min, ossia::vec2f max, ossia::vec2f init, const QString& name,
512 Id<Process::Port> id, QObject* parent);
513 ~XYSlider();
514
515 auto getMin() const noexcept { return domain().get().convert_min<ossia::vec2f>(); }
516 auto getMax() const noexcept { return domain().get().convert_max<ossia::vec2f>(); }
517 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
518
519 using Process::ControlInlet::ControlInlet;
520};
521
522struct SCORE_LIB_PROCESS_EXPORT XYZSlider : public Process::ControlInlet
523{
524 MODEL_METADATA_IMPL(XYZSlider)
525 XYZSlider(
526 ossia::vec3f init, const QString& name, Id<Process::Port> id, QObject* parent);
527 XYZSlider(
528 ossia::vec3f min, ossia::vec3f max, ossia::vec3f init, const QString& name,
529 Id<Process::Port> id, QObject* parent);
530 ~XYZSlider();
531
532 auto getMin() const noexcept { return domain().get().convert_min<ossia::vec3f>(); }
533 auto getMax() const noexcept { return domain().get().convert_max<ossia::vec3f>(); }
534 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
535
536 using Process::ControlInlet::ControlInlet;
537};
538
539struct SCORE_LIB_PROCESS_EXPORT XYSpinboxes : public Process::ControlInlet
540{
541 MODEL_METADATA_IMPL(XYSpinboxes)
542 XYSpinboxes(
543 ossia::vec2f init, const QString& name, Id<Process::Port> id, QObject* parent);
544 XYSpinboxes(
545 ossia::vec2f min, ossia::vec2f max, ossia::vec2f init, bool integral,
546 const QString& name, Id<Process::Port> id, QObject* parent);
547 ~XYSpinboxes();
548
549 auto getMin() const noexcept { return domain().get().convert_min<ossia::vec2f>(); }
550 auto getMax() const noexcept { return domain().get().convert_max<ossia::vec2f>(); }
551 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
552
553 using Process::ControlInlet::ControlInlet;
554
555 const bool integral{};
556};
557
558struct SCORE_LIB_PROCESS_EXPORT XYZSpinboxes : public Process::ControlInlet
559{
560 MODEL_METADATA_IMPL(XYZSpinboxes)
561 XYZSpinboxes(
562 ossia::vec3f init, const QString& name, Id<Process::Port> id, QObject* parent);
563 XYZSpinboxes(
564 ossia::vec3f min, ossia::vec3f max, ossia::vec3f init, const QString& name,
565 Id<Process::Port> id, QObject* parent);
566 ~XYZSpinboxes();
567
568 auto getMin() const noexcept { return domain().get().convert_min<ossia::vec3f>(); }
569 auto getMax() const noexcept { return domain().get().convert_max<ossia::vec3f>(); }
570 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
571
572 using Process::ControlInlet::ControlInlet;
573};
574
575struct SCORE_LIB_PROCESS_EXPORT MultiSlider : public Process::ControlInlet
576{
577 MODEL_METADATA_IMPL(MultiSlider)
578 MultiSlider(
579 ossia::value init, const QString& name, Id<Process::Port> id, QObject* parent);
580 ~MultiSlider();
581
582 ossia::value getMin() const noexcept;
583 ossia::value getMax() const noexcept;
584 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
585
586 using Process::ControlInlet::ControlInlet;
587};
588
589
590struct SCORE_LIB_PROCESS_EXPORT MultiSliderXY : public Process::ControlInlet
591{
592 MODEL_METADATA_IMPL(MultiSliderXY)
593 MultiSliderXY(
594 ossia::value init, const QString& name, Id<Process::Port> id, QObject* parent);
595 ~MultiSliderXY();
596
597 ossia::value getMin() const noexcept;
598 ossia::value getMax() const noexcept;
599 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
600
601 using Process::ControlInlet::ControlInlet;
602};
603
604struct SCORE_LIB_PROCESS_EXPORT PathGeneratorXY : public Process::ControlInlet
605{
606 MODEL_METADATA_IMPL(PathGeneratorXY)
607 PathGeneratorXY(
608 ossia::value init, const QString& name, Id<Process::Port> id, QObject* parent);
609 ~PathGeneratorXY();
610
611 ossia::value getMin() const noexcept;
612 ossia::value getMax() const noexcept;
613 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
614
615 using Process::ControlInlet::ControlInlet;
616};
617
618// Outlets
619
620struct SCORE_LIB_PROCESS_EXPORT Bargraph : public Process::ControlOutlet
621{
622 MODEL_METADATA_IMPL(Bargraph)
623 Bargraph(
624 float min, float max, float init, const QString& name, Id<Process::Port> id,
625 QObject* parent);
626 ~Bargraph();
627
628 auto getMin() const noexcept { return domain().get().convert_min<float>(); }
629 auto getMax() const noexcept { return domain().get().convert_max<float>(); }
630
631 using Process::ControlOutlet::ControlOutlet;
632};
633
634} // namespace Process
Definition DataStreamVisitor.hpp:202
Definition JSONVisitor.hpp:423
Definition Port.hpp:203
Definition Port.hpp:102
The id_base_t class.
Definition Identifier.hpp:57
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1116