简单概要下:
BTIF:提供bluedroid对外的接口
BTA:提供各种profile的实现
stack:协议实现与连接管理
上层在建立A2dp connect连接的时候,先调用到btif层的btif_av.cc中函数src_connect_sink,接着调用bta层bta_av_api.cc中函数BTA_AvOpen,经过内部state machine处理,最终调用Stack层l2c_api.c中的函数L2CA_ErtmConnectReq。这样就在bluedroid中的连接过程就完成了。
这里我们重点讲解下bta_av_main.cc 的代码(BTA AV的主要实施文件)逻辑
packages/modules/Bluetooth/system/btif/src/btif_av.cc
/******************************************************************************
*
* Copyright 2004-2012 Broadcom Corporation
*
* Licensed under the Apache License, Version 2.0