Loading...
Searching...
No Matches
score-plugin-nodal/Nodal/Process.hpp
1#pragma once
2#include <score_plugin_nodal_export.h>
3#include <Process/Dataflow/Port.hpp>
4#include <Process/GenericProcessFactory.hpp>
5#include <Process/Process.hpp>
6
7#include <Nodal/Metadata.hpp>
8
9#include <score/model/ObjectEditor.hpp>
10
11namespace Nodal
12{
13
14class SCORE_PLUGIN_NODAL_EXPORT Model final : public Process::ProcessModel
15{
16 SCORE_SERIALIZE_FRIENDS
17 PROCESS_METADATA_IMPL(Nodal::Model)
18 W_OBJECT(Model)
19
20public:
21 std::unique_ptr<Process::AudioInlet> inlet;
22 std::unique_ptr<Process::AudioOutlet> outlet;
23
24 Model(
25 const TimeVal& duration, const Id<Process::ProcessModel>& id,
26 const score::DocumentContext& ctx, QObject* parent);
27
28 template <typename Impl>
29 Model(Impl& vis, const score::DocumentContext& ctx, QObject* parent)
30 : Process::ProcessModel{vis, parent}
31 , m_context{ctx}
32 {
33 vis.writeTo(*this);
34 init();
35 }
36
37 void init()
38 {
39 m_inlets.push_back(inlet.get());
40 m_outlets.push_back(outlet.get());
41 }
42
43 ~Model() override;
44
46
47private:
48 void loadPreset(const Process::Preset& preset) override;
49 Process::Preset savePreset() const noexcept override;
50
51 QString prettyName() const noexcept override;
52
53 void setDurationAndScale(const TimeVal& newDuration) noexcept override;
54 void setDurationAndGrow(const TimeVal& newDuration) noexcept override;
55 void setDurationAndShrink(const TimeVal& newDuration) noexcept override;
56
57 void ancestorStartDateChanged() override;
58 void ancestorTempoChanged() override;
59
60 const score::DocumentContext& m_context;
61};
62
64
66{
67 SCORE_CONCRETE("5e1c7e92-5beb-4313-92c8-f690089ff340")
68
69 bool
70 copy(JSONReader& r, const Selection& s, const score::DocumentContext& ctx) override;
71 bool paste(
72 QPoint pos, QObject* focusedObject, const QMimeData& mime,
73 const score::DocumentContext& ctx) override;
74 bool remove(const Selection& s, const score::DocumentContext& ctx) override;
75};
76}
Definition JSONVisitor.hpp:52
Definition score-plugin-nodal/Nodal/Process.hpp:15
Definition score-plugin-nodal/Nodal/Process.hpp:66
Definition GenericProcessFactory.hpp:15
The Process class.
Definition score-lib-process/Process/Process.hpp:80
Definition Selection.hpp:12
The id_base_t class.
Definition Identifier.hpp:59
The EntityMap class.
Definition EntityMap.hpp:37
Definition Preset.hpp:32
Definition TimeValue.hpp:21
Definition DocumentContext.hpp:18
Definition ObjectEditor.hpp:12