Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
int main(int argc, char *argv[]) 
{
    UserData ud;
    sp_data *sp;

    if(argc == 1) {
        printf("Usage: ./%s nchan\n", argv[0]);
        fflush(stdin);
        exit(1);
    }
    int nchan = atoi(argv[1]);
    sp_createn(&sp, 2);
    ud.nchan = nchan;
    sp_in_create(&ud.in);

    sp_in_init(sp, ud.in);

    sp_jack_process(sp, &ud, process);
    
    sp_in_destroy(&ud.in);
    sp_destroy(&sp);
    return 0;
}