platform/upstream/pulseaudio.git
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>

3 years agomessage-params: use JSON instead of custom format
Igor V. Kovalenko [Sun, 14 Mar 2021 06:49:05 +0000 (09:49 +0300)]
message-params: use JSON instead of custom format

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

3 years agojson: add JSON encoder
Igor V. Kovalenko [Sat, 13 Mar 2021 08:23:43 +0000 (11:23 +0300)]
json: add JSON encoder

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

3 years agojson: improve supported numbers
Igor V. Kovalenko [Sat, 27 Mar 2021 07:07:22 +0000 (10:07 +0300)]
json: improve supported numbers

Use 64bit signed integers and fix double value conversion.

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

3 years agobluetooth: Only use hardware volume callbacks for peer attenuation
Marijn Suijten [Thu, 4 Mar 2021 11:12:37 +0000 (12:12 +0100)]
bluetooth: Only use hardware volume callbacks for peer attenuation

Setting these callbacks adds the HW_{VOLUME,MUTE}_CTRL flag even when
PulseAudio is solely responsible for performing attenuation whilst only
keeping the peer posted on changes.  For this case the hardware callback
is not registered at all but instead a hook is attached to catch
PA_CORE_HOOK_{SINK,SOURCE}_VOLUME_CHANGED.  Only when the peer performs
attenuation (the peer is in HeadSet/HandsFree role) are the callbacks
used, without touching PA software volume at all.  A future change could
potentially use software volume to compensate for the extremely coarse
16 steps of volume control in HSP and HFP, and to allow volume over
100%.

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

3 years agoalsa-sink: Do not increase watermark when requested to rewind 0 bytes
Georg Chini [Sat, 20 Mar 2021 11:53:22 +0000 (12:53 +0100)]
alsa-sink: Do not increase watermark when requested to rewind 0 bytes

Since commit cb91d7a1 the watermark is increased when there is nothing to rewind.
This is also done in the case when there was actually no rewind requested at all,
so the watermark is increased needlessly.
This patch fixes the issue by skipping the rewind if none is requested.

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

3 years agoWin32: Use WAVEFORMATEX for multi-channel audio output on Windows.
Edward Lee [Sun, 30 Aug 2020 03:08:09 +0000 (23:08 -0400)]
Win32: Use WAVEFORMATEX for multi-channel audio output on Windows.

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

3 years agoWin32: Fix build issues.
Edward Lee [Thu, 21 Jan 2021 22:47:33 +0000 (17:47 -0500)]
Win32: Fix build issues.

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

3 years agobluetooth: Set up hardware gain control if init volume is received late
Marijn Suijten [Mon, 20 Jan 2020 23:41:43 +0000 (00:41 +0100)]
bluetooth: Set up hardware gain control if init volume is received late

Originally written for A2DP this rework of that patch enables late-bound
hardware volume control on HFP and HSP.  As per the specification the
headphones (where gain control for both speaker and microphone could
happen in hardware on the peer) are supposed to send initial values for
these before the SCO connection is created; these `AT+VG[MS]` commands
are also used to determine support for it.  PA uses this information in
`add_{sink,source}` to attach hardware volume callbacks, _if_ it is
supported.  Otherwise PA performs the attenuation in software.

Unfortunately headphones like the WH-1000XM3's connect to A2DP
initially and only send `AT+VGS` (microphone hardware gain is not
supported) _during_ SCO connection when the user switches to the HFP
profile afterwards; the callbacks set up dynamically in
`rfcomm_io_callback` are written after the sink and source have been
created (`add_{sink,source}`), leaving them without hardware volume
callbacks and with software volume when adjusted on the PA side.  (The
headphones can still send volume updates resulting in abrupt changes if
software and peer volume differ.  Furthermore the same attenuation is
applied twice - once in PA software, once on the peer).

To solve this problem we simply check whether the callbacks have been
attached whenever the peer sends a volume change, and if not attach the
callbacks to the sink/source and reset software volume.

Fixes: d510ddc7f ("bluetooth: Perform software attenuation until HF/HS reports gain control")
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/528>

3 years agobluetooth: accept +VGM/+VGS unsolicited reply with '=' and ':' separator
Igor V. Kovalenko [Fri, 5 Mar 2021 15:06:30 +0000 (18:06 +0300)]
bluetooth: accept +VGM/+VGS unsolicited reply with '=' and ':' separator

