mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-09-01 01:41:23 +02:00
Merge remote-tracking branch 'check/next-cc'
...only build-tested, needs fixes
This commit is contained in:
@@ -199,6 +199,11 @@
|
||||
<td><a href="http://dbox/control/screenshot">
|
||||
http://dbox/control/screenshot</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>43. <a href="#signal">Signalstärke anzeigen</a></td>
|
||||
<td><a href="http://dbox/control/signal">
|
||||
http://dbox/control/signal</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
@@ -1777,19 +1782,6 @@ ok<br>
|
||||
</div>
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
<!-- ----------------------------------------------------------- -->
|
||||
<div class="title1"><a name="reloadplugins"></a>41. Plugins neu laden</div>
|
||||
<div class="URL">Handler: http://dbox/control/reloadplugins</div>
|
||||
<br>
|
||||
<b>Parameter:</b> keine<br>
|
||||
<b>R<EFBFBD>ckgabe</b>: ok<br>
|
||||
<br>
|
||||
Die Pluginliste wird neu geladen.
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
<!-- ----------------------------------------------------------- -->
|
||||
@@ -1840,6 +1832,28 @@ Beispiel:<br>
|
||||
>>>http://dbox/control/screenshot?osd=0&video=1<br>
|
||||
ok<br>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- ----------------------------------------------------------- -->
|
||||
<div class="title1"><a name="signal"></a>43. Signalstärke zeigen</div>
|
||||
<div class="URL">Handler: http://dbox/control/signal</div>
|
||||
<br>
|
||||
<b>Parameter:</b> keine oder sig, snr, ber<br><br>
|
||||
<b>Rückgabe</b>:<br>
|
||||
SIG: 100<br>
|
||||
SNR: 90<br>
|
||||
BER: 0<br>
|
||||
<br>
|
||||
Signalstärke SIG in %, SNR in % und BER wird ausgegeben.
|
||||
Wird ein spezieller Wert als Parameter angegeben, wird keine Beschreibung ausgegeben.
|
||||
<br>
|
||||
<div class="example">
|
||||
Beispiel:<br>
|
||||
<br>
|
||||
>>>http://dbox/control/signal?sig<br>
|
||||
100<br>
|
||||
</div>
|
||||
|
||||
</p>
|
||||
|
||||
|
||||
|
@@ -49,6 +49,8 @@
|
||||
#include "neutrinoapi.h"
|
||||
#include "controlapi.h"
|
||||
#include <video.h>
|
||||
#include <zapit/femanager.h>
|
||||
|
||||
extern cVideo * videoDecoder;
|
||||
|
||||
extern CPlugins *g_PluginList;//for relodplugins
|
||||
@@ -161,6 +163,7 @@ const CControlAPI::TyCgiCall CControlAPI::yCgiCallList[]=
|
||||
{"epgsearch", &CControlAPI::EpgSearchTXTCGI, ""},
|
||||
{"epg", &CControlAPI::EpgCGI, ""},
|
||||
{"zapto", &CControlAPI::ZaptoCGI, "text/plain"},
|
||||
{"signal", &CControlAPI::SignalInfoCGI, "text/plain"},
|
||||
{"getonidsid", &CControlAPI::GetChannel_IDCGI, "text/plain"},
|
||||
{"currenttpchannels", &CControlAPI::GetTPChannel_IDCGI, "text/plain"},
|
||||
// boxcontrol - system
|
||||
@@ -212,7 +215,7 @@ const CControlAPI::TyCgiCall CControlAPI::yCgiCallList[]=
|
||||
// settings
|
||||
{"config", &CControlAPI::ConfigCGI, "text/plain"},
|
||||
// filehandling
|
||||
{"file", &CControlAPI::FileCGI, "+xml"},
|
||||
{"file", &CControlAPI::FileCGI, "+xml"}
|
||||
|
||||
|
||||
};
|
||||
@@ -780,12 +783,14 @@ void CControlAPI::VolumeCGI(CyhookHandler *hh)
|
||||
}
|
||||
else if (hh->ParamList["1"].compare("mute") == 0)
|
||||
{
|
||||
NeutrinoAPI->Zapit->muteAudio(true);
|
||||
char mute = 1;
|
||||
NeutrinoAPI->EventServer->sendEvent(NeutrinoMessages::EVT_SET_MUTE, CEventServer::INITID_HTTPD, (void *)&mute, sizeof(char));
|
||||
hh->SendOk();
|
||||
}
|
||||
else if (hh->ParamList["1"].compare("unmute") == 0)
|
||||
{
|
||||
NeutrinoAPI->Zapit->muteAudio(false);
|
||||
char mute = 0;
|
||||
NeutrinoAPI->EventServer->sendEvent(NeutrinoMessages::EVT_SET_MUTE, CEventServer::INITID_HTTPD, (void *)&mute, sizeof(char));
|
||||
hh->SendOk();
|
||||
}
|
||||
else if (hh->ParamList["1"].compare("status") == 0) { // Mute status
|
||||
@@ -793,7 +798,7 @@ void CControlAPI::VolumeCGI(CyhookHandler *hh)
|
||||
}
|
||||
else if(hh->ParamList["1"]!="") { //set volume
|
||||
char vol = atol( hh->ParamList["1"].c_str() );
|
||||
NeutrinoAPI->Zapit->setVolume(vol,vol);
|
||||
NeutrinoAPI->EventServer->sendEvent(NeutrinoMessages::EVT_SET_VOLUME, CEventServer::INITID_HTTPD, (void *)&vol, sizeof(char));
|
||||
hh->SendOk();
|
||||
}
|
||||
else
|
||||
@@ -1392,7 +1397,7 @@ void CControlAPI::EpgSearchCGI(CyhookHandler *hh, bool xml_forat )
|
||||
struct tm *tmStartZeit = localtime(&eventIterator->startTime);
|
||||
if(xml_forat){
|
||||
hh->printf("\t<epgsearch>");
|
||||
hh->printf("\t\t<channelname>%s</channelname>\n",NeutrinoAPI->GetServiceName(eventIterator->channelID).c_str());
|
||||
hh->printf("\t\t<channelname>%s</channelname>\n",ZapitTools::UTF8_to_UTF8XML(NeutrinoAPI->GetServiceName(eventIterator->channelID).c_str()).c_str());;
|
||||
hh->printf("\t\t<epgtitle>%s</epgtitle>\n",ZapitTools::UTF8_to_UTF8XML(epg.title.c_str()).c_str());
|
||||
hh->printf("\t\t<info1>%s</info1>\n",ZapitTools::UTF8_to_UTF8XML(epg.info1.c_str()).c_str());
|
||||
hh->printf("\t\t<info2>%s</info2>\n",ZapitTools::UTF8_to_UTF8XML(epg.info2.c_str()).c_str());
|
||||
@@ -1760,6 +1765,40 @@ void CControlAPI::SendChannelList(CyhookHandler *hh, bool currentTP)
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void CControlAPI::SignalInfoCGI(CyhookHandler *hh)
|
||||
{
|
||||
CFrontend *frontend = CFEManager::getInstance()->getLiveFE();
|
||||
if(frontend){
|
||||
bool parame_empty = false;
|
||||
|
||||
if (hh->ParamList["1"].empty())
|
||||
parame_empty = true;
|
||||
|
||||
if ( parame_empty || (hh->ParamList["1"] == "sig") ){
|
||||
unsigned int sig = frontend->getSignalStrength() & 0xFFFF;
|
||||
sig = (sig & 0xFFFF) * 100 / 65535;
|
||||
if (parame_empty)
|
||||
hh->printf("SIG: ");
|
||||
hh->printf("%3u\n", sig);
|
||||
}
|
||||
if ( parame_empty || (hh->ParamList["1"] == "snr") ){
|
||||
unsigned int snr = frontend->getSignalNoiseRatio() & 0xFFFF;
|
||||
snr = (snr & 0xFFFF) * 100 / 65535;
|
||||
if (parame_empty)
|
||||
hh->printf("SNR: ");
|
||||
hh->printf("%3u\n", snr);
|
||||
}
|
||||
if ( parame_empty || (hh->ParamList["1"] == "ber") ){
|
||||
unsigned int ber = frontend->getBitErrorRate();
|
||||
if (parame_empty)
|
||||
hh->printf("BER: ");
|
||||
hh->printf("%3u\n", ber);
|
||||
}
|
||||
}else
|
||||
hh->SendError();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void CControlAPI::SendStreamInfo(CyhookHandler *hh)
|
||||
{
|
||||
|
@@ -111,6 +111,8 @@ private:
|
||||
void logoCGI(CyhookHandler *hh);
|
||||
void ConfigCGI(CyhookHandler *hh);
|
||||
void FileCGI(CyhookHandler *hh);
|
||||
void SignalInfoCGI(CyhookHandler *hh);
|
||||
|
||||
|
||||
protected:
|
||||
static const unsigned int PLUGIN_DIR_COUNT = 7;
|
||||
|
@@ -132,6 +132,8 @@ CNeutrinoAPI::CNeutrinoAPI()
|
||||
EventServer->registerEvent2( NeutrinoMessages::RELOAD_SETUP, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");//reload neutrino conf
|
||||
EventServer->registerEvent2( NeutrinoMessages::EVT_HDMI_CEC_VIEW_ON, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
EventServer->registerEvent2( NeutrinoMessages::EVT_HDMI_CEC_STANDBY, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
EventServer->registerEvent2( NeutrinoMessages::EVT_SET_MUTE, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
EventServer->registerEvent2( NeutrinoMessages::EVT_SET_VOLUME, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
|
||||
}
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
|
@@ -347,7 +347,7 @@ function do_submit()
|
||||
<div class="work_box_body">
|
||||
<form name="f" class="y_form" action="/y/cgi">
|
||||
<table border="0" width="100%">
|
||||
<tr><td colspan="2" class="y_form_header">Wellcome to yWeb</td></tr>
|
||||
<tr><td colspan="2" class="y_form_header">Welcome to yWeb</td></tr>
|
||||
<tr>
|
||||
<td>{=L:language=}</td>
|
||||
<td colspan="3"> <select name="language" title="{=L:language=}">
|
||||
|
@@ -1,10 +1,68 @@
|
||||
{=var-set:cancache=yPInstall=}
|
||||
{=include-block:Y_Blocks.txt;head=}
|
||||
<script type="text/javascript" src="/prototype.js"></script>
|
||||
<script type="text/javascript" src="/Y_Baselib.js"></script>
|
||||
<script type="text/javascript" src="/Y_yweb.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
var g_sig = 100;
|
||||
function set_sigbar(_sig){
|
||||
var l = $("sigbar_left");
|
||||
var r = $("sigbar_right");
|
||||
/*IE: width=0 -> =""*/
|
||||
if(_sig > 0)
|
||||
l.width = _sig.toString()+"%";
|
||||
else
|
||||
l.width = "";
|
||||
if(_sig >= 100)
|
||||
r.width = "";
|
||||
else
|
||||
r.width = (100-_sig).toString()+"%";
|
||||
}
|
||||
function sig_get(){
|
||||
var __sig_str = loadSyncURL("/control/signal?sig");
|
||||
var __sig = parseInt(__sig_str,10);
|
||||
if(isNaN(__sig)) __sig=100;
|
||||
set_sigbar(__sig);
|
||||
g_sig = __sig;
|
||||
$('sig_value').update(g_sig);
|
||||
return __sig;
|
||||
}
|
||||
|
||||
var g_snr = 100;
|
||||
function set_snrbar(_snr){
|
||||
var l = $("snrbar_left");
|
||||
var r = $("snrbar_right");
|
||||
/*IE: width=0 -> =""*/
|
||||
if(_snr > 0)
|
||||
l.width = _snr.toString()+"%";
|
||||
else
|
||||
l.width = "";
|
||||
if(_snr >= 100)
|
||||
r.width = "";
|
||||
else
|
||||
r.width = (100-_snr).toString()+"%";
|
||||
}
|
||||
function snr_get(){
|
||||
var __snr_str = loadSyncURL("/control/signal?snr");
|
||||
var __snr = parseInt(__snr_str,10);
|
||||
if(isNaN(__snr)) __snr=100;
|
||||
set_snrbar(__snr);
|
||||
g_snr = __snr;
|
||||
$('snr_value').update(g_snr);
|
||||
return __snr;
|
||||
}
|
||||
|
||||
var g_ber = 0;
|
||||
function ber_get(){
|
||||
var __ber_str = loadSyncURL("/control/signal?ber");
|
||||
var __ber = parseInt(__ber_str,10);
|
||||
if(isNaN(__ber)) __ber=100;
|
||||
g_ber = __ber;
|
||||
$('ber_value').update(g_ber);
|
||||
//return __ber;
|
||||
}
|
||||
|
||||
var g_volumen = 100;
|
||||
function volumen_set_audiobar(_volumen){
|
||||
var l = $("audiobar_left");
|
||||
@@ -57,6 +115,16 @@ function init(){
|
||||
volumen_set_audiobar(volumen_get());
|
||||
set_mute_button();
|
||||
add_yExtensions('boxcontrol', 'secmenu_boxcontrol');
|
||||
|
||||
set_sigbar(sig_get());
|
||||
set_snrbar(snr_get());
|
||||
ber_get();
|
||||
}
|
||||
function get_data(){
|
||||
volumen_set_audiobar(volumen_get());
|
||||
set_sigbar(sig_get());
|
||||
set_snrbar(snr_get());
|
||||
ber_get();
|
||||
}
|
||||
//]]>
|
||||
</script>
|
||||
@@ -138,6 +206,32 @@ function init(){
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
<div class="y_menu_sec_box">
|
||||
<div class="y_menu_sec_box_head"><h2>{=L:bc.menue.signal=}</h2></div>
|
||||
<div class="y_menu_sec_box_body">
|
||||
<center>
|
||||
<div class="y_text_boxcontrol_div_progress">SIG <span id="sig_value"></span>%</div>
|
||||
<table class="y_text_boxcontrol_table_progress" cellspacing="0" cellpadding="0" title="{=L:bc.menue.sig_display=}">
|
||||
<tr>
|
||||
<td id="sigbar_left" width="100%"><img src="/images/blank.gif" height="1" width="0" alt="." /></td>
|
||||
<td id="sigbar_right" width="0%" bgcolor="white"><img src="/images/blank.gif" height="1" width="0" alt="." /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
<center>
|
||||
<div class="y_text_boxcontrol_div_progress">SNR <span id="snr_value"></span>%</div>
|
||||
<table class="y_text_boxcontrol_table_progress" cellspacing="0" cellpadding="0" title="{=L:bc.menue.snr_display=}">
|
||||
<tr>
|
||||
<td id="snrbar_left" width="100%"><img src="/images/blank.gif" height="1" width="0" alt="." /></td>
|
||||
<td id="snrbar_right" width="0%" bgcolor="white"><img src="/images/blank.gif" height="1" width="0" alt="." /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
<center>
|
||||
<div class="y_text_boxcontrol_div_progress">BER <span id="ber_value"></span></div>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
{=if-empty:{=ini-get:/var/tuxbox/config/Y-Web.conf;slavebox=}~~
|
||||
<div class="y_menu_sec_box">
|
||||
<div class="y_menu_sec_box_head"><h2>Switch to</h2></div>
|
||||
@@ -155,6 +249,7 @@ function init(){
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
init();
|
||||
window.setInterval("get_data();",5000);
|
||||
//]]>
|
||||
</script>
|
||||
</body>
|
||||
|
@@ -557,6 +557,30 @@ tr {
|
||||
margin-top: 10px;
|
||||
border: #FF8e42 solid 1px;
|
||||
}
|
||||
.y_text_boxcontrol_table_progress {
|
||||
width: 114px;
|
||||
height: 12px;
|
||||
padding: 0;
|
||||
margin-bottom: 5px;
|
||||
border: #FF8e42 solid 1px;
|
||||
border-top: 0 none;
|
||||
|
||||
background: #ffffff; /* Old browsers */
|
||||
background: -moz-linear-gradient(left, #ff0000 0%, #ffff00 74%, #ffff00 75%, #00ff00 100%); /* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left top, right top, color-stop(0%,#ff0000), color-stop(74%,#ffff00), color-stop(75%,#ffff00), color-stop(100%,#00ff00)); /* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(left, #ff0000 0%,#ffff00 74%,#ffff00 75%,#00ff00 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(left, #ff0000 0%,#ffff00 74%,#ffff00 75%,#00ff00 100%); /* Opera 11.10+ */
|
||||
background: -ms-linear-gradient(left, #ff0000 0%,#ffff00 74%,#ffff00 75%,#00ff00 100%); /* IE10+ */
|
||||
background: linear-gradient(to right, #ff0000 0%,#ffff00 74%,#ffff00 75%,#00ff00 100%); /* W3C */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff0000', endColorstr='#00ff00',GradientType=1 ); /* IE6-9 */
|
||||
}
|
||||
.y_text_boxcontrol_div_progress {
|
||||
width: 112px;
|
||||
border: #FF8e42 solid 1px;
|
||||
font-size: 9px;
|
||||
margin-top: 5px;
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
.y_epg_info {
|
||||
border: 1px solid #CCCCCC;
|
||||
background-color: white;
|
||||
|
@@ -15,6 +15,10 @@ function goUrl(_url){
|
||||
}
|
||||
$("out").update(res);
|
||||
}
|
||||
function standby(_standby){
|
||||
var _cec = (document.getElementById('checkCEC').checked == true) ? "on" : "off";
|
||||
goUrl("/control/standby?"+_standby+"&cec="+_cec);
|
||||
}
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
@@ -32,9 +36,10 @@ function goUrl(_url){
|
||||
<input type="button" value="{=L:bc.control.shutdown=}" onclick='goConfirmUrl("{=L:bc.control.shutdown.ask=}","/control/shutdown");'/>
|
||||
</td>
|
||||
<td>
|
||||
<input type="button" value="{=L:on=}" onclick='goUrl("/control/standby?on");'/>
|
||||
<input type="button" value="{=L:off=}" onclick='goUrl("/control/standby?off");'/>
|
||||
<input type="button" value="{=L:on=}" onclick='standby("on");'/>
|
||||
<input type="button" value="{=L:off=}" onclick='standby("off");'/>
|
||||
<input type="button" value="{=L:bc.control.status=}" onclick='goUrl("/control/standby");'/>
|
||||
CEC: <input id="checkCEC" name="checkCEC" type="checkbox" checked="checked"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td class="y_form_header">{=L:bc.control.playback=}</td><td class="y_form_header">{=L:bc.control.recording_mode=}</td></tr>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
version=2.8.0.44
|
||||
date=09.08.2013
|
||||
version=2.8.0.59
|
||||
date=12.02.2014
|
||||
type=Release
|
||||
info=Port CST
|
||||
|
@@ -99,6 +99,8 @@ bc.menue.switch_to_radio=Zum Radio umschalten
|
||||
bc.menue.webinf_slavebox=Webinterface der SlaveBox
|
||||
bc.menue.volumen_display=Lautstärke Anzeige
|
||||
|
||||
bc.menue.signal=Signalstärke
|
||||
|
||||
========= Boxcontrol
|
||||
bc.control.freemem=FreeMem
|
||||
bc.control.lock=sperren
|
||||
|
@@ -101,6 +101,8 @@ bc.menue.switch_to_radio=switch to Radio
|
||||
bc.menue.webinf_slavebox=Webinterface der SlaveBox
|
||||
bc.menue.volumen_display=volumen display
|
||||
|
||||
bc.menue.signal=Signal strength
|
||||
|
||||
========= Boxcontrol
|
||||
bc.control.freemem=FreeMem
|
||||
bc.control.lock=lock
|
||||
|
Reference in New Issue
Block a user