This is revconf.c in view mode; [Download] [Up]
#include<stdio.h>
#define TAP 't'
#define CMB 'c'
#define APS 'a'
/*
*
* line format: <spec_char> <coeff> <length>
* spec_char :== t | c | a (tap, comb, or allpass respectively)
*/
extern float *apg1, *apdlys, *cmbg1, *cmbdlys, *tdmg, *tdmt;
/*
* main(argc, argv)
* char **argv;
* {
*
* register int i;
* if (revconf(argv[1]))
* {
* fprintf(stderr, "lprev: configuration error\n");;
* exit(-1);
* }
* for (i = 0; i < 32; i++)
* printf("t %f %f\tc %f %f\ta%f %f\n",
* tdmg[i], tdmt[i], cmbg1[i], cmbdlys[i],
* apg1[i], apdlys[i]);
* }
*/
revconf(name)
char *name;
{
register int i, j, k;
int ndmtaps=1, ncmbs=1, nap=1;
char c, buf[BUFSIZ], *bufp1 = buf+1, *bufp2 = buf+2;
FILE *fp, *fopen();
if ((fp = fopen(name, "r")) == NULL) return(-1);
while (fgets(buf, BUFSIZ, fp) != NULL)
{
*bufp1 = NULL;
switch (*buf)
{
case TAP: ndmtaps++; break;
case CMB: ncmbs++; break;
case APS: nap++; break;
default: break;
}
}
tdmg = (float *) malloc(sizeof(float)*ndmtaps);
tdmt = (float *) malloc(sizeof(float)*ndmtaps);
cmbg1 = (float *) malloc(sizeof(float)*ncmbs);
cmbdlys = (float *) malloc(sizeof(float)*ncmbs);
apg1 = (float *) malloc(sizeof(float)*nap);
apdlys = (float *) malloc(sizeof(float)*nap);
fclose(fp);
if ((fp = fopen(name, "r")) == NULL) return(-1);
while (fgets(buf, BUFSIZ, fp) != NULL)
{
*bufp1 = NULL;
switch (*buf)
{
case TAP: if ((i=addtap(bufp2)) < 0) return(-1); break;
case CMB: if ((j=addcmb(bufp2)) < 0) return(-1); break;
case APS: if ((k=addaps(bufp2)) < 0) return(-1);
default: break;
}
}
tdmt[i] = cmbdlys[j] = apdlys[k] = -1.0; /* terminate list */
fclose(fp);
}
addtap(str)
char *str;
{
static int i;
if (sscanf(str, "%f%f", &tdmg[i], &tdmt[i]) < 2) return(-1);
return(++i);
}
addcmb(str)
char *str;
{
static int i;
if (sscanf(str, "%f%f", &cmbg1[i], &cmbdlys[i]) < 2) return(-1);
return(++i);
}
addaps(str)
char *str;
{
static int i;
if (sscanf(str, "%f%f", &apg1[i], &apdlys[i]) < 2) return(-1);
return(++i);
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.