diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index 822fe7c21..b1690a132 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -1652,8 +1652,8 @@ void CAudioPlayerGui::paintItem(int pos) else snprintf(dura, 8, "%ld:%02ld", m_playlist[currpos].MetaData.total_time / 60, m_playlist[currpos].MetaData.total_time % 60); - int w = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getRenderWidth(dura) + OFFSET_INNER_SMALL; - g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(m_x + OFFSET_INNER_MID, ypos + m_item_height, m_width - SCROLLBAR_WIDTH - 2*OFFSET_INNER_MID - w, tmp, color, m_item_height); + int w = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getRenderWidth(dura); + g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(m_x + OFFSET_INNER_MID, ypos + m_item_height, m_width - SCROLLBAR_WIDTH - 3*OFFSET_INNER_MID - w, tmp, color, m_item_height); g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(m_x + m_width - SCROLLBAR_WIDTH - OFFSET_INNER_MID - w, ypos + m_item_height, w, dura, color, m_item_height); if (currpos == m_selected) { diff --git a/src/gui/lcd4l.cpp b/src/gui/lcd4l.cpp index 652049f2e..5a45d31f5 100644 --- a/src/gui/lcd4l.cpp +++ b/src/gui/lcd4l.cpp @@ -93,6 +93,8 @@ extern cVideo *videoDecoder; #define LAYOUT LCD_DATADIR "layout" #define EVENT LCD_DATADIR "event" +#define INFO1 LCD_DATADIR "info1" +#define INFO2 LCD_DATADIR "info2" #define PROGRESS LCD_DATADIR "progress" #define DURATION LCD_DATADIR "duration" #define START LCD_DATADIR "start" @@ -220,6 +222,8 @@ void CLCD4l::Init() m_Layout = "n/a"; m_Event = "n/a"; + m_Info1 = "n/a"; + m_Info2 = "n/a"; m_Progress = -1; for (int i = 0; i < (int)sizeof(m_Duration); i++) m_Duration[i] = ' '; @@ -719,6 +723,8 @@ void CLCD4l::ParseInfo(uint64_t parseID, bool newID, bool firstRun) /* ----------------------------------------------------------------- */ std::string Event = ""; + std::string Info1 = ""; + std::string Info2 = ""; int Progress = 0; char Duration[sizeof(m_Duration)] = {0}; char Start[6] = {0}; @@ -740,6 +746,13 @@ void CLCD4l::ParseInfo(uint64_t parseID, bool newID, bool firstRun) if (!CurrentNext.current_name.empty()) Event = CurrentNext.current_name; + CShortEPGData shortEpgData; + if (CEitManager::getInstance()->getEPGidShort(CurrentNext.current_uniqueKey, &shortEpgData)) + { + Info1 = shortEpgData.info1; + Info2 = shortEpgData.info2; + } + if ((CurrentNext.current_zeit.dauer > 0) && (CurrentNext.current_zeit.dauer < 86400)) { Progress = 100 * (time(NULL) - CurrentNext.current_zeit.startzeit) / CurrentNext.current_zeit.dauer; @@ -787,6 +800,12 @@ void CLCD4l::ParseInfo(uint64_t parseID, bool newID, bool firstRun) if ( !meta.title.empty() ) Event += meta.title; + if (!meta.album.empty()) + Info1 = meta.album; + + if (!meta.genre.empty()) + Info2 = meta.genre; + time_t total = meta.total_time; time_t done = CAudioPlayer::getInstance()->getTimePlayed(); @@ -814,6 +833,12 @@ void CLCD4l::ParseInfo(uint64_t parseID, bool newID, bool firstRun) { if (!CMoviePlayerGui::getInstance().p_movie_info->epgTitle.empty()) Event = CMoviePlayerGui::getInstance().p_movie_info->epgTitle; + + if (!CMoviePlayerGui::getInstance().p_movie_info->epgInfo1.empty()) + Info1 = CMoviePlayerGui::getInstance().p_movie_info->epgInfo1; + + if (!CMoviePlayerGui::getInstance().p_movie_info->epgInfo2.empty()) + Info2 = CMoviePlayerGui::getInstance().p_movie_info->epgInfo2; } else if (!CMoviePlayerGui::getInstance().GetFile().empty()) Event = CMoviePlayerGui::getInstance().GetFile(); @@ -857,6 +882,18 @@ void CLCD4l::ParseInfo(uint64_t parseID, bool newID, bool firstRun) m_Event = Event; } + if (m_Info1.compare(Info1)) + { + WriteFile(INFO1, Info1, g_settings.lcd4l_convert); + m_Info1 = Info1; + } + + if (m_Info2.compare(Info2)) + { + WriteFile(INFO2, Info2, g_settings.lcd4l_convert); + m_Info2 = Info2; + } + if (m_Start.compare(Start)) { WriteFile(START, (std::string)Start); diff --git a/src/gui/lcd4l.h b/src/gui/lcd4l.h index 9708cbf14..60f73118a 100644 --- a/src/gui/lcd4l.h +++ b/src/gui/lcd4l.h @@ -114,6 +114,8 @@ class CLCD4l std::string m_Layout; std::string m_Event; + std::string m_Info1; + std::string m_Info2; int m_Progress; char m_Duration[15]; std::string m_Start; diff --git a/src/gui/timerlist.cpp b/src/gui/timerlist.cpp index 846be1271..a860fb617 100644 --- a/src/gui/timerlist.cpp +++ b/src/gui/timerlist.cpp @@ -841,7 +841,8 @@ void CTimerList::RemoteBoxTimerList(CTimerd::TimerList &rtimerlist) rtimer.stopTime = (time_t) atoll(remotetimers[i]["stop"][0].get("digits","").asString().c_str()); rtimer.epgID = (event_id_t) atoi(remotetimers[i].get("epg_id","").asString()); sscanf(remotetimers[i].get("channel_id","").asString().c_str(), SCANF_CHANNEL_ID_TYPE, &rtimer.channel_id); - strncpy(rtimer.epgTitle,remotetimers[i].get("title","").asString().c_str(),51); + strncpy(rtimer.epgTitle,remotetimers[i].get("title","").asString().c_str(),sizeof(rtimer.epgTitle)); + rtimer.epgTitle[sizeof(rtimer.epgTitle) - 1] = 0; if (remotetimers[i]["audio"].get("apids_conf","").asString() == "true") rtimer.apids = TIMERD_APIDS_CONF; //printf("[remotetimer] r-timer:%s - %s\n", remotetimers[i].get("channel_id","").asString().c_str(), remotetimers[i].get("title","").asString().c_str()); diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 529121f15..09ac2723b 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3772,6 +3772,8 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) skipShutdownTimer = (ShowMsg(LOCALE_MESSAGEBOX_INFO, LOCALE_SHUTDOWNTIMER_ANNOUNCE, CMsgBox::mbrNo, CMsgBox::mbYes | CMsgBox::mbNo, NULL, 450, 5) == CMsgBox::mbrYes); } else if( msg == NeutrinoMessages::SHUTDOWN ) { + if(CStreamManager::getInstance()->StreamStatus()) + skipShutdownTimer = true; if(!skipShutdownTimer) { ExitRun(g_info.hw_caps->can_shutdown); } diff --git a/src/nhttpd/yconfig.h b/src/nhttpd/yconfig.h index d3444671a..01eaecb32 100644 --- a/src/nhttpd/yconfig.h +++ b/src/nhttpd/yconfig.h @@ -90,7 +90,7 @@ #undef HTTPD_NAME #define HTTPD_NAME "nhttpd" #define HTTPD_STANDARD_PORT 80 -#define HTTPD_MAX_CONNECTIONS 10 +#define HTTPD_MAX_CONNECTIONS 50 #define HTTPD_REQUEST_LOG "/tmp/httpd_log" #define SSL_PEMFILE HTTPD_CONFIGDIR "/server.pem" #define SSL_CA_FILE HTTPD_CONFIGDIR "/cacert.pem"