//----------------------------------------------------------------------------------------- int precompfixt(XmlElement& xft, XmlElement& xf, ostream& outf, bool nounique) { int depth(1); XmlElement::XmlSet fldlist; xft.find("fix/fields/field", fldlist); xf.find("fix/fields/field", fldlist); if (!nounique) filter_unique(fldlist); XmlElement::XmlSet comlist, comlistfixt; Components components, componentsfixt; xft.find("fix/components/component", comlistfixt); xf.find("fix/components/component", comlist); load_components(comlistfixt, componentsfixt); load_components(comlist, components); outf << doctype << endl; outf << '<' << xft.GetTag(); output_attributes(xft, outf); outf << '>' << endl; const XmlElement *header(xft.find("fix/header")); if (header) process_messages(*header, componentsfixt, "header", 0, outf); const XmlElement *trailer(xft.find("fix/trailer")); if (trailer) process_messages(*trailer, componentsfixt, "trailer", 0, outf); outf << string(depth * 2, ' ') << "<messages>" << endl; XmlElement::XmlSet msglist; xft.find("fix/messages/message", msglist); for(XmlElement::XmlSet::const_iterator itr(msglist.begin()); itr != msglist.end(); ++itr) process_messages(**itr, componentsfixt, "message", depth, outf); msglist.clear(); xf.find("fix/messages/message", msglist); for(XmlElement::XmlSet::const_iterator itr(msglist.begin()); itr != msglist.end(); ++itr) process_messages(**itr, components, "message", depth, outf); outf << string(depth * 2, ' ') << "</messages>" << endl; process_fields(fldlist, depth, outf); outf << "</" << xft.GetTag() << '>' << endl; return 0; }
OMX_ERRORTYPE cmd_process(HTEST *hTest) { char rep[10]; OMX_BOOL bExit = OMX_FALSE; while(bExit == OMX_FALSE) { printf("Input test cmd:\n"); printf("[l]load component\n"); printf("[t]tunnel component\n"); printf("[s]state trans\n"); printf("[d]port disbale\n"); printf("[e]port enable\n"); printf("[x]exit\n"); scanf("%s", rep); if(rep[0] == 'l') load_components(hTest); else if(rep[0] == 't') { OMX_U32 aIdx, aPort, bIdx, bPort; printf("Tunnel method:\n"); printf("AIdx,APort,BIdx,BPort\n"); scanf("%d,%d,%d,%d", &aIdx, &aPort, &bIdx, &bPort); hTest->component[aIdx].bPortTunneled[aPort] = OMX_TRUE; hTest->component[bIdx].bPortTunneled[bPort] = OMX_TRUE; tunnel_component(hTest->component[aIdx].hComponent, aPort, hTest->component[bIdx].hComponent, bPort); } else if(rep[0] == 's') { OMX_U32 state = 0; printf("State trans to:\n"); printf("0 -- Invalid\n"); printf("1 -- Loaded\n"); printf("2 -- Idle\n"); printf("3 -- Executing\n"); printf("4 -- Pause\n"); printf("5 -- WaitForResources\n"); scanf("%d", &state); StateTrans(hTest, (OMX_STATETYPE)state); } else if(rep[0] == 'd') { tunneled_port_pair_disable(hTest); } else if(rep[0] == 'e') { tunneled_port_pair_enable(hTest); } else if(rep[0] == 'x') { MSG sMsg; sMsg.type = EXIT; hTest->pMsgQ->Add(&sMsg); hTest->bStop = OMX_TRUE; bExit = OMX_TRUE; unload_components(hTest); } } return OMX_ErrorNone; }