Commit Graph

120 Commits

Author SHA1 Message Date
Jeremy Wu
cd019230f3 Add support for HFP_SOFTWARE_DATAPATH session type
Bug: 349290628
Bug: 315234036
Test: m packages/modules/Bluetooth
Flag: com::android::bluetooth::flags::is_sco_managed_by_audio and HFP session type only enabled when flag is enabled
Change-Id: I952f8baf347084d57162fdfd767259157f39962e
2024-09-25 02:43:23 +00:00
Yuyang Huang
f1527f5a88 Add support for HFP_HARDWARE_OFFLOAD_DATAPATH session type
Bug: 345303008
Change-Id: I0de7fcfaa64ae94e3a78d03685e661c51416ae64
Test: m packages/modules/Bluetooth
Flag: com::android::bluetooth::flags::is_sco_managed_by_audio and HFP session type only enabled when flag is enabled
2024-08-07 21:29:18 +00:00
Yuyang Huang
9daf187ec6 improve condition check for LE audio session
Bug: 345303008
Change-Id: Ic360f5463dc9515047dc3cdf3e69564809ea06d3
Test: m packages/modules/Bluetooth
Flag: exempt, no logical change
2024-08-07 21:16:53 +00:00
Bao Do
f6ce19d697 Update the default set configuration file and format.
New format eliminates the need for allocation and
deduplicates many configurations.
We change the file name of the default set configuration
for intergration with vendor's configuration.

We also support storing the configuration name in
the vendor's metadata for easier debugging.

Bug: 331490291
Test: atest VtsHalBluetoothAudioTargetTest
Change-Id: I0f6cfbdad1da05c35d7c758c69d7030527e1f46a
2024-07-18 13:46:16 +08:00
Patrick Liao
c7f79e0450 Turn on 48kHz sampling rate in offload's AAC codec capability
Bug: 331941704
Flag: exempt, only turn on capability does not effect stack behavior
Test: m com.android.btservices
Test: atest VtsHalBluetoothAudioTargetTest
Change-Id: I36bf1e2183f237988cc77465a486e70b942409f5
2024-06-19 06:08:52 +00:00
Bao Do
57861bdd0c Additional context matching logic for LEA multi-codec
When we match with the remote capabilities, we don't filter by
preferred audio context, since they are suggestion.

Instead, we populate settings into 2 separated vector:
- Matched settings with matched preferred context,
- Matched settings,

We then filter by the first vector, then by the second vector.

Bug: 306225778
Test: atest VtsHalBluetoothAudioTargetTest
Change-Id: I03f322e8de509127d218a9de6b41dd39b2ebdcba
2024-06-04 14:00:32 +08:00
Silen Sun
9534a2dc4c Merge "Report broacast audio config to HAL" into main 2024-05-24 01:04:40 +00:00
silens
1f19688ec0 Report broacast audio config to HAL
Bug: 321168976
Bug: 339121774
Test: atest --host bluetooth_test_broadcaster
Change-Id: I8eaeb72d027b9b01f83458f560d23770c8005b78
2024-05-21 17:37:41 +08:00
Mikhail Naganov
4fe8021f09 bluetooth: Add 'defaults' for 'android_hardware_bluetooth_audio'
Add defaults for the case when the library is used
from within 'target/android'.

Also, switch 'BluetoothLeAudioCodecsProviderTest' to use
'defaults' instead of hardcoding the interface module version.

Bug: 307310023
Test: m
Change-Id: I7e5e70efe6a733367a8b5cbe5cffbfddf610cc6b
2024-05-16 20:00:49 -07:00
Ted Bauer
da93213b2d Add deps for new aconfig flagging storage
Aconfig flagging storage is migrating to a new underlying storage, which
has new dependencies. Add the dependencies as a defaults.

