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 QUrl(
"https://ossia.io/score-docs/processes/audio-plugins.html#common-formats-vst-vst3-lv2-jsfx"),
24 Process::ProcessFlags::ExternalEffect)
25 DESCRIPTION_METADATA(, LV2::Model,
"LV2")
31 SCORE_SERIALIZE_FRIENDS
33 PROCESS_METADATA_IMPL(Model)
38 template <
typename Impl>
39 Model(Impl& vis, QObject* parent)
40 : ProcessModel{vis, parent}
45 QString effect() const noexcept
override {
return m_effectPath; }
47 void setEffect(
const QString& s) { m_effectPath = s; }
49 QString prettyName() const noexcept override;
51 bool hasExternalUI() const noexcept;
53 const LilvPlugin* plugin{};
57 std::size_t m_controlInStart{};
58 std::size_t m_controlOutStart{};
59 mutable moodycamel::ReaderWriterQueue<Message> ui_events;
60 mutable moodycamel::ReaderWriterQueue<Message> plugin_events;
61 mutable moodycamel::ReaderWriterQueue<Message>
64 ossia::hash_map<uint32_t, std::pair<Process::ControlInlet*, bool>> control_map;
65 ossia::hash_map<uint32_t, Process::ControlOutlet*> control_out_map;
72 ossia::float_vector fInControls, fOutControls;
75 class LV2EffectComponent final
78 W_OBJECT(LV2EffectComponent)
79 COMPONENT_METADATA(
"57f50003-a179-424a-80b1-b9394d73a84a")
82 static constexpr
bool is_unique = true;
84 LV2EffectComponent(LV2::Model& proc, const
Execution::Context& ctx, QObject* parent);
86 void lazy_init() override;
89 writeAtomToUi(uint32_t port_index, uint32_t type, uint32_t size, const
void* body);
90 void writeAtomToUi(uint32_t port_index, LV2_Atom& atom);
97 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