mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-08-28 16:01:10 +02:00
Merge branch 'master' of https://github.com/tuxbox-neutrino/gui-neutrino into ni/tuxbox
Conflicts:
configure.ac
data/icons/buttons/0.png
data/icons/buttons/1.png
data/icons/buttons/2.png
data/icons/buttons/3.png
data/icons/buttons/4.png
data/icons/buttons/5.png
data/icons/buttons/6.png
data/icons/buttons/7.png
data/icons/buttons/8.png
data/icons/buttons/9.png
data/icons/buttons/blau.png
data/icons/buttons/btn_backward.png
data/icons/buttons/btn_forward.png
data/icons/buttons/btn_pause.png
data/icons/buttons/btn_play.png
data/icons/buttons/btn_record_active.png
data/icons/buttons/btn_record_inactive.png
data/icons/buttons/btn_stop.png
data/icons/buttons/down.png
data/icons/buttons/gelb.png
data/icons/buttons/gruen.png
data/icons/buttons/help.png
data/icons/buttons/help_small.png
data/icons/buttons/home.png
data/icons/buttons/info.png
data/icons/buttons/info_small.png
data/icons/buttons/left.png
data/icons/buttons/menu.png
data/icons/buttons/menu_small.png
data/icons/buttons/mute_small.png
data/icons/buttons/mute_zap_gray.png
data/icons/buttons/mute_zap_green.png
data/icons/buttons/ok.png
data/icons/buttons/power.png
data/icons/buttons/right.png
data/icons/buttons/rot.png
data/icons/buttons/up.png
data/icons/filetypes/movie.png
data/icons/filetypes/mp3.png
data/icons/headers/audio.png
data/icons/headers/bookmarkmanager.png
data/icons/headers/colors.png
data/icons/headers/error.png
data/icons/headers/features.png
data/icons/headers/games.png
data/icons/headers/icon_blue.png
data/icons/headers/icon_green.png
data/icons/headers/icon_red.png
data/icons/headers/icon_yellow.png
data/icons/headers/information.png
data/icons/headers/keybinding.png
data/icons/headers/language.png
data/icons/headers/lcd.png
data/icons/headers/mainmenue.png
data/icons/headers/multimedia.png
data/icons/headers/network.png
data/icons/headers/personalize.png
data/icons/headers/shell.png
data/icons/headers/softupdate.png
data/icons/headers/streaming.png
data/icons/headers/timer.png
data/icons/headers/upnp.png
data/icons/headers/video.png
data/icons/movieplayer/mp_b-skip.png
data/icons/movieplayer/mp_f-skip.png
data/icons/movieplayer/mp_pause.png
data/icons/movieplayer/mp_play.png
data/icons/movieplayer/mp_play_repeat_all.png
data/icons/movieplayer/mp_play_repeat_track.png
data/icons/status/ca/biss_green.png
data/icons/status/ca/biss_white.png
data/icons/status/ca/biss_yellow.png
data/icons/status/ca/conax_green.png
data/icons/status/ca/conax_white.png
data/icons/status/ca/conax_yellow.png
data/icons/status/ca/cw_green.png
data/icons/status/ca/cw_white.png
data/icons/status/ca/cw_yellow.png
data/icons/status/ca/d_green.png
data/icons/status/ca/d_white.png
data/icons/status/ca/d_yellow.png
data/icons/status/ca/ird_green.png
data/icons/status/ca/ird_white.png
data/icons/status/ca/ird_yellow.png
data/icons/status/ca/nagra_green.png
data/icons/status/ca/nagra_white.png
data/icons/status/ca/nagra_yellow.png
data/icons/status/ca/nds_green.png
data/icons/status/ca/nds_white.png
data/icons/status/ca/nds_yellow.png
data/icons/status/ca/powervu_green.png
data/icons/status/ca/powervu_white.png
data/icons/status/ca/powervu_yellow.png
data/icons/status/ca/seca_green.png
data/icons/status/ca/seca_white.png
data/icons/status/ca/seca_yellow.png
data/icons/status/ca/via_green.png
data/icons/status/ca/via_white.png
data/icons/status/ca/via_yellow.png
data/icons/status/ca/x_green.png
data/icons/status/ca/x_white.png
data/icons/status/ca/x_yellow.png
data/icons/status/channel/16_9.png
data/icons/status/channel/16_9_gray.png
data/icons/status/channel/ca2.png
data/icons/status/channel/ca2_gray.png
data/icons/status/channel/dd.png
data/icons/status/channel/dd_avail.png
data/icons/status/channel/dd_gray.png
data/icons/status/channel/radiotextget.png
data/icons/status/channel/radiotextoff.png
data/icons/status/channel/radiotextwait.png
data/icons/status/channel/res_000.png
data/icons/status/channel/res_1080.png
data/icons/status/channel/res_1280.png
data/icons/status/channel/res_1440.png
data/icons/status/channel/res_1920.png
data/icons/status/channel/res_288.png
data/icons/status/channel/res_352.png
data/icons/status/channel/res_382.png
data/icons/status/channel/res_480.png
data/icons/status/channel/res_528.png
data/icons/status/channel/res_544.png
data/icons/status/channel/res_576.png
data/icons/status/channel/res_704.png
data/icons/status/channel/res_720.png
data/icons/status/channel/res_hd.png
data/icons/status/channel/res_sd.png
data/icons/status/channel/subt.png
data/icons/status/channel/subt_gray.png
data/icons/status/channel/tuner_1.png
data/icons/status/channel/tuner_2.png
data/icons/status/channel/tuner_3.png
data/icons/status/channel/tuner_4.png
data/icons/status/channel/vtxt.png
data/icons/status/channel/vtxt_gray.png
data/icons/status/various/ats.png
data/icons/status/various/ats_gray.png
data/icons/status/various/ca.png
data/icons/status/various/lock.png
data/icons/status/various/mounted.png
data/icons/status/various/mute.png
data/icons/status/various/not_mounted.png
data/icons/status/various/pip.png
data/icons/status/various/rec_event_marker.png
data/icons/status/various/rec_gray.png
data/icons/status/various/zap.png
data/locale/Makefile.am
data/locale/english.locale
data/pictures/backgrounds/1280x720/start.jpg
src/driver/fb_accel_sti.cpp
src/gui/Makefile.am
src/gui/dboxinfo.cpp
src/gui/infoviewer_bb.cpp
src/gui/movieplayer.cpp
src/gui/osd_setup.cpp
src/gui/streaminfo2.cpp
src/gui/themes.cpp
src/neutrino.cpp
src/system/flashtool.cpp
src/system/settings.cpp
src/system/settings.h
Origin commit data
------------------
Commit: 4121099dcf
Author: vanhofen <vanhofen@gmx.de>
Date: 2017-10-18 (Wed, 18 Oct 2017)
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
/*
|
||||
Neutrino-GUI - DBoxII-Project
|
||||
|
||||
(C) 2004-2009 tuxbox project contributors
|
||||
|
||||
(C) 2011-2012,2015 Stefan Seyfried
|
||||
|
||||
License: GPL
|
||||
|
||||
@@ -33,6 +36,7 @@
|
||||
#include <global.h>
|
||||
#include <neutrino.h>
|
||||
|
||||
#include <driver/abstime.h>
|
||||
#include <driver/fade.h>
|
||||
#include <driver/display.h>
|
||||
#include <driver/fontrenderer.h>
|
||||
@@ -140,43 +144,19 @@ int CStreamInfo2::doSignalStrengthLoop ()
|
||||
neutrino_msg_t msg;
|
||||
neutrino_msg_t postmsg = 0;
|
||||
uint64_t maxb, minb, lastb, tmp_rate;
|
||||
unsigned int current_pmt_version= pmt_version;
|
||||
unsigned int current_pmt_version = (unsigned int)-1;
|
||||
int cnt = 0;
|
||||
char tmp_str[150];
|
||||
int delay_counter = 0;
|
||||
const int delay = 15;
|
||||
int offset = g_Font[font_info]->getRenderWidth(g_Locale->getText (LOCALE_STREAMINFO_BITRATE));
|
||||
int sw = g_Font[font_info]->getRenderWidth ("99999.999");
|
||||
int dheight = g_Font[font_info]->getHeight (); //NI
|
||||
int sw = g_Font[font_info]->getRenderWidth("99999.999");
|
||||
maxb = minb = lastb = tmp_rate = 0;
|
||||
std::string br_str = std::string(g_Locale->getText(LOCALE_STREAMINFO_BITRATE)) + ":";
|
||||
std::string avg_str = "(" + std::string(g_Locale->getText(LOCALE_STREAMINFO_AVERAGE_BITRATE)) + ")";
|
||||
int offset = g_Font[font_info]->getRenderWidth(avg_str);
|
||||
int dheight = g_Font[font_info]->getHeight ();
|
||||
int dx1 = x + 10;
|
||||
ts_setup ();
|
||||
while (1) {
|
||||
neutrino_msg_data_t data;
|
||||
|
||||
uint64_t timeoutEnd = CRCInput::calcTimeoutEnd_MS (100);
|
||||
g_RCInput->getMsgAbsoluteTimeout (&msg, &data, &timeoutEnd);
|
||||
|
||||
if ((msg == NeutrinoMessages::EVT_TIMER) && (data == fader.GetFadeTimer()))
|
||||
{
|
||||
if (fader.FadeDone())
|
||||
{
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (fadeout && msg == CRCInput::RC_timeout)
|
||||
{
|
||||
if (fader.StartFadeOut())
|
||||
{
|
||||
msg = 0;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!mp) {
|
||||
signal.sig = frontend->getSignalStrength() & 0xFFFF;
|
||||
signal.snr = frontend->getSignalNoiseRatio() & 0xFFFF;
|
||||
@@ -188,8 +168,6 @@ int CStreamInfo2::doSignalStrengthLoop ()
|
||||
|
||||
if (cnt < 12)
|
||||
cnt++;
|
||||
//NI int dheight = g_Font[font_info]->getHeight ();
|
||||
int dx1 = x + 10;
|
||||
|
||||
if(!mp && delay_counter > delay + 1){
|
||||
CZapitChannel * channel = CZapit::getInstance()->GetCurrentChannel();
|
||||
@@ -199,6 +177,7 @@ int CStreamInfo2::doSignalStrengthLoop ()
|
||||
delay_counter = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (ret && (lastb != bit_s)) {
|
||||
lastb = bit_s;
|
||||
|
||||
@@ -208,26 +187,25 @@ int CStreamInfo2::doSignalStrengthLoop ()
|
||||
rate.min_short_average = minb = bit_s;
|
||||
|
||||
char currate[150];
|
||||
snprintf(tmp_str,sizeof(tmp_str), "%s:",g_Locale->getText(LOCALE_STREAMINFO_BITRATE));
|
||||
g_Font[font_info]->RenderString(dx1 , average_bitrate_pos, offset+10, tmp_str, COL_MENUCONTENT_TEXT);
|
||||
|
||||
sprintf(currate, "%5llu.%02llu", rate.short_average / 1000ULL, rate.short_average % 1000ULL);
|
||||
sprintf(currate, "%u", rate.short_average / 1000);
|
||||
g_Font[font_info]->RenderString(dx1, average_bitrate_pos, width/2, br_str, COL_MENUCONTENT_TEXT);
|
||||
g_Font[font_info]->RenderString(dx1+average_bitrate_offset+sw+10 , average_bitrate_pos, offset, avg_str, COL_MENUCONTENT_TEXT);
|
||||
frameBuffer->paintBoxRel (dx1 + average_bitrate_offset , average_bitrate_pos -dheight, sw, dheight, COL_MENUCONTENT_PLUS_0);
|
||||
|
||||
g_Font[font_info]->RenderString (dx1 + average_bitrate_offset , average_bitrate_pos, sw - 10, currate, COL_MENUCONTENT_TEXT);
|
||||
|
||||
snprintf(tmp_str,sizeof(tmp_str), "(%s)",g_Locale->getText(LOCALE_STREAMINFO_AVERAGE_BITRATE));
|
||||
g_Font[font_info]->RenderString (dx1 + average_bitrate_offset + sw , average_bitrate_pos, sw *2, tmp_str, COL_MENUCONTENT_TEXT);
|
||||
|
||||
g_Font[font_info]->RenderString(dx1+average_bitrate_offset, average_bitrate_pos, sw, currate, COL_MENUCONTENT_TEXT);
|
||||
}
|
||||
if (!mp) {
|
||||
showSNR ();
|
||||
if(pmt_version != current_pmt_version && delay_counter > delay){
|
||||
current_pmt_version = pmt_version;
|
||||
paint_techinfo (x + 10, y+ hheight +5);
|
||||
if (++delay_counter > delay) {
|
||||
CZapitChannel * channel = CZapit::getInstance()->GetCurrentChannel();
|
||||
if (channel)
|
||||
pmt_version = channel->getPmtVersion();
|
||||
delay_counter = 0;
|
||||
if (pmt_version != current_pmt_version && delay_counter > delay){
|
||||
current_pmt_version = pmt_version;
|
||||
paint_techinfo(dx1, y + hheight + 5);
|
||||
}
|
||||
}
|
||||
}
|
||||
delay_counter++;
|
||||
}
|
||||
rate.short_average = abit_s;
|
||||
if (signal.max_ber < signal.ber)
|
||||
@@ -254,6 +232,31 @@ int CStreamInfo2::doSignalStrengthLoop ()
|
||||
signal.old_snr = signal.snr;
|
||||
signal.old_ber = signal.ber;
|
||||
|
||||
neutrino_msg_data_t data;
|
||||
/* rate limiting is done in update_rate */
|
||||
g_RCInput->getMsg_us(&msg, &data, 0);
|
||||
|
||||
if ((msg == NeutrinoMessages::EVT_TIMER) && (data == fader.GetFadeTimer()))
|
||||
{
|
||||
if (fader.FadeDone())
|
||||
{
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (fadeout && msg == CRCInput::RC_timeout)
|
||||
{
|
||||
if (fader.StartFadeOut())
|
||||
{
|
||||
msg = 0;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// switch paint mode
|
||||
if (msg == CRCInput::RC_red || msg == CRCInput::RC_blue || msg == CRCInput::RC_green || msg == CRCInput::RC_yellow) {
|
||||
hide ();
|
||||
@@ -500,7 +503,7 @@ void CStreamInfo2::paint (int /*mode*/)
|
||||
pip->paint(CC_SAVE_SCREEN_NO);
|
||||
|
||||
paint_techinfo (xpos, ypos);
|
||||
paint_signal_fe_box (width - width/3 - 10, (y + 10 + height/3 + hheight), width/3, height/3 + hheight);
|
||||
paint_signal_fe_box (width - width/3 - 10, y + 10 + height/3, width/3, height/3 + hheight);
|
||||
} else {
|
||||
// -- small PIG, small signal graph
|
||||
// -- paint backround, title pig, etc.
|
||||
@@ -660,7 +663,7 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos)
|
||||
if (!g_RemoteControl->current_PIDs.APIDs.empty())
|
||||
desc = g_RemoteControl->current_PIDs.APIDs[g_RemoteControl->current_PIDs.PIDs.selected_apid].desc;
|
||||
|
||||
if (type == AUDIO_FMT_MPEG)
|
||||
if (type == AUDIO_FMT_MPEG || type == AUDIO_FMT_MP3)
|
||||
{
|
||||
const char *mpegmodes[] =
|
||||
{
|
||||
@@ -934,7 +937,6 @@ void CStreamInfo2::paintCASystem(int xpos, int ypos)
|
||||
}
|
||||
|
||||
spaceoffset+=4;
|
||||
ypos += iheight*2;
|
||||
bool cryptsysteme = true;
|
||||
for(int ca_id = 0; ca_id < NUM_CAIDS; ca_id++){
|
||||
if(caids[ca_id] == true){
|
||||
@@ -1043,8 +1045,7 @@ int CStreamInfo2::update_rate ()
|
||||
|
||||
int ret = 0;
|
||||
int timeout = 100;
|
||||
int b_len;
|
||||
|
||||
int b_len = 0;
|
||||
if(!dmx && !mp)
|
||||
return 0;
|
||||
|
||||
@@ -1052,7 +1053,15 @@ int CStreamInfo2::update_rate ()
|
||||
usleep(timeout * 1000);
|
||||
b_len = mp->GetReadCount();
|
||||
} else {
|
||||
b_len = dmx->Read(dmxbuf, TS_BUF_SIZE, timeout);
|
||||
int64_t start = time_monotonic_ms();
|
||||
/* always sample for ~100ms */
|
||||
while (time_monotonic_ms() - start < timeout)
|
||||
{
|
||||
ret = dmx->Read(dmxbuf, TS_BUF_SIZE, 10);
|
||||
if (ret >= 0)
|
||||
b_len += ret;
|
||||
}
|
||||
//printf("ts: read %d time %" PRId64 "\n", b_len, time_monotonic_ms() - start);
|
||||
}
|
||||
//printf("ts: read %d\n", b_len);
|
||||
|
||||
@@ -1082,8 +1091,8 @@ int CStreamInfo2::update_rate ()
|
||||
|
||||
last_tv.tv_sec = tv.tv_sec;
|
||||
last_tv.tv_usec = tv.tv_usec;
|
||||
ret = 1;
|
||||
return ret;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int CStreamInfo2::ts_close ()
|
||||
@@ -1099,9 +1108,15 @@ int CStreamInfo2::ts_close ()
|
||||
|
||||
void CStreamInfo2::showSNR ()
|
||||
{
|
||||
/* sig_text_y + sheight + 4 + 5 is upper limit of ber/snr/sig numbers
|
||||
* sheight*3 is 3x sig numbers + 1/2 sheight */
|
||||
int snr_y = sig_text_y + 4+5 + sheight*9 / 2;
|
||||
int snr_h = 50;
|
||||
if (snr_y + snr_h > max_height - 10)
|
||||
return;
|
||||
if (signalbox == NULL)
|
||||
{
|
||||
signalbox = new CSignalBox(x + 10, yypos, 240, 50, frontend);
|
||||
signalbox = new CSignalBox(sigBox_x, snr_y, 240, snr_h, frontend);
|
||||
signalbox->setColorBody(COL_MENUCONTENT_PLUS_0);
|
||||
signalbox->setTextColor(COL_MENUCONTENT_TEXT);
|
||||
signalbox->doPaintBg(true);
|
||||
|
Reference in New Issue
Block a user