From d137ca89698eda33bcce7a29b6a69d2b51b66180 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Mon, 21 Nov 2016 10:43:27 +0100 Subject: [PATCH 1/8] CComponentsFrmClock: ensure that no radius is defined for inner items Radius is not required for inner segments. TODO: single segment Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/02c6df782c0b423f05e248935db40395fc12e8a7 Author: Thilo Graf Date: 2016-11-21 (Mon, 21 Nov 2016) --- src/gui/components/cc_frm_clock.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/components/cc_frm_clock.cpp b/src/gui/components/cc_frm_clock.cpp index 82c048943..5adcd7b45 100644 --- a/src/gui/components/cc_frm_clock.cpp +++ b/src/gui/components/cc_frm_clock.cpp @@ -190,8 +190,8 @@ void CComponentsFrmClock::initCCLockItems() //background paint of item is not required lbl->doPaintBg(false); - //set corner properties of label item - lbl->setCorner(corner_rad-fr_thickness, corner_type); + //preset corner properties of label item + lbl->setCorner(max(0, corner_rad-fr_thickness), corner_type); //set text border to 0 lbl->setTextBorderWidth(0,0); @@ -234,7 +234,7 @@ void CComponentsFrmClock::initCCLockItems() else if (i == v_cc_items.size()-1) lbl->setCornerType(corner_type & CORNER_RIGHT);// last label item else - lbl->setCornerType(0);// inner items + lbl->setCorner(0,CORNER_NONE);// inner items don't need round corners } //extract timestring segment (char) From 3634c26ea19815a23b2ae3bcb8675f77fb02de82 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Mon, 21 Nov 2016 10:44:27 +0100 Subject: [PATCH 2/8] CComponentsInfoBox: add methode to get internal picture object Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/0d2c612adb72595b27cf9a9106e6bc1931433da7 Author: Thilo Graf Date: 2016-11-21 (Mon, 21 Nov 2016) --- src/gui/components/cc_item_infobox.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/components/cc_item_infobox.h b/src/gui/components/cc_item_infobox.h index d8f2345c5..f82eab80e 100644 --- a/src/gui/components/cc_item_infobox.h +++ b/src/gui/components/cc_item_infobox.h @@ -83,6 +83,8 @@ class CComponentsInfoBox : public CComponentsText void setPicture(const std::string& picture_name); ///set property: path or name of displayed image, parameter as const char* void setPicture(const char* picture_name); + ///retur internal picture object + CComponentsPicture * getPictureObject(){return pic;} ///paint item void paint(bool do_save_bg = CC_SAVE_SCREEN_YES); }; From e2afccba70ae59d4d9ab1d759d684f9d2b3d1786 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Mon, 21 Nov 2016 10:53:01 +0100 Subject: [PATCH 3/8] CTextBox: try to fix possible background artefacts in transparent mode supplement to: - textbox: fix box width in round corners mode Radius was always subtracted in all text modes. TODO: value of m_nBgRadius itself is not considered at the moment. Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/7031dc1da4bf0288795c34511983969314c95367 Author: Thilo Graf Date: 2016-11-21 (Mon, 21 Nov 2016) --- src/gui/widget/textbox.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widget/textbox.cpp b/src/gui/widget/textbox.cpp index bbf678e33..41ca9e7dc 100644 --- a/src/gui/widget/textbox.cpp +++ b/src/gui/widget/textbox.cpp @@ -588,7 +588,7 @@ void CTextBox::refreshText(void) //bg variables int ax = m_cFrameTextRel.iX+m_cFrame.iX; int ay = m_cFrameTextRel.iY+m_cFrame.iY; - int dx = m_old_cText != m_cText || m_nNrOfPages>1 ? m_cFrameTextRel.iWidth : m_nMaxTextWidth - m_nBgRadius; + int dx = m_old_cText != m_cText || m_nNrOfPages>1 ? m_cFrameTextRel.iWidth : m_nMaxTextWidth - (m_nMode & SCROLL ? m_nBgRadius : 0); int dy = m_cFrameTextRel.iHeight; //avoid artefacts in transparent cornes From 97b57a783d305feefd92b0a8a93405c75f594e68 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Tue, 22 Nov 2016 10:32:10 +0100 Subject: [PATCH 4/8] Messages: try to fix API message handling Passed timeout for messeages an popup's fired by yWeb API was not really ok. For popups now we have a setting with default value of 6 seconds timeout Popups fired with ShowHint() use this as default. Value of 0 and -1 are ignored. Messages fired with ShowMsg() should be fixed and interpret value 0 or -1 as no timeout and will remain on the screen. Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/8b97f72ed1e1e8ad3430dec98f772f011f5dba27 Author: Thilo Graf Date: 2016-11-22 (Tue, 22 Nov 2016) --- src/gui/widget/hintbox.cpp | 4 ++++ src/gui/widget/hintbox.h | 5 +++-- src/gui/widget/msgbox.cpp | 5 ++++- src/gui/widget/msgbox.h | 14 +++++++------- src/neutrino.cpp | 2 +- src/system/locals.h | 1 + src/system/locals_intern.h | 1 + src/system/settings.h | 4 +++- 8 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/gui/widget/hintbox.cpp b/src/gui/widget/hintbox.cpp index 5cc9085b5..172419468 100644 --- a/src/gui/widget/hintbox.cpp +++ b/src/gui/widget/hintbox.cpp @@ -196,6 +196,10 @@ int CHintBox::exec() neutrino_msg_t msg; neutrino_msg_data_t data; int res = messages_return::none; + + if (timeout == NO_TIMEOUT || timeout == 0) + timeout = HINTBOX_DEFAULT_TIMEOUT; + uint64_t timeoutEnd = CRCInput::calcTimeoutEnd( timeout ); if (timeout > 0) diff --git a/src/gui/widget/hintbox.h b/src/gui/widget/hintbox.h index 641bb6411..310aeb8b2 100644 --- a/src/gui/widget/hintbox.h +++ b/src/gui/widget/hintbox.h @@ -35,7 +35,8 @@ #define HINTBOX_MIN_WIDTH 420 #define HINTBOX_MIN_HEIGHT 125 #define HINTBOX_MAX_HEIGHT 520 -#define HINTBOX_DEFAULT_TIMEOUT 5 +#define HINTBOX_DEFAULT_TIMEOUT g_settings.timing[SNeutrinoSettings::TIMING_POPUP_MESSAGES] +#define NO_TIMEOUT -1 //frame around hint container as indent #define W_FRAME std::max(HINTBOX_MIN_WIDTH, HINTBOX_MIN_HEIGHT) * 2/100 //frame color around hint/message box @@ -328,7 +329,7 @@ class CHint : public CHintBox * Simplified methodes to show hintboxes without titlebar and footer * Text is UTF-8 encoded * @param[in] timeout -* @li optional: exepts type int as seconds, default = HINTBOX_DEFAULT_TIMEOUT (5 sec) +* @li optional: exepts type int as seconds, default = HINTBOX_DEFAULT_TIMEOUT (get from settings) * @param[in] show_background * @li optional: exepts type bool, enable/disable backround paint, default = true * @see for possible text parameters take a look to CHintBox() diff --git a/src/gui/widget/msgbox.cpp b/src/gui/widget/msgbox.cpp index 567780794..a8bc796fd 100644 --- a/src/gui/widget/msgbox.cpp +++ b/src/gui/widget/msgbox.cpp @@ -236,6 +236,9 @@ int CMsgBox::exec() ccw_footer->getSelectedButtonObject()->setButtonAlias(mb_show_button); int selected = ccw_footer->getSelectedButton(); + if (timeout == NO_TIMEOUT) + timeout = 0; + uint64_t timeoutEnd = CRCInput::calcTimeoutEnd(timeout); if (timeout > 0) @@ -432,7 +435,7 @@ int ShowMsg2UTF( const neutrino_locale_t Title, const int& Text_mode, fb_pixel_t color_frame) { - int result = ShowMsg( g_Locale->getText(Title), Text, Default, ShowButtons, Icon, Width, Timeout, returnDefaultOnTimeout, Text_mode, color_frame); + int result = ShowMsg2UTF(g_Locale->getText(Title), Text, Default, ShowButtons, Icon, Width, Timeout, returnDefaultOnTimeout, Text_mode, color_frame); return (result); } diff --git a/src/gui/widget/msgbox.h b/src/gui/widget/msgbox.h index 028bba5d5..cd0fd2a44 100644 --- a/src/gui/widget/msgbox.h +++ b/src/gui/widget/msgbox.h @@ -321,7 +321,7 @@ int ShowMsg2UTF( const neutrino_locale_t Title, const uint32_t ShowButtons, const char * const Icon = NULL, const int Width = MSGBOX_MIN_WIDTH, - const int Timeout = -1, + const int Timeout = NO_TIMEOUT, bool returnDefaultOnTimeout = false, const int& Text_mode = DEFAULT_MSGBOX_TEXT_MODE, fb_pixel_t color_frame = HINTBOX_DEFAULT_FRAME_COLOR); // UTF-8 @@ -332,7 +332,7 @@ int ShowMsg2UTF( const char * const Title, const uint32_t ShowButtons, const char * const Icon = NULL, const int Width = MSGBOX_MIN_WIDTH, - const int Timeout = -1, + const int Timeout = NO_TIMEOUT, bool returnDefaultOnTimeout = false, const int& Text_mode = DEFAULT_MSGBOX_TEXT_MODE, fb_pixel_t color_frame = HINTBOX_DEFAULT_FRAME_COLOR); // UTF-8 @@ -343,7 +343,7 @@ int ShowMsg( const neutrino_locale_t Title, const uint32_t ShowButtons, const char * const Icon = NULL, const int Width = MSGBOX_MIN_WIDTH, - const int Timeout = -1, + const int Timeout = NO_TIMEOUT, bool returnDefaultOnTimeout = false, const int& Text_mode = DEFAULT_MSGBOX_TEXT_MODE, fb_pixel_t color_frame = HINTBOX_DEFAULT_FRAME_COLOR); // UTF-8 @@ -354,7 +354,7 @@ int ShowMsg( const char * const Title, const uint32_t ShowButtons, const char * const Icon = NULL, const int Width = MSGBOX_MIN_WIDTH, - const int Timeout = -1, + const int Timeout = NO_TIMEOUT, bool returnDefaultOnTimeout = false, const int& Text_mode = DEFAULT_MSGBOX_TEXT_MODE, fb_pixel_t color_frame = HINTBOX_DEFAULT_FRAME_COLOR); // UTF-8 @@ -365,7 +365,7 @@ int ShowMsg( const neutrino_locale_t Title, const uint32_t ShowButtons, const char * const Icon = NULL, const int Width = MSGBOX_MIN_WIDTH, - const int Timeout = -1, + const int Timeout = NO_TIMEOUT, bool returnDefaultOnTimeout = false, const int& Text_mode = DEFAULT_MSGBOX_TEXT_MODE, fb_pixel_t color_frame = HINTBOX_DEFAULT_FRAME_COLOR); // UTF-8 @@ -376,7 +376,7 @@ int ShowMsg( const neutrino_locale_t Title, const uint32_t ShowButtons, const char * const Icon = NULL, const int Width = MSGBOX_MIN_WIDTH, - const int Timeout = -1, + const int Timeout = NO_TIMEOUT, bool returnDefaultOnTimeout = false, const int& Text_mode = DEFAULT_MSGBOX_TEXT_MODE, fb_pixel_t color_frame = HINTBOX_DEFAULT_FRAME_COLOR); // UTF-8 @@ -387,7 +387,7 @@ int ShowMsg( const std::string & Title, const uint32_t ShowButtons, const char * const Icon = NULL, const int Width = MSGBOX_MIN_WIDTH, - const int Timeout = -1, + const int Timeout = NO_TIMEOUT, bool returnDefaultOnTimeout = false, const int& Text_mode = DEFAULT_MSGBOX_TEXT_MODE, fb_pixel_t color_frame = HINTBOX_DEFAULT_FRAME_COLOR); // UTF-8 diff --git a/src/neutrino.cpp b/src/neutrino.cpp index c6bc48e70..a4eae6220 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3350,7 +3350,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) } else if (msg == NeutrinoMessages::EVT_POPUP || msg == NeutrinoMessages::EVT_EXTMSG) { if (mode != mode_scart && mode != mode_standby) { - int timeout = HINTBOX_DEFAULT_TIMEOUT; + int timeout = NO_TIMEOUT; std::string text = (char*)data; std::string::size_type pos; diff --git a/src/system/locals.h b/src/system/locals.h index b29341ef7..5621aa1e5 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -2433,6 +2433,7 @@ typedef enum LOCALE_TIMING_INFOBAR_RADIO, LOCALE_TIMING_MENU, LOCALE_TIMING_NUMERICZAP, + LOCALE_TIMING_POPUP_MESSAGES, LOCALE_TIMING_VOLUMEBAR, LOCALE_TMDB_API_KEY, LOCALE_TMDB_ENABLED, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index bf61c27ac..875066c28 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -2433,6 +2433,7 @@ const char * locale_real_names[] = "timing.infobar_radio", "timing.menu", "timing.numericzap", + "timing.popup_messages", "timing.volumebar", "tmdb.api_key", "tmdb.enabled", diff --git a/src/system/settings.h b/src/system/settings.h index 359bbd4af..fbb47ee6e 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -405,6 +405,7 @@ struct SNeutrinoSettings TIMING_VOLUMEBAR = 6, TIMING_FILEBROWSER = 7, TIMING_NUMERICZAP = 8, + TIMING_POPUP_MESSAGES = 9, TIMING_SETTING_COUNT }; @@ -873,7 +874,8 @@ const time_settings_struct_t timing_setting[SNeutrinoSettings::TIMING_SETTING_CO { 6, LOCALE_TIMING_INFOBAR_MOVIEPLAYER}, { 3, LOCALE_TIMING_VOLUMEBAR }, { 60, LOCALE_TIMING_FILEBROWSER }, - { 3, LOCALE_TIMING_NUMERICZAP } + { 3, LOCALE_TIMING_NUMERICZAP }, + { 6, LOCALE_TIMING_POPUP_MESSAGES} }; // lcdd From c91143c82d74e8186d8ac282b95c62691fe18336 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Tue, 22 Nov 2016 10:44:50 +0100 Subject: [PATCH 5/8] CHintBox: fix missing shadow for popups Must be enabled with enum, bool has no effect. Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/e46d65fb924621ebae2bee080c1ed85f79eddd54 Author: Thilo Graf Date: 2016-11-22 (Tue, 22 Nov 2016) --- src/gui/widget/hintbox.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widget/hintbox.cpp b/src/gui/widget/hintbox.cpp index 172419468..5709df99b 100644 --- a/src/gui/widget/hintbox.cpp +++ b/src/gui/widget/hintbox.cpp @@ -135,7 +135,7 @@ void CHintBox::init(const std::string& Text, const int& Width, const std::string hb_font = MSG_FONT; //enable shadow - shadow = true; + shadow = CC_SHADOW_ON; //disable disable header if no title has been defined if (ccw_caption.empty()) From 3bed87466a69fec2da2128365c8c20964e5bf180 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Tue, 22 Nov 2016 11:01:30 +0100 Subject: [PATCH 6/8] Messages: move window to top of screen User request. Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/644063d2c8806898bafb8f2c39ee560800589f39 Author: Thilo Graf Date: 2016-11-22 (Tue, 22 Nov 2016) --- src/gui/widget/hintbox.cpp | 4 ++-- src/gui/widget/msgbox.cpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gui/widget/hintbox.cpp b/src/gui/widget/hintbox.cpp index 5709df99b..6d64e7fc1 100644 --- a/src/gui/widget/hintbox.cpp +++ b/src/gui/widget/hintbox.cpp @@ -309,8 +309,8 @@ void CHintBox::addHintItem(const std::string& Text, const int& text_mode, const ReSize(); /* set hint box position general to center and refresh window */ - setCenterPos(); - + setCenterPos(CC_ALONG_X); + y = frameBuffer->getScreenY() + ((frameBuffer->getScreenHeight() - height) >> 2), Refresh(); } diff --git a/src/gui/widget/msgbox.cpp b/src/gui/widget/msgbox.cpp index a8bc796fd..e2edcdeed 100644 --- a/src/gui/widget/msgbox.cpp +++ b/src/gui/widget/msgbox.cpp @@ -204,7 +204,8 @@ void CMsgBox::initButtons() ccw_footer->enableButtonShadow(CC_SHADOW_ON, OFFSET_SHADOW/2, true); //set position of meassage window and refresh window properties - setCenterPos(); + setCenterPos(CC_ALONG_X); + y = frameBuffer->getScreenY() + ((frameBuffer->getScreenHeight() - height) >> 2), Refresh(); //set the 1st button as default selected button From 0e62dfb5e554ef287b80fbe6ac34bc1f37b39383 Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Tue, 22 Nov 2016 19:10:01 +0100 Subject: [PATCH 7/8] Sort locale Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/b8e314695b5ac5a714f54fbb0033b01c48793d3d Author: Michael Liebmann Date: 2016-11-22 (Tue, 22 Nov 2016) --- data/locale/nederlands.locale | 2 +- data/locale/slovak.locale | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/locale/nederlands.locale b/data/locale/nederlands.locale index 2425f75e9..092ca0fb3 100644 --- a/data/locale/nederlands.locale +++ b/data/locale/nederlands.locale @@ -686,10 +686,10 @@ fontsize.infobar_info Info fontsize.infobar_number Nummer fontsize.infobar_small Klein fontsize.menu Menu tekst -fontsize.message_text Messag Text fontsize.menu_hint Menu hints fontsize.menu_info Menu Info fontsize.menu_title Menu Titel +fontsize.message_text Messag Text fontsize.subtitles Text ondertitels hdd_10min 10 min. hdd_1min 1 min. diff --git a/data/locale/slovak.locale b/data/locale/slovak.locale index c6c3b1e67..c3f774481 100644 --- a/data/locale/slovak.locale +++ b/data/locale/slovak.locale @@ -733,11 +733,11 @@ fontsize.infobar_info Informácia na informačnej lište fontsize.infobar_ng_ecminfo ECM Informácia fontsize.infobar_number Kanál na informačnej lište fontsize.menu Text menu -fontsize.message_text Messagwe Text fontsize.menu_foot Päta (vo všetkých grafických elementoch) fontsize.menu_hint Popis menu fontsize.menu_info Informačné menu fontsize.menu_title Titulok menu +fontsize.message_text Messagwe Text fontsize.moviebrowser_head Hlavičky fontsize.moviebrowser_info Informačné okno fontsize.moviebrowser_list Zoznam položiek @@ -1406,9 +1406,9 @@ menu.hint_selected_text Zmena farby textu označenej položky menu.hint_service Nastavenie tuneru, vyhľadanie služieb,\núprava buketov, aktualizácia software menu.hint_service_scan Automatické / manuálne vyhľadávanie staníc, FastScan, Test signálu menu.hint_settings Konfigurácia system, sieť, zvuk, obraz, OSD a iné -menu.hint_show_mute_icon Zobrazenie ikony umlčania, ak nastavenie hlasitosťi bude 0 menu.hint_shoutcast_dev_id Vložte vaše SHOUTcast údaje. Neuvedením údajov sa vypne podpora SHOUTcast. menu.hint_shoutcast_enabled Povoliť alebo zakázať podporu SHOUTcast +menu.hint_show_mute_icon Zobrazenie ikony umlčania, ak nastavenie hlasitosťi bude 0 menu.hint_shutdown Vypnutie prijímača - bez potvrdzovania menu.hint_shutdown_count Čas prepnutia prijímača z pohotovostného režimu do stavu vypnutia menu.hint_shutdown_menu Prepne prijímač do pohotovostného režimu alebo ho vypne, nastaví časovač vypnutia From 3949bfb5f7aa012889a96d4ded02258490f3db1f Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Tue, 22 Nov 2016 19:10:15 +0100 Subject: [PATCH 8/8] Add missing locale - Supplement to commit ec132fe91bd1f05e0c56f30f174585991771124c and 97b57a783d305feefd92b0a8a93405c75f594e68 Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/ab11919298e1030165ab60334ea597b76c863a75 Author: Michael Liebmann Date: 2016-11-22 (Tue, 22 Nov 2016) Origin message was: ------------------ Add missing locale - Supplement to commit ec132fe91bd1f05e0c56f30f174585991771124c and 97b57a783d305feefd92b0a8a93405c75f594e68 --- data/locale/deutsch.locale | 2 ++ data/locale/english.locale | 2 ++ 2 files changed, 4 insertions(+) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index a3465ddea..fe07f8f8d 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1040,6 +1040,7 @@ menu.hint_epg_fonts Ändern Sie die Schriftgrößen der EPG-Details menu.hint_epg_max_events Maxiale Anzahl der Events im Zwischenspeicher menu.hint_epg_old_events Veraltete EPG-Daten werden nach dieser Zeit (in Stunden) verworfen menu.hint_epg_read Liest nach einem Neustart die EPG-Daten von einem externen Datenträger wieder ein +menu.hint_epg_read_frequently Liest die EPG-Daten in regelmäßigen Abständen von einem externen Datenträger menu.hint_epg_save Speichert die EPG-Daten beim Herunterfahren auf einem externen Datenträger menu.hint_epg_save_frequently Speichert die EPG-Daten in regelmäßigen Abständen auf einem externen Datenträger menu.hint_epg_save_mode Speichert die EPG-Daten nur für Sender, die in die Favoriten aufgenommen sind @@ -2405,6 +2406,7 @@ timing.infobar_movieplayer Infobar (Filmwiedergabe) timing.infobar_radio Infobar (Radiobetrieb) timing.menu Menü timing.numericzap Umschalten mit Zifferntasten +timing.popup_messages Popup Meldungen timing.volumebar Lautstärkeanzeige tmdb.api_key TMDb API Schlüssel tmdb.enabled TMDb-Unterstützung diff --git a/data/locale/english.locale b/data/locale/english.locale index ebaf919c6..fec3ec423 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1040,6 +1040,7 @@ menu.hint_epg_fonts Change EPG details window font sizes menu.hint_epg_max_events Maximum events to cache. After reaching limit\nEPG cache will remove future events menu.hint_epg_old_events Hours after event end time to consider\nevent old and remove it from cache menu.hint_epg_read Read saved EPG data after boot from an external device +menu.hint_epg_read_frequently Read cached EPG data in frequently intervals from an external device menu.hint_epg_save Save cached EPG data to an external device menu.hint_epg_save_frequently Save cached EPG data in frequently intervals to an external device menu.hint_epg_save_mode Cache EPG only for channels present in favorite bouquets @@ -2405,6 +2406,7 @@ timing.infobar_movieplayer Infobar (movie mode) timing.infobar_radio Infobar (radio mode) timing.menu Menu timing.numericzap Numeric Zap +timing.popup_messages Popup messages timing.volumebar Volume bar tmdb.api_key TMDb API key tmdb.enabled TMDb support