From owner-svn-ports-all@freebsd.org Sat Jan 20 12:45:15 2018 Return-Path: Delivered-To: svn-ports-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 00A48ECF5CF; Sat, 20 Jan 2018 12:45:15 +0000 (UTC) (envelope-from adridg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CECA5785F5; Sat, 20 Jan 2018 12:45:14 +0000 (UTC) (envelope-from adridg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EE9671C884; Sat, 20 Jan 2018 12:45:13 +0000 (UTC) (envelope-from adridg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0KCjDPT006611; Sat, 20 Jan 2018 12:45:13 GMT (envelope-from adridg@FreeBSD.org) Received: (from adridg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0KCjDbE006609; Sat, 20 Jan 2018 12:45:13 GMT (envelope-from adridg@FreeBSD.org) Message-Id: <201801201245.w0KCjDbE006609@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adridg set sender to adridg@FreeBSD.org using -f From: Adriaan de Groot Date: Sat, 20 Jan 2018 12:45:13 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r459518 - in head/multimedia/qt5-multimedia: . files X-SVN-Group: ports-head X-SVN-Commit-Author: adridg X-SVN-Commit-Paths: in head/multimedia/qt5-multimedia: . files X-SVN-Commit-Revision: 459518 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Jan 2018 12:45:15 -0000 Author: adridg Date: Sat Jan 20 12:45:13 2018 New Revision: 459518 URL: https://svnweb.freebsd.org/changeset/ports/459518 Log: Allow ALSA aliases in the Qt5 sound devices list. Patch by Stephen Hurd, seems to be ignored upstream. The new patch describes what it does and why it is needed. PR: 208570 Submitted by: Stephen Hurd Reported by: Stephen Hurd Approved by: tcberner (mentor) Differential Revision: https://reviews.freebsd.org/D13992 Added: head/multimedia/qt5-multimedia/files/patch-src_plugins_alsa_qalsaaudiodeviceinfo.cpp (contents, props changed) Modified: head/multimedia/qt5-multimedia/Makefile Modified: head/multimedia/qt5-multimedia/Makefile ============================================================================== --- head/multimedia/qt5-multimedia/Makefile Sat Jan 20 12:38:20 2018 (r459517) +++ head/multimedia/qt5-multimedia/Makefile Sat Jan 20 12:45:13 2018 (r459518) @@ -2,7 +2,7 @@ PORTNAME= multimedia DISTVERSION= ${QT5_VERSION} -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= multimedia PKGNAMEPREFIX= qt5- Added: head/multimedia/qt5-multimedia/files/patch-src_plugins_alsa_qalsaaudiodeviceinfo.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/qt5-multimedia/files/patch-src_plugins_alsa_qalsaaudiodeviceinfo.cpp Sat Jan 20 12:45:13 2018 (r459518) @@ -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 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;