static void minmax_dsp(t_minmax *x, t_signal **sp) { x->x_feederflag = forky_hasfeeders((t_object *)x, x->x_glist, 0, &s_signal); x->x_feederflag2 = forky_hasfeeders((t_object *)x, x->x_glist, 1, &s_signal); if (x->x_feederflag) dsp_add(minmax_perform, 6, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec); else dsp_add(minmax_perform_no_in, 6, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec); }
static void plusequals_dsp(t_plusequals *x, t_signal **sp) { // MAGIC x->x_hasfeeders = forky_hasfeeders((t_object *)x, x->x_glist, 1, &s_signal); if (forky_hasfeeders((t_object *)x, x->x_glist, 0, &s_signal)) dsp_add(plusequals_perform, 5, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec); else dsp_add(plusequals_perform_no_in, 5, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec); }
static void bitand_dsp(t_bitand *x, t_signal **sp) { if (forky_hasfeeders((t_object *)x, x->x_glist, 1, &s_signal)) dsp_add(bitand_perform, 5, x, // use mask from 2nd input signal sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec); else // use mask set by 'bits' message or argument dsp_add(bitand_perform_noin2, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec); }
static void sah_dsp(t_sah *x, t_signal **sp) { /*MAGIC Get flag for signal feeders.*/ x->x_hasfeeders = forky_hasfeeders((t_object *)x, x->x_glist, 1, &s_signal); /*end magic*/ dsp_add(sah_perform, 5, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec); }
static void scope_dsp(t_scope *x, t_signal **sp) { x->x_ksr = sp[0]->s_sr * 0.001; scope_setxymode(x, forky_hasfeeders((t_object *)x, x->x_glist, 1, &s_signal)); if (x->x_xymode) dsp_add(scope_xyperform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec); else dsp_add(scope_monoperform, 3, x, sp[0]->s_n, sp[0]->s_vec); }
static void delay_dsp(t_delay *x, t_signal **sp) { //memset(x->x_buf, 0, x->x_maxsize * sizeof(*x->x_buf)); /* CHECKED */ x->x_hasfeeders = forky_hasfeeders(&x->x_obj, x->x_glist, 1, &s_signal); x->x_sr = sp[0]->s_sr; x->x_remain = 0; delay_clear(x); delay_bounds(x); if (x->x_hasfeeders) { dsp_add(delay_performsig, 5, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec); } else { dsp_add(delay_perform, 5, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec); } }
static void matrix_dsp(t_matrix *x, t_signal **sp) { int i, nblock = sp[0]->s_n; t_float **vecp = x->x_ivecs; t_signal **sigp = sp; for (i = 0; i < x->x_numinlets; i++) { *vecp++ = (*sigp++)->s_vec; x->x_hasfeeders[i] = forky_hasfeeders((t_object *)x, x->x_glist, i, &s_signal); }; vecp = x->x_ovecs; for (i = 0; i < x->x_numoutlets; i++){ *vecp++ = (*sigp++)->s_vec; }; if (nblock != x->x_nblock){ if (nblock > x->x_maxblock){ size_t oldsize = x->x_maxblock * sizeof(*x->x_osums[i]), newsize = nblock * sizeof(*x->x_osums[i]); for (i = 0; i < x->x_numoutlets; i++) x->x_osums[i] = resizebytes(x->x_osums[i], oldsize, newsize); oldsize = x->x_maxblock * sizeof(*x->x_zerovec); newsize = nblock * sizeof(*x->x_zerovec); x->x_zerovec = resizebytes(x->x_zerovec, oldsize, newsize); x->x_maxblock = nblock; }; x->x_nblock = nblock; } if (x->x_gains) { x->x_ksr = sp[0]->s_sr * .001; dsp_add(matrixnb_perform, 2, x, nblock); } else{ dsp_add(matrix01_perform, 2, x, nblock); }; }