platform/upstream/pulseaudio.git
3 years agobuild-sys: meson: check HAVE_MMX and HAVE_SSE before calling initializers
Igor V. Kovalenko [Sat, 5 Jun 2021 09:37:24 +0000 (12:37 +0300)]
build-sys: meson: check HAVE_MMX and HAVE_SSE before calling initializers

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/575>

3 years agojson: remove json from public API
Igor V. Kovalenko [Tue, 1 Jun 2021 19:35:26 +0000 (22:35 +0300)]
json: remove json from public API

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/570>

3 years agotests: fix json test for large numbers
Felipe Sateler [Wed, 2 Jun 2021 00:42:44 +0000 (20:42 -0400)]
tests: fix json test for large numbers

PRIu64 means print a uint64_t, not an unsigned long. This
is warned by the compiler:

warning: format '%llu' expects argument of type 'long long unsigned int', but argument 2 has type 'long unsigned int'

This causes build failures on some 32-bit archs

https://buildd.debian.org/status/fetch.php?pkg=pulseaudio&arch=i386&ver=14.99.1%2Bdfsg1-2&stamp=1622553415&raw=0

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/571>

3 years agobuild-sys: meson: restore big endian detection
Igor V. Kovalenko [Thu, 3 Jun 2021 06:43:10 +0000 (09:43 +0300)]
build-sys: meson: restore big endian detection

Autotools used AC_C_BIGENDIAN to set WORDS_BIGENDIAN, add Meson implementation.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/572>

3 years agowebrtc: Avoid using dynamic strings as format strings
Ilja van Sprundel [Sun, 23 May 2021 21:10:49 +0000 (21:10 +0000)]
webrtc: Avoid using dynamic strings as format strings

Properly call format functions, dynamic strings shouldn't be passed as
format strings. Instead a format string of "%s" should be used, with the
dynamic string as it's argument.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/563>

3 years agoTranslated using Weblate (Finnish)
Ricky Tigg [Fri, 28 May 2021 13:46:13 +0000 (13:46 +0000)]
Translated using Weblate (Finnish)

Currently translated at 90.9% (515 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/fi/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Danish)
scootergrisen [Fri, 21 May 2021 22:52:52 +0000 (22:52 +0000)]
Translated using Weblate (Danish)

Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/da/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Danish)
scootergrisen [Fri, 21 May 2021 22:33:37 +0000 (22:33 +0000)]
Translated using Weblate (Danish)

Currently translated at 97.7% (553 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/da/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Ukrainian)
Yuri Chornoivan [Tue, 18 May 2021 11:01:49 +0000 (11:01 +0000)]
Translated using Weblate (Ukrainian)

Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/uk/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Hebrew)
Yaron Shahrabani [Tue, 11 May 2021 10:53:45 +0000 (10:53 +0000)]
Translated using Weblate (Hebrew)

Currently translated at 29.6% (168 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/he/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Hebrew)
Yaron Shahrabani [Mon, 10 May 2021 05:46:44 +0000 (05:46 +0000)]
Translated using Weblate (Hebrew)

Currently translated at 28.6% (162 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/he/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Swedish)
Anders Jonsson [Mon, 3 May 2021 15:28:27 +0000 (15:28 +0000)]
Translated using Weblate (Swedish)

Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/sv/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Italian)
Milo Casagrande [Sun, 18 Apr 2021 19:42:14 +0000 (19:42 +0000)]
Translated using Weblate (Italian)

Currently translated at 98.5% (558 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/it/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Danish)
scootergrisen [Thu, 15 Apr 2021 12:23:52 +0000 (12:23 +0000)]
Translated using Weblate (Danish)

Currently translated at 97.3% (551 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/da/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Korean)
simmon [Mon, 12 Apr 2021 05:11:25 +0000 (05:11 +0000)]
Translated using Weblate (Korean)

Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/ko/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Spanish)
Toni Estevez [Sun, 11 Apr 2021 07:19:23 +0000 (07:19 +0000)]
Translated using Weblate (Spanish)

Currently translated at 91.5% (518 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/es/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Korean)
simmon [Tue, 6 Apr 2021 04:25:12 +0000 (04:25 +0000)]
Translated using Weblate (Korean)

Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/ko/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Korean)
simmon [Thu, 1 Apr 2021 06:02:28 +0000 (06:02 +0000)]
Translated using Weblate (Korean)

Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/ko/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Dutch)
Pjotr Vertaalt [Mon, 29 Mar 2021 22:09:17 +0000 (22:09 +0000)]
Translated using Weblate (Dutch)

