From 541edc751432278efaa50be422f1769ea838913d Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Fri, 17 Nov 2017 14:42:39 +0100 Subject: [PATCH 1/7] add dependency to libswscale for armbox --- configure.ac | 5 +++++ src/Makefile.am | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/configure.ac b/configure.ac index e3b5e1d34..b476e1633 100644 --- a/configure.ac +++ b/configure.ac @@ -134,6 +134,11 @@ TUXBOX_APPS_LIB_PKGCONFIG(PNG,libpng) TUXBOX_APPS_LIB_PKGCONFIG(AVFORMAT,libavformat) TUXBOX_APPS_LIB_PKGCONFIG(AVCODEC,libavcodec) TUXBOX_APPS_LIB_PKGCONFIG(AVUTIL,libavutil) + +if test "$BOXTYPE" = "armbox"; then +TUXBOX_APPS_LIB_PKGCONFIG(SWSCALE,libswscale) +fi + if test "$BOXTYPE" = "coolstream"; then TUXBOX_APPS_LIB_PKGCONFIG(BLURAY,libbluray) fi diff --git a/src/Makefile.am b/src/Makefile.am index 7a96ccf5a..f29ffed37 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -194,6 +194,10 @@ neutrino_LDADD += \ @AVUTIL_LIBS@ \ @AVCODEC_LIBS@ +if BOXTYPE_ARMBOX +neutrino_LDADD += @SWSCALE_LIBS@ +endif + if BOXMODEL_RASPI neutrino_LDADD += \ -L/opt/vc/lib/ -lbcm_host -lvcos -lvchiq_arm -lpthread -lrt From 6911ffe0b6f4f0acea31b317a659576ff3702dbd Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Fri, 17 Nov 2017 09:17:40 +0100 Subject: [PATCH 2/7] - 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 60bf6d719410027a35c94007c7a16eebb58dd355 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Sat, 18 Nov 2017 16:17:38 +0100 Subject: [PATCH 3/7] CImageInfo: expand fallback to get readable version string Evaluation of one char could be not enough to get a right result. --- 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 4/7] CTestMenu: add gui restart item for faster access --- 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 94517d34042243540f550990d1a8b99670aeaccc Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Sun, 19 Nov 2017 17:51:31 +0100 Subject: [PATCH 5/7] 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 ec7403c060babaaa72fd47c284045a2205d87006 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Fri, 17 Nov 2017 21:17:36 +0100 Subject: [PATCH 6/7] - 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 91098917e0b4f0d922dee2f994c5bccb1e292a24 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Fri, 17 Nov 2017 22:18:07 +0100 Subject: [PATCH 7/7] - 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);