Use system/audio to/from string converters in TypeConverter
Use of system functions eliminates the need for listing all enum
values in TypeConverter tables.
Slight changes in the converting functions:
1. 'channelMaskFromString' function now also accepts indexed
masks.
2. Fixed UB in 'formatFromString' function.
3. Removed 'deviceFromString' function, use
'DeviceConverter::fromString' instead.
Replaced direct includes of 'system/audio-base.h' with
includes of 'system/audio.h'.
Bug: 142480271
Test: m
Test: atest libmedia_helper_tests
Change-Id: Ia0e725026be80621bdc797299e63e134419b2b3d
Merged-In: Ia0e725026be80621bdc797299e63e134419b2b3d
diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
index 889f031..0981bca 100644
--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
@@ -337,7 +337,7 @@
std::string mode = getXmlAttribute(cur, Attributes::mode);
if (!mode.empty()) {
- gain->setMode(static_cast<audio_gain_mode_t>(GainModeConverter::maskFromString(mode)));
+ gain->setMode(GainModeConverter::maskFromString(mode, " "));
}
std::string channelsLiteral = getXmlAttribute(cur, Attributes::channelMask);
@@ -501,7 +501,7 @@
AUDIO_PORT_ROLE_SOURCE : AUDIO_PORT_ROLE_SINK;
audio_devices_t type = AUDIO_DEVICE_NONE;
- if (!deviceFromString(typeName, type) ||
+ if (!DeviceConverter::fromString(typeName, type) ||
(!audio_is_input_device(type) && portRole == AUDIO_PORT_ROLE_SOURCE) ||
(!audio_is_output_devices(type) && portRole == AUDIO_PORT_ROLE_SINK)) {
ALOGW("%s: bad type %08x", __func__, type);