diff --git a/src/nhttpd/doc/nhttpd_controlapi.html b/src/nhttpd/doc/nhttpd_controlapi.html
index e87fa6c56..2632352cc 100644
--- a/src/nhttpd/doc/nhttpd_controlapi.html
+++ b/src/nhttpd/doc/nhttpd_controlapi.html
@@ -1829,11 +1829,17 @@ Die Pluginliste wird neu geladen.
Handler: http://dbox/control/screenshot
-Parameter: keine
-Rükgabe: ok
+Parameter: name=<dateiname>&osd=1|0&video=1|0
+Rückgabe: ok
-Screenshot mit TV Bild und OSD wird erstellt und unter /tmp/screenshot.png abgelegt.
+Screenshot mit TV Bild und OSD wird erstellt und unter /tmp/<dateiname>.png abgelegt.
+
+Beispiel:
+
+>>>http://dbox/control/screenshot?osd=0&video=1
+ok
+
diff --git a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp
index f212fab5f..8434428db 100644
--- a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp
+++ b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp
@@ -1463,10 +1463,23 @@ void CControlAPI::ReloadPluginsCGI(CyhookHandler *hh)
void CControlAPI::ScreenshotCGI(CyhookHandler *hh)
{
- CScreenShot * sc = new CScreenShot("/tmp/screenshot.png", (CScreenShot::screenshot_format_t)0 /*PNG*/);
- sc->EnableOSD(true);
+ bool enableOSD = true;
+ bool enableVideo = true;
+ std::string filename = "screenshot";
+
+ if(hh->ParamList["osd"] == "0")
+ enableOSD = false;
+ if(hh->ParamList["video"] == "0")
+ enableVideo = false;
+ if(hh->ParamList["name"] != "")
+ filename = hh->ParamList["name"];
+
+ CScreenShot * sc = new CScreenShot("/tmp/" + filename + ".png", (CScreenShot::screenshot_format_t)0 /*PNG*/);
+ sc->EnableOSD(enableOSD);
+ sc->EnableVideo(enableVideo);
sc->Start();
- hh->SendOk();
+
+ hh->SendOk(); // FIXME what if sc->Start() failed?
}
//-----------------------------------------------------------------------------