コード例 #1
0
ファイル: mfp_block.c プロジェクト: wrl/mfp
int
mfp_block_copy(mfp_block * in, mfp_block * out)
{
    if (out->blocksize != in->blocksize) {
        mfp_block_resize(out, in->blocksize);
    }
    memcpy(out->data, in->data, in->blocksize*sizeof(mfp_sample));
    return 1;
}
コード例 #2
0
ファイル: mfp_proc.c プロジェクト: bgribble/mfp
int
mfp_proc_alloc_buffers(mfp_processor * p, int num_inlets, int num_outlets, int blocksize) 
{
    int count;
    int success=0;

    /* create inlet and outlet processor pointer arrays */
    p->inlet_conn = g_array_sized_new(TRUE, TRUE, sizeof(GArray *), num_inlets);
    
    /* these are arrays of mfp_connection * */    
    for (count = 0; count < num_inlets; count++) {
        GArray * in = g_array_new(TRUE, TRUE, sizeof(mfp_connection *));
        g_array_append_val(p->inlet_conn, in);
    }

    p->outlet_conn = g_array_sized_new(TRUE, TRUE, sizeof(GArray *), num_outlets);

    for (count = 0; count < num_outlets; count++) {
        GArray * out = g_array_new(TRUE, TRUE, sizeof(mfp_connection *));
        g_array_append_val(p->outlet_conn, out);
    }
    
    /* create input and output buffers (will be reallocated if blocksize changes */
    p->inlet_buf = g_malloc0(num_inlets * sizeof(mfp_block *));
    p->inlet_buf_alloc = g_malloc0(num_inlets * sizeof(mfp_block *));

    for (count = 0; count < num_inlets; count ++) {
        p->inlet_buf_alloc[count] = mfp_block_new(mfp_max_blocksize); 
        mfp_block_resize(p->inlet_buf_alloc[count], blocksize);
    }

    p->outlet_buf = g_malloc(num_outlets * sizeof(mfp_sample *));
    
    for (count = 0; count < num_outlets; count ++) {
        p->outlet_buf[count] = mfp_block_new(mfp_max_blocksize);
        mfp_block_resize(p->outlet_buf[count], blocksize);
    }    
    return success;
}