Bug: 328444881
Test: m
Change-Id: Idca333a4f4198ac5c8724a9696a9f68433a5f39b
2024-04-29 20:21:04 +00:00
Bao Do
e062de7b2d Implement HFP codec provider and test
Bug: 322280104
Test: atest BluetoothHfpCodecsProviderTest
Change-Id: I4c5ca601de61d86a3caae88c47697a2586f4dc5c
2024-02-22 13:49:57 +08:00
Bao Do
2fa1ab4bd5 Template and schema of HFP provider info
Bug: 322280104
Test: make
Change-Id: Iac4f96db08b3b7fb2c5f0b080ba3e972e6020982
2024-02-22 13:49:35 +08:00
Jakub Tyszkowski
deecabbd9c Fix LeAudioCodecProvider failing offload setting file parsing
ParseFromLeAudioOffloadSettingFile() fails when `GetLeAudioCodecCapabilities()`
was already called in the past and `leAudioCodecCapabilities` vector is already
populated. That makes some of the VTS tests fail on
`IsOffloadOutputProviderInfoSupported()` and just return and PASS  without
actually checking enything.

The doubtful checks check variables set at parsed content verification,
and should not prevent us from parsing the file again.

Bug: 319090769
Test: atest VtsHalBluetoothAudioTargetTest
Change-Id: Iab6235b5d265bb254ae6075b8c32d0eae0fc1829
2024-01-08 14:57:45 +00:00
Jakub Tyszkowski
06781c028a Fix the bogus configs default-constructed as a2dp configs
When the xml file contains the "invalid" entry in the scenario record,
which do not refer to any valid config in the 'configurationList`
section, the invalid, default constructed codec configuration (a2dp codec)
was created.

Bug: 319090769
Test: atest VtsHalBluetoothAudioTargetTest
Change-Id: I19b7d1af81e5f2be3fb7261fba8781b3dc47fa12
2024-01-08 14:57:44 +00:00
Jakub Tyszkowski
0259aafb71 Fix filling the configuration map
Bug: 319090769
Test: atest VtsHalBluetoothAudioTargetTest
Change-Id: I1806d8a20abb9a9756512ae8d433c6c6ff784159
2024-01-08 14:57:43 +00:00
Mikhail Naganov
a88cf60b87 audio: Fix BT AIDL HAL module implementation
In order to align with legacy behavior, when opening a stream,
the module must suggest the current configuration of the BT session.
For that to work, the BT device proxy must be opened prior
to creating a stream, code moved to ModuleBluetooth.

Fix minor inconsistencies and bugs found during testing.

Bug: 301213930
Bug: 316027906
Test: atest pts-bot
Change-Id: I04ddaf73be82f872a3f32a789563c3cbd648eb61
2023-12-26 16:34:58 -08:00
Limon Mia
b58cee4af7 BTAudio HAL: Added feature flag for DSA Over LEA
Test: atest VtsHalBluetoothAudioTargetTest
Bug: 270987427
Change-Id: Ifef0b97d20c7c12001b7d04cc7f8ce9da5fb1920
2023-12-15 05:30:09 +00:00
Bao Do
5b2fdab61f Default implementation of getLeAudioBroadcastConfiguration for
LE Audio Offload provider

