376a377,427 > > // Now find aliases... > int res; > snd_config_iterator_t pos, next; > snd_config_t *top, *node, *tp; > snd_pcm_t *pcm; > snd_pcm_stream_t st; > const char *tps, *ids, **ig; > static const char *ignore[] = {"hw", "plughw", "plug", "dsnoop", "tee", > "file", "null", "shm", "cards", "rate_convert", NULL}; > > // Populate snd_config... > if (snd_config == NULL) > snd_config_update(); > if (snd_config != NULL) { > switch (mode) { > case QAudio::AudioInput: > st = SND_PCM_STREAM_CAPTURE; > break; > case QAudio::AudioOutput: > st = SND_PCM_STREAM_PLAYBACK; > break; > default: > goto bad_mode; > } > // Find "pcm" nodes... > if ((res = snd_config_search(snd_config, "pcm", &top)) >= 0) { > for (pos = snd_config_iterator_first(top), next = snd_config_iterator_next(pos); > pos != snd_config_iterator_end(top); > pos = next, next = snd_config_iterator_next(pos)) { > node = snd_config_iterator_entry(pos); > if (snd_config_search(node, "type", &tp) < 0) > continue; > snd_config_get_string(tp, &tps); > snd_config_get_id(node, &ids); > for (ig = ignore; *ig; ig++) { > if (strcmp(*ig, ids) == 0) > break; > } > if (*ig) > continue; > // Ensure it's available... > if (snd_pcm_open(&pcm, ids, st, 0)) > continue; > snd_pcm_close(pcm); > QString deviceName = QLatin1String(ids); > devices.append(deviceName.toLocal8Bit().constData()); > } > } > } > bad_mode: 387c438 < if (devices.size() > 0) --- > if (devices.size() > 0 && !devices.contains("default"))