AudioPatchListUpdate过程
2016-12-06 11:30:02 1 举报
Android AudioPatchListUpdate过程
作者其他创作
大纲/内容
mpClientInterface-onAudioPatchListUpdate
在这个模块内的多个函数都会调用到上面的这句,其中mpClientInterface为AudioPolicyClientImpl模块中的函数
AudioPolicyManager
doOnAudioPatchListUpdate会调用mNotificationClients.valueAt(i)-onAudioPatchListUpdate,其实就是:AudioPolicyService::NotificationClient::onAudioPatchListUpdate,这里会调用mAudioPolicyServiceClient-onAudioPatchListUpdate,而mAudioPolicyServiceClient就是AudioSystem
onAudioPatchListUpdate
case AUDIOPORT_EVENT_PATCH_LIST_UPDATED: AudioPatch[] patchList = patches.toArray(new AudioPatch[0]); for (int i = 0; i listeners.size(); i++) { listeners.get(i).onAudioPatchListUpdate(patchList); } break;调用应用注册的onAudioPatchListUpdate函数。
这个模块的此函数会调用,mAudioPolicyService-onAudioPatchListUpdate从而调用到AudiopolicyService中去
Android_media_AudioSystem
endEvent(AUDIOPORT_EVENT_PATCH_LIST_UPDATED)此命令会发送到AudioPortEventHandler执行
mAudioPortCallbacks[i]-onAudioPatchListUpdate
init
AudioPortEventHandler
AudioPatchListUpdate过程
mOutputCommandThread-updateAudioPatchListCommand,然后会调用到Command中的函数去执行
AudioPolicyClientImpl
AudioPolicyService
AudioSystem
updateAudioPatchListCommand函数会发送UPDATE_AUDIOPATCH_LIST命令,到命令中心执行下面操作
在threadloop,会调用UPDATE_AUDIOPATCH_LIST命令下的svc-doOnAudioPatchListUpdate,svc就是audiopolicyservice
0 条评论
回复 删除
下一页