From 43cf770f143392d2e685ea21c4db78f7cee4e879 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Thu, 27 Jan 2022 22:02:02 +0100 Subject: [PATCH] - lcd4linux: add menu item to allow or disable display screenshots Conflicts: data/locale/deutsch.locale data/locale/english.locale src/neutrino.cpp Signed-off-by: Thilo Graf --- data/locale/deutsch.locale | 4 +++- data/locale/english.locale | 4 +++- src/gui/lcd4l_setup.cpp | 13 +++++++++++++ src/gui/lcd4l_setup.h | 1 + src/neutrino.cpp | 29 +++++++++++++++-------------- src/system/locals.h | 2 ++ src/system/locals_intern.h | 2 ++ src/system/settings.h | 1 + 8 files changed, 40 insertions(+), 16 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 3635136a8..ada8e27a0 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1108,6 +1108,7 @@ lcd4l_convert Konvertiere Umlaute lcd4l_display_type Display-Typ lcd4l_display_type_setup Display-Typ einstellen lcd4l_logodir Senderlogo-Verzeichnis +lcd4l_screenshots Screenshots erstellen lcd4l_skin Display-Style lcd4l_skin_0 Standard lcd4l_skin_1 Benutzer 1 @@ -1451,7 +1452,8 @@ menu.hint_lcd4l_clock_a Zeigt im Standby-Betrieb eine Analog-Uhr anstatt einer D menu.hint_lcd4l_convert Konvertiert Umlaute für die eingebaute LCD4Linux-Schriftart menu.hint_lcd4l_display_type Wählen Sie den Typ des externen Displays menu.hint_lcd4l_display_type_setup Einstellungen für den Typ des externen Displays -menu.hint_lcd4l_logodir Verzeichnis für Senderlogos\nBei ungültigem Eintrag Fallback auf Standard-Logoverzeichnis +menu.hint_lcd4l_logodir Verzeichnis für eigene Senderlogos. Bei ungültigem Eintrag werden die Standard-Logos benutzt. +menu.hint_lcd4l_screenshots Erzeugt Screenshots des externen Displays in /tmp/lcd4linux.png menu.hint_lcd4l_skin Auswahl der verfügbaren Darstellungsarten\nStandard, Benutzerdefiniert, etc. menu.hint_lcd4l_skin_radio Wechselt die Darstellungsart, wenn der Radio-Modus aktiviert wird menu.hint_lcd4l_support LCD4Linux aktivieren/deaktivieren\nUnterstützte Displays: Pearl DPF, Samsung DPF, VU+SOLO4K, PNG diff --git a/data/locale/english.locale b/data/locale/english.locale index 1be3edfa6..105e0d2ee 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1108,6 +1108,7 @@ lcd4l_convert Convert umlauts lcd4l_display_type Display type lcd4l_display_type_setup Display type setup lcd4l_logodir Channel logo directory +lcd4l_screenshots Create screenshots lcd4l_skin Display style lcd4l_skin_0 Standard lcd4l_skin_1 Large @@ -1451,7 +1452,8 @@ menu.hint_lcd4l_clock_a Shows an analog clock instead of a digital clock on disp menu.hint_lcd4l_convert Convert umlauts for the built-in LCD4Linux font menu.hint_lcd4l_display_type Choose type of external display menu.hint_lcd4l_display_type_setup Settings for the type of external display -menu.hint_lcd4l_logodir Logo directory.\nFallback to default on invalid entry. +menu.hint_lcd4l_logodir Directory for own channel logos. Fallback to default logos when entry is invalid. +menu.hint_lcd4l_screenshots Create screenshots from external display in /tmp/lcd4linux.png menu.hint_lcd4l_skin Switch between styles\nDefault, User defined, etc. menu.hint_lcd4l_skin_radio Switch style when Radio-Mode is activated menu.hint_lcd4l_support Activate/deactivate LCD4Linux\nSupported displays: Pearl DPF, Samsung SPF, VU+SOLO4K, PNG diff --git a/src/gui/lcd4l_setup.cpp b/src/gui/lcd4l_setup.cpp index b622e6c30..16b6fdfd9 100644 --- a/src/gui/lcd4l_setup.cpp +++ b/src/gui/lcd4l_setup.cpp @@ -171,6 +171,7 @@ int CLCD4lSetup::show() temp_lcd4l_display_type = g_settings.lcd4l_display_type; temp_lcd4l_skin = g_settings.lcd4l_skin; temp_lcd4l_brightness = g_settings.lcd4l_brightness; + temp_lcd4l_screenshots = g_settings.lcd4l_screenshots; CMenuOptionChooser *mc; CMenuForwarder *mf; @@ -221,6 +222,10 @@ int CLCD4lSetup::show() mc->setHint(NEUTRINO_ICON_HINT_LCD4LINUX, LOCALE_MENU_HINT_LCD4L_CONVERT); lcd4lSetup->addItem(mc); + mc = new CMenuOptionChooser(LOCALE_LCD4L_SCREENSHOTS, &temp_lcd4l_screenshots, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++)); + mc->setHint(NEUTRINO_ICON_HINT_LCD4LINUX, LOCALE_MENU_HINT_LCD4L_SCREENSHOTS); + lcd4lSetup->addItem(mc); + int res = lcd4lSetup->exec(NULL, ""); lcd4lSetup->hide(); @@ -254,6 +259,14 @@ int CLCD4lSetup::show() initlcd4l = true; } + if (g_settings.lcd4l_screenshots != temp_lcd4l_screenshots) + { + g_settings.lcd4l_screenshots = temp_lcd4l_screenshots; + initlcd4l = true; + + CNeutrinoApp::getInstance()->saveSetup(NEUTRINO_SETTINGS_FILE); + } + if (initlcd4l) CLCD4l::getInstance()->InitLCD4l(); diff --git a/src/gui/lcd4l_setup.h b/src/gui/lcd4l_setup.h index 6dc1feb55..c597b2308 100644 --- a/src/gui/lcd4l_setup.h +++ b/src/gui/lcd4l_setup.h @@ -41,6 +41,7 @@ class CLCD4lSetup : public CMenuTarget, CChangeObserver int temp_lcd4l_display_type; int temp_lcd4l_skin; int temp_lcd4l_brightness; + int temp_lcd4l_screenshots; int width; int show(); diff --git a/src/neutrino.cpp b/src/neutrino.cpp index cc0316983..e50be7d77 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -406,14 +406,15 @@ int CNeutrinoApp::loadSetup(const char *fname) #endif #ifdef ENABLE_LCD4LINUX + g_settings.lcd4l_support = configfile.getInt32("lcd4l_support", 0); + g_settings.lcd4l_logodir = configfile.getString("lcd4l_logodir", "/media/sda1/logos"); + g_settings.lcd4l_display_type = configfile.getInt32("lcd4l_display_type", 0); + g_settings.lcd4l_skin = configfile.getInt32("lcd4l_skin", 0); + g_settings.lcd4l_skin_radio = configfile.getInt32("lcd4l_skin_radio", 0); g_settings.lcd4l_brightness = configfile.getInt32("lcd4l_brightness", 7); g_settings.lcd4l_brightness_standby = configfile.getInt32("lcd4l_brightness_standby", 3); g_settings.lcd4l_convert = configfile.getInt32("lcd4l_convert", 1); - g_settings.lcd4l_display_type = configfile.getInt32("lcd4l_display_type", 0); - g_settings.lcd4l_logodir = configfile.getString("lcd4l_logodir", LOGODIR); - g_settings.lcd4l_skin = configfile.getInt32("lcd4l_skin" , 0); - g_settings.lcd4l_skin_radio = configfile.getInt32("lcd4l_skin_radio" , 0); - g_settings.lcd4l_support = configfile.getInt32("lcd4l_support" , 0); + g_settings.lcd4l_screenshots = configfile.getInt32("lcd4l_screenshots", 0); #endif g_settings.mode_icons = configfile.getInt32("mode_icons", 0); @@ -1625,18 +1626,18 @@ void CNeutrinoApp::saveSetup(const char *fname) configfile.setInt32("glcd_mirror_video", g_settings.glcd_mirror_video); configfile.setInt32("glcd_scroll_speed", g_settings.glcd_scroll_speed); configfile.setInt32("glcd_selected_config", g_settings.glcd_selected_config); - #endif #ifdef ENABLE_LCD4LINUX - configfile.setInt32("lcd4l_brightness", g_settings.lcd4l_brightness); - configfile.setInt32("lcd4l_brightness_standby", g_settings.lcd4l_brightness_standby); - configfile.setInt32("lcd4l_convert", g_settings.lcd4l_convert); + configfile.setInt32("lcd4l_support", g_settings.lcd4l_support); + configfile.setString("lcd4l_logodir", g_settings.lcd4l_logodir); configfile.setInt32("lcd4l_display_type", g_settings.lcd4l_display_type); configfile.setInt32("lcd4l_skin", g_settings.lcd4l_skin); configfile.setInt32("lcd4l_skin_radio", g_settings.lcd4l_skin_radio); - configfile.setInt32("lcd4l_support", g_settings.lcd4l_support); - configfile.setString("lcd4l_logodir", g_settings.lcd4l_logodir); + configfile.setInt32("lcd4l_brightness", g_settings.lcd4l_brightness); + configfile.setInt32("lcd4l_brightness_standby", g_settings.lcd4l_brightness_standby); + configfile.setInt32("lcd4l_convert", g_settings.lcd4l_convert); + configfile.setInt32("lcd4l_screenshots", g_settings.lcd4l_screenshots); #endif configfile.setInt32("mode_icons", g_settings.mode_icons); @@ -1652,16 +1653,16 @@ void CNeutrinoApp::saveSetup(const char *fname) // video + configfile.setInt32("video_Mode", g_settings.video_Mode); configfile.setInt32("analog_mode1", g_settings.analog_mode1); configfile.setInt32("analog_mode2", g_settings.analog_mode2); - configfile.setInt32("video_43mode", g_settings.video_43mode); configfile.setInt32("video_Format", g_settings.video_Format); - configfile.setInt32("video_Mode", g_settings.video_Mode); + configfile.setInt32("video_43mode", g_settings.video_43mode); // hdmi cec configfile.setInt32("hdmi_cec_mode", g_settings.hdmi_cec_mode); - configfile.setInt32("hdmi_cec_standby", g_settings.hdmi_cec_standby); configfile.setInt32("hdmi_cec_view_on", g_settings.hdmi_cec_view_on); + configfile.setInt32("hdmi_cec_standby", g_settings.hdmi_cec_standby); configfile.setInt32("hdmi_cec_volume", g_settings.hdmi_cec_volume); #if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE diff --git a/src/system/locals.h b/src/system/locals.h index 93f7e3882..b56fcf7fc 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1135,6 +1135,7 @@ typedef enum LOCALE_LCD4L_DISPLAY_TYPE, LOCALE_LCD4L_DISPLAY_TYPE_SETUP, LOCALE_LCD4L_LOGODIR, + LOCALE_LCD4L_SCREENSHOTS, LOCALE_LCD4L_SKIN, LOCALE_LCD4L_SKIN_0, LOCALE_LCD4L_SKIN_1, @@ -1479,6 +1480,7 @@ typedef enum LOCALE_MENU_HINT_LCD4L_DISPLAY_TYPE, LOCALE_MENU_HINT_LCD4L_DISPLAY_TYPE_SETUP, LOCALE_MENU_HINT_LCD4L_LOGODIR, + LOCALE_MENU_HINT_LCD4L_SCREENSHOTS, LOCALE_MENU_HINT_LCD4L_SKIN, LOCALE_MENU_HINT_LCD4L_SKIN_RADIO, LOCALE_MENU_HINT_LCD4L_SUPPORT, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 31d4bb9ce..fe2d1d14e 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1135,6 +1135,7 @@ const char * locale_real_names[] = "lcd4l_display_type", "lcd4l_display_type_setup", "lcd4l_logodir", + "lcd4l_screenshots", "lcd4l_skin", "lcd4l_skin_0", "lcd4l_skin_1", @@ -1479,6 +1480,7 @@ const char * locale_real_names[] = "menu.hint_lcd4l_display_type", "menu.hint_lcd4l_display_type_setup", "menu.hint_lcd4l_logodir", + "menu.hint_lcd4l_screenshots", "menu.hint_lcd4l_skin", "menu.hint_lcd4l_skin_radio", "menu.hint_lcd4l_support", diff --git a/src/system/settings.h b/src/system/settings.h index 3f4ab0d72..005e178a8 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -320,6 +320,7 @@ struct SNeutrinoSettings int lcd4l_brightness; int lcd4l_brightness_standby; int lcd4l_convert; + int lcd4l_screenshots; #endif #define MODE_ICONS_NR_OF_ENTRIES 8