28 struct ChannelSendProcessingCaches
31 std::vector<dsp::AudioPort *> audio_ins_rt_;
32 std::vector<dsp::AudioPort *> audio_outs_rt_;
43 dsp::PortType signal_type,
46 QObject * parent =
nullptr);
73 void custom_prepare_for_processing (
75 units::sample_rate_t sample_rate,
78 void custom_release_resources ()
override;
82 bool is_prefader ()
const {
return is_prefader_; }
83 bool is_audio ()
const {
return signal_type_ == dsp::PortType::Audio; }
84 bool is_midi ()
const {
return signal_type_ == dsp::PortType::Midi; }
89 return *get_input_ports ().at (0).get_object_as<
dsp::AudioPort> ();
94 return *get_input_ports ().front ().get_object_as<
dsp::MidiPort> ();
96 dsp::AudioPort &get_stereo_out_port ()
const
99 return *get_output_ports ().front ().get_object_as<dsp::AudioPort> ();
101 dsp::MidiPort &get_midi_out_port ()
const
104 return *get_output_ports ().front ().get_object_as<dsp::MidiPort> ();
108 static constexpr auto kSignalTypeKey =
"signalType"sv;
109 static constexpr auto kIsPrefaderKey =
"isPrefader"sv;
110 friend void to_json (nlohmann::json &j,
const ChannelSend &p)
112 to_json (j,
static_cast<const dsp::ProcessorBase &
> (p));
113 j[kSignalTypeKey] = p.signal_type_;
114 j[kIsPrefaderKey] = p.is_prefader_;
116 friend void from_json (
const nlohmann::json &j,
ChannelSend &p);
118 friend void init_from (
124 dsp::PortType signal_type_;
132 std::unique_ptr<ChannelSendProcessingCaches> processing_caches_;