blob: 308200abf660041822ff9756ed248e43c6ecfb28 [file] [log] [blame]
Mikhail Naganovdf5adfd2021-11-11 22:09:22 +00001/*
2 * Copyright (C) 2022 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
Lorena Torres-Huertadb11b2d2022-08-19 02:58:59 +000016
Lorena Torres-Huertabc585bd2022-10-23 20:41:35 +000017#define LOG_TAG "AHAL_Config"
Lorena Torres-Huerta0ba91e52022-10-05 21:56:42 +000018#include <android-base/logging.h>
Mikhail Naganovdf5adfd2021-11-11 22:09:22 +000019
Lorena Torres-Huertabc585bd2022-10-23 20:41:35 +000020#include <system/audio_config.h>
21
22#include "core-impl/AudioPolicyConfigXmlConverter.h"
Mikhail Naganovdf5adfd2021-11-11 22:09:22 +000023#include "core-impl/Config.h"
Lorena Torres-Huertabc585bd2022-10-23 20:41:35 +000024#include "core-impl/EngineConfigXmlConverter.h"
Mikhail Naganovdf5adfd2021-11-11 22:09:22 +000025
Lorena Torres-Huertadb11b2d2022-08-19 02:58:59 +000026using aidl::android::media::audio::common::AudioHalEngineConfig;
27
Lorena Torres-Huerta0ba91e52022-10-05 21:56:42 +000028namespace aidl::android::hardware::audio::core {
29ndk::ScopedAStatus Config::getSurroundSoundConfig(SurroundSoundConfig* _aidl_return) {
Mikhail Naganov1e25ef82023-08-23 14:11:42 -070030 static const auto& func = __func__;
Lorena Torres-Huertaaa8f76a2022-12-12 18:17:10 +000031 static const SurroundSoundConfig surroundSoundConfig = [this]() {
Mikhail Naganov1e25ef82023-08-23 14:11:42 -070032 SurroundSoundConfig surroundCfg = mAudioPolicyConverter.getSurroundSoundConfig();
33 if (mAudioPolicyConverter.getStatus() != ::android::OK) {
34 LOG(WARNING) << func << ": " << mAudioPolicyConverter.getError();
Lorena Torres-Huertaaa8f76a2022-12-12 18:17:10 +000035 }
36 return surroundCfg;
37 }();
38 *_aidl_return = surroundSoundConfig;
Lorena Torres-Huerta0ba91e52022-10-05 21:56:42 +000039 LOG(DEBUG) << __func__ << ": returning " << _aidl_return->toString();
40 return ndk::ScopedAStatus::ok();
41}
Lorena Torres-Huertadb11b2d2022-08-19 02:58:59 +000042
43ndk::ScopedAStatus Config::getEngineConfig(AudioHalEngineConfig* _aidl_return) {
Mikhail Naganov1e25ef82023-08-23 14:11:42 -070044 static const auto& func = __func__;
Lorena Torres-Huertabc585bd2022-10-23 20:41:35 +000045 static const AudioHalEngineConfig returnEngCfg = [this]() {
46 AudioHalEngineConfig engConfig;
47 if (mEngConfigConverter.getStatus() == ::android::OK) {
48 engConfig = mEngConfigConverter.getAidlEngineConfig();
49 } else {
Mikhail Naganov1e25ef82023-08-23 14:11:42 -070050 LOG(INFO) << func << ": " << mEngConfigConverter.getError();
Lorena Torres-Huertabc585bd2022-10-23 20:41:35 +000051 if (mAudioPolicyConverter.getStatus() == ::android::OK) {
52 engConfig = mAudioPolicyConverter.getAidlEngineConfig();
53 } else {
Mikhail Naganov1e25ef82023-08-23 14:11:42 -070054 LOG(WARNING) << func << ": " << mAudioPolicyConverter.getError();
Lorena Torres-Huertabc585bd2022-10-23 20:41:35 +000055 }
56 }
Mikhail Naganov26526f12023-05-12 13:51:06 -070057 // Logging full contents of the config is an overkill, just provide statistics.
Mikhail Naganov1e25ef82023-08-23 14:11:42 -070058 LOG(DEBUG) << func
59 << ": number of strategies parsed: " << engConfig.productStrategies.size()
Mikhail Naganov26526f12023-05-12 13:51:06 -070060 << ", default strategy: " << engConfig.defaultProductStrategyId
61 << ", number of volume groups parsed: " << engConfig.volumeGroups.size();
Lorena Torres-Huertabc585bd2022-10-23 20:41:35 +000062 return engConfig;
63 }();
64 *_aidl_return = returnEngCfg;
Lorena Torres-Huertadb11b2d2022-08-19 02:58:59 +000065 return ndk::ScopedAStatus::ok();
66}
Lorena Torres-Huerta0ba91e52022-10-05 21:56:42 +000067} // namespace aidl::android::hardware::audio::core