diff options
author | Adriaan de Groot <adridg@FreeBSD.org> | 2018-01-20 12:45:13 +0000 |
---|---|---|
committer | Adriaan de Groot <adridg@FreeBSD.org> | 2018-01-20 12:45:13 +0000 |
commit | 6a6e8b19af086689249c7c4c187cab4cc7b8b92e (patch) | |
tree | af878656349e1c204a4ed1af078d7f8414f222af /multimedia/qt5-multimedia | |
parent | 856421a6277503f5557a5c1b5b38dae7f13f23ea (diff) | |
download | ports-6a6e8b19af086689249c7c4c187cab4cc7b8b92e.tar.gz ports-6a6e8b19af086689249c7c4c187cab4cc7b8b92e.zip |
Notes
Diffstat (limited to 'multimedia/qt5-multimedia')
-rw-r--r-- | multimedia/qt5-multimedia/Makefile | 2 | ||||
-rw-r--r-- | multimedia/qt5-multimedia/files/patch-src_plugins_alsa_qalsaaudiodeviceinfo.cpp | 70 |
2 files changed, 71 insertions, 1 deletions
diff --git a/multimedia/qt5-multimedia/Makefile b/multimedia/qt5-multimedia/Makefile index 73f2be103833..536e56575ab3 100644 --- a/multimedia/qt5-multimedia/Makefile +++ b/multimedia/qt5-multimedia/Makefile @@ -2,7 +2,7 @@ PORTNAME= multimedia DISTVERSION= ${QT5_VERSION} -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= multimedia PKGNAMEPREFIX= qt5- diff --git a/multimedia/qt5-multimedia/files/patch-src_plugins_alsa_qalsaaudiodeviceinfo.cpp b/multimedia/qt5-multimedia/files/patch-src_plugins_alsa_qalsaaudiodeviceinfo.cpp new file mode 100644 index 000000000000..9de60f8cc005 --- /dev/null +++ b/multimedia/qt5-multimedia/files/patch-src_plugins_alsa_qalsaaudiodeviceinfo.cpp @@ -0,0 +1,70 @@ +Patch from Stephen Hurd. PR208570. Allow ALSA aliases. + +When using ALSA with FreeBSD, the direct snd_device instances are not +available, only plugin devices and "default". For programs which use +QAudio, this means there are *no* devices enumerated using +QAudio::availableDevices(). + +The attached patch adds the aliases to the available device list. + +--- src/plugins/alsa/qalsaaudiodeviceinfo.cpp.orig 2017-11-08 14:04:46 UTC ++++ src/plugins/alsa/qalsaaudiodeviceinfo.cpp +@@ -353,6 +353,58 @@ QList<QByteArray> QAlsaAudioDeviceInfo:: + ++n; + } + snd_device_name_free_hint(hints); ++ ++#ifdef Q_OS_FREEBSD ++ // Now find aliases... ++ snd_config_iterator_t pos, next; ++ snd_config_t *top, *node, *type; ++ snd_pcm_t *pcm; ++ snd_pcm_stream_t streamType; ++ const char *idString; ++ const char **ignoreId; ++ 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: ++ streamType = SND_PCM_STREAM_CAPTURE; ++ break; ++ case QAudio::AudioOutput: ++ streamType = SND_PCM_STREAM_PLAYBACK; ++ break; ++ default: ++ goto bad_mode; ++ } ++ // Find "pcm" nodes... ++ if (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", &type) < 0) ++ continue; ++ snd_config_get_id(node, &idString); ++ for (ignoreId = ignore; *ignoreId; ignoreId++) { ++ if (strcmp(*ignoreId, idString) == 0) ++ break; ++ } ++ if (*ignoreId) ++ continue; ++ // Ensure it's available... ++ if (snd_pcm_open(&pcm, idString, streamType, 0)) ++ continue; ++ snd_pcm_close(pcm); ++ const QString deviceName = QLatin1String(idString); ++ devices.append(deviceName.toLocal8Bit().constData()); ++ } ++ } ++ } ++bad_mode: ++#endif + #else + int idx = 0; + char* name; |