Revert "libaudiohal@aidl: Make IHalAdapterVendorExtension mandatory"
Revert submission 2929484-fix-b-321651892-ihaladapter
Reason for revert: possible cause of b/323385784
Reverted changes: /q/submissionid:2929484-fix-b-321651892-ihaladapter
Change-Id: Ifaafeec27bee08648a3ced6d507b99454c317692
diff --git a/media/libaudiohal/impl/DevicesFactoryHalAidl.cpp b/media/libaudiohal/impl/DevicesFactoryHalAidl.cpp
index 24df32d..3dbc14a 100644
--- a/media/libaudiohal/impl/DevicesFactoryHalAidl.cpp
+++ b/media/libaudiohal/impl/DevicesFactoryHalAidl.cpp
@@ -23,7 +23,6 @@
//#define LOG_NDEBUG 0
#include <aidl/android/hardware/audio/core/IModule.h>
-#include <aidl/android/media/audio/BnHalAdapterVendorExtension.h>
#include <android/binder_manager.h>
#include <media/AidlConversionNdkCpp.h>
#include <media/AidlConversionUtil.h>
@@ -36,7 +35,6 @@
using aidl::android::hardware::audio::core::IConfig;
using aidl::android::hardware::audio::core::IModule;
using aidl::android::hardware::audio::core::SurroundSoundConfig;
-using aidl::android::hardware::audio::core::VendorParameter;
using aidl::android::media::audio::common::AudioHalEngineConfig;
using aidl::android::media::audio::IHalAdapterVendorExtension;
using android::detail::AudioHalVersionInfo;
@@ -64,86 +62,10 @@
return cpp;
}
-class HalAdapterVendorExtensionWrapper :
- public ::aidl::android::media::audio::BnHalAdapterVendorExtension {
- private:
- ndk::ScopedAStatus parseVendorParameterIds(ParameterScope in_scope,
- const std::string& in_rawKeys,
- std::vector<std::string>* _aidl_return) override {
- ndk::ScopedAStatus status;
- while (true) {
- status = get()->parseVendorParameterIds(in_scope, in_rawKeys, _aidl_return);
- if (status.getStatus() != STATUS_DEAD_OBJECT) break;
- mVendorExt.reset();
- }
- return status;
- }
-
- ndk::ScopedAStatus parseVendorParameters(
- ParameterScope in_scope, const std::string& in_rawKeysAndValues,
- std::vector<VendorParameter>* out_syncParameters,
- std::vector<VendorParameter>* out_asyncParameters) override {
- ndk::ScopedAStatus status;
- while (true) {
- status = get()->parseVendorParameters(in_scope, in_rawKeysAndValues,
- out_syncParameters, out_asyncParameters);
- if (status.getStatus() != STATUS_DEAD_OBJECT) break;
- mVendorExt.reset();
- }
- return status;
- }
-
- ndk::ScopedAStatus parseBluetoothA2dpReconfigureOffload(
- const std::string& in_rawValue, std::vector<VendorParameter>* _aidl_return) override {
- ndk::ScopedAStatus status;
- while (true) {
- status = get()->parseBluetoothA2dpReconfigureOffload(in_rawValue, _aidl_return);
- if (status.getStatus() != STATUS_DEAD_OBJECT) break;
- mVendorExt.reset();
- }
- return status;
- }
-
- ndk::ScopedAStatus parseBluetoothLeReconfigureOffload(const std::string& in_rawValue,
- std::vector<VendorParameter>* _aidl_return) override {
- ndk::ScopedAStatus status;
- while (true) {
- status = get()->parseBluetoothLeReconfigureOffload(in_rawValue, _aidl_return);
- if (status.getStatus() != STATUS_DEAD_OBJECT) break;
- mVendorExt.reset();
- }
- return status;
- }
-
- ndk::ScopedAStatus processVendorParameters(ParameterScope in_scope,
- const std::vector<VendorParameter>& in_parameters,
- std::string* _aidl_return) override {
- ndk::ScopedAStatus status;
- while (true) {
- status = get()->processVendorParameters(in_scope, in_parameters, _aidl_return);
- if (status.getStatus() != STATUS_DEAD_OBJECT) break;
- mVendorExt.reset();
- }
- return status;
- }
-
- std::shared_ptr<IHalAdapterVendorExtension> get() {
- if (!mVendorExt) {
- auto serviceName = std::string(IHalAdapterVendorExtension::descriptor) + "/default";
- mVendorExt = IHalAdapterVendorExtension::fromBinder(ndk::SpAIBinder(
- AServiceManager_waitForService(serviceName.c_str())));
- }
- return mVendorExt;
- }
-
- std::shared_ptr<::aidl::android::media::audio::IHalAdapterVendorExtension> mVendorExt;
-};
-
} // namespace
DevicesFactoryHalAidl::DevicesFactoryHalAidl(std::shared_ptr<IConfig> config)
- : mConfig(std::move(config)),
- mVendorExt(ndk::SharedRefBase::make<HalAdapterVendorExtensionWrapper>()) {
+ : mConfig(std::move(config)) {
}
status_t DevicesFactoryHalAidl::getDeviceNames(std::vector<std::string> *names) {
@@ -188,7 +110,7 @@
ALOGE("%s fromBinder %s failed", __func__, serviceName.c_str());
return NO_INIT;
}
- *device = sp<DeviceHalAidl>::make(name, service, mVendorExt);
+ *device = sp<DeviceHalAidl>::make(name, service, getVendorExtension());
return OK;
}
@@ -227,6 +149,20 @@
return OK;
}
+std::shared_ptr<IHalAdapterVendorExtension> DevicesFactoryHalAidl::getVendorExtension() {
+ if (!mVendorExt.has_value()) {
+ auto serviceName = std::string(IHalAdapterVendorExtension::descriptor) + "/default";
+ if (AServiceManager_isDeclared(serviceName.c_str())) {
+ mVendorExt = std::shared_ptr<IHalAdapterVendorExtension>(
+ IHalAdapterVendorExtension::fromBinder(ndk::SpAIBinder(
+ AServiceManager_waitForService(serviceName.c_str()))));
+ } else {
+ mVendorExt = nullptr;
+ }
+ }
+ return mVendorExt.value();
+}
+
// Main entry-point to the shared library.
extern "C" __attribute__((visibility("default"))) void* createIDevicesFactoryImpl() {
auto serviceName = std::string(IConfig::descriptor) + "/default";