This is the default implementation of Bluetooth Audio Hal v2, and 3
providers are defined.
* BluetoothAudioProvider is the default provider, which is a stub when
no SessionType matched.
* A2dpSoftwareAudioProvider uses to replace the old A2DP legacy module
and uses IPC via HIDL interface between Bluetooth stack and Audio HAL.
* HearingAidAudioProvider uses to replace the Hearing Aids module which
uses UNIX socket as IPC and now there is HIDL based interface.
There is also a shared library named "libbluetooth_audio_session.so" to
provide the linkage directly between this HIDL and its HAL module,
bluetooth_audio. With this library, we can break the library dependency
and guarantee those symbols of libraries while compiling.
Bug: 111519504
Bug: 122503379
Test: boot and manual test
Change-Id: I54d86291482b7fb041a3ac3e171b68a4ed7bfa07
Initial VTS commit for the bluetooth.audio@2.0 HAL
Bug: 111519504
Test: VTS (VtsHalBluetoothAudioV2_0TargetTest) passed
Change-Id: Id607979724182de242c29747218f6b12880d6295
Add the ability to get a list of supported codecs and their capabilites
through the HIDL interface.
Bug: 111519504
Test: Compile
Change-Id: I61dff240a98d59cb99b526d8988d0d0245140ee4
Generalized Bluetooth Audio HAL interface.
It is similar to the original android.hardware.bluetooth.a2dp@1.0
interface with the following modifications:
* The session type can be one of the following:
- A2DP Software Encoding Datapath
- A2DP Hardware Encoding Datapath
- Hearing Aid Software Encoding Datapath
* For Hardware Offload Datapath (A2DP), the HAL interface is used only
for the control path
* For Software Encoding Datapath (A2DP or Hearing Aid), the HAL
interface is used for both the control and data paths
* Added Delay Report support: IBluetoothAudioHost.getPresentationPosition()
that was missing in the original android.hardware.bluetooth.a2dp@1.0
HAL interface.
* Removed "oneway" calls to avoid potential reordering of HAL calls:
b/111244402
* Updated SBC-specific codec configuration
* Added AAC-specific and LDAC-specific codec configuration
* Reorganized the original CodecConfiguration into two sections:
- PcmDataConfiguration: Audio PCM data configuration
- EncodedDataConfiguration: Encoded audio data codec configuration.
It is used only if the HAL is responsible for encoding the PCM audio
data.
* Added new HAL IBluetoothAudioProvidersFactory.
It is used to open an audio provider for an audio session as specified by
the session type and the codec configuration as negotiated with the
remote device.
Bug: 111519504
Test: manual
Change-Id: I2ee4cf50b177baee077cf0b5143dbeadda57c8fb
Merged-In: I2ee4cf50b177baee077cf0b5143dbeadda57c8fb
(cherry picked from commit fcc0732db4)
Generalized Bluetooth Audio HAL interface.
It is similar to the original android.hardware.bluetooth.a2dp@1.0
interface with the following modifications:
* The session type can be one of the following:
- A2DP Software Encoding Datapath
- A2DP Hardware Encoding Datapath
- Hearing Aid Software Encoding Datapath
* For Hardware Offload Datapath (A2DP), the HAL interface is used only
for the control path
* For Software Encoding Datapath (A2DP or Hearing Aid), the HAL
interface is used for both the control and data paths
* Added Delay Report support: IBluetoothAudioHost.getPresentationPosition()
that was missing in the original android.hardware.bluetooth.a2dp@1.0
HAL interface.
* Removed "oneway" calls to avoid potential reordering of HAL calls:
b/111244402
* Updated SBC-specific codec configuration
* Added AAC-specific and LDAC-specific codec configuration
* Reorganized the original CodecConfiguration into two sections:
- PcmDataConfiguration: Audio PCM data configuration
- EncodedDataConfiguration: Encoded audio data codec configuration.
It is used only if the HAL is responsible for encoding the PCM audio
data.
* Added new HAL IBluetoothAudioProvidersFactory.
It is used to open an audio provider for an audio session as specified by
the session type and the codec configuration as negotiated with the
remote device.
Bug: 111519504
Test: manual
Change-Id: I2ee4cf50b177baee077cf0b5143dbeadda57c8fb
* Add a 200ms sleep after BluetoothHci->close() to give HAL an ample
time to shutdown
* Add override modifier to certain serviceDied() callback
* Change from return to break in handle_no_ops
* Add more logging to TearDown()
Test: make, VtsHalBluetoothV1_0TargetTest
Bug: 119071943
Change-Id: I5c919a99fb651f8f52d1d34847e1f9b4325efcd5
* Unfortunately, glob pattern in OWNERS file cannot include
directory paths and hence **/vts/** mechanism doesn't work
* For now, we need an individual OWNERS file for each VTS directory that
we have
Test: make
Change-Id: Iacad2cb78152c06829632126c210c9585dce2a31
* Remove the action on property vts.native_server.on, the current one
will actually turn off the BT HAL service
Bug: 118637723
Test: make vts
vts-tradefed run vts -m VtsHalBluetoothV1_0Target
Change-Id: I5bcc0532d57c2f5f3b01a8df1bab8c358270ca73
- */vts/* only matches one layer of directories
e.g. a/vts/b is matched, a/b/vts/c is not matched
- **/vts/** matches everything up to a/b/c/vts/d/e/f
Test: make
Change-Id: I57ea4f2ab2fdeef5929895c7443a1d1097985dba
* Add Bluetooth related persons to OWNERS file for Bluetooth VTS tests
so that it is easier to develop VTS tests in the future
Test: make
Change-Id: I202145344582f9a5ad9dd367da897f5982db57eb
This is needed for some platforms
Bug: 74554159
Bug: 77213213
Test: walleye BT works
Change-Id: If0033c5a7fc09057415b27196fa4541e9aadfb4b
(cherry picked from commit 2d46875666)
When a device is restarted, the UART may go away before the
packetizer. Print an error and sleep in case it isn't really
a restart.
Bug: 70855323
Test: Repeated restarts, check for Bluetooth tombstones
Change-Id: I2b4e677451e826d40dcc9d063d80dc0e17fc9aca
Add mutex in function Send() and OnTimeout() to do mutual
exclusive access on lpm_wake_deasserted.
If lpm_wake_deasserted is out of sync with the actual
wake state, then platforms which use the lpm hint
will break.
Bug: 64299848
Test: run affected platform for a long period of time
and find that hci commands do not time out
Change-Id: I9f630d6f40f84b9c047c6488632cd44d6602bb14
hardware/interfaces/bluetooth/1.0/default/test/bluetooth_address_test.cc:59:39:
error: 'open' called with O_CREAT or O_TMPFILE, but missing mode
Bug: 31559095
Test: out/host/linux-x86/nativetest{,64}/bluetooth-address-unit-tests/bluetooth-address-unit-tests
Change-Id: I913c78e25eccaecf8830f1caf8e92f834ab8bb76
Removing whenever I see these in code reviews.
Test: none
Merged-In: I4322f533a837d55618ec2ed2125e8966ace9d61d
Change-Id: I4322f533a837d55618ec2ed2125e8966ace9d61d
Removing whenever I see these in code reviews.
Test: none
Merged-In: I4322f533a837d55618ec2ed2125e8966ace9d61d
Change-Id: I4322f533a837d55618ec2ed2125e8966ace9d61d
Removing whenever I see these in code reviews.
Test: none
Merged-In: I4322f533a837d55618ec2ed2125e8966ace9d61d
Change-Id: I4322f533a837d55618ec2ed2125e8966ace9d61d