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