2 #include <Process/Dataflow/PortType.hpp>
3 #include <Process/ProcessFlags.hpp>
5 #include <score/plugins/SerializableInterface.hpp>
7 #include <score/tools/Metadata.hpp>
8 #include <score/tools/std/Optional.hpp>
10 #include <QStringList>
17 SCORE_LIB_PROCESS_EXPORT
18 const QIcon& getCategoryIcon(
const QString& category) noexcept;
19 enum ProcessCategory : uint64_t
33 Deprecated = (1ULL << 63),
39 ProcessCategory category{};
42 QString author{
"ossia score"};
44 std::optional<std::vector<Process::PortType>> inlets;
45 std::optional<std::vector<Process::PortType>> outlets;
46 QUrl documentationLink;
50 #define PROCESS_FLAGS_METADATA(Export, Model, Flags) \
51 TYPED_METADATA(Export, Model, Process::ProcessFlags_k, Process::ProcessFlags, Flags)
53 #define PROCESS_METADATA( \
54 Export, Model, Uuid, ObjectKey, PrettyName, CategoryEnum, Category, Desc, Author, \
55 Tags, InputSpec, OutputSpec, DocumentationLink, Flags) \
56 MODEL_METADATA(Export, Process::ProcessModel, Model, Uuid, ObjectKey, PrettyName) \
57 CATEGORY_METADATA(Export, Model, Category) \
58 TAGS_METADATA(Export, Model, Tags) \
59 PROCESS_FLAGS_METADATA(Export, Model, (Process::ProcessFlags)(Flags)) \
61 struct Export Metadata<::Process::Descriptor_k, Model> \
63 static ::Process::Descriptor get() \
65 static const ::Process::Descriptor k{PrettyName, CategoryEnum, Category, \
67 InputSpec, OutputSpec, DocumentationLink};\
72 #define PROCESS_METADATA_IMPL(Model) \
73 MODEL_METADATA_IMPL(Model) \
74 QString prettyShortName() const noexcept override \
76 return Metadata<PrettyName_k, Model>::get(); \
78 QString category() const noexcept override \
80 return Metadata<Category_k, Model>::get(); \
82 QStringList tags() const noexcept override \
84 return Metadata<Tags_k, Model>::get(); \
86 Process::ProcessFlags flags() const noexcept override \
88 return Metadata<Process::ProcessFlags_k, Model>::get(); \
Definition: QmlObjects.hpp:556
Namespace related to the Automation process.
Definition: AutomationColors.cpp:8
Base classes and tools to implement processes and layers.
Definition: JSONVisitor.hpp:1324
Definition: score-lib-process/Process/ProcessMetadata.hpp:37