aboutsummaryrefslogtreecommitdiff
path: root/multimedia/qt5-multimedia
diff options
context:
space:
mode:
authorAdriaan de Groot <adridg@FreeBSD.org>2018-01-20 12:45:13 +0000
committerAdriaan de Groot <adridg@FreeBSD.org>2018-01-20 12:45:13 +0000
commit6a6e8b19af086689249c7c4c187cab4cc7b8b92e (patch)
treeaf878656349e1c204a4ed1af078d7f8414f222af /multimedia/qt5-multimedia
parent856421a6277503f5557a5c1b5b38dae7f13f23ea (diff)
downloadports-6a6e8b19af086689249c7c4c187cab4cc7b8b92e.tar.gz
ports-6a6e8b19af086689249c7c4c187cab4cc7b8b92e.zip
Notes
Diffstat (limited to 'multimedia/qt5-multimedia')
-rw-r--r--multimedia/qt5-multimedia/Makefile2
-rw-r--r--multimedia/qt5-multimedia/files/patch-src_plugins_alsa_qalsaaudiodeviceinfo.cpp70
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;