Line data Source code
1 : #pragma once
2 :
3 : #include <memory>
4 : #include <string>
5 : #include <vector>
6 :
7 : namespace Amplitron {
8 :
9 : class Effect;
10 :
11 : enum class NodeRoutingType { StandardEffect, Splitter, Mixer, MergeSum = Mixer };
12 :
13 4175 : struct DSPNode {
14 : int id;
15 : std::string name;
16 : NodeRoutingType routing_type;
17 : std::shared_ptr<Effect> pedal;
18 :
19 : std::vector<int> input_pin_ids;
20 : std::vector<int> output_pin_ids;
21 :
22 1551 : bool is_graph_input = false;
23 1551 : bool is_graph_output = false;
24 1551 : bool is_reachable = true;
25 :
26 1551 : float x = 0.0f;
27 1551 : float y = 0.0f;
28 :
29 : std::vector<float> input_gains; // Gain for each input pin (Mixer only)
30 : };
31 :
32 : } // namespace Amplitron
|