diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 149f57531..0fb5817a2 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -2750,6 +2750,7 @@ timing.infobar_tv TV-Modus timing.menu Menü timing.numericzap Umschalten mit Zifferntasten timing.off manuell, ohne Timeout +timing.off_auto automatisch, ohne Timeout timing.popup_messages Popup Meldungen timing.static_messages Interaktive Meldungen timing.volumebar Lautstärkeanzeige diff --git a/data/locale/english.locale b/data/locale/english.locale index 4a9cc795a..04800ba46 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -2750,6 +2750,7 @@ timing.infobar_tv TV mode timing.menu Menu timing.numericzap Numeric Zap timing.off manual, without timeout +timing.off_auto automatic, without timeout timing.popup_messages Popup messages timing.static_messages Interactive messages timing.volumebar Volume bar diff --git a/src/gui/infoviewer.cpp b/src/gui/infoviewer.cpp index 61c5e746b..9815c3cfa 100644 --- a/src/gui/infoviewer.cpp +++ b/src/gui/infoviewer.cpp @@ -920,23 +920,40 @@ void CInfoViewer::showTitle(CZapitChannel * channel, const bool calledFromNumZap void CInfoViewer::setInfobarTimeout(int timeout_ext) { int mode = CNeutrinoApp::getInstance()->getMode(); + int timeout = 0; //define timeouts switch (mode) { case NeutrinoModes::mode_radio: case NeutrinoModes::mode_webradio: - timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.handling_infobar[SNeutrinoSettings::HANDLING_INFOBAR_RADIO] + timeout_ext); + timeout = g_settings.handling_infobar[SNeutrinoSettings::HANDLING_INFOBAR_RADIO]; + if (timeout < 0) + timeout = 0; + timeoutEnd = CRCInput::calcTimeoutEnd(timeout + timeout_ext); break; case NeutrinoModes::mode_ts: if (CMoviePlayerGui::getInstance().IsAudioPlaying()) - timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.handling_infobar[SNeutrinoSettings::HANDLING_INFOBAR_MEDIA_AUDIO] + timeout_ext); + { + timeout = g_settings.handling_infobar[SNeutrinoSettings::HANDLING_INFOBAR_MEDIA_AUDIO]; + if (timeout < 0) + timeout = 0; + timeoutEnd = CRCInput::calcTimeoutEnd(timeout + timeout_ext); + } else - timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.handling_infobar[SNeutrinoSettings::HANDLING_INFOBAR_MEDIA_VIDEO] + timeout_ext); + { + timeout = g_settings.handling_infobar[SNeutrinoSettings::HANDLING_INFOBAR_MEDIA_VIDEO]; + if (timeout < 0) + timeout = 0; + timeoutEnd = CRCInput::calcTimeoutEnd(timeout + timeout_ext); + } break; case NeutrinoModes::mode_tv: case NeutrinoModes::mode_webtv: default: - timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.handling_infobar[SNeutrinoSettings::HANDLING_INFOBAR] + timeout_ext); + timeout = g_settings.handling_infobar[SNeutrinoSettings::HANDLING_INFOBAR]; + if (timeout < 0) + timeout = 0; + timeoutEnd = CRCInput::calcTimeoutEnd(timeout + timeout_ext); break; } } @@ -2267,8 +2284,8 @@ bool CInfoViewer::hasTimeout() { int mode = CNeutrinoApp::getInstance()->getMode(); bool ret = ( - ((mode == NeutrinoModes::mode_tv || mode == NeutrinoModes::mode_webtv) && g_settings.handling_infobar[SNeutrinoSettings::HANDLING_INFOBAR] != 0) || - ((mode == NeutrinoModes::mode_radio || mode == NeutrinoModes::mode_webradio) && g_settings.handling_infobar[SNeutrinoSettings::HANDLING_INFOBAR_RADIO] != 0) + ((mode == NeutrinoModes::mode_tv || mode == NeutrinoModes::mode_webtv) && g_settings.handling_infobar[SNeutrinoSettings::HANDLING_INFOBAR] != 0) || + ((mode == NeutrinoModes::mode_radio || mode == NeutrinoModes::mode_webradio) && g_settings.handling_infobar[SNeutrinoSettings::HANDLING_INFOBAR_RADIO] != 0) ); return ret; } diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 064760f82..d50aa0823 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -1160,8 +1160,9 @@ void COsdSetup::showOsdTimeoutSetup(CMenuWidget* menu_timeout) for (int i = 0; i < SNeutrinoSettings::HANDLING_INFOBAR_SETTING_COUNT; i++) { - ch = new CMenuOptionNumberChooser(handling_infobar_setting[i].name, &g_settings.handling_infobar[i], true, 0, 240); + ch = new CMenuOptionNumberChooser(handling_infobar_setting[i].name, &g_settings.handling_infobar[i], true, -1, 240); ch->setNumberFormat(nf); + ch->setLocalizedValue(-1, LOCALE_TIMING_OFF_AUTO); ch->setLocalizedValue(0, LOCALE_TIMING_OFF); ch->setHint("", handling_infobar_setting[i].hint); menu_timeout->addItem(ch); diff --git a/src/system/locals.h b/src/system/locals.h index c04ffbf63..dc6a0c3ff 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -2777,6 +2777,7 @@ typedef enum LOCALE_TIMING_MENU, LOCALE_TIMING_NUMERICZAP, LOCALE_TIMING_OFF, + LOCALE_TIMING_OFF_AUTO, LOCALE_TIMING_POPUP_MESSAGES, LOCALE_TIMING_STATIC_MESSAGES, LOCALE_TIMING_VOLUMEBAR, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index a4133247e..c606f661f 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -2777,6 +2777,7 @@ const char * locale_real_names[] = "timing.menu", "timing.numericzap", "timing.off", + "timing.off_auto", "timing.popup_messages", "timing.static_messages", "timing.volumebar",