Audio policy: fix device gain initialization
Fix initilization of default gain configuration for
audio devices loaded from audio_policy.conf.
Initialization cannot be done in constructor as the possible
gain configurations are not loaded yet.
Bug: 19120566.
Change-Id: I78f057ecfa1a121365ac3d8f317912a6f1647627
diff --git a/services/audiopolicy/AudioPolicyManager.cpp b/services/audiopolicy/AudioPolicyManager.cpp
index 0349327..fb74d66 100644
--- a/services/audiopolicy/AudioPolicyManager.cpp
+++ b/services/audiopolicy/AudioPolicyManager.cpp
@@ -7449,9 +7449,6 @@
NULL),
mDeviceType(type), mAddress(""), mId(0)
{
- if (mGains.size() > 0) {
- mGains[0]->getDefaultConfig(&mGain);
- }
}
bool AudioPolicyManager::DeviceDescriptor::equals(const sp<DeviceDescriptor>& other) const
@@ -7466,6 +7463,15 @@
mChannelMask == other->mChannelMask);
}
+void AudioPolicyManager::DeviceDescriptor::loadGains(cnode *root)
+{
+ AudioPort::loadGains(root);
+ if (mGains.size() > 0) {
+ mGains[0]->getDefaultConfig(&mGain);
+ }
+}
+
+
void AudioPolicyManager::DeviceVector::refreshTypes()
{
mDeviceTypes = AUDIO_DEVICE_NONE;