|
|
|
|
@ -7,6 +7,9 @@
|
|
|
|
|
|
|
|
|
|
extern VideoDevice *vdev;
|
|
|
|
|
|
|
|
|
|
std::string API_Get_Ctrls();
|
|
|
|
|
std::string API_Set_Ctrl(std::string request);
|
|
|
|
|
|
|
|
|
|
// InMemoryFile GenerateJpgFile(VideoFrame *vf);
|
|
|
|
|
InMemoryTar assets;
|
|
|
|
|
|
|
|
|
|
@ -37,8 +40,12 @@ int WebCamServer::HandleRequest (WebRequestBuffer *requestbuffer, WebServerClien
|
|
|
|
|
jpgfile.memsize) != 1) return 0;
|
|
|
|
|
}
|
|
|
|
|
else if (request.compare("/get/ctrls") == 0) {
|
|
|
|
|
std::list<VideoDevCtrl> list;
|
|
|
|
|
list = vdev->GetDevCtrls();
|
|
|
|
|
debug ("get controls");
|
|
|
|
|
if (webclient->SendResponseData(requestbuffer, API_Get_Ctrls(), "") != 1) return 0;
|
|
|
|
|
}
|
|
|
|
|
else if (request.find("/set/ctrl") != std::string::npos) {
|
|
|
|
|
debug ("set controls");
|
|
|
|
|
if (webclient->SendResponseData(requestbuffer, API_Set_Ctrl(request), "") != 1) return 0;
|
|
|
|
|
}
|
|
|
|
|
else if (isfile("www"+request)) {
|
|
|
|
|
if (webclient->SendResponseFile(requestbuffer, request, "") != 1) return 0;
|
|
|
|
|
@ -57,3 +64,52 @@ int WebCamServer::HandleRequest (WebRequestBuffer *requestbuffer, WebServerClien
|
|
|
|
|
return 1;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
std::string API_Get_Ctrls() {
|
|
|
|
|
std::list<VideoDevCtrl> list;
|
|
|
|
|
std::list<VideoDevCtrl>::iterator i;
|
|
|
|
|
list = vdev->GetDevCtrls();
|
|
|
|
|
|
|
|
|
|
JSONParse jp;
|
|
|
|
|
JSONElement je;
|
|
|
|
|
|
|
|
|
|
je.Clear();
|
|
|
|
|
jp.Clear();
|
|
|
|
|
|
|
|
|
|
for (i = list.begin(); i != list.end(); i++) {
|
|
|
|
|
JSONParse jpe;
|
|
|
|
|
jpe.Clear();
|
|
|
|
|
jpe.AddObject("id", (int) i->id);
|
|
|
|
|
jpe.AddObject("name", i->name);
|
|
|
|
|
jpe.AddObject("value", i->value);
|
|
|
|
|
jpe.AddObject("min", i->min);
|
|
|
|
|
jpe.AddObject("max", i->max);
|
|
|
|
|
je.SetAddArray("ctrls", jpe.ToString());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jp.AddObject(je);
|
|
|
|
|
return jp.ToString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
std::string API_Set_Ctrl(std::string request) {
|
|
|
|
|
unsigned int id;
|
|
|
|
|
int value;
|
|
|
|
|
char *t = (char*) request.c_str();
|
|
|
|
|
|
|
|
|
|
int i = 0;
|
|
|
|
|
while ((t = strchr (t, '/'))) {
|
|
|
|
|
i++;
|
|
|
|
|
t++;
|
|
|
|
|
if (i == 3) id = atol (t);
|
|
|
|
|
if (i == 4) value = atoi (t);
|
|
|
|
|
if (i > 4) break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
vdev->SetDevCtrl(id, value);
|
|
|
|
|
|
|
|
|
|
JSONParse jp;
|
|
|
|
|
jp.Clear();
|
|
|
|
|
return jp.ToString();
|
|
|
|
|
}
|