1 typedef struct sp_fog_overlap {
2     struct sp_fog_overlap *nxtact;
3     struct sp_fog_overlap *nxtfree;
4     int32_t timrem, dectim, formphs, forminc;
5     uint32_t risphs;
6     int32_t risinc, decphs, decinc;
7     SPFLOAT curamp, expamp;
8     SPFLOAT pos, inc;
9 } sp_fog_overlap;
10 
11 typedef struct {
12     SPFLOAT amp, dens, trans, spd, oct, band, ris, dur, dec;
13     SPFLOAT iolaps, iphs, itmode;
14     sp_fog_overlap basovrlap;
15     int32_t durtogo, fundphs, fofcount, prvsmps, spdphs;
16     SPFLOAT prvband, expamp, preamp, fogcvt;
17     int16_t formcod, fmtmod, speedcod;
18     sp_auxdata auxch;
19     sp_ftbl *ftp1, *ftp2;
20 } sp_fog;
21 
22 int sp_fog_create(sp_fog **p);
23 int sp_fog_destroy(sp_fog **p);
24 int sp_fog_init(sp_data *sp, sp_fog *p, sp_ftbl *wav, sp_ftbl *win, int iolaps, SPFLOAT iphs);
25 int sp_fog_compute(sp_data *sp, sp_fog *p, SPFLOAT *in, SPFLOAT *out);
26