Changeset 4008:e83733d722d9 in roaraudio for libroaross
- Timestamp:
- 07/01/10 15:43:44 (14 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroaross/libroaross.c
r4007 r4008 245 245 struct handle * (*open)(const char * file, int flags, mode_t mode, struct devices * ptr); 246 246 } _device_list[] = { 247 {"/dev/dsp*", HT_WAVEFORM, 0, NULL, NULL}, 248 {"/dev/audio*", HT_WAVEFORM, 0, NULL, NULL}, 249 {"/dev/sound/dsp*", HT_WAVEFORM, 0, NULL, NULL}, 250 {"/dev/sound/audio*", HT_WAVEFORM, 0, NULL, NULL}, 251 {"/dev/mixer*", HT_MIXER, 0, NULL, NULL}, 252 {"/dev/sound/mixer*", HT_MIXER, 0, NULL, NULL}, 253 {"/dev/midi*", HT_MIDI, 0, NULL, NULL}, 254 {"/dev/rmidi*", HT_MIDI, 0, NULL, NULL}, 255 {"/dev/sound/midi*", HT_MIDI, 0, NULL, NULL}, 256 {"/dev/sound/rmidi*", HT_MIDI, 0, NULL, NULL}, 257 {"/dev/dmx*", HT_DMX, 0, NULL, NULL}, 258 {"/dev/misc/dmx*", HT_DMX, 0, NULL, NULL}, 259 {"/dev/dmxin*", HT_DMX, 0, NULL, NULL}, 260 {"/dev/misc/dmxin*", HT_DMX, 0, NULL, NULL}, 247 {"/dev/dsp", HT_WAVEFORM, 0, NULL, NULL}, 248 {"/dev/dsp?", HT_WAVEFORM, 0, NULL, NULL}, 249 {"/dev/audio", HT_WAVEFORM, 0, NULL, NULL}, 250 {"/dev/audio?", HT_WAVEFORM, 0, NULL, NULL}, 251 {"/dev/sound/dsp", HT_WAVEFORM, 0, NULL, NULL}, 252 {"/dev/sound/dsp?", HT_WAVEFORM, 0, NULL, NULL}, 253 {"/dev/sound/audio", HT_WAVEFORM, 0, NULL, NULL}, 254 {"/dev/sound/audio?", HT_WAVEFORM, 0, NULL, NULL}, 255 {"/dev/mixer", HT_MIXER, 0, NULL, NULL}, 256 {"/dev/mixer?", HT_MIXER, 0, NULL, NULL}, 257 {"/dev/sound/mixer", HT_MIXER, 0, NULL, NULL}, 258 {"/dev/sound/mixer?", HT_MIXER, 0, NULL, NULL}, 259 {"/dev/midi", HT_MIDI, 0, NULL, NULL}, 260 {"/dev/midi?", HT_MIDI, 0, NULL, NULL}, 261 {"/dev/rmidi", HT_MIDI, 0, NULL, NULL}, 262 {"/dev/rmidi?", HT_MIDI, 0, NULL, NULL}, 263 {"/dev/sound/midi", HT_MIDI, 0, NULL, NULL}, 264 {"/dev/sound/midi?", HT_MIDI, 0, NULL, NULL}, 265 {"/dev/sound/rmidi", HT_MIDI, 0, NULL, NULL}, 266 {"/dev/sound/rmidi?", HT_MIDI, 0, NULL, NULL}, 267 {"/dev/dmx", HT_DMX, 0, NULL, NULL}, 268 {"/dev/dmx?", HT_DMX, 0, NULL, NULL}, 269 {"/dev/misc/dmx", HT_DMX, 0, NULL, NULL}, 270 {"/dev/misc/dmx?", HT_DMX, 0, NULL, NULL}, 271 {"/dev/dmxin", HT_DMX, 0, NULL, NULL}, 272 {"/dev/dmxin?", HT_DMX, 0, NULL, NULL}, 273 {"/dev/misc/dmxin", HT_DMX, 0, NULL, NULL}, 274 {"/dev/misc/dmxin?", HT_DMX, 0, NULL, NULL}, 261 275 {"/dev/sndstat", HT_STATIC, sizeof(_sf__dev_sndstat)-1, _sf__dev_sndstat, NULL}, 262 276 #ifdef ROAR_DEFAULT_OSS_DEV … … 533 547 534 548 static struct devices * _get_device (const char * pathname) { 535 size_t len ;549 size_t len, pathlen; 536 550 int i; 551 int qm_match; 537 552 538 553 ROAR_DBG("_get_device(pathname='%s') = ?", pathname); 554 555 pathlen = strlen(pathname); 539 556 540 557 for (i = 0; _device_list[i].prefix != NULL; i++) { 541 558 len = strlen(_device_list[i].prefix); 542 559 560 qm_match = 0; 561 543 562 if ( _device_list[i].prefix[len-1] == '*' ) { 563 len--; 564 } else if ( _device_list[i].prefix[len-1] == '?' ) { 565 qm_match = 1; 544 566 len--; 545 567 } else { 546 568 len++; 547 569 } 570 548 571 if ( !strncmp(pathname, _device_list[i].prefix, len) ) { 549 return &(_device_list[i]); 572 if ( !qm_match || pathlen == (len + 1) ) 573 return &(_device_list[i]); 550 574 } 551 575 }
Note: See TracChangeset
for help on using the changeset viewer.