Bug: 306225778
Test: mmm hardware/interfaces/bluetooth/audio/aidl/default
Change-Id: I5bfb4a84a8222603c64ac51a28b5962825182676
2023-12-13 09:57:34 +00:00
Bao Do
be99419521 Parse LE Audio Set Configuration into LeAudioAseConfiguration
Bug: 306225778
Test: mmm hardware/interfaces/bluetooth/audio/utils
Change-Id: Ia08568322e1cee1834e08172781cc77342cbd025
2023-12-13 07:38:35 +00:00
Bao Do
fbc99e05c6 Template and schemas for parsing LE Audio Set Configuration.
Bug: 306225778
Test: mmm hardware/interfaces/bluetooth/audio/utils
Change-Id: I20482faf20a41f04c39e1314db45a07cb5f9956b
2023-12-13 07:38:34 +00:00
Bao Do
6aeb5d7217 Add LE Audio getProviderInfo information
Bug: 306225778
Test: mmm hardware/interfaces/bluetooth/audio/aidl/default
Change-Id: Ieb03a1a3096dbeb6a4e2ac4774ece6d3ef3e33be
2023-12-13 07:38:34 +00:00
Antoine SOULIER
4e34d05b7b Codec Extensibility A2DP HAL Reference Implementation
Test: m
Bug: 297037759
Change-Id: I84b32c2ef22da8c3e920e497501b9f16feaf803c
2023-12-07 16:51:57 +00:00
Antoine SOULIER
33c4e5a629 Codec Extensibility A2DP Specific AIDL
Test: m
Bug: 297037759
Change-Id: If9a73d2791781ad948ce76b55b9d29f7eba655e4
2023-12-07 16:51:01 +00:00
Yuyang Huang
aa70c11126 Add HFP to BluetoothAudioSession
Test: m .
Bug: 265057196
Change-Id: I0e2e9d0f34ebf3f732c4f2da799c4c30f52bdeef
2023-12-07 05:54:59 +00:00
Jakub Rotkiewicz
e70014de66 Upgrade VNDK version to 4
Change-Id: I5566a1ef857f7db6c1dc04fcf16aa16fb6e1063a
2023-12-04 17:52:18 +00:00
Alice Kuo
42b85abe9c Minor handle refine for setLowLatencyModeAllowed
setLowLatencyModeAllowed API is only used for A2DP offload session. For
this case, we shouldn't report ReportLowLatencyModeAllowedChanged
callback for the other session

Bug: 270987427
Test: atest VtsHalBluetoothAudioTargetTest
Change-Id: I1991ee93b3523717c6ca26b1638e34a196253a5b
2023-11-20 08:24:51 +00:00
Limon Mia
7c48034d32 BTAudio HAL: implement changes for DSA Over LEA
Test: atest VtsHalBluetoothAudioTargetTest
Bug: 270987427
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:f6a9577ac7585a5c284896736ba3508f7ed7528a)
Merged-In: I341e3af726da7870e23f5bb0943066ebcdd34e35
Change-Id: I341e3af726da7870e23f5bb0943066ebcdd34e35
2023-11-20 07:56:19 +00:00
Shunkai Yao
195d3d6915 Add defaults for audio AIDL interfaces
- with defaults user don't have to change their Android.bp when there is
  a update
- update AIDL audio interfaces with android.media.audio.common.types
- update Spatialization and HeadTracking AIDL usage

Bug: 273373363
Bug: 293370815
Test: m
Test: lunch panther-trunk_staging-userdebug; m; test Bluetooth Audio
Change-Id: Ic9d8afc1d4e19e4243c66065b0a5d29156632851
Merged-In: Ic9d8afc1d4e19e4243c66065b0a5d29156632851
2023-11-06 19:14:32 +00:00
Alice Kuo
2c8d74fc82 Move APTX_ADAPTIVE_LE and APTX_ADAPTVIE_LEX to configurable am: f850de6732
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2766488

Change-Id: Ic4e755bdc5e132a3f9da26a5890b2fd2dd0d960c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-04 06:51:09 +00:00
Alice Kuo
f850de6732 Move APTX_ADAPTIVE_LE and APTX_ADAPTVIE_LEX to configurable
We should bring the capabilities from the configure file that the device
could have its own capabilties.

Bug: 302173270
Test: atest VtsHalBluetoothAudioTargetTest
Change-Id: I2cb5194acbe64d7d64cca9b245b26ca5fbac35d4
2023-10-04 04:07:06 +08:00
Xin Li
879960bdce Merge Android U (ab/10368041)
Bug: 291102124
Merged-In: I7b6fffac2ada0e039f79bad8cc9b4d954e9c3460
Change-Id: I9466127d8d0fa38df36ca99f704853b2db871e67
2023-08-25 13:29:30 -07:00
Yung Ti Su
fefceb14d0 enable host_supported for libbluetooth_audio_session_aidl
Test: manual

