diff --git a/src/driver/simple_display.cpp b/src/driver/simple_display.cpp index 4f05131bb..8276ea2be 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) @@ -795,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); @@ -869,6 +872,12 @@ 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; + 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/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); 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; igetName(), 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 }, diff --git a/src/neutrino.cpp b/src/neutrino.cpp index ad4e2e186..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); @@ -2778,6 +2779,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 +2791,7 @@ void CNeutrinoApp::RealRun() radioMode(); } else +#endif switchTvRadioMode(); //used with defined default tv/radio rc key } /* in case key_subchannel_up/down redefined */ @@ -2851,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 ) ) @@ -3134,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);