[AIDL CTS] pass Virtualizer implementation cts

Bug: 270158223
Test: atest android.media.audio.cts.VirtualizerTest
Change-Id: I4b0e96535cec864e1cea71fe6e0d183d17e9e57d
This commit is contained in:
Shunkai Yao
2023-02-21 17:47:24 +00:00
parent e85498a968
commit 2c41a20a21

View File

@@ -68,11 +68,7 @@ const std::vector<Range::VirtualizerRange> VirtualizerSw::kRanges = {
MAKE_RANGE(Virtualizer, strengthPm, 0, 1000),
/* speakerAngle is get-only, set min > max */
MAKE_RANGE(Virtualizer, speakerAngles, {Virtualizer::ChannelAngle({.channel = 1})},
{Virtualizer::ChannelAngle({.channel = 0})}),
/* device is get-only */
MAKE_RANGE(Virtualizer, device,
AudioDeviceDescription({.type = AudioDeviceType::IN_DEFAULT}),
AudioDeviceDescription({.type = AudioDeviceType::NONE}))};
{Virtualizer::ChannelAngle({.channel = 0})})};
const Capability VirtualizerSw::kCapability = {
.range = Range::make<Range::virtualizer>(VirtualizerSw::kRanges)};
@@ -174,17 +170,21 @@ ndk::ScopedAStatus VirtualizerSw::getParameterVirtualizer(const Virtualizer::Tag
ndk::ScopedAStatus VirtualizerSw::getSpeakerAngles(const Virtualizer::SpeakerAnglesPayload payload,
Parameter::Specific* specific) {
std::vector<Virtualizer::ChannelAngle> angles;
if (::android::hardware::audio::common::getChannelCount(payload.layout) == 1) {
const auto chNum = ::android::hardware::audio::common::getChannelCount(payload.layout);
if (chNum == 1) {
angles = {{.channel = (int32_t)AudioChannelLayout::CHANNEL_FRONT_LEFT,
.azimuthDegree = 0,
.elevationDegree = 0}};
} else {
} else if (chNum == 2) {
angles = {{.channel = (int32_t)AudioChannelLayout::CHANNEL_FRONT_LEFT,
.azimuthDegree = -90,
.elevationDegree = 0},
{.channel = (int32_t)AudioChannelLayout::CHANNEL_FRONT_RIGHT,
.azimuthDegree = 90,
.elevationDegree = 0}};
} else {
return ndk::ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT,
"supportUpTo2Ch");
}
Virtualizer param = Virtualizer::make<Virtualizer::speakerAngles>(angles);