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 (
77 void custom_release_resources ()
override;
81 bool is_prefader ()
const {
return is_prefader_; }
82 bool is_audio ()
const {
return signal_type_ == dsp::PortType::Audio; }
83 bool is_midi ()
const {
return signal_type_ == dsp::PortType::Midi; }
88 return *get_input_ports ().at (0).get_object_as<
dsp::AudioPort> ();
93 return *get_input_ports ().front ().get_object_as<
dsp::MidiPort> ();
95 dsp::AudioPort &get_stereo_out_port ()
const
98 return *get_output_ports ().front ().get_object_as<dsp::AudioPort> ();
100 dsp::MidiPort &get_midi_out_port ()
const
103 return *get_output_ports ().front ().get_object_as<dsp::MidiPort> ();
107 static constexpr auto kSignalTypeKey =
"signalType"sv;
108 static constexpr auto kIsPrefaderKey =
"isPrefader"sv;
109 friend void to_json (nlohmann::json &j,
const ChannelSend &p)
111 to_json (j,
static_cast<const dsp::ProcessorBase &
> (p));
112 j[kSignalTypeKey] = p.signal_type_;
113 j[kIsPrefaderKey] = p.is_prefader_;
115 friend void from_json (
const nlohmann::json &j,
ChannelSend &p);
117 friend void init_from (
123 dsp::PortType signal_type_;
131 std::unique_ptr<ChannelSendProcessingCaches> processing_caches_;