Currently translated at 99.1% (561 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/nl/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Dutch)
Pjotr Vertaalt [Thu, 25 Mar 2021 20:36:38 +0000 (20:36 +0000)]
Translated using Weblate (Dutch)

Currently translated at 99.1% (561 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/nl/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Korean)
simmon [Thu, 25 Mar 2021 07:51:29 +0000 (07:51 +0000)]
Translated using Weblate (Korean)

Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/ko/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Hebrew)
Yaron Shahrabani [Thu, 25 Mar 2021 08:05:57 +0000 (08:05 +0000)]
Translated using Weblate (Hebrew)

Currently translated at 27.0% (153 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/he/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Swedish)
Göran Uddeborg [Tue, 23 Mar 2021 12:06:02 +0000 (12:06 +0000)]
Translated using Weblate (Swedish)

Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/sv/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Dutch)
Pjotr Vertaalt [Wed, 24 Mar 2021 08:53:48 +0000 (08:53 +0000)]
Translated using Weblate (Dutch)

Currently translated at 98.9% (560 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/nl/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Dutch)
Pjotr Vertaalt [Mon, 22 Mar 2021 19:39:13 +0000 (19:39 +0000)]
Translated using Weblate (Dutch)

Currently translated at 97.5% (552 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/nl/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Dutch)
Pjotr Vertaalt [Mon, 22 Mar 2021 18:00:58 +0000 (18:00 +0000)]
Translated using Weblate (Dutch)

Currently translated at 97.5% (552 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/nl/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Korean)
simmon [Fri, 19 Mar 2021 18:25:46 +0000 (18:25 +0000)]
Translated using Weblate (Korean)

Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/ko/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Italian)
Milo Casagrande [Thu, 18 Mar 2021 10:29:19 +0000 (10:29 +0000)]
Translated using Weblate (Italian)

Currently translated at 97.8% (554 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/it/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Norwegian Nynorsk)
Karl Ove Hufthammer [Wed, 10 Mar 2021 19:59:00 +0000 (19:59 +0000)]
Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/nn/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Turkish)
Oğuz Ersen [Tue, 9 Mar 2021 10:14:28 +0000 (10:14 +0000)]
Translated using Weblate (Turkish)

Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/tr/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Finnish)
Ricky Tigg [Tue, 9 Mar 2021 13:14:08 +0000 (13:14 +0000)]
Translated using Weblate (Finnish)

Currently translated at 90.9% (515 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/fi/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Polish)
Piotr Drąg [Tue, 9 Mar 2021 15:55:30 +0000 (15:55 +0000)]
Translated using Weblate (Polish)

