Commit graph

1411 commits

Author SHA1 Message Date
Frédéric Danis
db0c224b06 bluez5: Make native and ofono backends optional 2020-07-22 18:59:58 +02:00
Frédéric Danis
ebdaac160c bluez5: backend-ofono: Fix SCO nodes not created on oFono's CardAdded
oFono's CardAdded signal from can occur after BlueZ's ServicesResolved
signal. In this case the device is created without SCO nodes.
This is fixed by not enforcing device creation on ServicesResolved signal.
2020-07-22 18:59:58 +02:00
Frédéric Danis
18da8fd21f bluez5: backend-ofono: Add spa_bt_transport support 2020-07-22 18:59:58 +02:00
Frédéric Danis
9b6dd9461e bluez5: Create backend skeleton for HFP support using oFono 2020-07-22 18:59:58 +02:00
Wim Taymans
2955182e4e use spa_debug_type_short_name() when we can 2020-07-22 11:22:11 +02:00
Wim Taymans
875236631f acp: don't ignore return value 2020-07-21 15:42:04 +02:00
Julian Bouzas
03bc36a502 resample-native: substract num of skipped samples after processing input
Takes into account the number of skipped samples when deciding whether
we should copy the remaining samples in the history or not.

Fixes dropping audio issue when resampling from high frequencies
such as 48KHz to low requencies such as 8KHz.
2020-07-20 15:25:02 -04:00
Frédéric Danis
2d91e62a19 bluez5: Workaround incorrect SCO MTU
It seems that some BT adapters don't return correct SCO MTU, see
https://marc.info/?t=148586768600002&r=1&w=2
Do not try to autodetect the MTU and use a fix MTU size of 48 bytes.
2020-07-17 19:36:33 +02:00
Frédéric Danis
06a6e11806 bluez5: Create backend for native HSP support 2020-07-17 18:34:33 +02:00
Julian Bouzas
23788ee617 sco-sink: clean up and write data at a constant bitrate
Audio data received by HSP/HFP devices need to be sent at a constant
bitrate to achieve smooth playback
2020-07-17 15:13:03 +00:00
Julian Bouzas
551844c0ef sco-source: initialize read mtu and read chunks of its size
The mtu value returned by the kernel seems to be incorrect, we use
the hardcoded value of 48 for now (like bluezalsa)
2020-07-17 15:13:03 +00:00
Wim Taymans
9b4b7d1a2c evl: add include for spa_strerror
See #244
2020-07-14 14:19:26 +02:00
Wim Taymans
f28ca843a6 format: fix typo 2020-07-14 10:21:35 +02:00
Julian Bouzas
ba96eecba0 sco-source: clean up and support different buffer sizes 2020-07-13 12:05:01 -04:00
Julian Bouzas
f743fff694 sco-source: add RateMatch IO 2020-07-13 12:04:56 -04:00
Wim Taymans
a459c1f226 acp: sync with master 2020-07-13 14:39:27 +02:00
Wim Taymans
ee59bcd632 acp: emit volume/mute changes on change 2020-07-08 17:24:23 +02:00
Wim Taymans
b896d65723 acp: emit param change when port changed 2020-07-08 16:16:43 +02:00
Julian Bouzas
2ae4322cca a2dpsource: fill the buffer as much as possible
Fills the buffer until the buffer data size is maxsize / frame_size
2020-07-07 15:34:57 +00:00
Julian Bouzas
60eb8dae87 a2dpsource: add RateMatch IO 2020-07-07 15:34:57 +00:00
Frédéric Danis
e17688a43b Fix missing headers check
Current Gillab CI fails with:
  $ ./check_missing_headers.sh
  spa/monitor/event.h not installed