HFP specs states both '=' and ':' should be accepted as a valid
separator for +VGM and +VGS unsolicited result codes.

This change is cherry-picked from Rodrigo Araujo's work here:
https://lists.freedesktop.org/archives/pulseaudio-discuss/2017-September/028820.html

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

3 years agobluetooth: Perform software attenuation until HF/HS reports gain control
Marijn Suijten [Fri, 5 Mar 2021 22:28:57 +0000 (23:28 +0100)]
bluetooth: Perform software attenuation until HF/HS reports gain control

HF/HS hardware attenuation is optional on HFP: the peer indicates
support with the AT+BRSF command, when bit 4 is set.  That does not
explicitly mandate speaker or microphone gain control; either is
dynamically detected as soon as `AT+VG[MS]=` is received.  Otherwise
software attenuation is performed.

It is also optional on HSP but nothing is mentioned about feature
detection, assume it is the same as HFP: perform software attenuation
until the HF/HS peer sends an `AT+VG[MS]=` command.

When PA is a HS/HF (and the peer the AG) we attenuate both channels in
software and unconditionally keep the peer up to date with
`AT+VGM/AT+VGS` commands.

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

3 years agobluetooth: Move attenuation decision to shared function
Marijn Suijten [Thu, 4 Mar 2021 10:30:42 +0000 (11:30 +0100)]
bluetooth: Move attenuation decision to shared function

Generalize the distinction between local and peer-attenuated volumes
into a function, paving the way for future changes where this needs to
be checked in more places and when A2DP Absolute Volume support is
added.

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

3 years agobluetooth: Generalize speaker/microphone naming to sink/source
Marijn Suijten [Sun, 7 Jun 2020 15:07:20 +0000 (17:07 +0200)]
bluetooth: Generalize speaker/microphone naming to sink/source

Sink and source naming is more generic when dealing with audio that is
directional in the sense that it either goes to or comes from the other
device, but not necessarily a microphone or speaker. A concrete example
is the swapped meaning when the current device is in the HeadSet
profile. The incoming audio can come from any source, not necessarily a
microphone. Likewise, audio captured by the microphone of the headset is
not necessarily played back by a speaker on the AG, it is merely acting
as a sink for the data: further handling is irrelevant to the naming.

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

3 years agobluetooth: backend-native: Round volume to closest instead of up
Marijn Suijten [Sun, 7 Jun 2020 16:30:54 +0000 (18:30 +0200)]
bluetooth: backend-native: Round volume to closest instead of up

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

3 years agobluetooth: Move HSP gain conversions into backend-native
Marijn Suijten [Sun, 7 Jun 2020 14:07:00 +0000 (16:07 +0200)]
bluetooth: Move HSP gain conversions into backend-native

For the upcoming A2DP AVRCP Absolute Volume feature the code in BlueZ5
has to be generic to be reusable. Move this conversion so that it
becomes possible to implement A2DP volume - which uses different values
- on top without duplicating existing callback functionality.

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

3 years agobluetooth: switch_codec should start with pa_blueooth_device_
Marijn Suijten [Sun, 24 Jan 2021 13:10:16 +0000 (14:10 +0100)]
bluetooth: switch_codec should start with pa_blueooth_device_

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

3 years agobuild-sys: meson: fix meson dist version
Igor V. Kovalenko [Tue, 2 Mar 2021 05:22:22 +0000 (08:22 +0300)]
build-sys: meson: fix meson dist version

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

3 years agobuild-sys: drop autotools build system
Igor V. Kovalenko [Mon, 1 Mar 2021 18:33:00 +0000 (21:33 +0300)]
build-sys: drop autotools build system

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

3 years agoi18n: Update .pot and .po files
Tanu Kaskinen [Mon, 8 Mar 2021 14:28:01 +0000 (16:28 +0200)]
i18n: Update .pot and .po files

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

3 years agoTranslated using Weblate (Finnish)
Ricky Tigg [Sat, 6 Mar 2021 16:41:38 +0000 (16:41 +0000)]
Translated using Weblate (Finnish)

Currently translated at 90.9% (513 of 564 strings)

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

