diff --git a/src/nhttpd/doc/nhttpd_controlapi.html b/src/nhttpd/doc/nhttpd_controlapi.html
index cb8208cc5..5ddcc8e26 100644
--- a/src/nhttpd/doc/nhttpd_controlapi.html
+++ b/src/nhttpd/doc/nhttpd_controlapi.html
@@ -48,7 +48,7 @@
http://box_ip/control/setmode |
- Radio/TV Mode Abfrage |
+ Neutrino Mode Abfrage |
http://box_ip/control/getmode |
@@ -952,13 +952,14 @@ ok
-
+
Handler: http://box_ip/control/getmode
-Parameter:
-Rückgabe: "tv", "radio", "unkown"
+Parameter: keine
+Rückgabe: "tv", "radio", "scart", "standby", "audio",
+"pic", "ts", "webtv", "upnp", "unknown"
-Es wird der aktuelle mode zurückgegeben tv / radio / unknown (shouldn't happen)
+Es wird der aktuelle Modus der Box zurückgegeben
Beispiel:
@@ -966,6 +967,17 @@ Beispiel:
tv
+Parameter: channelsmode
+Rückgabe: "tv", "radio", "unknown"
+
+Es wird der eingestellte Kanalmodus der Box zurückgegeben
+
+Beispiel:
+
+>>>http://box_ip/control/getmode?channelmode
+radio
+
+
Datum von der Box abfragen
diff --git a/src/nhttpd/tuxboxapi/controlapi.cpp b/src/nhttpd/tuxboxapi/controlapi.cpp
index f9ffc3eff..60cb7c53e 100644
--- a/src/nhttpd/tuxboxapi/controlapi.cpp
+++ b/src/nhttpd/tuxboxapi/controlapi.cpp
@@ -392,36 +392,56 @@ void CControlAPI::SetModeCGI(CyhookHandler *hh)
void CControlAPI::GetModeCGI(CyhookHandler *hh)
{
hh->outStart();
-
std::string result = "";
- int mode = CNeutrinoApp::getInstance()->getMode();
- if (mode == NeutrinoMessages::mode_tv)
- result = "tv";
- else if (mode == NeutrinoMessages::mode_radio)
- result = "radio";
- else if (mode == NeutrinoMessages::mode_scart)
- result = "scart";
- else if (mode == NeutrinoMessages::mode_standby)
- result = "standby";
- else if (mode == NeutrinoMessages::mode_audio)
- result = "audio";
- else if (mode == NeutrinoMessages::mode_pic)
- result = "pic";
- else if (mode == NeutrinoMessages::mode_ts)
- result = "ts";
- else if (mode == NeutrinoMessages::mode_webtv)
- result = "webtv";
- else if (mode == NeutrinoMessages::mode_upnp)
- result = "upnp";
- else
- result = "unknown";
+ std::string key = "mode";
- if (hh->getOutType() != plain)
+ if (hh->ParamList_exist("channelsmode") && hh->ParamList["channelsmode"] != "false")
{
- result = hh->outPair("mode", result, false);
- result = hh->outObject("getmode", result);
+ key = "channelsmode";
+ int mode = NeutrinoAPI->Zapit->getMode();
+ if (mode == CZapitClient::MODE_TV)
+ result = "tv";
+ else if (mode == CZapitClient::MODE_RADIO)
+ result = "radio";
+ else
+ result = "unknown";
}
- hh->SendResult(result);
+ else
+ {
+ int mode = CNeutrinoApp::getInstance()->getMode();
+ if (mode == NeutrinoMessages::mode_tv)
+ result = "tv";
+ else if (mode == NeutrinoMessages::mode_radio)
+ result = "radio";
+ else if (mode == NeutrinoMessages::mode_scart)
+ result = "scart";
+ else if (mode == NeutrinoMessages::mode_standby)
+ result = "standby";
+ else if (mode == NeutrinoMessages::mode_audio)
+ result = "audio";
+ else if (mode == NeutrinoMessages::mode_pic)
+ result = "pic";
+ else if (mode == NeutrinoMessages::mode_ts)
+ result = "ts";
+ else if (mode == NeutrinoMessages::mode_webtv)
+ result = "webtv";
+ else if (mode == NeutrinoMessages::mode_upnp)
+ result = "upnp";
+ else
+ result = "unknown";
+ }
+
+ if (!result.empty())
+ {
+ if (hh->getOutType() != plain)
+ {
+ result = hh->outPair(key, result, false);
+ result = hh->outObject("getmode", result);
+ }
+ hh->SendResult(result);
+ }
+ else
+ hh->SendError();
}
//-----------------------------------------------------------------------------