2020-07-07 17:33:57 +02:00
Wim Taymans
e030445e49 acp: add volume base and step
Add a READONLY property flag to makr properties READONLY
Set the base_volume and volume_step in the acp device
Send the base volume and step as REAONLY properties. Use these
in pulse layer.
2020-07-07 13:12:57 +02:00
Wim Taymans
cf8db93cd4 pod: add HARDWARE flag to spa_pod_prop
Add HARDWARE flag to mark a property that does some hardware control.
Mark the device volume/mute property as HARDWARE or not.
Use the HARDWARE property in pulse to set the right flags.
2020-07-06 17:46:32 +02:00
Wim Taymans
b9d412e618 monitor: add device event
Add device events and signal soft volume with an object config
event.
2020-07-06 17:25:05 +02:00
Wim Taymans
d80d593271 acp: add support for soft volume
Add a set_soft_volume/mute event.
If we can't configure the hardware volume completely, notify
the remainder with the soft_volume/mute events.
2020-07-06 17:22:42 +02:00
Wim Taymans
ea6dfe204c acp: don't install library for now 2020-07-06 12:58:33 +02:00
Wim Taymans
1612f5e4d2 alsa-acp: Add libacp based card device
libacp is a port and wrapper around the pulseaudio card profile code.
It uses a set of templates for construct a card profile and mixer port
settings. It also has support for UCM when available for the hardware.
2020-07-06 12:20:09 +02:00
Wim Taymans
8ad769b943 bluez: improve profile description 2020-07-03 16:25:46 +02:00
Wim Taymans
49332eb30f bluez5: handle suspend 2020-07-03 16:23:17 +02:00
Wim Taymans
7778f8d70e bluez5: remove devices correctly
Remember how many devices we emited for the current profile and
remove them all when we switch profile.
2020-07-03 16:12:19 +02:00
Wim Taymans
7b129c1020 sco: remove transport hooks on destroy 2020-07-03 16:10:46 +02:00
Wim Taymans
357868eeb5 a2dp: remove transport hooks on destroy 2020-07-03 16:08:53 +02:00
Wim Taymans
1091d2eaf1 bluez5: improve profile enumeration 2020-07-03 12:14:00 +02:00
Frédéric Danis
0b970ec965 bluez: Update BT profiles
Only provide high-level A2DP and HSP/HFP profiles in pw.
Expose nodes based on pw profiles and BT profiles available on remote
device.
2020-07-03 11:53:52 +02:00
Wim Taymans
a520335581 fmt-ops: add sse2 version of f32 to s16 planar/interleaved 2020-07-03 11:05:26 +02:00
Wim Taymans
5295caf0f3 examples: dlclose on some errors 2020-07-02 16:07:54 +02:00
Wim Taymans
3695488241 spa: remove wrong comment 2020-07-01 15:27:55 +02:00
Wim Taymans
698509ef55 alsa: set classes in the profile
parse classes in the pulse layer
2020-07-01 13:39:10 +02:00
Wim Taymans
1ee8944a2a alsa: improve debug 2020-07-01 13:16:37 +02:00
Wim Taymans
8168dfdbc1 alsa-pcm: allow setting number of channels
Allow passing the number of channels when creating a device to
restrict the negotiated channels.
2020-07-01 12:54:27 +02:00
Wim Taymans
267eabaf69 alsa: add default channel map when not given 2020-07-01 12:46:03 +02:00
Wim Taymans
f65d71dd5b alsa: support planar formats 2020-07-01 11:43:25 +02:00
Wim Taymans
6e03b4005d increase amount of datas in a buffer 2020-07-01 11:43:22 +02:00
Wim Taymans
ef0e5ee09e param: rename properties, use info for key/value info
Add props field for configurable route properties (like volumue/mute)
2020-06-27 20:04:05 +02:00
Frédéric Danis
41d7ccc336 a2dpsink: Process right amount of data with sbc_encode
sbc_encode() can only process data with at least this->codesize bytes.
When encode_buffer() is called with less then codesize bytes, accumulate
those bytes in a temporary buffer up to codesize length, then SBC encode
them.
Maximum size for SBC buffer is (subbands * blocks * channels * 2) with max
subbands = 8, max blocks = 16, max channels = 2, i.e. 512.

Fixes !277
2020-06-27 13:03:24 +02:00
Wim Taymans
2e914ac10e param: add properties to route and profile 2020-06-26 11:42:34 +02:00
Wim Taymans
43d0aa49c1 Route: add more fields 2020-06-24 19:37:50 +02:00
Wim Taymans
d22beb4d05 param: add classes to the PROFILE param
classes is an enumeration of class-name/count pairs to enumerate
the kinds of classes and count that are created from this profile.
2020-06-24 19:37:45 +02:00
Wim Taymans
cab833ade7 profiler: add docs for the param contents 2020-06-24 19:37:37 +02:00
Wim Taymans
0f7a488d61 param: add available to Profile params 2020-06-24 19:37:27 +02:00