diff --git a/amp/src/aal/amp_client_misc.c b/amp/src/aal/amp_client_misc.c index 9a82655..c7df53c 100755 --- a/amp/src/aal/amp_client_misc.c +++ b/amp/src/aal/amp_client_misc.c @@ -440,6 +440,8 @@ HRESULT AMP_DisconnectApp(AMP_COMPONENT hCompObj, AMP_PORT_IO ePortIo, return SUCCESS; } +static int gConCount=0; + HRESULT AMP_ConnectComp(AMP_COMPONENT hUpCompObj, UINT32 uiUpPortIdx, AMP_COMPONENT hDownCompObj, UINT32 uiDownPortIdx) { @@ -448,6 +450,9 @@ HRESULT AMP_ConnectComp(AMP_COMPONENT hUpCompObj, UINT32 uiUpPortIdx, struct AMP_PORT_CONN port_conn; HRESULT result; + FWLOGE("%s:%d Count=%d Up=%x Uport=%u Down=%x Dport=%u", + __FUNCTION__, __LINE__, ++gConCount, hUpCompObj, uiUpPortIdx, hDownCompObj, uiDownPortIdx); + AMP_RPC(result, AMP_COMPONENT_QueryInfo, hUpCompObj, &stCompInfo[0]); if (result != SUCCESS) { FWLOGE("Query upstream component fail!"); @@ -470,6 +475,13 @@ HRESULT AMP_ConnectComp(AMP_COMPONENT hUpCompObj, UINT32 uiUpPortIdx, FWLOGE("Query downstream port fail! %d", uiDownPortIdx); return result; } + + /* print downstream component first */ + FWLOGE("%s:%d downstream compoent", __FUNCTION__, __LINE__); + stCompInfo[0].sName[15]=0; + FWLOGE("name=%s Iport=%u Oport=%u handle=%x", + stCompInfo[0].sName, stCompInfo[0].uiInputPortNum, stCompInfo[0].uiOutputPortNum, stCompInfo[0].hInterHandle); + /* Setup downstream component first */ memset(&port_conn, 0, sizeof(struct AMP_PORT_CONN)); port_conn.ePeerType = port_info[0].ePortType; @@ -483,6 +495,12 @@ HRESULT AMP_ConnectComp(AMP_COMPONENT hUpCompObj, UINT32 uiUpPortIdx, return result; } + /* print upstream component */ + FWLOGE("%s:%d downstream compoent", __FUNCTION__, __LINE__); + stCompInfo[1].sName[15]=0; + FWLOGE("name=%s Iport=%u Oport=%u handle=%x", + stCompInfo[1].sName, stCompInfo[1].uiInputPortNum, stCompInfo[1].uiOutputPortNum, stCompInfo[1].hInterHandle); + /* Setup upstream component */ memset(&port_conn, 0, sizeof(struct AMP_PORT_CONN)); port_conn.ePeerType = port_info[1].ePortType; @@ -492,10 +510,14 @@ HRESULT AMP_ConnectComp(AMP_COMPONENT hUpCompObj, UINT32 uiUpPortIdx, AMP_RPC(result, AMP_COMPONENT_SetupPort, hUpCompObj, AMP_PORT_OUTPUT, uiUpPortIdx, &port_conn); if (result != SUCCESS) { - /* Clean downstream component setup before */ - AMP_RPC(result, AMP_COMPONENT_ClearPort, hDownCompObj, AMP_PORT_INPUT, - uiDownPortIdx); - FWLOGE("Setup upstream port fail! %d", uiUpPortIdx); + if( hDownCompObj ){ + /* Clean downstream component setup before */ + AMP_RPC(result, AMP_COMPONENT_ClearPort, hDownCompObj, AMP_PORT_INPUT, + uiDownPortIdx); + FWLOGE("Setup upstream port fail! Clean DownComp %d", uiUpPortIdx); + }else{ + FWLOGE("Setup upstream port fail! Do not clean DownComp %d", uiUpPortIdx); + } return result; } @@ -507,6 +529,9 @@ HRESULT AMP_DisconnectComp(AMP_COMPONENT hUpCompObj, UINT32 uiUpPortIdx, { HRESULT result; + FWLOGE("%s:%d Count=%d Up=%x Uport=%u Down=%x Dport=%u", + __FUNCTION__, __LINE__, --gConCount, hUpCompObj, uiUpPortIdx, hDownCompObj, uiDownPortIdx); + /* Stop upstream port first */ AMP_RPC(result, AMP_COMPONENT_DisconnectPorts, hUpCompObj, uiUpPortIdx, hDownCompObj, uiDownPortIdx);