From 91a1ec674ac9724aac83180c08f3024f0a976e55 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Sun, 19 Sep 2021 13:18:08 +0200 Subject: [PATCH] webtv: add prefered quality option for use in webtv plugins Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/92b69d621be53940124254568fb8493613cb275a Author: Jacek Jendrzej Date: 2021-09-19 (Sun, 19 Sep 2021) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/locale/deutsch.locale | 1 + data/locale/english.locale | 1 + src/gui/webchannels_setup.cpp | 28 ++++++++++++++++++++++++++++ src/neutrino.cpp | 2 ++ src/system/locals.h | 1 + src/system/locals_intern.h | 1 + src/system/settings.h | 1 + 7 files changed, 35 insertions(+) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 47cf58f71..606279931 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -3040,6 +3040,7 @@ webradio.xml.auto WebRadio-Dateien automatisch laden webtv.head WebTV webtv.xml WebTV-Dateien webtv.xml.auto WebTV-Dateien automatisch laden +webtv.xml.pref_quality Bevorzugte Qualität window_size Fenstergröße in % wizard.initial_settings Grundeinstellungen gefunden wizard.install_settings Kanalliste für Astra 19.2°E installieren? diff --git a/data/locale/english.locale b/data/locale/english.locale index efdc0a335..c2c434a93 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -3040,6 +3040,7 @@ webradio.xml.auto Auto-load WebRadio files webtv.head WebTV webtv.xml WebTV files webtv.xml.auto Auto-load WebTV files +webtv.xml.pref_quality Prefered quality window_size Window size in % wizard.initial_settings Initial settings found wizard.install_settings Do you want to install channels for Astra 19.2°E? diff --git a/src/gui/webchannels_setup.cpp b/src/gui/webchannels_setup.cpp index 55b62d9e1..0a7a64bc8 100644 --- a/src/gui/webchannels_setup.cpp +++ b/src/gui/webchannels_setup.cpp @@ -58,6 +58,30 @@ static const struct button_label CWebChannelsSetupFooterButtons[] = }; #define CWebChannelsSetupFooterButtonCount (sizeof(CWebChannelsSetupFooterButtons)/sizeof(CWebChannelsSetupFooterButtons[0])) +#if BOXMODEL_CST_HD1 || BOXMODEL_CST_HD2 || HAVE_SPARK_HARDWARE +#define WEBTV_XML_QUALITY_OPTION_COUNT 5 + CMenuOptionChooser::keyval_ext WEBTV_XML_QUALITY_OPTIONS[WEBTV_XML_QUALITY_OPTION_COUNT] = + { + { 1920, NONEXISTANT_LOCALE, "1920x1080" }, + { 1280, NONEXISTANT_LOCALE, "1280x720" }, + { 854, NONEXISTANT_LOCALE, "854x480" }, + { 640, NONEXISTANT_LOCALE, "640x360" }, + { 480, NONEXISTANT_LOCALE, "480x270" } + }; +#else +#define WEBTV_XML_QUALITY_OPTION_COUNT 7 + CMenuOptionChooser::keyval_ext WEBTV_XML_QUALITY_OPTIONS[WEBTV_XML_QUALITY_OPTION_COUNT] = + { + { 3840, NONEXISTANT_LOCALE, "3840x2160" }, + { 2560, NONEXISTANT_LOCALE, "2560x1440" }, + { 1920, NONEXISTANT_LOCALE, "1920x1080" }, + { 1280, NONEXISTANT_LOCALE, "1280x720" }, + { 854, NONEXISTANT_LOCALE, "854x480" }, + { 640, NONEXISTANT_LOCALE, "640x360" }, + { 480, NONEXISTANT_LOCALE, "480x270" } + }; +#endif + int CWebChannelsSetup::exec(CMenuTarget *parent, const std::string &actionKey) { int res = menu_return::RETURN_REPAINT; @@ -230,6 +254,10 @@ int CWebChannelsSetup::Show() } oc->setHint("", hint_text); m->addItem(oc); + if(!webradio) + { + m->addItem(new CMenuOptionChooser(LOCALE_WEBTV_XML_PREF_QUALITY, &g_settings.webtv_xml_quality, WEBTV_XML_QUALITY_OPTIONS, WEBTV_XML_QUALITY_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++), "", true)); + } m->addItem(GenericMenuSeparator); item_offset = m->getItemsCount(); diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 2d2a4afae..05c5bebf2 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -896,6 +896,7 @@ int CNeutrinoApp::loadSetup(const char *fname) g_settings.widget_fade = configfile.getBool("widget_fade", false); // webtv + g_settings.webtv_xml_quality = configfile.getInt32("webtv_xml_quality", 1280); g_settings.webtv_xml_auto = configfile.getInt32("webtv_xml_auto", 1); g_settings.webtv_xml.clear(); int webtv_count = configfile.getInt32("webtv_xml_count", 0); @@ -1990,6 +1991,7 @@ void CNeutrinoApp::saveSetup(const char *fname) // webtv CWebChannelsSetup webchannelssetup; + configfile.setInt32("webtv_xml_quality", g_settings.webtv_xml_quality); configfile.setInt32("webtv_xml_auto", g_settings.webtv_xml_auto); int webtv_count = 0; for (std::list::iterator it = g_settings.webtv_xml.begin(); it != g_settings.webtv_xml.end(); ++it) diff --git a/src/system/locals.h b/src/system/locals.h index 104f19054..b6b10ed3b 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -3067,6 +3067,7 @@ typedef enum LOCALE_WEBTV_HEAD, LOCALE_WEBTV_XML, LOCALE_WEBTV_XML_AUTO, + LOCALE_WEBTV_XML_PREF_QUALITY, LOCALE_WINDOW_SIZE, LOCALE_WIZARD_INITIAL_SETTINGS, LOCALE_WIZARD_INSTALL_SETTINGS, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 0e07664b4..2950e58b2 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -3067,6 +3067,7 @@ const char * locale_real_names[] = "webtv.head", "webtv.xml", "webtv.xml.auto", + "webtv.xml.pref_quality", "window_size", "wizard.initial_settings", "wizard.install_settings", diff --git a/src/system/settings.h b/src/system/settings.h index 54ef47f43..06fba5251 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -741,6 +741,7 @@ struct SNeutrinoSettings int widget_fade; // webtv + int webtv_xml_quality; int webtv_xml_auto; std::list webtv_xml; std::string last_webtv_dir;