#include #include "miniwebcam.h" #include "UDPTCPNetwork.h" std::string GenerateHtmlFile(); InMemoryFile GenerateJpgFile(VideoFrame *vf); int WebCamServer::HandleRequest (WebRequestBuffer *requestbuffer, WebServerClient *webclient) { if (requestbuffer == NULL || webclient == NULL) return 0; std::string request = requestbuffer->GetRequest(); printf ("SimpleWebServerClient::HandleRequest() Request:%s\n", request.c_str()); if (request.compare ("/") == 0) request = "/index.html"; if (request.find("/index.html") != std::string::npos) { std::string htmlfile = GenerateHtmlFile(); if (webclient->SendResponseFileFromMemory(requestbuffer, request, "", (void*) htmlfile.c_str(), strlen(htmlfile.c_str())) != 1) return 0; } else if (request.find("/snapshot.jpg") != std::string::npos) { InMemoryFile jpgfile; Lock(); currentimage.ConvertToJpeg(&jpgfile, 99); UnLock(); if (webclient->SendResponseFileFromMemory(requestbuffer, request, "", (void*) jpgfile.mem, jpgfile.memsize) != 1) return 0; } else if (request.find("/snapshot-float.jpg") != std::string::npos) { InMemoryFile jpgfile; Lock(); currentimagefloat.ConvertToJpeg(&jpgfile, 99); UnLock(); if (webclient->SendResponseFileFromMemory(requestbuffer, request, "", (void*) jpgfile.mem, jpgfile.memsize) != 1) return 0; } else { return 0; } requestbuffer->Clear(); return 1; }; std::string GenerateHtmlFile() { std::string res; res = "MiniWebCam"; res += "
"; res += ""; res += "\n"; res += ""; return res; };