diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index b28c3dfd0..eee85fe2e 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -2907,6 +2907,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 6028035a4..efdc0a335 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -2907,6 +2907,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 44cb6ea9c..689f7e025 100644 --- a/src/gui/infoviewer.cpp +++ b/src/gui/infoviewer.cpp @@ -959,23 +959,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_AUDIO]; + 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; } } @@ -2486,8 +2503,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 548d192a4..2793db34e 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -1162,8 +1162,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 6b9e7ff2c..104f19054 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -2934,6 +2934,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 336c7e4a5..0e07664b4 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -2934,6 +2934,7 @@ const char * locale_real_names[] = "timing.menu", "timing.numericzap", "timing.off", + "timing.off_auto", "timing.popup_messages", "timing.static_messages", "timing.volumebar",