Change-Id: Iae06114020e5bc4e41fa5caa5df5de8a186dc2ff
Signed-off-by: Yung Ti Su <andysu@google.com>
2023-08-22 09:29:06 +00:00
kuanyuhuang
25b4819e08 BT: add LOW_LATENCY mode if low latency allowed
LatencyMode is not updatable after audio session started.
Currently, if low latency is allowed, audio session should have
LOW_LATENCY latency mode.
Create a workaround to add LOW_LATENCY when low_latency_allowed_ set to
ture at ReportLowLatencyModeAllowedChanged.

Bug: 291760415
Bug: 294498919
Test: play low latency audio with supported headset and check
LOW_LATENCY mode can be selected

Change-Id: Ia324f0a368e47ae8b8056c190d8d1f4a2e09ecec
2023-08-07 05:05:52 +00:00
Mikhail Naganov
d5f0d13ef0 bluetooth: Add AudioSession/Control methods for AIDL track metadata
Add overloads for UpdateSink/SourceMetadata that
accept android.hardware.audio.common.Sink/SourceMetadata types.
Move include of hardware/audio.h to BluetoothAudioSession.cpp.
This allows to use this code from "pure AIDL" modules.

Bug: 228804498
Test: m
Change-Id: Ib0b8c6d1c7db9b846a508d6d4001f67feb2111c6
2023-08-01 13:38:47 -07:00
Jooyung Han
13f58a77f3 Merge "Set root elements for xsd_config modules" am: ee8374606a am: 5a73645eb0 am: f371c2e7bc
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2596609

Change-Id: Idb0d2297407a5708a8e21362ef39c7a32c371dfd
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-30 06:16:20 +00:00
Jooyung Han
16d5af6755 Set root elements for xsd_config modules
This reduces the code size by not generating unnecessary code for
non-root elements.

Bug: 283700992
Test: m
Change-Id: I23bd5c2a0ccc40fded3ca08155ead5f4680c2ed9
2023-05-22 16:43:12 +09:00
Patty Huang
f5b38af6df Always use audio_configuration_changed_cb_ to notify the config update
There is a new API `isStreamActive` can indicate the stream handle
state. We don't need to use soft_audio_configuration_change_cb to
update the connection map and audio location

Bug: 249614160
Bug: 277857154
Test: LE audio offload disappear and later join with downmix enable
Change-Id: I02357ebe09425525e356ba0f793a3f081953d866
2023-04-13 10:31:20 +08:00
Sagar Verma
62df910355 BT: AptxAdaptive LE/LEX codec and AAC ABR AIDL Changes
AptxAdaptive LE/LEX codec and AAC ABR AIDL side changes

Bug: 254567319
Tag: #feature
Test: m android.hardware.bluetooth.audio-freeze-api &&
      m android.hardware.bluetooth.audio-update-api &&
      atest VtsHalBluetoothAudioTargetTest
Change-Id: I74a2df64ba6ef2ae02e08850b0f6c7784b24b02b
2023-02-22 09:19:17 +05:30
Rongxuan Liu
6945dd3bb3 Update android.hardware.bluetooth.audio to V3
Tag: #feature
Bug: 266740545
Test: m android.hardware.bluetooth.audio-update-api &&
      atest VtsHalBluetoothAudioTargetTest
Change-Id: Ia92043aeedf12a8c68d7f4ee18a1dd52ac5a252f
Merged-In: Ia92043aeedf12a8c68d7f4ee18a1dd52ac5a252f
2023-02-10 04:11:44 +00:00
Patty Huang
ac077efa16 Parse broadcast offload capabilities
1. Parse the broadcast capability from capability file
2. Convert broadcast HAL format to stack format
3. Update test to validate broadcast capability parsing
4. Correct the map size before accessing in VTS test

