mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-10 04:30:12 +02:00
Work around null pointers in Ardour
This commit is contained in:
@@ -45,14 +45,18 @@ tresult PLUGIN_API Vst3PluginProxyImpl::setBusArrangements(
|
|||||||
int32 numIns,
|
int32 numIns,
|
||||||
Steinberg::Vst::SpeakerArrangement* outputs,
|
Steinberg::Vst::SpeakerArrangement* outputs,
|
||||||
int32 numOuts) {
|
int32 numOuts) {
|
||||||
assert(inputs && outputs);
|
// NOTE: Ardour passes a null pointer when `numIns` or `numOuts` is 0, so we
|
||||||
|
// need to work around that
|
||||||
return bridge.send_message(YaAudioProcessor::SetBusArrangements{
|
return bridge.send_message(YaAudioProcessor::SetBusArrangements{
|
||||||
.instance_id = instance_id(),
|
.instance_id = instance_id(),
|
||||||
.inputs = std::vector<Steinberg::Vst::SpeakerArrangement>(
|
.inputs = (inputs ? std::vector<Steinberg::Vst::SpeakerArrangement>(
|
||||||
inputs, &inputs[numIns]),
|
inputs, &inputs[numIns])
|
||||||
|
: std::vector<Steinberg::Vst::SpeakerArrangement>()),
|
||||||
.num_ins = numIns,
|
.num_ins = numIns,
|
||||||
.outputs = std::vector<Steinberg::Vst::SpeakerArrangement>(
|
.outputs =
|
||||||
outputs, &outputs[numOuts]),
|
(outputs ? std::vector<Steinberg::Vst::SpeakerArrangement>(
|
||||||
|
outputs, &outputs[numOuts])
|
||||||
|
: std::vector<Steinberg::Vst::SpeakerArrangement>()),
|
||||||
.num_outs = numOuts,
|
.num_outs = numOuts,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user