// Handle the FLOWGRAPH_REMOVE_LINK message. // Returns TRUE if the message was handled, otherwise FALSE. UtlBoolean MpFlowGraphBase::handleRemoveLink(MpResource* pFrom, int outPortIdx) { int connectedPort; MpResource* pConnectedResource; // make sure the resource is part of this flow graph if (pFrom->getFlowGraph() != this) { Zprintf("handleRemoveLink: pFrom->getFlowGraph() != this: 0x%p != 0x%p\n", (pFrom->getFlowGraph()), this, 0,0,0,0); assert(FALSE); return FALSE; } // get information about the downstream end of the link pFrom->getOutputInfo(outPortIdx, pConnectedResource, connectedPort); // disconnect the upstream end of the link if (pFrom->disconnectOutput(outPortIdx) == FALSE) { Zprintf("handleRemoveLink: disconnectOutput(0x%p, %d) failed\n", pFrom, outPortIdx, 0,0,0,0); assert(FALSE); // couldn't disconnect return FALSE; } // disconnect the downstream end of the link if (pConnectedResource->disconnectInput(connectedPort) == FALSE) { Zprintf("handleRemoveLink: disconnectInput(0x%p, %d) failed\n", pConnectedResource, connectedPort, 0,0,0,0); assert(FALSE); // couldn't disconnect return FALSE; } mLinkCnt--; mRecomputeOrder = TRUE; return TRUE; }