2#include <Process/Dataflow/Port.hpp>
6#include <ossia/network/domain/domain.hpp>
10class QFileSystemWatcher;
19struct FloatRangeSlider;
20struct IntRangeSpinBox;
21struct FloatRangeSpinBox;
33struct AudioFileChooser;
34struct VideoFileChooser;
45struct PathGeneratorXY;
52 SCORE_LIB_PROCESS_EXPORT,
Process::Port, Process::FloatSlider,
53 "af2b4fc3-aecb-4c15-a5aa-1c573a239925")
56 "82427d27-084a-4ab6-9c4e-db83929a1200")
59 "5554eb67-bcc8-45ab-8ec2-37a3f191aa64")
63 "348b80a4-45dc-4f70-8f5f-6546c85089a2")
67 "0c1902bc-e282-11ec-8fea-0242ac120002")
69 SCORE_LIB_PROCESS_EXPORT,
Process::Port,
Process::FloatRangeSlider,
70 "73ae3e85-0c91-497e-b612-b1391f87ac72")
74 "54dc640b-4385-4a5a-b9da-e44fe63701d9")
76 SCORE_LIB_PROCESS_EXPORT,
Process::Port,
Process::FloatRangeSpinBox,
77 "25be1f08-a3fb-4ce3-a34e-4d8f54f15874")
81 "238399a0-7e81-47e3-896f-08e8856e2973")
84 "10d62b0d-5bc9-4ac9-9540-9e8ac0c24947")
88 "fb27e4cb-ea7f-41e2-ad92-2354498c1b6b")
92 "27d488b6-784b-4bfc-8e7f-e28ef030c248")
95 "b631d9b7-cbe3-4d9c-b470-f139e348aecb")
98 "4d2fd8a6-012f-4b04-bb02-7a48c37a30bb")
102 "9ae797ea-d94c-4792-acec-9ec1932bae5d")
105 "40833147-4c42-4b8b-bb80-0b1d15dae129")
108 "a866e07f-f380-4f69-8bce-e52682db2025")
110 SCORE_LIB_PROCESS_EXPORT,
Process::Port,
Process::AudioFileChooser,
111 "c347b510-927a-4924-9da1-c76871623567")
113 SCORE_LIB_PROCESS_EXPORT,
Process::Port,
Process::VideoFileChooser,
114 "7d5a68ae-501f-4038-bb24-4a7ffc049923")
117 "de15c0da-429b-49d3-bb07-7c41f5f205c8")
121 "8b1d76c4-3838-4ac0-9b9c-c12bc5db8e8a")
125 "485680cc-b8b9-4a01-acc7-3e8334bdc016")
129 "feb87e84-e0d2-428f-96ff-a123ac964f59")
133 "7cd210d3-ebd1-4f71-9de6-cccfb639cbc3")
137 "8f38638e-9f9f-48b0-ae36-1cba86ef5703")
140 "8093743c-584f-4bb9-97d4-6c7602f87116")
143 "bae00244-cd93-4893-a4ad-71489adb3fa1")
146 "0adbbdda-fda4-451e-91cc-1da731bde9d5")
149 "377e8205-b442-4d54-8832-3761def522b2")
152 "25de6d71-1554-4fe1-bf3f-9cbf12bdadeb")
155 "ce12611f-f3b0-4f99-b3c0-3f0b25a38aa1")
157 SCORE_LIB_PROCESS_EXPORT,
Process::Port,
Process::PathGeneratorXY,
158 "b60d0059-733b-4b57-a1c1-65fa140d3b8a")
161 "f6d740ce-acc0-44c0-932a-0a03345af84f")
167 W_OBJECT(FloatSlider)
169 MODEL_METADATA_IMPL(FloatSlider)
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 using Process::ControlInlet::ControlInlet;
185 MODEL_METADATA_IMPL(FloatKnob)
191 auto getMin() const noexcept {
return domain().get().convert_min<
float>(); }
192 auto getMax() const noexcept {
return domain().get().convert_max<
float>(); }
193 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
195 using Process::ControlInlet::ControlInlet;
200 W_OBJECT(LogFloatSlider)
202 MODEL_METADATA_IMPL(LogFloatSlider)
208 auto getMin() const noexcept {
return domain().get().convert_min<
float>(); }
209 auto getMax() const noexcept {
return domain().get().convert_max<
float>(); }
210 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
212 using Process::ControlInlet::ControlInlet;
219 MODEL_METADATA_IMPL(IntSlider)
225 auto getMin() const noexcept {
return domain().get().convert_min<
int>(); }
226 auto getMax() const noexcept {
return domain().get().convert_max<
int>(); }
227 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
229 using Process::ControlInlet::ControlInlet;
234 W_OBJECT(IntRangeSlider)
236 MODEL_METADATA_IMPL(IntRangeSlider)
242 auto getMin() const noexcept {
return domain().get().convert_min<
int>(); }
243 auto getMax() const noexcept {
return domain().get().convert_max<
int>(); }
244 auto getInit() const noexcept {
return ossia::convert<ossia::vec2f>(this->init()); }
245 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
247 using Process::ControlInlet::ControlInlet;
252 W_OBJECT(FloatRangeSlider)
254 MODEL_METADATA_IMPL(FloatRangeSlider)
256 float min,
float max, ossia::vec2f init,
const QString& name,
Id<Process::Port> id,
260 auto getMin() const noexcept {
return domain().get().convert_min<
float>(); }
261 auto getMax() const noexcept {
return domain().get().convert_max<
float>(); }
262 auto getInit() const noexcept {
return ossia::convert<ossia::vec2f>(this->init()); }
263 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
265 using Process::ControlInlet::ControlInlet;
270 W_OBJECT(IntRangeSpinBox)
272 MODEL_METADATA_IMPL(IntRangeSpinBox)
278 auto getMin() const noexcept {
return domain().get().convert_min<
int>(); }
279 auto getMax() const noexcept {
return domain().get().convert_max<
int>(); }
280 auto getInit() const noexcept {
return ossia::convert<ossia::vec2f>(this->init()); }
281 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
283 using Process::ControlInlet::ControlInlet;
288 W_OBJECT(FloatRangeSpinBox)
290 MODEL_METADATA_IMPL(FloatRangeSpinBox)
292 float min,
float max, ossia::vec2f init,
const QString& name,
Id<Process::Port> id,
294 ~FloatRangeSpinBox();
296 auto getMin() const noexcept {
return domain().get().convert_min<
float>(); }
297 auto getMax() const noexcept {
return domain().get().convert_max<
float>(); }
298 auto getInit() const noexcept {
return ossia::convert<ossia::vec2f>(this->init()); }
299 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
301 using Process::ControlInlet::ControlInlet;
308 MODEL_METADATA_IMPL(IntSpinBox)
314 auto getMin() const noexcept {
return domain().get().convert_min<
int>(); }
315 auto getMax() const noexcept {
return domain().get().convert_max<
int>(); }
316 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
318 using Process::ControlInlet::ControlInlet;
323 W_OBJECT(FloatSpinBox)
325 MODEL_METADATA_IMPL(FloatSpinBox)
331 auto getMin() const noexcept {
return domain().get().convert_min<
float>(); }
332 auto getMax() const noexcept {
return domain().get().convert_max<
float>(); }
333 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
335 using Process::ControlInlet::ControlInlet;
339 W_OBJECT(TimeChooser)
341 MODEL_METADATA_IMPL(TimeChooser)
347 auto getMin() const noexcept {
return domain().get().convert_min<
float>(); }
348 auto getMax() const noexcept {
return domain().get().convert_max<
float>(); }
349 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
354 void setValue(
const ossia::value& value)
override;
359 bool preferSynced(
double tempo = 120.);
369 SyncedBarRestart = 2,
374 bool offersBarSync{};
376 bool barSyncDefault{
true};
378 using Process::ControlInlet::ControlInlet;
387 W_OBJECT(GridChooser)
389 MODEL_METADATA_IMPL(GridChooser)
391 ossia::vec2f init, uint32_t units,
int maxBars,
double maxSeconds,
397 uint32_t units{1u | 2u | 4u};
399 double maxSeconds{8.};
401 QString periodName{QStringLiteral(
"loop")};
404 void setValue(
const ossia::value& value)
override;
405 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
407 using Process::ControlInlet::ControlInlet;
418 MODEL_METADATA_IMPL(Toggle)
422 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
424 using Process::ControlInlet::ControlInlet;
429 W_OBJECT(ChooserToggle)
431 MODEL_METADATA_IMPL(ChooserToggle)
437 QStringList alternatives() const noexcept;
438 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
440 using
Process::ControlInlet::ControlInlet;
443struct SCORE_LIB_PROCESS_EXPORT LineEdit : public
Process::ControlInlet
447 MODEL_METADATA_IMPL(LineEdit)
448 LineEdit(QString init,
const QString& name,
Id<Process::Port> id, QObject* parent);
451 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
453 using Process::ControlInlet::ControlInlet;
458 W_OBJECT(FileChooserBase)
464 using Process::ControlInlet::ControlInlet;
466 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
467 const QString& filters() const noexcept {
return m_filters; };
468 void setFilters(QString nf) { m_filters = std::move(nf); }
470 void enableFileWatch();
471 void destroying() W_SIGNAL(destroying);
477struct SCORE_LIB_PROCESS_EXPORT FileChooser : public FileChooserBase
479 MODEL_METADATA_IMPL(FileChooser)
480 W_OBJECT(FileChooser)
486 using Process::FileChooserBase::FileChooserBase;
500 MODEL_METADATA_IMPL(FolderChooser)
501 W_OBJECT(FolderChooser)
507 using Process::ControlInlet::ControlInlet;
509 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
512struct SCORE_LIB_PROCESS_EXPORT AudioFileChooser :
public FileChooserBase
514 MODEL_METADATA_IMPL(AudioFileChooser)
515 W_OBJECT(AudioFileChooser)
521 using Process::FileChooserBase::FileChooserBase;
530struct SCORE_LIB_PROCESS_EXPORT VideoFileChooser :
public FileChooserBase
532 MODEL_METADATA_IMPL(VideoFileChooser)
533 W_OBJECT(VideoFileChooser)
539 using Process::FileChooserBase::FileChooserBase;
550 W_OBJECT(ProgramEdit)
552 MODEL_METADATA_IMPL(ProgramEdit)
553 ProgramEdit(QString init,
const QString& name,
Id<Process::Port> id, QObject* parent);
556 std::string language;
558 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
560 using Process::ControlInlet::ControlInlet;
568SCORE_LIB_PROCESS_EXPORT
569std::optional<int> readEntryIndex(
const ossia::value& v,
int n)
noexcept;
575 MODEL_METADATA_IMPL(ComboBox)
576 std::vector<std::pair<QString, ossia::value>> alternatives;
578 std::vector<std::pair<QString, ossia::value>> values, ossia::value init,
582 void setAlternatives(std::vector<std::pair<QString, ossia::value>> values);
586 void alternativesChanged()
587 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, alternativesChanged)
595 QString folderPortName;
596 QStringList fileExtensions;
597 void repopulateFromFolder(const QString& folderPath);
600 QFileSystemWatcher* m_folderWatcher{};
601 QString m_watchedFolder;
605 const auto& getValues() const noexcept {
return alternatives; }
606 auto count() const noexcept {
return alternatives.size(); }
610 int indexOfValue(
const ossia::value& v)
const noexcept;
614 void setValue(
const ossia::value& value)
override;
617 ossia::value valueAtIndex(
int i)
const noexcept;
624 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
631 MODEL_METADATA_IMPL(Enum)
632 std::vector<QString> values;
633 std::vector<QString> pixmaps;
635 const std::vector<std::string>& dom, std::vector<QString> pixmaps,
639 const QStringList& values, std::vector<QString> pixmaps, std::string init,
643 const std::vector<QString>& getValues()
const {
return values; }
649 int indexOfValue(
const ossia::value& v)
const noexcept;
652 ossia::value valueAtIndex(
int i)
const noexcept;
659 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
666 MODEL_METADATA_IMPL(Button)
670 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
672 using Process::ControlInlet::ControlInlet;
677 MODEL_METADATA_IMPL(ImpulseButton)
678 W_OBJECT(ImpulseButton)
683 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
685 using Process::ControlInlet::ControlInlet;
692 MODEL_METADATA_IMPL(HSVSlider)
699 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
700 auto getMin() const noexcept {
return ossia::vec4f{0., 0., 0., 0.}; }
701 auto getMax() const noexcept {
return ossia::vec4f{1., 1., 1., 1.}; }
702 using Process::ControlInlet::ControlInlet;
709 MODEL_METADATA_IMPL(XYSlider)
713 ossia::vec2f min, ossia::vec2f max, ossia::vec2f init,
const QString& name,
717 auto getMin() const noexcept {
return domain().get().convert_min<ossia::vec2f>(); }
718 auto getMax() const noexcept {
return domain().get().convert_max<ossia::vec2f>(); }
719 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
721 using Process::ControlInlet::ControlInlet;
728 MODEL_METADATA_IMPL(XYZSlider)
732 ossia::vec3f min, ossia::vec3f max, ossia::vec3f init,
const QString& name,
736 auto getMin() const noexcept {
return domain().get().convert_min<ossia::vec3f>(); }
737 auto getMax() const noexcept {
return domain().get().convert_max<ossia::vec3f>(); }
738 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
740 using Process::ControlInlet::ControlInlet;
745 W_OBJECT(XYSpinboxes)
747 MODEL_METADATA_IMPL(XYSpinboxes)
751 ossia::vec2f min, ossia::vec2f max, ossia::vec2f init,
bool integral,
760 auto getMin() const noexcept {
return domain().get().convert_min<ossia::vec2f>(); }
761 auto getMax() const noexcept {
return domain().get().convert_max<ossia::vec2f>(); }
762 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
764 using Process::ControlInlet::ControlInlet;
771 W_OBJECT(XYZSpinboxes)
773 MODEL_METADATA_IMPL(XYZSpinboxes)
777 ossia::vec3f min, ossia::vec3f max, ossia::vec3f init,
bool integral,
781 auto getMin() const noexcept {
return domain().get().convert_min<ossia::vec3f>(); }
782 auto getMax() const noexcept {
return domain().get().convert_max<ossia::vec3f>(); }
783 void setupExecution(ossia::inlet& inl, QObject* exec_context)
const noexcept override;
785 using Process::ControlInlet::ControlInlet;
791 W_OBJECT(MultiSlider)
793 MODEL_METADATA_IMPL(MultiSlider)
798 ossia::value getMin() const noexcept;
799 ossia::value getMax() const noexcept;
800 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
802 using
Process::ControlInlet::ControlInlet;
806struct SCORE_LIB_PROCESS_EXPORT MultiSliderXY : public
Process::ControlInlet
808 W_OBJECT(MultiSliderXY)
810 MODEL_METADATA_IMPL(MultiSliderXY)
815 ossia::value getMin() const noexcept;
816 ossia::value getMax() const noexcept;
817 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
819 using
Process::ControlInlet::ControlInlet;
822struct SCORE_LIB_PROCESS_EXPORT PathGeneratorXY : public
Process::ControlInlet
824 W_OBJECT(PathGeneratorXY)
826 MODEL_METADATA_IMPL(PathGeneratorXY)
831 ossia::value getMin() const noexcept;
832 ossia::value getMax() const noexcept;
833 void setupExecution(ossia::inlet& inl, QObject* exec_context) const noexcept override;
835 using
Process::ControlInlet::ControlInlet;
840struct SCORE_LIB_PROCESS_EXPORT Bargraph : public
Process::ControlOutlet
844 MODEL_METADATA_IMPL(Bargraph)
850 auto getMin() const noexcept {
return domain().get().convert_min<
float>(); }
851 auto getMax() const noexcept {
return domain().get().convert_max<
float>(); }
853 using Process::ControlOutlet::ControlOutlet;
Definition DataStreamVisitor.hpp:202
Definition JSONVisitor.hpp:423
virtual const State::Unit & unit() const noexcept
Definition Port.cpp:200
The id_base_t class.
Definition Identifier.hpp:59
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
constexpr bool integral(ElementType t) noexcept
Whether the values are integers, to print them as such.
Definition BufferDecode.hpp:148