Tag: #feature
Bug: 242472419
Test: atest BluetoothLeAudioCodecsProviderTest
Test: atest VtsHalBluetoothAudioTargetTest
Change-Id: I8ac88c1e9024ca03757620bf48eacdd60ada7eb4
2022-11-24 19:32:39 +08:00
shihchienc
d7f565a943 Add BluetoothLeAudioCodecsProvider Unit Test
Add unit test for BluetoothLeAudioCodecsProvider and simplify
the public interface of BluetoothLeAudioCodecsProvider class

Bug: 253569201
Test: atest VtsHalBluetoothAudioTargetTest
Test: atest BluetoothLeAudioCodecsProviderTest
Test: manual test
Change-Id: I064eb4058b129a571cf9dbb91b85bafe7236b735
2022-11-01 06:36:30 +00:00
Treehugger Robot
a59abdd935 Merge "Add soft_audio_configuration_changed_cb_ to handle the streamMap changed" 2022-09-20 07:24:12 +00:00
shihchienc
8ed901a977 Expose different offload audio capabilities by project
The current LE audio offload capabilities is hardcode in the
Bluetooth audio HAL. It has the limitation that all the project
would expose the same capabilities. As the newer project comes,
if the ADSP or the controller could handle more configuration
with higher quality or higher bandwidth. It would impact older
project may not work on it. So we plan the feature to make the
le audio offload support to be more flexible.

Bug: 238983662
Test: 1. atest VtsHalBluetoothAudioTargetTest
      2. make sure offload capabilities can be supported with those
         devices having config XML file
Change-Id: Id82581fdcd22e38108f17c7942bca997b53bab35
2022-09-13 15:19:03 +00:00
Alice Kuo
851ef342ed Add soft_audio_configuration_changed_cb_ to handle the streamMap changed
Based on the stream status and Bluetooth Audio Session to switch the
different configuration_changed_cb_ notifcation.

audio_configuration_changed_cb_ for the context type handover case
soft_audio_configuration_changed_cb_ for the streamMap changed during
media stream case

Bug: 231084798
Test: LE audio offload later join and disappear with downmix enable
Change-Id: I199c2b765b128875fb2c66abb1a500e4a6c820b7
2022-09-13 00:06:42 +08:00
Treehugger Robot
56ff7775f4 Merge "le_audio_offload: Support two sources for conversational" am: 5b4464928a
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2058869

Change-Id: I997da918ceece45e17d1c607d4d15ca8a2ca9ca3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-08-09 03:01:20 +00:00
Treehugger Robot
5b4464928a Merge "le_audio_offload: Support two sources for conversational" 2022-08-09 02:42:58 +00:00
Patty
51f165b314 le_audio_offload: Support two sources for conversational
Tag: #feature
Bug: 241775706
Test: atest VtsHalBluetoothAudioTargetTest
Change-Id: I1bc59d09ec2ad3a8e65712c2fa099e806cce3c2d
2022-08-08 15:44:14 +00:00
Alice Kuo
fb6b495535 Bluetooth audio hal check broadcast configuraiton for the broadcast offload am: ee398a93f5
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2147741

Change-Id: I913250b6070b9d16bd03669c7fe078ea6c5bcbab
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-07-13 05:20:27 +00:00
Alice Kuo
ee398a93f5 Bluetooth audio hal check broadcast configuraiton for the broadcast offload
The patch contains the following changes
1. Check the broadcast audio configuration as starting broadcast offload
   session
2. Update audio configuration checker for broadcast offload
3. Remove the IsOffloadLeAudioConfigurationValid function that the audio
   configuraiton is invalid as session started, so we don't need to
   check it at that time

Bug: 210987580
Test: start the offload broadcast stream, and check the session status
Change-Id: I60b1b506051873f6d942f2febace6562634fc12a
2022-07-13 04:39:00 +00:00
Alice Kuo
3034ecf2b3 Supoort audio configuration update to audio HAL for broadcast offload am: 36a879796b
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2148553

Change-Id: I35f75c717ba2c0a256532ca4a59b2a2e16b1cfa6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-07-07 22:20:02 +00:00