static void dev_RT_process(SoundPlugin *plugin, int64_t time, int num_frames, float **inputs, float **outputs){ Devdata *devdata = (Devdata*)plugin->data; Data *data = devdata->reply.data; int num_inputs = 0; int num_outputs = 0; if (data != NULL) { num_inputs = data->voices[0].dsp_instance->getNumInputs(); num_outputs = data->voices[0].dsp_instance->getNumOutputs(); if (num_inputs > MAX_CHANNELS || num_outputs > MAX_CHANNELS){ for(int ch = 0 ; ch < MAX_CHANNELS ; ch++) memset(outputs[ch], 0, num_frames*sizeof(float)); return; } if (devdata->reply.is_instrument) RT_process_instrument2(num_outputs, data, time, num_frames, inputs, outputs); else RT_process_effect2(data, time, num_frames, inputs, outputs); } // clear unused channels for(int ch = num_outputs ; ch < MAX_CHANNELS ; ch++) memset(outputs[ch], 0, num_frames*sizeof(float)); }
static void RT_process_effect(SoundPlugin *plugin, int64_t time, int num_frames, float **inputs, float **outputs){ Data *data = (Data*)plugin->data; RT_process_effect2(data, time, num_frames, inputs, outputs); }