Split getSurroundSound method in 2 methods.
Split getSurroundSound in:
getSurroundSound for formats supported by source android device
getReportedSurroundSound for formats reported by any connected sound
device like soundbar etc.
Bug: 177990551
Test: atest AudioPolicyManagerTestForHdmi
Change-Id: Iac811315049f0598c930afd75f069f058080dad4
diff --git a/services/audiopolicy/tests/audiopolicymanager_tests.cpp b/services/audiopolicy/tests/audiopolicymanager_tests.cpp
index a8ede90..73be835 100644
--- a/services/audiopolicy/tests/audiopolicymanager_tests.cpp
+++ b/services/audiopolicy/tests/audiopolicymanager_tests.cpp
@@ -797,7 +797,8 @@
protected:
void SetUp() override;
std::string getConfigFile() override { return sTvConfig; }
- std::map<audio_format_t, bool> getSurroundFormatsHelper(bool reported);
+ std::map<audio_format_t, bool> getSurroundFormatsHelper();
+ std::vector<audio_format_t> getReportedSurroundFormatsHelper();
std::unordered_set<audio_format_t> getFormatsFromPorts();
AudioPolicyManagerTestClient* getClient() override {
return new AudioPolicyManagerTestClientForHdmi;
@@ -828,12 +829,12 @@
}
std::map<audio_format_t, bool>
- AudioPolicyManagerTestForHdmi::getSurroundFormatsHelper(bool reported) {
+ AudioPolicyManagerTestForHdmi::getSurroundFormatsHelper() {
unsigned int numSurroundFormats = 0;
std::map<audio_format_t, bool> surroundFormatsMap;
status_t ret = mManager->getSurroundFormats(
&numSurroundFormats, nullptr /* surroundFormats */,
- nullptr /* surroundFormatsEnabled */, reported);
+ nullptr /* surroundFormatsEnabled */);
EXPECT_EQ(NO_ERROR, ret);
if (ret != NO_ERROR) {
return surroundFormatsMap;
@@ -843,7 +844,7 @@
bool surroundFormatsEnabled[numSurroundFormats];
memset(surroundFormatsEnabled, 0, sizeof(bool) * numSurroundFormats);
ret = mManager->getSurroundFormats(
- &numSurroundFormats, surroundFormats, surroundFormatsEnabled, reported);
+ &numSurroundFormats, surroundFormats, surroundFormatsEnabled);
EXPECT_EQ(NO_ERROR, ret);
if (ret != NO_ERROR) {
return surroundFormatsMap;
@@ -854,6 +855,28 @@
return surroundFormatsMap;
}
+std::vector<audio_format_t> AudioPolicyManagerTestForHdmi::getReportedSurroundFormatsHelper() {
+ unsigned int numSurroundFormats = 0;
+ std::vector<audio_format_t> surroundFormatsVector;
+ status_t ret = mManager->getReportedSurroundFormats(
+ &numSurroundFormats, nullptr /* surroundFormats */);
+ EXPECT_EQ(NO_ERROR, ret);
+ if (ret != NO_ERROR) {
+ return surroundFormatsVector;
+ }
+ audio_format_t surroundFormats[numSurroundFormats];
+ memset(surroundFormats, 0, sizeof(audio_format_t) * numSurroundFormats);
+ ret = mManager->getReportedSurroundFormats(&numSurroundFormats, surroundFormats);
+ EXPECT_EQ(NO_ERROR, ret);
+ if (ret != NO_ERROR) {
+ return surroundFormatsVector;
+ }
+ for (const auto &surroundFormat : surroundFormats) {
+ surroundFormatsVector.push_back(surroundFormat);
+ }
+ return surroundFormatsVector;
+}
+
std::unordered_set<audio_format_t>
AudioPolicyManagerTestForHdmi::getFormatsFromPorts() {
uint32_t numPorts = 0;
@@ -884,7 +907,7 @@
TEST_F(AudioPolicyManagerTestForHdmi, GetSurroundFormatsReturnsSupportedFormats) {
mManager->setForceUse(
AUDIO_POLICY_FORCE_FOR_ENCODED_SURROUND, AUDIO_POLICY_FORCE_ENCODED_SURROUND_ALWAYS);
- auto surroundFormats = getSurroundFormatsHelper(false /*reported*/);
+ auto surroundFormats = getSurroundFormatsHelper();
ASSERT_EQ(1, surroundFormats.count(AUDIO_FORMAT_E_AC3));
}
@@ -896,19 +919,19 @@
status_t ret =
mManager->setSurroundFormatEnabled(AUDIO_FORMAT_E_AC3, false /*enabled*/);
ASSERT_EQ(NO_ERROR, ret);
- auto surroundFormats = getSurroundFormatsHelper(false /*reported*/);
+ auto surroundFormats = getSurroundFormatsHelper();
ASSERT_EQ(1, surroundFormats.count(AUDIO_FORMAT_E_AC3));
ASSERT_FALSE(surroundFormats[AUDIO_FORMAT_E_AC3]);
ret = mManager->setSurroundFormatEnabled(AUDIO_FORMAT_E_AC3, true /*enabled*/);
ASSERT_EQ(NO_ERROR, ret);
- surroundFormats = getSurroundFormatsHelper(false /*reported*/);
+ surroundFormats = getSurroundFormatsHelper();
ASSERT_EQ(1, surroundFormats.count(AUDIO_FORMAT_E_AC3));
ASSERT_TRUE(surroundFormats[AUDIO_FORMAT_E_AC3]);
ret = mManager->setSurroundFormatEnabled(AUDIO_FORMAT_E_AC3, false /*enabled*/);
ASSERT_EQ(NO_ERROR, ret);
- surroundFormats = getSurroundFormatsHelper(false /*reported*/);
+ surroundFormats = getSurroundFormatsHelper();
ASSERT_EQ(1, surroundFormats.count(AUDIO_FORMAT_E_AC3));
ASSERT_FALSE(surroundFormats[AUDIO_FORMAT_E_AC3]);
}
@@ -931,8 +954,8 @@
GetReportedSurroundFormatsReturnsHdmiReportedFormats) {
mManager->setForceUse(
AUDIO_POLICY_FORCE_FOR_ENCODED_SURROUND, AUDIO_POLICY_FORCE_ENCODED_SURROUND_ALWAYS);
- auto surroundFormats = getSurroundFormatsHelper(true /*reported*/);
- ASSERT_EQ(1, surroundFormats.count(AUDIO_FORMAT_E_AC3));
+ auto surroundFormats = getReportedSurroundFormatsHelper();
+ ASSERT_EQ(1, std::count(surroundFormats.begin(), surroundFormats.end(), AUDIO_FORMAT_E_AC3));
}
TEST_F(AudioPolicyManagerTestForHdmi,
@@ -942,13 +965,13 @@
status_t ret = mManager->setSurroundFormatEnabled(AUDIO_FORMAT_E_AC3, false /*enabled*/);
ASSERT_EQ(NO_ERROR, ret);
- auto surroundFormats = getSurroundFormatsHelper(true /*reported*/);
- ASSERT_EQ(1, surroundFormats.count(AUDIO_FORMAT_E_AC3));
+ auto surroundFormats = getReportedSurroundFormatsHelper();
+ ASSERT_EQ(1, std::count(surroundFormats.begin(), surroundFormats.end(), AUDIO_FORMAT_E_AC3));
ret = mManager->setSurroundFormatEnabled(AUDIO_FORMAT_E_AC3, true /*enabled*/);
ASSERT_EQ(NO_ERROR, ret);
- surroundFormats = getSurroundFormatsHelper(true /*reported*/);
- ASSERT_EQ(1, surroundFormats.count(AUDIO_FORMAT_E_AC3));
+ surroundFormats = getReportedSurroundFormatsHelper();
+ ASSERT_EQ(1, std::count(surroundFormats.begin(), surroundFormats.end(), AUDIO_FORMAT_E_AC3));
}
class AudioPolicyManagerTestDPNoRemoteSubmixModule : public AudioPolicyManagerTestDynamicPolicy {