This is mm.set.c in view mode; [Download] [Up]
#include "mm.head.h" #include <math.h> set(){ int bc = 0, i; BARE0("set "); while(bc != ';'){ bc = field(fld,SIGS," ,;="); BARE1("%s ",fld); #ifdef csound if(S3("sfb",fld)){ BARE0("= "); bc = field(fld,SIGS,SBRK); Sfbsize = (long) expr(fld); setsfbuf(Sfbsize); continue; } #endif if(S3("blo",fld)){ BARE0("= "); bc = field(fld,SIGS,SBRK); if(Bflag)continue; Lblocks = (long) expr(fld); init(); continue; } if(S3("tem",fld)){ int index; bc = field(fld,SIGS,SBRK); if(fld[0] == 'v'){ if(bc == '['){ if((bc = field(fld,SIGS,"] ")) != ']'){ Error++; PROUT("Illegal v-field subscript\n",index); return; } index = expr(fld); } else index = atoi(&fld[1]); if(index > Vmax){ Vmax = index; EXTEND(Vp, Vars, Vmax+1, float); } Tempo = (Vars + index); *Tempo = 1.0; } else { Error++; PROUT("Illegal tempo field\n",index); return; } continue; } if(S3("off",fld)){ int index; bc = field(fld,SIGS,SBRK); if(fld[0] == 'v'){ if(bc == '['){ if((bc = field(fld,SIGS,"] ")) != ']'){ Error++; PROUT("Illegal v-field subscript\n",index); return; } index = expr(fld); } else index = atoi(&fld[1]); if(index > Vmax){ Vmax = index; EXTEND(Vp, Vars, Vmax+1, float); } Offset = (Vars + index); *Offset = 0.0; } else { Error++; PROUT("Illegal offset field\n",index); return; } continue; } if(S3("fun",fld)){ BARE0("= "); bc = field(fld,SIGS,SBRK); if(Lflag)continue; Lfuncs = (long) expr(fld); init(); continue; } if(S3("rev",fld)){ BARE0("= "); bc = field(fld,SIGS,SBRK); Revscale = expr(fld); continue; } if(S3("cut",fld)){ BARE0("= "); bc = field(fld,SIGS,SBRK); Revthresh = expr(fld); continue; } if(S3("t60",fld)){ BARE0("= "); bc = field(fld,SIGS,SBRK); T60mult = pow(10.0, -3*.064/expr(fld)); /* avg comb delay = 64ms */ continue; } if(S3("spa",fld)){ BARE0("= "); for(i=0; i<NAs; i++){ bc = field(fld,SIGS,SBRK); if(bc == ';'){ fprintf(stderr, "\nSET: set space syntax error\n"); exit(-1); } Ax[i] = expr(fld); bc = field(fld,SIGS,SBRK); if(bc == ';' && i < NAs-1){ fprintf(stderr, "\nSET: set space syntax error\n"); exit(-1); } Ay[i] = expr(fld); } continue; } if(S3("roo",fld)){ BARE0("= "); for(i=0; i<NLs; i++){ bc = field(fld,SIGS,SBRK); if(bc == ';'){ fprintf(stderr, "\nSET: set room syntax error\n"); exit(-1); } Lx[i] = expr(fld); bc = field(fld,SIGS,SBRK); if(bc == ';' && i < NLs-1){ fprintf(stderr, "\nSET: set space syntax error\n"); exit(-1); } Ly[i] = expr(fld); } continue; } if(S3("spe",fld)){ BARE0("= "); for(i=0; i<Nchan; i++){ bc = field(fld,SIGS,SBRK); if(bc == ';'){ fprintf(stderr, "\nSET: set speaker syntax error\n"); exit(-1); } Sx[i] = expr(fld); bc = field(fld,SIGS,SBRK); if(bc == ';' && i < Nchan-1){ fprintf(stderr, "\nSET: set speaker syntax error\n"); exit(-1); } Sy[i] = expr(fld); } continue; } if(S3("rat",fld) || S3("sam",fld) || S3("sra",fld)){ BARE0("= "); bc = field(fld,SIGS,SBRK); if(Rflag)continue; Srate = (long) expr(fld); continue; } if(S3("ran",fld) || S3("see",fld)){ long seed; BARE0("= "); bc = field(fld,SIGS,SBRK); seed = (long) expr(fld); srandom(seed); continue; } if(S3("cha",fld) || S3("nch",fld)){ BARE0("= "); bc = field(fld,SIGS,SBRK); Nchan = (int) expr(fld); if(Nchan<1 || Nchan > 4){ ILLEG;OS("number of channels");NL;exit(); } init(); continue; } if(S3("lis",fld)){ if ( bc != ';' ) { bc = field(fld,SIGS,SBRK); BARE1("= %s",fld); } else { if ( Infilename ) strcpy( fld, Infilename ) ; else strcpy( fld, "stdin" ) ; if ( rindex( fld, '.' ) ) *rindex( fld, '.' ) = '\0' ; strcat( fld, ".list" ) ; } Listfile = fopen(fld,"w"); Listfilename = strcpy((char *) calloc(strlen(fld)+1, sizeof(char)), fld); continue; } if(S3("bar",fld)){ bc = field(fld,SIGS,SBRK); BARE1("= %s",fld); Barefile = fopen(fld,"w"); Barefilename = strcpy((char *) calloc(strlen(fld)+1, sizeof(char)), fld); continue; } #ifdef nextsf if(S3("out",fld)){ if ( bc != ';' ) { bc = field(fld,SIGS,SBRK); BARE1("= %s",fld); } else { if ( Infilename ) strcpy( fld, Infilename ) ; else strcpy( fld, "stdin" ) ; if ( rindex( fld, '.' ) ) *rindex( fld, '.' ) = '\0' ; strcat( fld, ".snd" ) ; } Outfilename = strcpy((char *) calloc(strlen(fld)+1, sizeof(char)), fld); fprintf( stderr, "set: Outfilename = '%s'\n", Outfilename ) ; continue; } #else if(S3("out",fld)){ bc = field(fld,SIGS,SBRK); BARE1("= %s",fld); freopen(fld,"w",stdout); Outfilename = strcpy((char *) calloc(strlen(fld)+1, sizeof(char)), fld); continue; } #endif if(S3("dir",fld) ){ BARE0("= "); bc = field(fld,SIGS,SBRK); Direct = expr(fld); continue; } if(S3("ref",fld) ){ BARE0("= "); bc = field(fld,SIGS,SBRK); Reflect = expr(fld); continue; } if(S3("col",fld) ){ /* js - space reverb timbre switch */ BARE0("= "); bc = field(fld,SIGS,SBRK); Color = (int) expr(fld); continue; } if(S3("nol",fld)){fclose(Listfile); Listfile = NULL; NL; continue;} if(S3("ste",fld)){Nchan = 2; NL; init(); continue;} if(S3("qua",fld)){Nchan = 4; NL; init(); continue;} if(S3("noc",fld)){Clip = 0; NL; continue;} if(S3("ver",fld)){if(vflag)continue; Verbose = 1; NL; continue;} if(S3("nov",fld)){if(vflag)continue; Verbose = 0; NL; continue;} if(S3("not",fld)){if(nflag)continue; Notify = 1; NL; continue;} if(S3("non",fld)){if(nflag)continue; Notify = 0; NL; continue;} if(S3("tim",fld)){if(tflag)continue; Timer = 1; NL; continue;} if(S3("flo",fld)){Floatout = 1; NL; continue;} if(S3("nof",fld)){Floatout = 0; NL; continue;} if(S3("hea",fld)){Header = 1; NL; continue;} if(S3("noh",fld)){Header = 0; NL; continue;} if(S3("def",fld)){Deferflag |= DEFERFLAG; NL; continue;} OS(fld);UNREC;NL; } BARE0(";\n"); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.