equal
deleted
inserted
replaced
60 { |
60 { |
61 handle = 0; |
61 handle = 0; |
62 |
62 |
63 device = QLatin1String(dev); |
63 device = QLatin1String(dev); |
64 this->mode = mode; |
64 this->mode = mode; |
|
65 |
|
66 checkSurround(); |
65 } |
67 } |
66 |
68 |
67 QAudioDeviceInfoInternal::~QAudioDeviceInfoInternal() |
69 QAudioDeviceInfoInternal::~QAudioDeviceInfoInternal() |
68 { |
70 { |
69 close(); |
71 close(); |
387 //if(snd_pcm_hw_params_test_rate(handle, params, SAMPLE_RATES[i], dir) == 0) |
389 //if(snd_pcm_hw_params_test_rate(handle, params, SAMPLE_RATES[i], dir) == 0) |
388 freqz.append(SAMPLE_RATES[i]); |
390 freqz.append(SAMPLE_RATES[i]); |
389 } |
391 } |
390 channelz.append(1); |
392 channelz.append(1); |
391 channelz.append(2); |
393 channelz.append(2); |
|
394 if (surround40) channelz.append(4); |
|
395 if (surround51) channelz.append(6); |
|
396 if (surround71) channelz.append(8); |
392 sizez.append(8); |
397 sizez.append(8); |
393 sizez.append(16); |
398 sizez.append(16); |
394 sizez.append(32); |
399 sizez.append(32); |
395 byteOrderz.append(QAudioFormat::LittleEndian); |
400 byteOrderz.append(QAudioFormat::LittleEndian); |
396 byteOrderz.append(QAudioFormat::BigEndian); |
401 byteOrderz.append(QAudioFormat::BigEndian); |
481 return QByteArray(); |
486 return QByteArray(); |
482 |
487 |
483 return devices.first(); |
488 return devices.first(); |
484 } |
489 } |
485 |
490 |
|
491 void QAudioDeviceInfoInternal::checkSurround() |
|
492 { |
|
493 QList<QByteArray> devices; |
|
494 surround40 = false; |
|
495 surround51 = false; |
|
496 surround71 = false; |
|
497 |
|
498 void **hints, **n; |
|
499 char *name, *descr, *io; |
|
500 |
|
501 if(snd_device_name_hint(-1, "pcm", &hints) < 0) |
|
502 return; |
|
503 |
|
504 n = hints; |
|
505 |
|
506 while (*n != NULL) { |
|
507 name = snd_device_name_get_hint(*n, "NAME"); |
|
508 descr = snd_device_name_get_hint(*n, "DESC"); |
|
509 io = snd_device_name_get_hint(*n, "IOID"); |
|
510 if((name != NULL) && (descr != NULL)) { |
|
511 QString deviceName = QLatin1String(name); |
|
512 if (mode == QAudio::AudioOutput) { |
|
513 if(deviceName.contains(QLatin1String("surround40"))) |
|
514 surround40 = true; |
|
515 if(deviceName.contains(QLatin1String("surround51"))) |
|
516 surround51 = true; |
|
517 if(deviceName.contains(QLatin1String("surround71"))) |
|
518 surround71 = true; |
|
519 } |
|
520 } |
|
521 if(name != NULL) |
|
522 free(name); |
|
523 if(descr != NULL) |
|
524 free(descr); |
|
525 if(io != NULL) |
|
526 free(io); |
|
527 ++n; |
|
528 } |
|
529 snd_device_name_free_hint(hints); |
|
530 } |
|
531 |
486 QT_END_NAMESPACE |
532 QT_END_NAMESPACE |