41
auconfig : globstmts sectconfigs
44
globstmts : /* Empty */
49
{ NasConfig.DoVerbose = TRUE; }
51
{ NasConfig.DoDebug = $2 ; }
41
auconfig : globstmts sectconfigs
44
globstmts : /* Empty */
49
{ NasConfig.DoVerbose = TRUE; }
51
{ NasConfig.DoDebug = $2 ; }
52
52
| RELEASEDEVICE string
59
/* error - default to no */
60
NasConfig.DoDeviceRelease = FALSE;
63
NasConfig.DoDeviceRelease = j;
58
/* error - default to yes */
59
NasConfig.DoDeviceRelease = TRUE;
61
NasConfig.DoDeviceRelease = j;
69
/* error - default to yes */
70
NasConfig.DoKeepMixer = TRUE;
72
NasConfig.DoKeepMixer = j;
66
75
{ ddaSetConfig(MIXERINIT, (void *)parsebool($2)); }
77
{ ddaSetConfig(REINITMIXER, (void *)parsebool($2)); }
67
78
| OUTDEVTYPE string
68
79
{ ddaSetConfig(OUTDEVTYPE, (void *)$2); }
71
sectconfigs : /* Empty */
72
| sectconfigs sectconfig
75
sectconfig : inputconfig
79
inputconfig : inputword stmts ENDSECTION
82
inputword : INPUTSECTION
83
{ ddaSetConfig(CONF_SET_SECTION, (void *)INPUTSECTION); }
86
outputconfig : outputword stmts ENDSECTION
89
outputword : OUTPUTSECTION
90
{ ddaSetConfig(CONF_SET_SECTION, (void *)OUTPUTSECTION); }
100
ddaSetConfig(AUTOOPEN, (void *)parsebool($2));
104
ddaSetConfig(FORCERATE, (void *)parsebool($2));
108
ddaSetConfig(READWRITE, (void *)parsebool($2));
112
ddaSetConfig(MIXER, (void *)$2);
116
ddaSetConfig(DEVICE, (void *)$2);
120
ddaSetConfig(WORDSIZE, (void *)$2);
124
ddaSetConfig(FRAGSIZE, (void *)$2);
128
ddaSetConfig(MINFRAGS, (void *)$2);
132
ddaSetConfig(MAXFRAGS, (void *)$2);
136
ddaSetConfig(NUMCHANS, (void *)$2);
139
{ ddaSetConfig(MAXRATE, (void *)$2); }
141
{ ddaSetConfig(MINRATE, (void *)$2); }
143
{ ddaSetConfig(GAIN, (void *)$2); }
146
string : STRING { ptr = (char *)malloc(strlen($1)+1);
152
number : NUMBER { $$ = $1; }
82
sectconfigs : /* Empty */
83
| sectconfigs sectconfig
86
sectconfig : inputconfig
90
inputconfig : inputword stmts ENDSECTION
93
inputword : INPUTSECTION
94
{ ddaSetConfig(CONF_SET_SECTION, (void *)INPUTSECTION); }
97
outputconfig : outputword stmts ENDSECTION
100
outputword : OUTPUTSECTION
101
{ ddaSetConfig(CONF_SET_SECTION, (void *)OUTPUTSECTION); }
111
ddaSetConfig(AUTOOPEN, (void *)parsebool($2));
115
ddaSetConfig(FORCERATE, (void *)parsebool($2));
119
ddaSetConfig(READWRITE, (void *)parsebool($2));
123
ddaSetConfig(MIXER, (void *)$2);
127
ddaSetConfig(DEVICE, (void *)$2);
131
ddaSetConfig(WORDSIZE, (void *)$2);
135
ddaSetConfig(FRAGSIZE, (void *)$2);
139
ddaSetConfig(MINFRAGS, (void *)$2);
143
ddaSetConfig(MAXFRAGS, (void *)$2);
147
ddaSetConfig(NUMCHANS, (void *)$2);
150
{ ddaSetConfig(MAXRATE, (void *)$2); }
152
{ ddaSetConfig(MINRATE, (void *)$2); }
154
{ ddaSetConfig(GAIN, (void *)$2); }
156
{ ddaSetConfig(GAINSCALE, (void *)$2); }
159
string : STRING { ptr = (char *)malloc(strlen($1)+1);
165
number : NUMBER { $$ = $1; }
157
170
RemoveDQuote(str)
160
register char *i, *o;
164
for (i=str+1, o=str; *i && *i != '\"'; o++)
195
case '1': case '2': case '3':
196
case '4': case '5': case '6': case '7':
199
while (*i >= '0' && *i <= '7' && count < 3)
201
n = (n<<3) + (*i++ - '0');
210
while (i++, count++ < 2)
212
if (*i >= '0' && *i <= '9')
213
n = (n<<4) + (*i - '0');
214
else if (*i >= 'a' && *i <= 'f')
215
n = (n<<4) + (*i - 'a') + 10;
216
else if (*i >= 'A' && *i <= 'F')
217
n = (n<<4) + (*i - 'A') + 10;
225
o--; /* to account for o++ at end of loop */
177
for (i = str + 1, o = str; *i && *i != '\"'; o++) {
214
while (*i >= '0' && *i <= '7' && count < 3) {
215
n = (n << 3) + (*i++ - '0');
224
while (i++, count++ < 2) {
225
if (*i >= '0' && *i <= '9')
226
n = (n << 4) + (*i - '0');
227
else if (*i >= 'a' && *i <= 'f')
228
n = (n << 4) + (*i - 'a') + 10;
229
else if (*i >= 'A' && *i <= 'F')
230
n = (n << 4) + (*i - 'A') + 10;
238
o--; /* to account for o++ at end of loop */
241
static int parsebool(char *str)
252
*s = (char)tolower(*s);
256
if (((char *)strstr("false", str) != NULL) ||
257
((char *)strstr("no", str) != NULL) ||
258
((char *)strstr("0", str) != NULL) ||
259
((char *)strstr("off", str) != NULL))
263
else if (((char *)strstr("true", str) != NULL) ||
264
((char *)strstr("yes", str) != NULL) ||
265
((char *)strstr("1", str) != NULL) ||
266
((char *)strstr("on", str) != NULL))
272
fprintf(stderr, "parsebool(): error parsing '%s', \n\t%s\n",
274
"Value must be yes or no, true or false, or on or off.");
264
*s = (char) tolower(*s);
268
if (((char *) strstr("false", str) != NULL) ||
269
((char *) strstr("no", str) != NULL) ||
270
((char *) strstr("0", str) != NULL) ||
271
((char *) strstr("off", str) != NULL)) {
273
} else if (((char *) strstr("true", str) != NULL) ||
274
((char *) strstr("yes", str) != NULL) ||
275
((char *) strstr("1", str) != NULL) ||
276
((char *) strstr("on", str) != NULL)) {
279
fprintf(stderr, "parsebool(): error parsing '%s', \n\t%s\n",
281
"Value must be yes or no, true or false, or on or off.");