bool MythFEXML::ProcessRequest( HTTPRequest *pRequest ) { if (!pRequest) return false; if (pRequest->m_sBaseUrl != m_sControlUrl) return false; LOG(VB_UPNP, LOG_INFO, QString("MythFEXML::ProcessRequest: %1 : %2") .arg(pRequest->m_sMethod).arg(pRequest->m_sRawRequest)); switch(GetMethod(pRequest->m_sMethod)) { case MFEXML_GetServiceDescription: pRequest->FormatFileResponse(m_sServiceDescFileName); break; case MFEXML_GetScreenShot: GetScreenShot(pRequest); break; case MFEXML_ActionListTest: GetActionListTest(pRequest); break; case MFEXML_GetRemote: GetRemote(pRequest); break; default: UPnp::FormatErrorResponse(pRequest, UPnPResult_InvalidAction); } return true; }
static void amaobj(char path[], char filename[]) { char command[stringsize], s[stringsize], *words[stringsize]; int k, handle = -1, count; bool echo = False; InitOptions(False, path); CreateInterpreter(); if(!Load(filename) || !InitRemote()) return; for(;;) { getstring(">> ", command); if(echo) WriteString(command); WriteString("\n"); count = FindWords(command, words, stringsize); if(count == 2 && strcmp(words[0], "object") == 0) { DropRemote(handle); handle = CreateRemote(words[1]); } else if(count >= 2 && strcmp(words[0], "call") == 0) { if(handle < 0) WriteString("No object selected"); else { starttiming(); for(k=2; k < count; k++) PutRemote(handle, words[k]); CallRemote(handle, words[1]); WriteString("<\n"); while(GetRemote(handle, s, stringsize)) { WriteString(s); WriteString("\n"); } WriteString(">\n"); stoptiming(); } } else if(count == 1 && strcmp(words[0], "echo") == 0) echo = !echo; else if(count == 1 && strcmp(words[0], "time") == 0) timing = !timing; else if(count == 1 && strcmp(words[0], "exit") == 0) break; else WriteString("???\n"); WriteString("\n"); } }