mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 16:50:18 +00:00
Merge "audio: Add retries for BT proxy port registration" into main am: 3552515d70
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2929441 Change-Id: Iafb6336ef09cdb7fbf9e5edef89f916966866e42 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -299,7 +299,13 @@ ndk::ScopedAStatus ModuleBluetooth::createProxy(const AudioPort& audioPort, int3
|
||||
: std::shared_ptr<BluetoothAudioPortAidl>(
|
||||
std::make_shared<BluetoothAudioPortAidlOut>());
|
||||
const auto& devicePort = audioPort.ext.get<AudioPortExt::device>();
|
||||
if (const auto device = devicePort.device.type; !proxy.ptr->registerPort(device)) {
|
||||
const auto device = devicePort.device.type;
|
||||
bool registrationSuccess = false;
|
||||
for (int i = 0; i < kCreateProxyRetries && !registrationSuccess; ++i) {
|
||||
registrationSuccess = proxy.ptr->registerPort(device);
|
||||
usleep(kCreateProxyRetrySleepMs * 1000);
|
||||
}
|
||||
if (!registrationSuccess) {
|
||||
LOG(ERROR) << __func__ << ": failed to register BT port for " << device.toString();
|
||||
return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE);
|
||||
}
|
||||
|
||||
@@ -85,6 +85,8 @@ class ModuleBluetooth final : public Module {
|
||||
ndk::ScopedAStatus findOrCreateProxy(
|
||||
const ::aidl::android::media::audio::common::AudioPort& audioPort, CachedProxy& proxy);
|
||||
|
||||
static constexpr int kCreateProxyRetries = 5;
|
||||
static constexpr int kCreateProxyRetrySleepMs = 250;
|
||||
ChildInterface<BluetoothA2dp> mBluetoothA2dp;
|
||||
ChildInterface<BluetoothLe> mBluetoothLe;
|
||||
std::map<int32_t /*instantiated device port ID*/, CachedProxy> mProxies;
|
||||
|
||||
Reference in New Issue
Block a user