diff --git a/es-5.c b/es-5.c index 2908b21..e7b65f8 100644 --- a/es-5.c +++ b/es-5.c @@ -23,18 +23,20 @@ static void on_process(void *userdata, struct spa_io_position *position) { float *in, *out; uint32_t i, n_samples = position->clock.duration; float signal = 0.5f; - + // Read Inputs 1-7 out = pw_filter_get_dsp_buffer(data->out_port, n_samples); for (int input = 0; input < 7; input++) { - in = pw_filter_get_dsp_buffer(data->in_ports[input], n_samples); + in = pw_filter_get_dsp_buffer(data->in_ports[input], n_samples); + if (in == NULL || out == NULL) return; if(*in > GATE_LOW_EDGE) { signal += powf(2, input); } } // Read Input 8 - in = pw_filter_get_dsp_buffer(data->in_ports[7], n_samples); + in = pw_filter_get_dsp_buffer(data->in_ports[7], n_samples); + if (in == NULL || out == NULL) return; if(*in > GATE_LOW_EDGE) { signal = -ES_5_RANGE+signal; }