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
-
Radio/TV Mode Abfrage
+
Neutrino Mode Abfrage
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(); } //-----------------------------------------------------------------------------