Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
AudioPolicyManager::checkAndSetVolume -> AudioPolicyManager.cpp
AudioPolicyManager::computeVolume ->
mEngine->volIndexToDb ->
Engine::volIndexToDb -> frameworks/av/services/audiopolicy/enginedefault/Engine.cpp
Gains::volIndexToDb -> Gains.cpp
outputDesc->setVolume ->
SwAudioOutputDescriptor::setVolume ->
Volume::DbToAmpl
index -> db:
volIndexToDb()会将index转换成db.
OS: Android 6.0
Kernel: 3.10.92
AudioPolicyManager::checkAndSetVolume -> AudioPolicyManager.cpp
AudioPolicyManager::computeVolume ->
mEngine->volIndexToDb ->
Engine::volIndexToDb -> frameworks/av/services/audiopolicy/enginedefault/Engine.cpp
Gains::volIndexToDb -> Gains.cpp
outputDesc->setVolume ->
SwAudioOutputDescriptor::setVolume ->
Volume::DbToAmpl
index -> db:
volIndexToDb()会将index转换成db.
float Gains::volIndexToDb(Volume::device_category deviceCategory,
const StreamDescriptor& streamDesc,
int indexInUi)
{
//对应的是Gains::sVolumeProfiles列表,假设本例是改变music stream的音量,用的是speaker,
//那么就是Gains::sSpeakerMediaVolumeCurve,后面会解释它的由来,见说明一
//Gains::sSpeakerMediaVolumeCurve[Volume::VOLCNT] = {
//{1, -56.0f}, {20, -34.0f}, {60, -11.0f}, {100, 0.0f}
//};
const VolumeCurvePoint *curve = streamDesc.getVolumeCurvePoint(deviceCategory);
// the volume i