3 years agoTranslated using Weblate (Finnish)
Ricky Tigg [Fri, 5 Mar 2021 13:34:59 +0000 (13:34 +0000)]
Translated using Weblate (Finnish)

Currently translated at 87.2% (492 of 564 strings)

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

3 years agoAdded translation using Weblate (Sinhala)
Hela Basa [Wed, 3 Mar 2021 21:25:57 +0000 (22:25 +0100)]
Added translation using Weblate (Sinhala)

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

3 years agoTranslated using Weblate (Hebrew)
Yaron Shahrabani [Mon, 1 Mar 2021 14:24:52 +0000 (14:24 +0000)]
Translated using Weblate (Hebrew)

Currently translated at 25.1% (142 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/523>

3 years agobluetooth: correct rfcomm command and reply formatting
Igor V. Kovalenko [Fri, 5 Mar 2021 11:40:37 +0000 (14:40 +0300)]
bluetooth: correct rfcomm command and reply formatting

The format of COMMAND line sent from HS to AG is COMMAND<cr>
The format of RESPONSE line sent from AG to HS is <cr><lf>RESPONSE<cr><lf>

Split rfcomm_write into rfcomm_write_command and rfcomm_write_response to handle
line formatting correctly.

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

3 years agobluetooth: fix typo checking if target codec is available
Igor V. Kovalenko [Tue, 2 Mar 2021 19:47:20 +0000 (22:47 +0300)]
bluetooth: fix typo checking if target codec is available

A2DP switch-codec command implementation must check if target codec is good,
not the one we want to switch from.

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

3 years agobuildsys/autotools: add pulseaudio-x11.service.in
Faidon Liambotis [Mon, 1 Mar 2021 01:43:14 +0000 (03:43 +0200)]
buildsys/autotools: add pulseaudio-x11.service.in

Commit 4868fcf5f344af613172f61d9105c02f3f07e1ab ("daemon: Rely on
systemd unit file for X11 plugin initialization") added a new systemd
unit file, pulseaudio-x11.service, generated from a respective .in file.

Unfortunately, this was only hooked up to meson, and is not currently
installed by autotools. Among other breakage, "make dist" produces a
tarball that meson is then unable to build (because a file is missing).

Signed-off-by: Faidon Liambotis <paravoid@debian.org>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/514>

3 years agotests: fix use of uninitialized variable cpu_info
Faidon Liambotis [Fri, 26 Feb 2021 01:23:52 +0000 (03:23 +0200)]
tests: fix use of uninitialized variable cpu_info

On cpu-volume-test, cpu_info is initialized only on i386/amd64 systems,
and otherwise passed on to pa_cpu_init_orc() uninitialized.

If one was unlucky enough, they could end up with cpu_info.cpu_type ==
PA_CPU_X86 on a non-x86 system, and use and test the Orc codepath
without that being functional, and thus with the test failing.

This has been observed in the wild on the ppc64el Debian buildds. See
Debian bug #982740 for more context.

Define cpu_info here in the same way as in other tests.

Signed-off-by: Faidon Liambotis <paravoid@debian.org>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/511>

3 years agoTranslated using Weblate (Finnish)
Jan Kuparinen [Tue, 16 Feb 2021 19:35:11 +0000 (19:35 +0000)]
Translated using Weblate (Finnish)

Currently translated at 86.7% (489 of 564 strings)

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

3 years agoTranslated using Weblate (Finnish)
Jan Kuparinen [Sun, 14 Feb 2021 18:30:02 +0000 (18:30 +0000)]
Translated using Weblate (Finnish)

Currently translated at 78.9% (445 of 564 strings)

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

3 years agoTranslated using Weblate (Swedish)
Göran Uddeborg [Wed, 10 Feb 2021 19:43:08 +0000 (19:43 +0000)]
Translated using Weblate (Swedish)

Currently translated at 100.0% (564 of 564 strings)

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

3 years agoTranslated using Weblate (Finnish)
Ricky Tigg [Thu, 11 Feb 2021 13:44:41 +0000 (13:44 +0000)]
Translated using Weblate (Finnish)

Currently translated at 78.1% (441 of 564 strings)

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

3 years agoTranslated using Weblate (Swedish)
Göran Uddeborg [Mon, 8 Feb 2021 17:00:09 +0000 (17:00 +0000)]
Translated using Weblate (Swedish)

Currently translated at 95.9% (541 of 564 strings)

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

3 years agoTranslated using Weblate (Swedish)
Göran Uddeborg [Fri, 5 Feb 2021 20:44:05 +0000 (20:44 +0000)]
Translated using Weblate (Swedish)

Currently translated at 94.1% (531 of 564 strings)

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

3 years agoTranslated using Weblate (Norwegian Nynorsk)
Karl Ove Hufthammer [Sat, 6 Feb 2021 14:52:58 +0000 (14:52 +0000)]
Translated using Weblate (Norwegian Nynorsk)

Currently translated at 100.0% (564 of 564 strings)

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

3 years agoTranslated using Weblate (Esperanto)
Carmen Bianca Bakker [Thu, 4 Feb 2021 00:41:27 +0000 (00:41 +0000)]
Translated using Weblate (Esperanto)

Currently translated at 23.5% (133 of 564 strings)

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

3 years agoAdded translation using Weblate (Esperanto)
Carmen Bianca Bakker [Thu, 4 Feb 2021 00:05:18 +0000 (01:05 +0100)]
Added translation using Weblate (Esperanto)

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

3 years agoTranslated using Weblate (Hebrew)
Yaron Shahrabani [Sat, 30 Jan 2021 22:49:26 +0000 (22:49 +0000)]
Translated using Weblate (Hebrew)

Currently translated at 22.1% (125 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/515>

3 years agoTranslated using Weblate (Polish)
Piotr Drąg [Sat, 30 Jan 2021 12:56:02 +0000 (12:56 +0000)]
Translated using Weblate (Polish)

Currently translated at 100.0% (564 of 564 strings)

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

3 years agoTranslated using Weblate (Polish)
Piotr Drąg [Sat, 30 Jan 2021 12:53:51 +0000 (12:53 +0000)]
Translated using Weblate (Polish)

Currently translated at 100.0% (564 of 564 strings)

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

3 years agoTranslated using Weblate (Polish)
Piotr Drąg [Sat, 30 Jan 2021 12:36:40 +0000 (12:36 +0000)]
Translated using Weblate (Polish)

Currently translated at 95.3% (538 of 564 strings)

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

3 years agoTranslated using Weblate (Finnish)
Jan Kuparinen [Wed, 27 Jan 2021 19:19:47 +0000 (19:19 +0000)]
Translated using Weblate (Finnish)

Currently translated at 73.2% (413 of 564 strings)

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

3 years agoTranslated using Weblate (Ukrainian)
Yuri Chornoivan [Mon, 25 Jan 2021 20:02:46 +0000 (20:02 +0000)]
Translated using Weblate (Ukrainian)

Currently translated at 100.0% (564 of 564 strings)

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

3 years agoTranslated using Weblate (Turkish)
Oğuz Ersen [Mon, 25 Jan 2021 21:52:15 +0000 (21:52 +0000)]
Translated using Weblate (Turkish)

Currently translated at 100.0% (564 of 564 strings)

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

3 years agotreewide: fix a bunch of typos
Felipe Sateler [Fri, 26 Feb 2021 22:58:41 +0000 (19:58 -0300)]
treewide: fix a bunch of typos

Detected by lintian, the debian package linter

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

3 years agoalsa-mixer: increase the max number of HDMI/DP output device to 11
Hui Wang [Tue, 2 Feb 2021 02:07:36 +0000 (10:07 +0800)]
alsa-mixer: increase the max number of HDMI/DP output device to 11

Intel TGL HDMI/DP codec provides 9 pins (Linux kernel, 9a11ba7388f16:
ALSA: hda: hdmi - add Tigerlake support), and with the DP MST enabled,
the linux kernel will build 11 output devices (3, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16), and the alsa-lib will map 11 PCM devices from HDMI:0
to HDMI:10, but current pulseaudio only supports 8 HDMI/DP devices,
if users plug the HDMI/DP monitor to the last 3 ports, the users will
not see the output device from pulseaudio or gnome.

We have experienced this issue on a dell TGL machine with a dock, we
plugged 2 HDMP/DP monitors on the dock, but we could only see 1
HDMI/DP output device from pulseaudio or gnome, through investigation,
we found one monitor is plugged in the 2nd port from last.

Here we add 3 HDMI/DP output devices.

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

3 years agobluetooth: clean up rfcomm_write usage
Igor V. Kovalenko [Thu, 18 Feb 2021 18:08:21 +0000 (21:08 +0300)]
bluetooth: clean up rfcomm_write usage

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

3 years agobluetooth: rename enable_hs_role to enable_shared_profiles
Igor V. Kovalenko [Tue, 16 Feb 2021 05:46:19 +0000 (08:46 +0300)]
bluetooth: rename enable_hs_role to enable_shared_profiles

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

3 years agobluetooth: use device flag to prevent assertion failure during shutdown
Igor V. Kovalenko [Mon, 1 Feb 2021 17:51:18 +0000 (20:51 +0300)]
bluetooth: use device flag to prevent assertion failure during shutdown

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

3 years agobluetooth: complete bluetooth profile separation
Igor V. Kovalenko [Fri, 29 Jan 2021 18:32:09 +0000 (21:32 +0300)]
bluetooth: complete bluetooth profile separation

This is a follow-up change to review of these series on pulseaudio-discuss
https://lists.freedesktop.org/archives/pulseaudio-discuss/2017-September/028801.html

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

3 years agobluetooth: prefer headset HFP HF connection with native backend
Igor V. Kovalenko [Fri, 29 Jan 2021 06:28:36 +0000 (09:28 +0300)]
bluetooth: prefer headset HFP HF connection with native backend

When HFP HF support is enabled in native backend, peer HFP HF profile connection
is preferred over same peer HSP HS profile connection if peer supports both
profiles.

Enforce the preference by rejecting HSP HS profile connections from such peer.

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

3 years agobluetooth: fix headset=auto ofono handover
Igor V. Kovalenko [Thu, 28 Jan 2021 06:08:53 +0000 (09:08 +0300)]
bluetooth: fix headset=auto ofono handover

Native backend implements HFP AG but not HFP HF yet, therefore headset=auto
functionality is still needed if HFP HF is required.

To make headset=auto work again, drop both HFP AG and HSP AG roles while
performing handover from native backend when oFono is detected running.

While at it, restore profile description to Headset Head Unit (HSP/HFP)
to note that HFP may be still provided via oFono backend.

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

3 years agobluetooth: enable module-bluez5-discover argument enable_native_hfp_hf
Igor V. Kovalenko [Thu, 28 Jan 2021 12:37:36 +0000 (15:37 +0300)]
bluetooth: enable module-bluez5-discover argument enable_native_hfp_hf

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

3 years agobluetooth: make native the default backend
James Bottomley [Thu, 21 Sep 2017 18:49:45 +0000 (11:49 -0700)]
bluetooth: make native the default backend

Change default backend from 'auto' to 'native' so that in the usual
install pulseaudio uses the native backend with HFP_HF handling.

set default to false unless the backend is the native one, in which
case the default becomes true.

Additionally set default value of enable_native_hfp_hf to false unless
the backend is the native one, in which case the default becomes
true. so that we only bind the HFP_HF end point in the native case
(leaving it free for ofono in the ofono backend or auto case)

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

3 years agobluetooth: add correct HFP rfcomm negotiation
James Bottomley [Sat, 20 Aug 2016 17:56:14 +0000 (10:56 -0700)]
bluetooth: add correct HFP rfcomm negotiation

HFP 1.6 requires a stateful negotiation of AT commands.  The prior
version got away with initialising HFP simply by replying 'OK' to
every negotiation attempt.  This one actually tries to parse the state
and make sure the negotiation occurs correctly

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
---

v4:

- Update for PA 11.0
- Finally sort out CIND negotiaton for complex headsets

v3:

- remove internal debugging
- added comment for t->config being not null for hfp
- removed unused returns from hfp_rfcomm_handle()
- remove rfcomm comment
- use pa_startswith
- simplify negotiation

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

3 years agobluetooth: separate HSP and HFP
James Bottomley [Thu, 18 Aug 2016 15:48:48 +0000 (08:48 -0700)]
bluetooth: separate HSP and HFP

When all headsets supported both HSP and HFP, life was good and we
only needed to implement HSP in the native backend.  Unfortunately
some headsets have started supporting HFP only.  Unfortuantely, we
can't simply switch to HFP only because that might break older HSP
only headsets meaning we need to support both HSP and HFP separately.

This patch separates them from a joint profile to being two separate
ones.  The older one retains the headset_head_unit name, meaning any
saved parameters will still select this (keeping us backward
compatible).  It also introduces a new headset_handsfree.

For headsets that support both HSP and HFP, the two profiles will
become separately visible and selectable.  This will only matter once
we start adding features to HFP that HSP can't support (like wideband
audio).

Signed-off-by: <James.Bottomley@HansenPartnership.com>
---
v6:

- merge profile switching fixes patch from Rodrigo Araujo

v5:

- rename option to enable_native_hfp_hf
- don't call profile_done for HFP_HF unless it was initialised

v3:

- Update for PA 11.0

v2:

- fold in review feedback
- add global disable option for not registering HFP

v3:

- change parameter to enable_profile_hfp
- update device_supports_profile to be aware of hfp/hsp exclusivity
- change parameter to enable_profile_hfp_hf

bluetooth: separate HSP and HFP (to me merged with this patch)

Hi.

First, just to say that your patches are going great. Finally I can use
the microphone of my HFP only headset (a version of a Bluedio T2+).

So far, I've only encontered one problem: the auto_switch option of
module_bluetooth_policy stops working. Dug through the code and I think
you missed a few spots were you have to hangle the new headset_handsfree
profile in module_bluetooth_policy.c

Applying the following after applying your v5 patches fixed the issue
for me, now when I start making a VOIP call the profile switches to
headset_handsfree and the mic works automatically, and when the call
finishes it reverts back to a2dp.

Thanks and best regards.

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

3 years agobluetooth: use consistent profile names
James Bottomley [Sat, 20 Aug 2016 17:39:30 +0000 (10:39 -0700)]
bluetooth: use consistent profile names

The PA_BLUETOOTH_PROFILE names should mirror the PA_BLUETOOTH_UUID
names using profile_function instead of randomly made up names.  Fix
this with the transformation:

PA_BLUETOOTH_PROFILE_HEADSET_HEAD_UNIT -> PA_BLUETOOTH_PROFILE_HSP_HS
PA_BLUETOOTH_PROFILE_HEADSET_AUDIO_GATEWAY -> PA_BLUETOOTH_PROFILE_HFP_AG

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
---

v4: update for PA 11.0

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

3 years agosystemd: move to session slice
Henri Chain [Wed, 17 Feb 2021 11:35:56 +0000 (12:35 +0100)]
systemd: move to session slice

As per https://systemd.io/DESKTOP_ENVIRONMENTS/
(the default is app.slice which is not appropriate for pulseaudio)

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

3 years agosource-output: Fix source-output volume after move of virtual source stream
Georg Chini [Wed, 17 Feb 2021 20:36:07 +0000 (21:36 +0100)]
source-output: Fix source-output volume after move of virtual source stream

When the source-output of a virtual source with volume sharing disabled is moved,
the source output volume is reset to 100%. This patch fixes the problem by
applying the virtual source volume to the source-output after the move.

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

3 years agobluetooth: remove unwanted change from bluez fallback code
Igor V. Kovalenko [Mon, 15 Feb 2021 06:03:13 +0000 (09:03 +0300)]
bluetooth: remove unwanted change from bluez fallback code

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

3 years agofix handling of symbolic port names in zsh completion
pseyfert [Tue, 9 Feb 2021 23:17:13 +0000 (23:17 +0000)]
fix handling of symbolic port names in zsh completion

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

3 years agobuild-sys: meson: support elogind alternative for module-systemd-login
Igor V. Kovalenko [Thu, 11 Feb 2021 05:56:22 +0000 (08:56 +0300)]
build-sys: meson: support elogind alternative for module-systemd-login

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

3 years agobuild-sys: meson: add tcp-wrappers
Igor V. Kovalenko [Tue, 9 Feb 2021 06:18:18 +0000 (09:18 +0300)]
build-sys: meson: add tcp-wrappers

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

3 years agobuild-sys: drop gconf support
Igor V. Kovalenko [Tue, 9 Feb 2021 07:15:50 +0000 (10:15 +0300)]
build-sys: drop gconf support

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

3 years agozsh-completion Add completion of sample names
Paul Seyfert [Wed, 10 Feb 2021 18:37:07 +0000 (19:37 +0100)]
zsh-completion Add completion of sample names

This closes #201.

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

3 years agobluetooth/gst: Unify encoder and decoder pipeline setup
Marijn Suijten [Sat, 23 Jan 2021 19:39:15 +0000 (20:39 +0100)]
bluetooth/gst: Unify encoder and decoder pipeline setup

The encoding and decoding pipeline are essentially identical: both push
data in via an appsrc, route it through a codec-specific (opaque)
element, and finally pull data out of an appsink. The code already makes
it impossible to have an encoding and decoding pipeline simultaneously
set up in `gst_info`, and converting `bool for_encoding` to a tri-state
(encode, decode, or both) would be messy; particularly when encoding and
decoding could possibly differ in format.

This change removes a swath of code and removes the possibility of
misusing `enc_` or `dec_` in the wrong place (ie. after copying a bit of
code and forgetting to rename one or two). When bidirectional codecs
come online a second codec instance (`gst_info`) can simply be created
and controlled independently.

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

3 years agobluetooth/aptx: Call the non-HD encode_buffer function
Marijn Suijten [Sat, 23 Jan 2021 19:47:29 +0000 (20:47 +0100)]
bluetooth/aptx: Call the non-HD encode_buffer function

For consistency with its decode_buffer counterpart.

For the time being the base function only performs an extra check and
logs an error when no data has been written into the GStreamer encoding
pipeline.

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

3 years agobluetooth/aptx: Simplify lifetime of `caps`
Marijn Suijten [Sat, 23 Jan 2021 19:20:45 +0000 (20:20 +0100)]
bluetooth/aptx: Simplify lifetime of `caps`

Fixes: 73c80ffba ("bluetooth/aptx: Deduplicate caps setup for encoding and decoding")
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/487>

3 years agobluetooth: support increasing bitrate for SBC XQ
Igor V. Kovalenko [Tue, 19 Jan 2021 16:24:23 +0000 (19:24 +0300)]
bluetooth: support increasing bitrate for SBC XQ

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

3 years agobluetooth: a2dp dual channel SBC XQ codec configurations
Igor V. Kovalenko [Tue, 19 Jan 2021 15:52:55 +0000 (18:52 +0300)]
bluetooth: a2dp dual channel SBC XQ codec configurations

Desired SBC bitpool value is calculated from target bitrate limit.

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

3 years agobluetooth: Remove unused ts_elapsed variable
Marijn Suijten [Thu, 21 Jan 2021 21:05:51 +0000 (22:05 +0100)]
bluetooth: Remove unused ts_elapsed variable

Fixes: 969951121 ("bluetooth: allow increasing output bitrate")
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/477>

3 years agotests: Update ladspa-dbus to Python 3
Marijn Suijten [Tue, 19 Jan 2021 19:33:11 +0000 (20:33 +0100)]
tests: Update ladspa-dbus to Python 3

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

3 years agotreewide: Use DBus defines instead of direct string literals
Marijn Suijten [Thu, 7 Jan 2021 23:36:06 +0000 (00:36 +0100)]
treewide: Use DBus defines instead of direct string literals

While cleaning up the BlueZ counterpart of strings defined in
preprocessor macros it is only consistent to take care of all DBUS_
macros as a whole.

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

3 years agobluetooth: Consistently use BlueZ defines for strings
Marijn Suijten [Tue, 19 Jan 2021 19:27:35 +0000 (20:27 +0100)]
bluetooth: Consistently use BlueZ defines for strings

These errors and interface names shoudld all reuse predefined constants.

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

3 years agobluetooth: Unify BlueZ macro defines shared between util and native
Marijn Suijten [Thu, 7 Jan 2021 23:45:24 +0000 (00:45 +0100)]
bluetooth: Unify BlueZ macro defines shared between util and native

Define all BLUEZ_ macros once in the shared header, instead of twice in
both backend-native.c and bluez5-util.h.

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

3 years agobluetooth: improve indentation around dbus_message_iter_open_container
Marijn Suijten [Thu, 7 Jan 2021 23:48:55 +0000 (00:48 +0100)]
bluetooth: improve indentation around dbus_message_iter_open_container

Consistently use newlines and the same indentation style for all calls
to dbus_message_iter_open_container in Bluetooth code.

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