示例#1
0
文件: in.c 项目: BillGrim/AudioKit
int sporth_in(sporth_stack *stack, void *ud)
{
    plumber_data *pd = ud;

    SPFLOAT out;
    sp_in *data;
    switch(pd->mode){
        case PLUMBER_CREATE:
            sp_in_create(&data);
            plumber_add_ugen(pd, SPORTH_IN, data);
            break;
        case PLUMBER_INIT:
            data = pd->last->ud;
            sp_in_init(pd->sp, data);
            sporth_stack_push_float(stack, 0);
            break;
        case PLUMBER_COMPUTE:
            data = pd->last->ud;
            sp_in_compute(pd->sp, data, NULL, &out);
            sporth_stack_push_float(stack, out);
            break;
        case PLUMBER_DESTROY:
            data = pd->last->ud;
            sp_in_destroy(&data);
            break;
        default:
           printf("Error: Unknown mode!");
           break;
    }
    return PLUMBER_OK;
}
示例#2
0
void process(sp_data *sp, void *udata) 
{
    UserData *ud = udata;
    SPFLOAT out = 0;
    if(ud->nchan == 1) {
        sp_in_compute(sp, ud->in, NULL, &out);
        sp->out[0] = out;
        sp->out[1] = out;
    } else if (ud->nchan == 2) {
        sp_in_compute(sp, ud->in, NULL, &out);
        sp->out[0] = out;
        sp_in_compute(sp, ud->in, NULL, &out);
        sp->out[1] = out;
    } else { 
        sp_in_compute(sp, ud->in, NULL, &out);
        sp->out[0] = out;
        sp->out[1] = out;
    }
}