MidiExecutor.hpp
1 #pragma once
2 #include <Process/Execution/ProcessComponent.hpp>
3 #include <Process/ExecutionContext.hpp>
4 
5 #include <Midi/MidiNote.hpp>
6 
7 #include <ossia/dataflow/node_process.hpp>
8 #include <ossia/detail/flat_set.hpp>
9 #include <ossia/editor/scenario/time_process.hpp>
10 namespace ossia::nodes
11 {
12 struct note_data;
13 }
14 
15 namespace Device
16 {
17 class DeviceList;
18 }
19 namespace Midi
20 {
21 class ProcessModel;
22 namespace Executor
23 {
24 class Component final
25  : public ::Execution::ProcessComponent_T<Midi::ProcessModel, ossia::node_process>
26  , public Nano::Observer
27 {
28  COMPONENT_METADATA("6d5334a5-7b8c-45df-9805-11d1b4472cdf")
29 public:
30  static const constexpr bool is_unique = true;
31  Component(Midi::ProcessModel& element, const Execution::Context& ctx, QObject* parent);
32  ~Component() override;
33 
34  void on_noteAdded(const Midi::Note&);
35  void on_noteRemoved(const Midi::Note&);
36  void on_notesReplaced();
37 
38  ossia::nodes::note_data to_note(const NoteData& n);
39 };
40 
42 }
43 }
Definition: Process/Execution/ProcessComponent.hpp:119
Definition: MidiExecutor.hpp:27
The Note class.
Definition: MidiNote.hpp:59
Definition: MidiProcess.hpp:15
Manipulation of Devices from Qt.
Definition: AddressSettings.cpp:14
Definition: ExecutionContext.hpp:75
Definition: Process/Execution/ProcessComponent.hpp:89
Definition: MidiNote.hpp:11