MetroModel.hpp
1 #pragma once
2 #include <Process/Process.hpp>
3 
4 #include <Media/Metro/MetroMetadata.hpp>
5 
7 #include <score/serialization/JSONVisitor.hpp>
9 
10 #include <ossia/detail/pod_vector.hpp>
11 
12 #include <verdigris>
13 
14 namespace Media
15 {
16 namespace Metro
17 {
18 class Model final : public Process::ProcessModel
19 {
20  SCORE_SERIALIZE_FRIENDS
21  PROCESS_METADATA_IMPL(Media::Metro::Model)
22 
23  W_OBJECT(Model)
24 
25 public:
26  explicit Model(
27  const TimeVal& duration, const Id<Process::ProcessModel>& id, QObject* parent);
28 
29  ~Model() override;
30 
31  template <typename Impl>
32  explicit Model(Impl& vis, QObject* parent)
33  : Process::ProcessModel{vis, parent}
34  {
35  vis.writeTo(*this);
36  init();
37  }
38 
39  void init();
40 
41  std::unique_ptr<Process::AudioOutlet> audio_outlet;
42  std::unique_ptr<Process::Outlet> bang_outlet;
43 };
44 }
45 }
Definition: MetroModel.hpp:19
The Process class.
Definition: score-lib-process/Process/Process.hpp:61
The id_base_t class.
Definition: Identifier.hpp:57
Definition: TimeValue.hpp:21