LeAudio/multicodec: Fix the async data path getter API am: 4856308c50

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2897465

Change-Id: Ia647a7c4f5512be92bab856d83d1a0642a472251
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Jakub Tyszkowski
2024-01-05 19:39:02 +00:00
committed by Automerger Merge Worker
4 changed files with 43 additions and 11 deletions

View File

@@ -45,7 +45,7 @@ interface IBluetoothAudioProvider {
void setCodecPriority(in android.hardware.bluetooth.audio.CodecId codecId, int priority); void setCodecPriority(in android.hardware.bluetooth.audio.CodecId codecId, int priority);
List<android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseConfigurationSetting> getLeAudioAseConfiguration(in @nullable List<android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities> remoteSinkAudioCapabilities, in @nullable List<android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities> remoteSourceAudioCapabilities, in List<android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioConfigurationRequirement> requirements); List<android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseConfigurationSetting> getLeAudioAseConfiguration(in @nullable List<android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities> remoteSinkAudioCapabilities, in @nullable List<android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities> remoteSourceAudioCapabilities, in List<android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioConfigurationRequirement> requirements);
android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationPair getLeAudioAseQosConfiguration(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement qosRequirement); android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationPair getLeAudioAseQosConfiguration(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioAseQosConfigurationRequirement qosRequirement);
android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfigurationPair getLeAudioAseDatapathConfiguration(in android.hardware.bluetooth.audio.AudioContext context, in android.hardware.bluetooth.audio.LeAudioConfiguration.StreamMap[] streamMap); android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfigurationPair getLeAudioAseDatapathConfiguration(in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.StreamConfig sinkConfig, in @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.StreamConfig sourceConfig);
void onSinkAseMetadataChanged(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.AseState state, int cigId, int cisId, in @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata); void onSinkAseMetadataChanged(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.AseState state, int cigId, int cisId, in @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata);
void onSourceAseMetadataChanged(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.AseState state, int cigId, int cisId, in @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata); void onSourceAseMetadataChanged(in android.hardware.bluetooth.audio.IBluetoothAudioProvider.AseState state, int cigId, int cisId, in @nullable android.hardware.bluetooth.audio.MetadataLtv[] metadata);
android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationSetting getLeAudioBroadcastConfiguration(in @nullable List<android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities> remoteSinkAudioCapabilities, in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationRequirement requirement); android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationSetting getLeAudioBroadcastConfiguration(in @nullable List<android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDeviceCapabilities> remoteSinkAudioCapabilities, in android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioBroadcastConfigurationRequirement requirement);
@@ -146,6 +146,10 @@ interface IBluetoothAudioProvider {
@nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration inputConfig; @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration inputConfig;
@nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration outputConfig; @nullable android.hardware.bluetooth.audio.IBluetoothAudioProvider.LeAudioDataPathConfiguration outputConfig;
} }
parcelable StreamConfig {
android.hardware.bluetooth.audio.AudioContext context;
android.hardware.bluetooth.audio.LeAudioConfiguration.StreamMap[] streamMap;
}
@Backing(type="byte") @VintfStability @Backing(type="byte") @VintfStability
enum AseState { enum AseState {
ENABLING = 0x00, ENABLING = 0x00,

View File

@@ -518,15 +518,38 @@ interface IBluetoothAudioProvider {
@nullable LeAudioDataPathConfiguration outputConfig; @nullable LeAudioDataPathConfiguration outputConfig;
} }
/**
* Stream Configuration
*/
parcelable StreamConfig {
/**
* Streaming Audio Context.
* This can serve as a hint for selecting the proper configuration by
* the offloader.
*/
AudioContext context;
/**
* Stream configuration, including connection handles and audio channel
* allocations.
*/
StreamMap[] streamMap;
}
/** /**
* Used to get a data path configuration which dynamically depends on CIS * Used to get a data path configuration which dynamically depends on CIS
* connection handles in StreamMap. This is used if non-dynamic data path * connection handles in StreamMap. This is used if non-dynamic data path
* was not provided in LeAudioAseConfigurationSetting. Calling this during * was not provided in LeAudioAseConfigurationSetting. Calling this during
* the unicast audio stream establishment might slightly delay the stream * the unicast audio stream establishment might slightly delay the stream
* start. * start.
*
* @param sinkConfig - remote sink device stream configuration
* @param sourceConfig - remote source device stream configuration
*
* @return LeAudioDataPathConfigurationPair
*/ */
LeAudioDataPathConfigurationPair getLeAudioAseDatapathConfiguration( LeAudioDataPathConfigurationPair getLeAudioAseDatapathConfiguration(
in AudioContext context, in StreamMap[] streamMap); in @nullable StreamConfig sinkConfig,
in @nullable StreamConfig sourceConfig);
/* /*
* Audio Stream Endpoint state used to report Metadata changes on the remote * Audio Stream Endpoint state used to report Metadata changes on the remote

View File

@@ -229,14 +229,17 @@ ndk::ScopedAStatus BluetoothAudioProvider::getLeAudioAseQosConfiguration(
}; };
ndk::ScopedAStatus BluetoothAudioProvider::getLeAudioAseDatapathConfiguration( ndk::ScopedAStatus BluetoothAudioProvider::getLeAudioAseDatapathConfiguration(
const ::aidl::android::hardware::bluetooth::audio::AudioContext& in_context, const std::optional<::aidl::android::hardware::bluetooth::audio::
const std::vector<::aidl::android::hardware::bluetooth::audio:: IBluetoothAudioProvider::StreamConfig>&
LeAudioConfiguration::StreamMap>& in_streamMap, in_sinkConfig,
const std::optional<::aidl::android::hardware::bluetooth::audio::
IBluetoothAudioProvider::StreamConfig>&
in_sourceConfig,
::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider:: ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::
LeAudioDataPathConfigurationPair* _aidl_return) { LeAudioDataPathConfigurationPair* _aidl_return) {
/* TODO: Implement */ /* TODO: Implement */
(void)in_context; (void)in_sinkConfig;
(void)in_streamMap; (void)in_sourceConfig;
(void)_aidl_return; (void)_aidl_return;
return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
} }

View File

@@ -71,10 +71,12 @@ class BluetoothAudioProvider : public BnBluetoothAudioProvider {
::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider:: ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::
LeAudioAseQosConfigurationPair* _aidl_return) override; LeAudioAseQosConfigurationPair* _aidl_return) override;
ndk::ScopedAStatus getLeAudioAseDatapathConfiguration( ndk::ScopedAStatus getLeAudioAseDatapathConfiguration(
const ::aidl::android::hardware::bluetooth::audio::AudioContext& const std::optional<::aidl::android::hardware::bluetooth::audio::
in_context, IBluetoothAudioProvider::StreamConfig>&
const std::vector<::aidl::android::hardware::bluetooth::audio:: in_sinkConfig,
LeAudioConfiguration::StreamMap>& in_streamMap, const std::optional<::aidl::android::hardware::bluetooth::audio::
IBluetoothAudioProvider::StreamConfig>&
in_sourceConfig,
::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider:: ::aidl::android::hardware::bluetooth::audio::IBluetoothAudioProvider::
LeAudioDataPathConfigurationPair* _aidl_return) override; LeAudioDataPathConfigurationPair* _aidl_return) override;
ndk::ScopedAStatus onSinkAseMetadataChanged( ndk::ScopedAStatus onSinkAseMetadataChanged(