2 #include <Process/Execution/ProcessComponent.hpp>
3 #include <Process/GenericProcessFactory.hpp>
4 #include <Process/Process.hpp>
6 #include <Control/DefaultEffectItem.hpp>
7 #include <Effect/EffectFactory.hpp>
8 #include <LV2/Context.hpp>
10 #include <ossia/dataflow/node_process.hpp>
12 #include <lilv/lilvmm.hpp>
21 , LV2::Model,
"fd5243ba-70b5-4164-b44a-ecb0dcdc0494",
"LV2",
"LV2",
22 Process::ProcessCategory::Other,
"Plugins",
"LV2 plug-in",
"ossia score", {}, {}, {},
23 Process::ProcessFlags::ExternalEffect)
24 DESCRIPTION_METADATA(, LV2::Model,
"LV2")
30 SCORE_SERIALIZE_FRIENDS
32 PROCESS_METADATA_IMPL(Model)
37 template <
typename Impl>
38 Model(Impl& vis, QObject* parent)
39 : ProcessModel{vis, parent}
44 QString effect() const noexcept
override {
return m_effectPath; }
46 void setEffect(
const QString& s) { m_effectPath = s; }
48 QString prettyName() const noexcept override;
50 bool hasExternalUI() const noexcept;
52 const LilvPlugin* plugin{};
56 std::size_t m_controlInStart{};
57 std::size_t m_controlOutStart{};
58 mutable moodycamel::ReaderWriterQueue<Message> ui_events;
59 mutable moodycamel::ReaderWriterQueue<Message> plugin_events;
60 mutable moodycamel::ReaderWriterQueue<Message>
63 ossia::hash_map<uint32_t, std::pair<Process::ControlInlet*, bool>> control_map;
64 ossia::hash_map<uint32_t, Process::ControlOutlet*> control_out_map;
71 ossia::float_vector fInControls, fOutControls;
74 class LV2EffectComponent final
77 W_OBJECT(LV2EffectComponent)
78 COMPONENT_METADATA(
"57f50003-a179-424a-80b1-b9394d73a84a")
81 static constexpr
bool is_unique = true;
83 LV2EffectComponent(LV2::Model& proc, const
Execution::Context& ctx, QObject* parent);
85 void lazy_init() override;
88 writeAtomToUi(uint32_t port_index, uint32_t type, uint32_t size, const
void* body);
89 void writeAtomToUi(uint32_t port_index, LV2_Atom& atom);
96 QString EffectProcessFactory_T<LV2::Model>::customConstructionData() const noexcept;
Definition: Process/Execution/ProcessComponent.hpp:119
Definition: EffectFactory.hpp:14
The Process class.
Definition: score-lib-process/Process/Process.hpp:61
The id_base_t class.
Definition: Identifier.hpp:57
Components used for the execution of a score.
Definition: ProcessComponent.cpp:12
Base classes and tools to implement processes and layers.
Definition: JSONVisitor.hpp:1324
Definition: Process/Execution/ProcessComponent.hpp:89
Definition: Context.hpp:135
Definition: Context.hpp:49
Definition: TimeValue.hpp:21