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:
commit
2a3bc07b4e
2 changed files with 9 additions and 1 deletions
|
@ -299,7 +299,13 @@ ndk::ScopedAStatus ModuleBluetooth::createProxy(const AudioPort& audioPort, int3
|
||||||
: std::shared_ptr<BluetoothAudioPortAidl>(
|
: std::shared_ptr<BluetoothAudioPortAidl>(
|
||||||
std::make_shared<BluetoothAudioPortAidlOut>());
|
std::make_shared<BluetoothAudioPortAidlOut>());
|
||||||
const auto& devicePort = audioPort.ext.get<AudioPortExt::device>();
|
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();
|
LOG(ERROR) << __func__ << ": failed to register BT port for " << device.toString();
|
||||||
return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE);
|
return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,6 +85,8 @@ class ModuleBluetooth final : public Module {
|
||||||
ndk::ScopedAStatus findOrCreateProxy(
|
ndk::ScopedAStatus findOrCreateProxy(
|
||||||
const ::aidl::android::media::audio::common::AudioPort& audioPort, CachedProxy& proxy);
|
const ::aidl::android::media::audio::common::AudioPort& audioPort, CachedProxy& proxy);
|
||||||
|
|
||||||
|
static constexpr int kCreateProxyRetries = 5;
|
||||||
|
static constexpr int kCreateProxyRetrySleepMs = 250;
|
||||||
ChildInterface<BluetoothA2dp> mBluetoothA2dp;
|
ChildInterface<BluetoothA2dp> mBluetoothA2dp;
|
||||||
ChildInterface<BluetoothLe> mBluetoothLe;
|
ChildInterface<BluetoothLe> mBluetoothLe;
|
||||||
std::map<int32_t /*instantiated device port ID*/, CachedProxy> mProxies;
|
std::map<int32_t /*instantiated device port ID*/, CachedProxy> mProxies;
|
||||||
|
|
Loading…
Reference in a new issue