Currently translated at 100.0% (566 of 566 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/pl/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoTranslated using Weblate (Hebrew)
Yaron Shahrabani [Mon, 8 Mar 2021 08:42:31 +0000 (08:42 +0000)]
Translated using Weblate (Hebrew)

Currently translated at 26.0% (147 of 564 strings)

Translation: pulseaudio/pulseaudio
Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/he/
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/573>

3 years agoalsa-mixer: prevent double-free on decibel fixes object key
Igor V. Kovalenko [Tue, 1 Jun 2021 17:27:03 +0000 (20:27 +0300)]
alsa-mixer: prevent double-free on decibel fixes object key

When decibel fixes object is cloned, there is only a shallow copy of `key`
string member of original object. This may lead to double-free crash reported in
pipewire tracker https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1125

Fix this by doing a deep copy of `key` string to maintain correct ownership.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/569>

3 years agoDon't link libpulsecommon with GLib and GTK
Felipe Sateler [Wed, 19 May 2021 04:15:29 +0000 (00:15 -0400)]
Don't link libpulsecommon with GLib and GTK

This was the behaviour with the autotools build.

Fixes #1210

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/559>

3 years agoudev: fix match expression to Focusrite Saffire Pro i/o series for ignorance
Takashi Sakamoto [Sun, 30 May 2021 04:09:44 +0000 (13:09 +0900)]
udev: fix match expression to Focusrite Saffire Pro i/o series for ignorance

It seems that in sound context environment variable is not available for
match expression.

This commit utilizes walkthrough to refer to attributes in fw node. The
combination of vendor, model, units is enough to match the node since
the attributes of fw unit doesn't have vendor.

Fix: 37358e42c49a ("alsa: Suppress udev detection of sound card for some units on IEEE 1394 bus")
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/566>

3 years agoalsa-mixer: Add support for usb audio in the Dell dock WD19
Igor V. Kovalenko [Wed, 19 May 2021 17:57:52 +0000 (20:57 +0300)]
alsa-mixer: Add support for usb audio in the Dell dock WD19

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/562>

3 years agobluetooth: aptX: Improve error message for when aptX element is not found
Sanchayan Maity [Wed, 19 May 2021 13:55:08 +0000 (19:25 +0530)]
bluetooth: aptX: Improve error message for when aptX element is not found

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/561>

3 years agobluetooth: ldac: Fix missing check for RTP LDAC payloader element
Sanchayan Maity [Wed, 19 May 2021 08:07:37 +0000 (13:37 +0530)]
bluetooth: ldac: Fix missing check for RTP LDAC payloader element

While at it, improve the error message to include the name of the
element which was not found.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/560>

3 years agobuild-sys: meson: make doxygen optional
Igor V. Kovalenko [Tue, 18 May 2021 21:52:56 +0000 (00:52 +0300)]
build-sys: meson: make doxygen optional

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/558>

3 years agobuild-sys: meson: only require libltdl if daemon is built
Igor V. Kovalenko [Tue, 18 May 2021 16:47:32 +0000 (19:47 +0300)]
build-sys: meson: only require libltdl if daemon is built

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/557>

3 years agobuild-sys: Fix a couple of meson warnings v14.99.1
Arun Raghavan [Mon, 17 May 2021 20:03:28 +0000 (16:03 -0400)]
build-sys: Fix a couple of meson warnings

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/556>

3 years agobuild-sys: Bump libpulse soversion
Arun Raghavan [Mon, 17 May 2021 15:32:35 +0000 (11:32 -0400)]
build-sys: Bump libpulse soversion

Lots of changes, particularly related to the messaging API.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/555>

3 years agoApply 3 suggestion(s) to 1 file(s)
Jason Nader [Sat, 13 Mar 2021 23:49:44 +0000 (23:49 +0000)]
Apply 3 suggestion(s) to 1 file(s)

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>

3 years agoApply 1 suggestion(s) to 1 file(s)
Jason Nader [Mon, 1 Feb 2021 10:06:21 +0000 (10:06 +0000)]
Apply 1 suggestion(s) to 1 file(s)

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>

3 years agoApply 1 suggestion(s) to 1 file(s)
Jason Nader [Mon, 1 Feb 2021 10:06:06 +0000 (10:06 +0000)]
Apply 1 suggestion(s) to 1 file(s)

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>

3 years agoApply 1 suggestion(s) to 1 file(s)
Jason Nader [Mon, 1 Feb 2021 10:06:04 +0000 (10:06 +0000)]
Apply 1 suggestion(s) to 1 file(s)

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>

3 years agopactl: add `get-(source|sink)-mute` commands
Klaas van Schelven [Mon, 18 Jan 2021 12:55:29 +0000 (13:55 +0100)]
pactl: add `get-(source|sink)-mute` commands

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>

3 years agopactl: add `get_source_volume` command
Jason Nader [Thu, 10 Dec 2020 04:58:20 +0000 (13:58 +0900)]
pactl: add `get_source_volume` command

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>

3 years agopactl: add `get_default_source` command
Jason Nader [Thu, 10 Dec 2020 04:49:53 +0000 (13:49 +0900)]
pactl: add `get_default_source` command

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>

3 years agopactl: add `get-sink-volume` command
Jason Nader [Tue, 8 Dec 2020 04:55:31 +0000 (13:55 +0900)]
pactl: add `get-sink-volume` command

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>

3 years agopactl: add `get_default_sink` command
Jason Nader [Mon, 7 Dec 2020 14:28:34 +0000 (23:28 +0900)]
pactl: add `get_default_sink` command

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430>

3 years agobluetooth: Add avrcp_absolute_volume module flag for disablement
Marijn Suijten [Thu, 22 Apr 2021 19:59:37 +0000 (21:59 +0200)]
bluetooth: Add avrcp_absolute_volume module flag for disablement

Not all peers might work fine with Absolute Volume, provide the user
with an option to disable it without impairing other AVRCP-related
commands like media status and playback controls.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/239>

3 years agobluetooth: Delay A2DP Absolute Volume setup until property is available
Marijn Suijten [Sat, 27 Mar 2021 13:05:00 +0000 (14:05 +0100)]
bluetooth: Delay A2DP Absolute Volume setup until property is available

The Volume property on org.bluez.MediaTransport1 is required to utilize
Absolute Volume, but it will only become availabe if the peer device
supports the feature.  This happens asynchronously somewhere after the
transport itself has been acquired, after which the callbacks are
attached and software volume is reset.

To prevent race conditions availability of the property is also checked
on startup through a "Get" call.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/239>

3 years agobluetooth: Report a2dp_source volume changes to the source device
Marijn Suijten [Thu, 16 Jan 2020 14:39:41 +0000 (15:39 +0100)]
bluetooth: Report a2dp_source volume changes to the source device

Write the current volume to the `Volume` DBus property to keep the
volume on the remote in sync.  Without this the remote device shows the
wrong volume, and any attempts to change it will cause an unexpected
jump when the local volume has also been adjusted.

Thanks to prior investments to improve volume synchronization, setting
up callbacks and sending initial volume to the peer for HFP/HSP
implementing this feature is as easy as unconditionally assigning a
valid function to `set_source_volume`.  `source_setup_volume_callback`
is already responsible for attaching a `SOURCE_VOLUME_CHANGED` hook and
sending initial (restored) volume to the peer (signifying support for
Absolute Volume - if not derived from the presence of FEATURE_CATEGORY_2
on the profile yet).

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/239>

3 years agobluetooth: Synchronize AVRCP Absolute Volume with A2DP sink
Marijn Suijten [Thu, 16 Jan 2020 01:49:01 +0000 (02:49 +0100)]
bluetooth: Synchronize AVRCP Absolute Volume with A2DP sink

Like the previous commit this handles `Volume` property changes but
applies them to an A2DP sink instead of source stream.  As mentioned in
the AVRCP spec v1.6.2 §5.8 the rendering device (A2DP sink) is
responsible for performing volume attenuation meaning PulseAudio should
pass through audio as-is without performing any attenuation in SW.
Setting a valid pointer to `set_sink_volume` and returning `true` from
`should_attenuate_volume` attaches a hardware callback to `pa_sink` such
that no volume attenuation is performed anymore.

In addition to receiving volume change notifications it is also possible
to control remote volume by writing a new value to the DBus property.
This is especially useful when playing back to in-ear audio devices
which usually lack physical buttons to adjust the final volume on the
sink.

While software volume (used before this patch) is generally fine it is
annoying to crank it up all the way to 100% when a previous connection
to a different device left saved volume on the peer at a low volume.
Providing this bidirectional synchronization is most natural to users
who wish to use physical controls on their headphones, are used to this
from their smartphone, or aforementioned volume mismatches where both PA
as source and the peer as sink/rendering device are performing
attenutation.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/239>

3 years agobluetooth: Update source software volume on AVRCP SetAbsoluteVolume
Marijn Suijten [Sat, 27 Mar 2021 09:53:07 +0000 (10:53 +0100)]
bluetooth: Update source software volume on AVRCP SetAbsoluteVolume

The A2DP spec mandates that the audio rendering device - the device
receiving audio, in our case a `pa_source` - is responsible for
performing attenuation:

AVRCP v1.6.2, §5.8:
    The SetAbsoluteVolume command is used to set an absolute volume to be used by the rendering device.

BlueZ models this call as a change of the `Volume` property on the
`org.bluez.MediaTransport1` interface.  Supporting Absolute Volume is
optional but BlueZ unconditionally reports feature category 2 in its
profile, mandating support.  Hence remote devices (ie. a phone) playing
back audio to a machine running PulseAudio assume volume is to be
changed through SetAbsoluteVolume, without performing any local
attenuation.

Future changes will implement this feature the other way around: setting
an initial value for the `Volume` property as well as propagating
`pa_source` volume changes back to the peer.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/239>

3 years agobluetooth: Move HSP_MAX_GAIN to header for reuse in n_volume_steps
Marijn Suijten [Sat, 27 Mar 2021 10:42:37 +0000 (11:42 +0100)]
bluetooth: Move HSP_MAX_GAIN to header for reuse in n_volume_steps

Instead of hardcoding the number `16`, use `HSP_MAX_GAIN + 1`.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/239>

3 years agonull-sink: Request no more than the configured latency from sink-input
Georg Chini [Sun, 16 May 2021 17:03:58 +0000 (19:03 +0200)]
null-sink: Request no more than the configured latency from sink-input

In the case, where the latency is larger than the maximum block size,
module-null-sink will request multiples of the maximum block size from
the sink input instead of limiting the requested amount of data to the
the configured latency.

This patch fixes the problem.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/554>

3 years agoRevert "alsa-mixer: Set "Front" control to 0 dB on headphone path"
Hui Wang [Thu, 13 May 2021 01:16:58 +0000 (09:16 +0800)]
Revert "alsa-mixer: Set "Front" control to 0 dB on headphone path"

This reverts commit 96369919e5100865e2469e42fb8f4b8e38e41aef.

The commit was originally for the issue of Headphone can't output
sound, that was because the Headphone and Lineout share the 1st alsa
mixer and DAC, but this commit introduced a new issue of the speaker
is not muted after switching to headphone.

A recent merged kernel commit (f48652bbe3ae@linux) could fix the 1st
issue, so we could revert the fix of the 1st issue from PA, then the
2nd issue is fixed automatically.

BugLink: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/747
Signed-off-by: Hui Wang <hui.wang@canonical.com>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/553>

3 years agobuild-sys: meson: Add missing include dir
Jan Alexander Steffens (heftig) [Wed, 12 May 2021 19:10:54 +0000 (21:10 +0200)]
build-sys: meson: Add missing include dir

Otherwise building module-echo-cancel fails here:

    FAILED: src/modules/module-echo-cancel.so.p/echo-cancel_adrian-aec.c.o
    cc -Isrc/modules/module-echo-cancel.so.p -I. -I../pulseaudio -Isrc -I../pulseaudio/src -I/usr/include/orc-0.4 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=gnu11 -march=x86-64 -mtune=generic -O2 -p>
    ../pulseaudio/src/modules/echo-cancel/adrian-aec.c:30:10: fatal error: adrian-aec-orc-gen.h: No such file or directory
       30 | #include "adrian-aec-orc-gen.h"
          |          ^~~~~~~~~~~~~~~~~~~~~~

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/552>

3 years agoAdd port order metadata to JACK sink / source ports
Christopher Arndt [Sat, 1 May 2021 14:57:13 +0000 (16:57 +0200)]
Add port order metadata to JACK sink / source ports

Adds JACK metadata property to ports created by *module-jack-sink*
and *module-jack-source* with key `JACK_METADATA_ORDER`, the port index
(1-based, in order of creation) as value and type
`http://www.w3.org/2001/XMLSchema#int`.

This allows JACK applications, which use JACK metadata, to list or display
these ports in correct order.

See also: https://jackaudio.org/api/group__Metadata.html

Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/550>

3 years agowin32: Use DACLs when setting socket permissions
Patrick Gaskin [Fri, 23 Apr 2021 01:44:40 +0000 (21:44 -0400)]
win32: Use DACLs when setting socket permissions

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/548>

3 years agocli-command: Replace config dir with toplevel for .include on win32
Patrick Gaskin [Fri, 23 Apr 2021 06:25:58 +0000 (02:25 -0400)]
cli-command: Replace config dir with toplevel for .include on win32

This makes the behaviour match pa_{open,find}_config_file by
replacing PA_DEFAULT_CONFIG_DIR with the toplevel.

This fixes the hardcoded paths for {default,system}.pa.d introduced
in 45abd0b43c7901b375afcba6d9b0e1cca2f349a8 (!361).

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/545>

3 years agobluetooth: adjust sync to source with different sample spec
Igor V. Kovalenko [Wed, 21 Apr 2021 21:09:09 +0000 (00:09 +0300)]
bluetooth: adjust sync to source with different sample spec

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/544>

3 years agobuild-sys: meson: Merge system_conf config data from default_conf
Patrick Gaskin [Thu, 22 Apr 2021 13:04:43 +0000 (09:04 -0400)]
build-sys: meson: Merge system_conf config data from default_conf

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/547>

3 years agostream-restore: Fix use of uninitialized variable
Georg Chini [Tue, 20 Apr 2021 10:18:43 +0000 (12:18 +0200)]
stream-restore: Fix use of uninitialized variable

The variable card_name in sink_input_preferred_sink_changed_cb and
source_output_preferred_source_changed_cb could be used uninitialized,
which leads to invalid database entries.

This patch fixes the problem.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/543>

3 years agobuild-sys: meson: do not install manpages for disabled parts
Igor V. Kovalenko [Mon, 19 Apr 2021 17:02:19 +0000 (20:02 +0300)]
build-sys: meson: do not install manpages for disabled parts

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/540>

3 years agobuild-sys: meson: allow building client libraries only
Igor V. Kovalenko [Sun, 18 Apr 2021 10:13:52 +0000 (13:13 +0300)]
build-sys: meson: allow building client libraries only

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/540>

3 years agoparecord: really fix recording OGG
Martin Wilck [Mon, 19 Apr 2021 15:55:28 +0000 (17:55 +0200)]
parecord: really fix recording OGG

432a91ed ("fix "Failed to open audio file" for FLAC and OGG)" claimed
to fix recording of OGG files with pacat, but it really fixed only
FLAC. This patch must be added on top to fix OGG, too.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/542>

3 years agoloopback: Fix crash bug
Georg Chini [Mon, 19 Apr 2021 06:19:50 +0000 (08:19 +0200)]
loopback: Fix crash bug

The loopback message may be called after the sink input is already destroyed which causes
a crash. Also memory is leaked because the message object is not correctly freed.

This patch fixes the problems by adding a "dead" flag to the message structure and freeing
the message object on exit.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/541>

3 years agoalsa-mixer: Allow selected fallback mappings in all profile sets
Igor V. Kovalenko [Fri, 16 Apr 2021 20:42:00 +0000 (23:42 +0300)]
alsa-mixer: Allow selected fallback mappings in all profile sets

When fallback mapping is selected all subsequent profile sets containing
selected mapping are ignored. When there are only e.g. fallback input mappings
available, admitted profile set will only contain one profile with selected
first input fallback mapping and no outputs, and rest of profiles will only
contain outputs and no inputs. When there are only fallback input and output
mappings, there will be no profiles admitted at all.

Fix this by making sure that selected first fallback input or output mapping
is actually allowed to exist in all probed profile sets.

Note while this change allows selected fallback mappings to be found in duplex
configuraitons, probing fallbacks still can fail if there is more than one input
fallback and first one (selected) does not work in duplex configurations.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/539>

3 years agoparecord: fix "Failed to open audio file" for FLAC and OGG
Martin Wilck [Mon, 15 Mar 2021 12:01:28 +0000 (13:01 +0100)]
parecord: fix "Failed to open audio file" for FLAC and OGG

This patch fixes the following error:

$ pacat --file-format=ogg -r test.ogg
Failed to open audio file.
$ parecord sep.flac
Failed to open audio file.

libsndfile errors out if a WAV or OGG file is set to have anything but
SF_ENDIAN_FILE:

https://github.com/libsndfile/libsndfile/commit/f4d1646e5cd96444a75c6327a9d49739f81d251e

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/526>

3 years agobluetooth: disable HSP HS profile by default
Igor V. Kovalenko [Thu, 15 Apr 2021 17:19:27 +0000 (20:19 +0300)]
bluetooth: disable HSP HS profile by default

A few headsets have issues if HFP HF profile connection is attempted before
HSP HS profile connection is closed. Looks like this could happen because
bluez bluetoothd alows to make simultaneous HSP HS and HFP HF peer connections.

One of affected headsets is WH-1000XM2

Until we find out how to prevent simultaneous HSP HS and HFP HF connections,
when native backend has HFP HF profile enabled (this is the default) do disable
HSP HS completely unless user explicitly request it via discovery modarg.

Do this by adding module-bluetooth-discover arg enable_native_hsp_hs,
default to inverse of enable_native_hfp_hf.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/538>

3 years agobluetooth: handle HFP codec list in any order
Igor V. Kovalenko [Wed, 14 Apr 2021 19:55:38 +0000 (22:55 +0300)]
bluetooth: handle HFP codec list in any order

HFP HF peer can send +BAC= list of codecs in any order and pa only expects "1,2"
Fix this by actually parsing codec list elements while looking for "2" (mSBC)

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/537>

3 years agoproplist: tweak documentation for `pa_proplist_get()`
Lyndon Brown [Fri, 9 Apr 2021 00:47:58 +0000 (01:47 +0100)]
proplist: tweak documentation for `pa_proplist_get()`

to clarify that only mutating proplist calls potentially invalidate results
of earlier get requests, thus addressing the confusion found at [1].

[1]: https://github.com/jnqnfe/pulse-binding-rust/issues/38

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/536>

3 years agobluetooth: mSBC: log lost input audio packets at debug level
Igor V. Kovalenko [Thu, 4 Mar 2021 13:24:31 +0000 (16:24 +0300)]
bluetooth: mSBC: log lost input audio packets at debug level

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: add modarg to allow disabling mSBC codec
Igor V. Kovalenko [Wed, 3 Mar 2021 16:32:43 +0000 (19:32 +0300)]
bluetooth: add modarg to allow disabling mSBC codec

Add module-bluetooth-discover argument enable_msbc, default is true (enabled)

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: split BT codec from A2DP SEP configuration api
Igor V. Kovalenko [Tue, 2 Mar 2021 18:33:24 +0000 (21:33 +0300)]
bluetooth: split BT codec from A2DP SEP configuration api

Common API for all bluetooth codecs is now pa_bt_codec.
API to negotiate and configure A2DP SEP over Bluez is now pa_a2dp_endpoint_conf.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: set initial packet size to 60
Igor V. Kovalenko [Mon, 1 Mar 2021 21:52:59 +0000 (00:52 +0300)]
bluetooth: set initial packet size to 60

Raise initial MTU size to fix frame size when hci can do 60 byte frames.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: add more call indicators
Igor V. Kovalenko [Tue, 23 Feb 2021 21:58:43 +0000 (00:58 +0300)]
bluetooth: add more call indicators

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: produce silence on mSBC decoding error
Igor V. Kovalenko [Thu, 25 Feb 2021 21:00:47 +0000 (00:00 +0300)]
bluetooth: produce silence on mSBC decoding error

We are supposed to conceal packet loss. This is not trivial but we can at least
produce silence instead of breaking on mSBC decoding error.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: remember negotiated HFP codec in native backend
Igor V. Kovalenko [Thu, 25 Feb 2021 21:23:18 +0000 (00:23 +0300)]
bluetooth: remember negotiated HFP codec in native backend

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: show negotiated HFP codec
Igor V. Kovalenko [Mon, 22 Feb 2021 20:14:37 +0000 (23:14 +0300)]
bluetooth: show negotiated HFP codec

While codec switching for HFP is not implemented, show current codec via
messaging api.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: add mSBC to backend-ofono
Igor V. Kovalenko [Thu, 25 Feb 2021 19:36:31 +0000 (22:36 +0300)]
bluetooth: add mSBC to backend-ofono

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: prepare to redo transport writeout scheduling
Igor V. Kovalenko [Sun, 21 Feb 2021 08:41:52 +0000 (11:41 +0300)]
bluetooth: prepare to redo transport writeout scheduling

Bluetooth SCO is synchronous stream, make our writes more uniformly paced.
To do this, first separate writing to socket from rendering a frame.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: mSBC: ignore empty encoded frame
Igor V. Kovalenko [Wed, 3 Mar 2021 20:13:52 +0000 (23:13 +0300)]
bluetooth: mSBC: ignore empty encoded frame

If input block size is shorter than SBC frame codesize, encoder will return 0.
Log this and skip whole input block.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: mSBC: ignore all-zero packets
Igor V. Kovalenko [Tue, 2 Mar 2021 12:00:04 +0000 (15:00 +0300)]
bluetooth: mSBC: ignore all-zero packets

This is a workaround for hardware/driver which inserts all-zero packets in what
otherwise looks like a valid mSBC stream.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: use helper to set multiple transport object attributes
Igor V. Kovalenko [Sat, 20 Feb 2021 17:18:13 +0000 (20:18 +0300)]
bluetooth: use helper to set multiple transport object attributes

For mSBC to work correctly the following must be set correctly
- codec object
- transport write method
- transport setsockopt method

Use helper method to set all three simultaneously.
Static configuration structure may be cleaner solution.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: apply write MTU detection based on read packet size
Igor V. Kovalenko [Wed, 17 Feb 2021 13:31:13 +0000 (16:31 +0300)]
bluetooth: apply write MTU detection based on read packet size

HFP Audio Connection SCO configuration is negotiated symmetrically in both
directions, and USB HCI SCO packet framing is also symmetric in both directions.
This means that packet size will be the same for reads and writes over HFP SCO
socket.

HFP profile specification states that valid speech data shall exist on the
Synchronous Connection in both directions after the Audio Connection is
established.

This guarantees that an incoming packet will arrive shortly after SCO connection
is established. Use it's size to fix write MTU in case kernel value is wrong.

Discussion here https://lore.kernel.org/patchwork/patch/1303411/

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: add wideband audio codec negotiation to HFP
James Bottomley [Wed, 17 Feb 2021 06:44:35 +0000 (09:44 +0300)]
bluetooth: add wideband audio codec negotiation to HFP

The HFP protocol supports the ability to negotiate codecs if that is
supported by both AG and HF.  This patch adds advertising of codec
negotiation support and the ability to negotiate a codec change.  The
only currently supported extra codec (as of HF 1.7.1) is mSBC.  mSBC
requires that the transmission be done over an eSCO link with
Transparent Data.  The linux kernel ensures the former, but we have to
manually set the socket to transparent data.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: add support for mSBC codec
James Bottomley [Wed, 17 Feb 2021 06:44:34 +0000 (09:44 +0300)]
bluetooth: add support for mSBC codec

Adding processing support for the mSBC codec is somewhat problematic,
because, although it is a SBC codec, the a2dp handling can't simply be
reused because the codec is used on an eSCO link with transparent
data, meaning the transmission unit has to be 48 bytes (fragmenting
the codec packets) and reassembly and boundary detection is required
to be done by the implementation.  Therefore we have to implement
separate render and push routines for msbc that do this fragmentation.

Fragmentation is done by emulating circular buffers.  The receive
(push) buffer is easy, since the mSBC packet size is 60, simply have a
buffer of this size in the sbc_info area where the fragments are
reassembled.  Once we have a full 60 bytes, decode and restart from
zero.  The send (render) buffer is more problematic, since the
transmit must be done from contiguous memory.  This means that the
buffer must be the lowest common multiple of the transmission unit and
the packet size.  This value is 240 since 240/48 == 5 and 240/60 == 4.
So the buffer pointers are reset at 240 which is a whole number of
both rendered packets and eSCO transmission units.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: add CVSD codec implementation
Igor V. Kovalenko [Wed, 3 Mar 2021 15:14:53 +0000 (18:14 +0300)]
bluetooth: add CVSD codec implementation

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: unify decoder code paths
Igor V. Kovalenko [Wed, 3 Mar 2021 05:45:14 +0000 (08:45 +0300)]
bluetooth: unify decoder code paths

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agobluetooth: unify encoder code paths
Igor V. Kovalenko [Wed, 3 Mar 2021 05:12:08 +0000 (08:12 +0300)]
bluetooth: unify encoder code paths

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/507>

3 years agostream-restore: Fix NULL preferred device handling
Tanu Kaskinen [Mon, 5 Apr 2021 14:24:22 +0000 (17:24 +0300)]
stream-restore: Fix NULL preferred device handling

When an application sets a device for a newly created stream, we treat
that as a temporary setting, and don't save it as the preferred device
for future streams. The handling for this was broken, however: if the
stream already had a preferred device saved in the stream-restore
database, that was unset.

This was a regression introduced in
bc0e72832057c9d2744d95767dff2a48c83082c2 and
70bbbcdc8440a6a616467a24496f497b225a2cee. These commits tried to detect
in subscribe_callback() when the preferred device is cleared, but as a
side effect the preferred device started to get cleared from the
database also when a stream was created with a device set by the
application.

There's no way for subscribe_callback() to distinguish the different
cases of the preferred device being NULL. This problem is solved by
using the PREFERRED_SINK/SOURCE_CHANGED hooks. The hooks are only called
when the preferred device really changes.

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1063
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/535>

3 years agosink-input, source-output: Add hooks for preferred device changes
Tanu Kaskinen [Mon, 5 Apr 2021 14:13:27 +0000 (17:13 +0300)]
sink-input, source-output: Add hooks for preferred device changes

The hooks are fired when the preferred device changes. This is useful
for module-stream-restore.

I added new set_preferred_sink/source() functions for firing the hooks.
The functions also log the preferred device changes.

There was already pa_sink_input_set_preferred_sink(), but that had a
side effect of moving the stream, so I needed a new function. Since it
can be confusing when the two similarly named functions should be
called, I added a comment for pa_sink_input_set_preferred_sink() that
explains the different situations.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/535>

3 years agobluetooth: prioritize native backend HFP HF connection
Igor V. Kovalenko [Sat, 3 Apr 2021 05:10:46 +0000 (08:10 +0300)]
bluetooth: prioritize native backend HFP HF connection

Bluez prepends newly registered profile to a list of supported profiles,
and new peer profile connections are attempted in reverse order of profile
registration.

Currently native backend would register HFP AG profile before HSP AG profile.
When peer supports both HFP HF and HSP HS profiles, this registration order
causes extra HSP HS connection attempt before native backend would reject it
to make sure peer is reconnected with HFP HF profile.

Reorder HSP AG profile registration before HFP AG to make sure peer supporting
both profiles connects with HFP HF profile first.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/534>

3 years agobluetooth: update messaging api reference
Igor V. Kovalenko [Thu, 25 Mar 2021 18:57:50 +0000 (21:57 +0300)]
bluetooth: update messaging api reference

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/525>

3 years agomessage-params: clean up
Igor V. Kovalenko [Sun, 14 Mar 2021 07:24:51 +0000 (10:24 +0300)]
message-params: clean up

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/525>