Revert "audio: Parse module configurations from the APM XML files"
Revert submission 2770886-AidlAudioHalModuleConfig
Reason for revert: Breaks BluetoothInstrumentationTests on main downstream
Reverted changes: /q/submissionid:2770886-AidlAudioHalModuleConfig
Bug: 305291602
Change-Id: I0076c88877943d9498f90c477e78a2be5d390150
diff --git a/audio/aidl/default/main.cpp b/audio/aidl/default/main.cpp
index 6ab747d..a0c0fab 100644
--- a/audio/aidl/default/main.cpp
+++ b/audio/aidl/default/main.cpp
@@ -16,51 +16,21 @@
#include <cstdlib>
#include <ctime>
+#include <sstream>
#include <utility>
#include <vector>
-#define LOG_TAG "AHAL_Main"
#include <android-base/logging.h>
#include <android-base/properties.h>
#include <android/binder_ibinder_platform.h>
#include <android/binder_manager.h>
#include <android/binder_process.h>
-#include "core-impl/AudioPolicyConfigXmlConverter.h"
-#include "core-impl/ChildInterface.h"
#include "core-impl/Config.h"
#include "core-impl/Module.h"
-using aidl::android::hardware::audio::core::ChildInterface;
using aidl::android::hardware::audio::core::Config;
using aidl::android::hardware::audio::core::Module;
-using aidl::android::hardware::audio::core::internal::AudioPolicyConfigXmlConverter;
-
-namespace {
-
-ChildInterface<Module> createModule(const std::string& name,
- std::unique_ptr<Module::Configuration>&& config) {
- ChildInterface<Module> result;
- {
- auto moduleType = Module::typeFromString(name);
- if (!moduleType.has_value()) {
- LOG(ERROR) << __func__ << ": module type \"" << name << "\" is not supported";
- return result;
- }
- auto module = Module::createInstance(*moduleType, std::move(config));
- if (module == nullptr) return result;
- result = std::move(module);
- }
- const std::string moduleFqn = std::string().append(Module::descriptor).append("/").append(name);
- binder_status_t status = AServiceManager_addService(result.getBinder(), moduleFqn.c_str());
- if (status != STATUS_OK) {
- LOG(ERROR) << __func__ << ": failed to register service for \"" << moduleFqn << "\"";
- return ChildInterface<Module>();
- }
- return result;
-};
-
-} // namespace
int main() {
// Random values are used in the implementation.
@@ -75,27 +45,29 @@
// Guaranteed log for b/210919187 and logd_integration_test
LOG(INFO) << "Init for Audio AIDL HAL";
- AudioPolicyConfigXmlConverter audioPolicyConverter{
- ::android::audio_get_audio_policy_config_file()};
-
// Make the default config service
- auto config = ndk::SharedRefBase::make<Config>(audioPolicyConverter);
- const std::string configFqn = std::string().append(Config::descriptor).append("/default");
+ auto config = ndk::SharedRefBase::make<Config>();
+ const std::string configName = std::string() + Config::descriptor + "/default";
binder_status_t status =
- AServiceManager_addService(config->asBinder().get(), configFqn.c_str());
- if (status != STATUS_OK) {
- LOG(ERROR) << "failed to register service for \"" << configFqn << "\"";
- }
+ AServiceManager_addService(config->asBinder().get(), configName.c_str());
+ CHECK_EQ(STATUS_OK, status);
// Make modules
- std::vector<ChildInterface<Module>> moduleInstances;
- auto configs(audioPolicyConverter.releaseModuleConfigs());
- for (std::pair<std::string, std::unique_ptr<Module::Configuration>>& configPair : *configs) {
- std::string name = configPair.first;
- if (auto instance = createModule(name, std::move(configPair.second)); instance) {
- moduleInstances.push_back(std::move(instance));
- }
- }
+ auto createModule = [](Module::Type type) {
+ auto module = Module::createInstance(type);
+ ndk::SpAIBinder moduleBinder = module->asBinder();
+ std::stringstream moduleName;
+ moduleName << Module::descriptor << "/" << type;
+ AIBinder_setMinSchedulerPolicy(moduleBinder.get(), SCHED_NORMAL, ANDROID_PRIORITY_AUDIO);
+ binder_status_t status =
+ AServiceManager_addService(moduleBinder.get(), moduleName.str().c_str());
+ CHECK_EQ(STATUS_OK, status);
+ return std::make_pair(module, moduleBinder);
+ };
+ auto modules = {createModule(Module::Type::DEFAULT), createModule(Module::Type::R_SUBMIX),
+ createModule(Module::Type::USB), createModule(Module::Type::STUB),
+ createModule(Module::Type::BLUETOOTH)};
+ (void)modules;
ABinderProcess_joinThreadPool();
return EXIT_FAILURE; // should not reach