Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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);
}
Ejemplo n.º 4
0
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);
}
Ejemplo n.º 5
0
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);
}
Ejemplo n.º 6
0
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);
    }
}
Ejemplo n.º 7
0
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);
	};
}