mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 22:04:26 +00:00
Merge "audio: Add offload reconfiguration event to IBluetoothLe" am: b708d292d3 am: 104c4286f5
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2480536 Change-Id: I53c8b3477c99e1f549c69e594afddb7c303c8544 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -36,4 +36,6 @@ package android.hardware.audio.core;
|
||||
interface IBluetoothLe {
|
||||
boolean isEnabled();
|
||||
void setEnabled(boolean enabled);
|
||||
boolean supportsOffloadReconfiguration();
|
||||
void reconfigureOffload(in android.hardware.audio.core.VendorParameter[] parameters);
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ interface IBluetoothA2dp {
|
||||
/**
|
||||
* Indicates whether the module supports reconfiguration of offloaded codecs.
|
||||
*
|
||||
* Offloaded coded implementations may need to be reconfigured when the
|
||||
* Offloaded codec implementations may need to be reconfigured when the
|
||||
* active A2DP device changes. This method indicates whether the HAL module
|
||||
* supports the reconfiguration event. The result returned from this method
|
||||
* must not change over time.
|
||||
@@ -67,11 +67,11 @@ interface IBluetoothA2dp {
|
||||
/**
|
||||
* Instructs the HAL module to reconfigure offloaded codec.
|
||||
*
|
||||
* Offloaded coded implementations may need to be reconfigured when the
|
||||
* Offloaded codec implementations may need to be reconfigured when the
|
||||
* active A2DP device changes. This method is a notification for the HAL
|
||||
* module to commence reconfiguration.
|
||||
*
|
||||
* Note that 'EX_UNSUPPORTED_OPERATION' may only be thrown when
|
||||
* Note that 'EX_UNSUPPORTED_OPERATION' must be thrown if and only if
|
||||
* 'supportsOffloadReconfiguration' returns 'false'.
|
||||
*
|
||||
* @param parameter Optional vendor-specific parameters, can be left empty.
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package android.hardware.audio.core;
|
||||
|
||||
import android.hardware.audio.core.VendorParameter;
|
||||
|
||||
/**
|
||||
* An instance of IBluetoothLe manages settings for the LE (Low Energy)
|
||||
* profiles. This interface is optional to implement by the vendor. It needs to
|
||||
@@ -48,4 +50,33 @@ interface IBluetoothLe {
|
||||
* @throws EX_ILLEGAL_STATE If there was an error performing the operation.
|
||||
*/
|
||||
void setEnabled(boolean enabled);
|
||||
|
||||
/**
|
||||
* Indicates whether the module supports reconfiguration of offloaded codecs.
|
||||
*
|
||||
* Offloaded codec implementations may need to be reconfigured when the
|
||||
* active LE device changes. This method indicates whether the HAL module
|
||||
* supports the reconfiguration event. The result returned from this method
|
||||
* must not change over time.
|
||||
*
|
||||
* @return Whether reconfiguration offload of offloaded codecs is supported.
|
||||
*/
|
||||
boolean supportsOffloadReconfiguration();
|
||||
|
||||
/**
|
||||
* Instructs the HAL module to reconfigure offloaded codec.
|
||||
*
|
||||
* Offloaded codec implementations may need to be reconfigured when the
|
||||
* active LE device changes. This method is a notification for the HAL
|
||||
* module to commence reconfiguration.
|
||||
*
|
||||
* Note that 'EX_UNSUPPORTED_OPERATION' must be thrown if and only if
|
||||
* 'supportsOffloadReconfiguration' returns 'false'.
|
||||
*
|
||||
* @param parameter Optional vendor-specific parameters, can be left empty.
|
||||
* @throws EX_ILLEGAL_STATE If there was an error performing the operation,
|
||||
* or the operation can not be commenced in the current state.
|
||||
* @throws EX_UNSUPPORTED_OPERATION If the module does not support codec reconfiguration.
|
||||
*/
|
||||
void reconfigureOffload(in VendorParameter[] parameters);
|
||||
}
|
||||
|
||||
@@ -117,4 +117,17 @@ ndk::ScopedAStatus BluetoothLe::setEnabled(bool in_enabled) {
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
ndk::ScopedAStatus BluetoothLe::supportsOffloadReconfiguration(bool* _aidl_return) {
|
||||
*_aidl_return = true;
|
||||
LOG(DEBUG) << __func__ << ": returning " << *_aidl_return;
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
ndk::ScopedAStatus BluetoothLe::reconfigureOffload(
|
||||
const std::vector<::aidl::android::hardware::audio::core::VendorParameter>& in_parameters
|
||||
__unused) {
|
||||
LOG(DEBUG) << __func__ << ": " << ::android::internal::ToString(in_parameters);
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
} // namespace aidl::android::hardware::audio::core
|
||||
|
||||
@@ -56,6 +56,10 @@ class BluetoothLe : public BnBluetoothLe {
|
||||
private:
|
||||
ndk::ScopedAStatus isEnabled(bool* _aidl_return) override;
|
||||
ndk::ScopedAStatus setEnabled(bool in_enabled) override;
|
||||
ndk::ScopedAStatus supportsOffloadReconfiguration(bool* _aidl_return) override;
|
||||
ndk::ScopedAStatus reconfigureOffload(
|
||||
const std::vector<::aidl::android::hardware::audio::core::VendorParameter>&
|
||||
in_parameters) override;
|
||||
|
||||
bool mEnabled = false;
|
||||
};
|
||||
|
||||
@@ -2148,6 +2148,23 @@ TEST_P(AudioCoreBluetoothLe, Enabled) {
|
||||
<< "setEnabled without actual state change must not fail";
|
||||
}
|
||||
|
||||
TEST_P(AudioCoreBluetoothLe, OffloadReconfiguration) {
|
||||
if (bluetooth == nullptr) {
|
||||
GTEST_SKIP() << "BluetoothLe is not supported";
|
||||
}
|
||||
bool isSupported;
|
||||
ASSERT_IS_OK(bluetooth->supportsOffloadReconfiguration(&isSupported));
|
||||
bool isSupported2;
|
||||
ASSERT_IS_OK(bluetooth->supportsOffloadReconfiguration(&isSupported2));
|
||||
EXPECT_EQ(isSupported, isSupported2);
|
||||
if (isSupported) {
|
||||
static const auto kStatuses = {EX_NONE, EX_ILLEGAL_STATE};
|
||||
EXPECT_STATUS(kStatuses, bluetooth->reconfigureOffload({}));
|
||||
} else {
|
||||
EXPECT_STATUS(EX_UNSUPPORTED_OPERATION, bluetooth->reconfigureOffload({}));
|
||||
}
|
||||
}
|
||||
|
||||
class AudioCoreTelephony : public AudioCoreModuleBase, public testing::TestWithParam<std::string> {
|
||||
public:
|
||||
void SetUp() override {
|
||||
|
||||
Reference in New Issue
Block a user