Sigrid Solveig Haflínudóttircompile stuff50243ce5 years agoHistory
67 lines · 1.2 KB · C
RawDownload
#include <stdlib.h>#include "math.h"#include "soundpipe.h" int sp_tread_create(sp_tread **p){    *p = malloc(sizeof(sp_tread));    return SP_OK;} int sp_tread_destroy(sp_tread **p){    free(*p);    return SP_OK;} int sp_tread_init(sp_data *sp, sp_tread *p, sp_ftbl *ft, int mode){    USED(sp);     p->ft = ft;    p->mode = mode;    p->offset = 0;    p->wrap = 0;    return SP_OK;} int sp_tread_compute(sp_data *sp, sp_tread *p, SPFLOAT *in, SPFLOAT *out){    USED(sp, in);     int ipos;    SPFLOAT *tbl = p->ft->tbl;    SPFLOAT mul, tmp, fpos;    SPFLOAT x1, x2;    size_t len;     mul = 1;     if (p->mode) {        mul = p->ft->size;    }else {        p->mul = 1;    }     tmp = (p->index + p->offset) * mul;    ipos = floor(tmp);    fpos = tmp - ipos;     len = p->ft->size;    if (p->wrap) {        int32_t mask = (int)p->ft->size - 1;        if ((mask ? 0 : 1)) {            while (ipos >= len) ipos -= len;            while (ipos < 0) ipos += len;        } else ipos &= mask;    } else {        if (ipos >= len) ipos = len - 1;        else if (ipos < 0) ipos = 0;    }     x1 = tbl[ipos];    x2 = tbl[ipos + 1];     *out = x1 + (x2 - x1) * fpos;    return SP_OK;}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t