- Timestamp:
- Mar 25, 2008, 1:46:01 AM (17 years ago)
- Location:
- GPL/branches/uniaud-2.0
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
GPL/branches/uniaud-2.0/alsa-kernel/core/pcm_lib.c
r305 r320 1341 1341 int snd_interval_refine_set(struct snd_interval *i, unsigned int val) 1342 1342 { 1343 1344 1345 1346 1347 1348 1343 struct snd_interval t; 1344 t.empty = 0; 1345 t.min = t.max = val; 1346 t.openmin = t.openmax = 0; 1347 t.integer = 1; 1348 return snd_interval_refine(i, &t); 1349 1349 } 1350 1350 1351 1351 int _snd_pcm_hw_param_set(struct snd_pcm_hw_params *params, 1352 snd_pcm_hw_param_t var, unsigned int val, int dir) 1353 { 1354 int changed; 1355 if (hw_is_mask(var)) { 1356 struct snd_mask *m = hw_param_mask(params, var); 1357 if (val == 0 && dir < 0) { 1358 changed = -EINVAL; 1359 snd_mask_none(m);1360 } else { 1361 if (dir > 0) 1362 val++; 1363 else if (dir < 0) 1364 val--; 1365 changed = snd_mask_refine_set(hw_param_mask(params, var), val);1366 } 1367 } else if (hw_is_interval(var)) { 1368 struct snd_interval *i = hw_param_interval(params, var); 1369 if (val == 0 && dir < 0) { 1370 changed = -EINVAL; 1371 snd_interval_none(i);1372 } else if (dir == 0) 1373 changed = snd_interval_refine_set(i, val); 1374 else { 1375 struct snd_interval t; 1376 t.openmin = 1;1377 t.openmax= 1;1378 t.empty = 0;1379 t.integer= 0;1380 if (dir < 0) { 1381 t.min = val - 1; 1382 t.max = val;1383 } else { 1384 t.min = val; 1385 t.max = val+1;1386 } 1387 changed = snd_interval_refine(i, &t); 1388 } 1389 } else { 1390 assert(0); 1391 1392 } 1393 if (changed) { 1394 params->cmask |= 1 << var;1395 params->rmask |= 1 << var; 1396 } 1397 return changed; 1398 } 1352 snd_pcm_hw_param_t var, unsigned int val, 1353 int dir) 1354 { 1355 int changed; 1356 if (hw_is_mask(var)) { 1357 struct snd_mask *m = hw_param_mask(params, var); 1358 if (val == 0 && dir < 0) { 1359 changed = -EINVAL; 1360 snd_mask_none(m); 1361 } else { 1362 if (dir > 0) 1363 val++; 1364 else if (dir < 0) 1365 val--; 1366 changed = snd_mask_refine_set(hw_param_mask(params, var), val); 1367 } 1368 } else if (hw_is_interval(var)) { 1369 struct snd_interval *i = hw_param_interval(params, var); 1370 if (val == 0 && dir < 0) { 1371 changed = -EINVAL; 1372 snd_interval_none(i); 1373 } else if (dir == 0) 1374 changed = snd_interval_refine_set(i, val); 1375 else { 1376 struct snd_interval t; 1377 t.openmin = 1; 1378 t.openmax = 1; 1379 t.empty = 0; 1380 t.integer = 0; 1381 if (dir < 0) { 1382 t.min = val - 1; 1383 t.max = val; 1384 } else { 1385 t.min = val; 1386 t.max = val+1; 1387 } 1388 changed = snd_interval_refine(i, &t); 1389 } 1390 } else 1391 return -EINVAL; 1392 if (changed) { 1393 params->cmask |= 1 << var; 1394 params->rmask |= 1 << var; 1395 } 1396 return changed; 1397 } 1398 1399 1399 #endif 1400 1400 /** -
GPL/branches/uniaud-2.0/alsa-kernel/include/sound/asound.h
r307 r320 29 29 #include <linux/time.h> 30 30 #include <asm/byteorder.h> 31 #ifdef TARGET_OS2x32 #include <sound/config.h>33 #endif34 31 #ifdef __LITTLE_ENDIAN 35 32 #define SNDRV_LITTLE_ENDIAN -
GPL/branches/uniaud-2.0/lib32/sound.c
r307 r320 279 279 fuOSSRates |= OSS32_CAPS_PCM_RATE_48000; 280 280 } 281 //#if 0281 #if 0 282 282 if(fuRates & SNDRV_PCM_RATE_64000) { 283 283 fuOSSRates |= OSS32_CAPS_PCM_RATE_64000; … … 295 295 fuOSSRates |= OSS32_CAPS_PCM_RATE_192000; 296 296 } 297 //#endif297 #endif 298 298 if(fuRates & SNDRV_PCM_RATE_CONTINUOUS) { 299 299 fuOSSRates |= OSS32_CAPS_PCM_RATE_CONTINUOUS;
Note:
See TracChangeset
for help on using the changeset viewer.