MDSS: multimedia Display sub system 多媒体显示子系统
1)MDSS_DrvConfig_Install()
实例化MDSS_DrvConfig_FunctionTableType结构体中的函数指着
typedef struct
{
MDSS_Status (*pMDSS_DrvConfig_Init) (void);
MDSS_Status (*pMDSS_DrvConfig_Term) (void);
MDSS_Status (*pMDSS_DrvConfig_GetProperty) (MDSS_DrvConfig_PropertyType ePropertyType,
void *pPropertyInfo);
} MDSS_DrvConfig_FunctionTableType;
psFunctionTable->pMDSS_DrvConfig_Init = _MDSS_DrvConfig_Init;
psFunctionTable->pMDSS_DrvConfig_Term = _MDSS_DrvConfig_Term;
psFunctionTable->pMDSS_DrvConfig_GetProperty = _MDSS_DrvConfig_GetProperty;
2)_MDSS_DrvConfig_Init()
MDSS_INTERNAL_API MDSS_Status _MDSS_DrvConfig_Init(void)
初始化qcdisplay*.xml的相关信息:校验路径,打开文件,读取文件信息等
3)MDSS_DrvConfig_GetConfigFilePath()
static void MDSS_DrvConfig_GetConfigFilePath(MDSS_DrvConfig_ParserCtxType *pParserCtx)
确认xml文件是否存在
MDSS_DrvConfig_ParserCtxType结构体:
typedef struct _DrvConfig_ParserCtxType
{
MDSS_CharType *pBuffer; //读取文件后数据存放buffer
MDSS_CharType pConfigFilePath[MDSS_DRVCONFIG_MAX_PATH_SIZE]; //文件路径
uint32 uFileSize; //文件大小
bool32 bFileExists; //文件是否存在
bool32 bParserInit; //解析是否完成标志
uint32 uCurrentlyProcessingDisplayID; /* ID of the current display being processed */
/* 0 if not processing any display */
//物理通道的id号
XML_Parser XMLParser; //xml解析器句柄
uint32 uVersionID; //使用的配置版本
} MDSS_DrvConfig_ParserCtxType;
4)MDSS_DrvConfig_ReadConfigFile()
static MDSS_Status MDSS_DrvConfig_ReadConfigFile(MDSS_DrvConfig_ParserCtxType *pParserCtx)
打开xml文件,并将文件内容读取到pBuffer中
5)MDSS_DrvConfig_XMLParse()
static MDSS_Status MDSS_DrvConfig_XMLParse(MDSS_DrvConfig_ParserCtxType *pParserCtx)
解析xml内容
·XML_SetElementHandler() 串联需要执行的函数,并指定其执行的先后顺序。
·XML_Parse() 按照xml规则解析xml文件,根据函数的调用顺序依次解析
相关解析函数:
MDSS_DrvConfig_ProcessVersionTag() 获取版本号
MDSS_DrvConfig_ProcessGlobalConfigTag() 获取config信息
MDSS_DrvConfig_ProcessHdmiModeBoundsTag() 获取hdmi模式信息
MDSS_DrvConfig_ProcessSplitDSIConfigTag() 获取dsi split信息
MDSS_DrvConfig_ProcessWFDClientTag() 获取wfd client id
MDSS_DrvConfig_ProcessWFDPortTag() 获取wfd port id
MDSS_DrvConfig_ProcessPortAttribsTag() 获取wfd port信息,包含display id,display node,port type,zorder base
MDSS_DrvConfig_ProcessWFDPipelineTag() 获取pipeline和z-order
MDSS_DrvConfig_ProcessDisplayTag() 获取物理通道号
MDSS_DrvConfig_ProcessPanelLibraryNameTag() 获取调用的库路径名
MDSS_DrvConfig_ProcessPanelVideoTimingTag() 获取屏的相关参数配置
MDSS_DrvConfig_ProcessLVDSConfigTag() 获取dsi的相关配置,包括bridgechip id, 数据格式,dsi lanes
MDSS_DrvConfig_ProcessVideoModeTag() 获取HDMI/DP通道上的屏参数配置
MDSS_DrvConfig_ProcessDispNodeTag() 获取display node模式的id
MDSS_DrvConfig_ProcessDispNodeAttributesTag() 获取node模式下的偏移配置
MDSS_DrvConfig_ProcessExtendedAttribsTag() 获取扩展属性配置
6)MDSS_DrvConfig_Term
MDSS_INTERNAL_API MDSS_Status _MDSS_DrvConfig_Term(void)
释放display config的信息
7)MDSS_DrvConfig_GetProperty
MDSS_INTERNAL_API MDSS_Status _MDSS_DrvConfig_GetProperty(
MDSS_DrvConfig_PropertyType ePropertyType,
void *pPropertyInfo)
根据ePropertyType获取配置的相关信息