From b16b5d30488c5f838a49b1fc39a484e4a6697ea6 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Fri, 17 Nov 2017 09:17:40 +0100 Subject: [PATCH 1/6] neutrino: fix tv/radio switch for coolstream; ... the TV/Radio key returns RC_tv. So we can't use RC_radio code here. Signed-off-by: Thilo Graf Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/6911ffe0b6f4f0acea31b317a659576ff3702dbd Author: vanhofen Date: 2017-11-17 (Fri, 17 Nov 2017) Origin message was: ------------------ - neutrino: fix tv/radio switch for coolstream; ... the TV/Radio key returns RC_tv. So we can't use RC_radio code here. Signed-off-by: Thilo Graf --- src/neutrino.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index ad4e2e186..5de7dddb1 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2778,6 +2778,7 @@ void CNeutrinoApp::RealRun() StartSubtitles(); } else if (((msg == CRCInput::RC_tv) || (msg == CRCInput::RC_radio)) && (g_settings.key_tvradio_mode == (int)CRCInput::RC_nokey)) { +#if HAVE_ARM_HARDWARE if (msg == CRCInput::RC_tv) { if (mode == mode_radio || mode == mode_webradio) @@ -2789,6 +2790,7 @@ void CNeutrinoApp::RealRun() radioMode(); } else +#endif switchTvRadioMode(); //used with defined default tv/radio rc key } /* in case key_subchannel_up/down redefined */ From 7cfdcfedbbc74075800c6236f1315f0df97bc259 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Sat, 18 Nov 2017 16:17:38 +0100 Subject: [PATCH 2/6] CImageInfo: expand fallback to get readable version string Evaluation of one char could be not enough to get a right result. Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/60bf6d719410027a35c94007c7a16eebb58dd355 Author: Thilo Graf Date: 2017-11-18 (Sat, 18 Nov 2017) --- src/gui/imageinfo.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/gui/imageinfo.cpp b/src/gui/imageinfo.cpp index 6cb910762..c52fffd80 100644 --- a/src/gui/imageinfo.cpp +++ b/src/gui/imageinfo.cpp @@ -281,7 +281,14 @@ void CImageInfo::InitInfoData() #ifdef IMAGE_VERSION version_string = IMAGE_VERSION; #else - if (isdigit(version_string[0])){ + bool is_version_code = true; + for (size_t i=0; i Date: Sun, 19 Nov 2017 11:29:45 +0100 Subject: [PATCH 3/6] CTestMenu: add gui restart item for faster access Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/8613e5db111388204d4d527a4c546d7ef50bea81 Author: Thilo Graf Date: 2017-11-19 (Sun, 19 Nov 2017) --- src/gui/test_menu.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gui/test_menu.cpp b/src/gui/test_menu.cpp index dfb199488..4d1e6fb5b 100644 --- a/src/gui/test_menu.cpp +++ b/src/gui/test_menu.cpp @@ -1117,6 +1117,9 @@ int CTestMenu::showTestMenu() w_test.addItem(new CMenuForwarder(w_msg->getName(), true, NULL, w_msg)); showMsgTests(w_msg); + //restart gui + w_test.addItem(new CMenuForwarder(LOCALE_SERVICEMENU_RESTART , true, NULL, CNeutrinoApp::getInstance(), "restart", CRCInput::RC_standby)); + //footer buttons static const struct button_label footerButtons[2] = { { NEUTRINO_ICON_BUTTON_RED, LOCALE_COLORCHOOSER_RED }, From 96ff115b719b59afb732451995b96f77d2397946 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Sun, 19 Nov 2017 17:51:31 +0100 Subject: [PATCH 4/6] src/gui/components/cc_frm_window.cpp: fix too small left bottom corner radius is allready calculatetd in base class src/gui/components/cc_frm.cpp in member CComponentsForm::paintCCItems() NOTE: It seems the radius calculation inside framebuffer don't working correct for corners on the right site on top and bottom. Seen on hd51 hardware on osd-boxes with shadow (e.g. infobar) or Boxes with frames e.g. on error message windows, buttons. There are pixel errors like minimal holes on osd or displaced pixels. On CST hardware evreything is ok. Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/94517d34042243540f550990d1a8b99670aeaccc Author: Thilo Graf Date: 2017-11-19 (Sun, 19 Nov 2017) Origin message was: ------------------ src/gui/components/cc_frm_window.cpp: fix too small left bottom corner radius is allready calculatetd in base class src/gui/components/cc_frm.cpp in member CComponentsForm::paintCCItems() NOTE: It seems the radius calculation inside framebuffer don't working correct for corners on the right site on top and bottom. Seen on hd51 hardware on osd-boxes with shadow (e.g. infobar) or Boxes with frames e.g. on error message windows, buttons. There are pixel errors like minimal holes on osd or displaced pixels. On CST hardware evreything is ok. --- src/gui/components/cc_frm.cpp | 6 ++---- src/gui/components/cc_frm_window.cpp | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/gui/components/cc_frm.cpp b/src/gui/components/cc_frm.cpp index 850e32b6a..a62df72ee 100644 --- a/src/gui/components/cc_frm.cpp +++ b/src/gui/components/cc_frm.cpp @@ -482,10 +482,8 @@ void CComponentsForm::paintCCItems() //reduce corner radius, if we have a frame around parent item, ensure matching corners inside of embedded item, this avoids ugly unpainted spaces between frame and item border //TODO: other constellations not considered at the moment - if (w_parent_frame){ - if(xpos <= fr_thickness || ypos <= fr_thickness) - cc_item->setCorner(max(0, cc_item->getCornerRadius()-w_parent_frame), cc_item->getCornerType()); - } + if (w_parent_frame) + cc_item->setCorner(max(0, cc_item->getCornerRadius()- w_parent_frame), cc_item->getCornerType()); //These steps check whether the element can be painted into the container. //Is it too wide or too high, it will be shortened and displayed in the log. diff --git a/src/gui/components/cc_frm_window.cpp b/src/gui/components/cc_frm_window.cpp index 5c05a19ed..f23245147 100644 --- a/src/gui/components/cc_frm_window.cpp +++ b/src/gui/components/cc_frm_window.cpp @@ -226,7 +226,7 @@ void CComponentsWindow::initFooter() ccw_footer->setPos(cc_xr + fr_thickness, cc_yr + height - ccw_footer->getHeight()- fr_thickness); ccw_footer->setWidth(width/*-2*fr_thickness*/); ccw_footer->enableShadow(false/*shadow*/); - ccw_footer->setCorner(corner_rad-fr_thickness, CORNER_BOTTOM); + ccw_footer->setCorner(corner_rad, CORNER_BOTTOM); ccw_footer->setButtonFont(ccw_button_font); ccw_footer->setColorBody(ccw_col_footer); ccw_footer->doPaintBg(true); From 4ca8b2e257b8cc8753dcd57c2e5913a042d2d78b Mon Sep 17 00:00:00 2001 From: vanhofen Date: Fri, 17 Nov 2017 21:17:36 +0100 Subject: [PATCH 5/6] simple_display: show mute icon in muted mode Signed-off-by: Thilo Graf Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/ec7403c060babaaa72fd47c284045a2205d87006 Author: vanhofen Date: 2017-11-17 (Fri, 17 Nov 2017) Origin message was: ------------------ - simple_display: show mute icon in muted mode Signed-off-by: Thilo Graf --- src/driver/simple_display.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/driver/simple_display.cpp b/src/driver/simple_display.cpp index 4f05131bb..a92d23364 100644 --- a/src/driver/simple_display.cpp +++ b/src/driver/simple_display.cpp @@ -399,6 +399,8 @@ void CLCD::showVolume(const char vol, const bool update) if (volume > 100) volume = 100; + ShowIcon(FP_ICON_MUTE, muted); + if (muted) { if (g_info.hw_caps->display_type == HW_DISPLAY_LINE_TEXT) @@ -869,6 +871,9 @@ void CLCD::ShowIcon(fp_icon i, bool on) SetIcons(SPARK_CLOCK, on); proc_put("/proc/stb/lcd/symbol_timeshift", on); break; + case FP_ICON_MUTE: + proc_put("/proc/stb/lcd/symbol_mute", on); + break; default: break; } From 11a699c689c1a1627451df92c2a3e6afe62e2025 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Fri, 17 Nov 2017 22:18:07 +0100 Subject: [PATCH 6/6] simple_display: show scrambled icon on scrambled channels Signed-off-by: Thilo Graf Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/91098917e0b4f0d922dee2f994c5bccb1e292a24 Author: vanhofen Date: 2017-11-17 (Fri, 17 Nov 2017) Origin message was: ------------------ - simple_display: show scrambled icon on scrambled channels Signed-off-by: Thilo Graf --- src/driver/simple_display.cpp | 4 ++++ src/driver/simple_display.h | 1 + src/driver/vfd.h | 1 + src/neutrino.cpp | 3 +++ 4 files changed, 9 insertions(+) diff --git a/src/driver/simple_display.cpp b/src/driver/simple_display.cpp index a92d23364..8276ea2be 100644 --- a/src/driver/simple_display.cpp +++ b/src/driver/simple_display.cpp @@ -797,6 +797,7 @@ void CLCD::UpdateIcons() { ShowIcon(FP_ICON_HD,chan->isHD()); ShowIcon(FP_ICON_LOCK,!chan->camap.empty()); + ShowIcon(FP_ICON_SCRAMBLED, chan->scrambled); if (chan->getAudioChannel() != NULL) { ShowIcon(FP_ICON_DD, chan->getAudioChannel()->audioChannelType == CZapitAudioChannel::AC3); @@ -874,6 +875,9 @@ void CLCD::ShowIcon(fp_icon i, bool on) case FP_ICON_MUTE: proc_put("/proc/stb/lcd/symbol_mute", on); break; + case FP_ICON_SCRAMBLED: + proc_put("/proc/stb/lcd/symbol_scrambled", on); + break; default: break; } diff --git a/src/driver/simple_display.h b/src/driver/simple_display.h index 4fc2476bf..509137289 100644 --- a/src/driver/simple_display.h +++ b/src/driver/simple_display.h @@ -65,6 +65,7 @@ typedef enum FP_ICON_FR, FP_ICON_FF, FP_ICON_DD, + FP_ICON_SCRAMBLED, FP_ICON_LOCK } fp_icon; diff --git a/src/driver/vfd.h b/src/driver/vfd.h index 9c4fe3987..6a6859cb0 100644 --- a/src/driver/vfd.h +++ b/src/driver/vfd.h @@ -155,6 +155,7 @@ class CVFD void Lock(); void Unlock(); void Clear(); + void UpdateIcons() { return; } void ShowIcon(fp_icon icon, bool show); void ShowText(const char *str); void ShowNumber(int number); diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 5de7dddb1..aad13ec60 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2535,6 +2535,7 @@ void CNeutrinoApp::showMainMenu() int old_mode = g_settings.epg_scan_mode; int old_save_mode = g_settings.epg_save_mode; mainMenu->exec(NULL, ""); + CVFD::getInstance()->UpdateIcons(); InfoClock->enableInfoClock(true); StartSubtitles(); saveSetup(NEUTRINO_SETTINGS_FILE); @@ -2853,6 +2854,7 @@ void CNeutrinoApp::RealRun() //open moviebrowser via media player menu object if (g_settings.recording_type != CNeutrinoApp::RECORDING_OFF) CMediaPlayerMenu::getInstance()->exec(NULL, "moviebrowser"); + CVFD::getInstance()->UpdateIcons(); } else if( ( msg == CRCInput::RC_help ) || ( msg == CRCInput::RC_info) || ( msg == NeutrinoMessages::SHOW_INFOBAR ) ) @@ -3136,6 +3138,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) if(g_settings.audio_AnalogMode < 0 || g_settings.audio_AnalogMode > 2) g_settings.audio_AnalogMode = 0; + CVFD::getInstance()->UpdateIcons(); g_RCInput->killTimer(scrambled_timer); if (mode != mode_webtv) { scrambled_timer = g_RCInput->addTimer(10*1000*1000, true);