diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 4a7fe8b0a..4dc1ca70d 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1032,6 +1032,7 @@ languagesetup.osd Menüsprache languagesetup.select Sprache lcd4l_clock_a Analog-Uhr im Standby-Modus lcd4l_convert Konvertiere Umlaute +lcd4l_display_type Display-Typ lcd4l_logodir Senderlogo-Verzeichnis lcd4l_skin Display-Style lcd4l_skin_0 Standard @@ -1380,7 +1381,7 @@ menu.hint_lcd4l_convert Konvertiert Umlaute für die eingebaute LCD4Linux-Schrif menu.hint_lcd4l_logodir Verzeichnis für Senderlogos\nBei ungültigem Eintrag Fallback auf Standard-Logoverzeichnis menu.hint_lcd4l_skin Auswahl der verfügbaren Darstellungsarten\nStandard, Groß, SysInfo, d-box2, Benutzerdefiniert 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 +menu.hint_lcd4l_support LCD4Linux aktivieren/deaktivieren\nUnterstützte Displays: Pearl DPF, Samsung DPF menu.hint_lcd4l_weather Zeigt im Standby-Betrieb die entsprechenden Daten des ersten Favoriteneintrags von tuxwetter auf dem Display an menu.hint_leds_blink Die Power-LEDs blinken, wenn sich der Receiver im Deep-Standby befindet und ein Timer aktiv ist menu.hint_leds_deepstandby Definiert den Status der Power-LEDs im Deep-Standby diff --git a/data/locale/english.locale b/data/locale/english.locale index 36f75b51c..146ffa003 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1032,6 +1032,7 @@ languagesetup.osd OSD language languagesetup.select OSD language lcd4l_clock_a Analog clock in standby mode lcd4l_convert Convert umlauts +lcd4l_display_type Display Type lcd4l_logodir Channellogo directory lcd4l_skin Display style lcd4l_skin_0 Standard @@ -1380,7 +1381,7 @@ menu.hint_lcd4l_convert Convert umlauts for the built-in LCD4Linux font menu.hint_lcd4l_logodir Logo directory.\nFallback to default on invalid entry. menu.hint_lcd4l_skin Switch between modes\nDefault, Big, SysInfo, d-box2, User Defined menu.hint_lcd4l_skin_radio Switch the mode, when Radio-Mode is activated -menu.hint_lcd4l_support Activate/deactivate LCD4Linux\nsupported display: Pearl DPF +menu.hint_lcd4l_support Activate/deactivate LCD4Linux\nsupported displays: Pearl DPF, Samsung SPF menu.hint_lcd4l_weather Shows first tuxwetter favorite on display at standby menu.hint_leds_blink Blinking LEDs in deep-standby menu.hint_leds_deepstandby LEDs state in deep-standby mode diff --git a/src/driver/lcd4l.cpp b/src/driver/lcd4l.cpp index 8ffc21671..fb1849479 100644 --- a/src/driver/lcd4l.cpp +++ b/src/driver/lcd4l.cpp @@ -647,32 +647,43 @@ void CLCD4l::ParseInfo(uint64_t parseID, bool newID, bool firstRun) std::string Layout; + std::string DISPLAY_Type; + switch (g_settings.lcd4l_display_type) { + case 1: + DISPLAY_Type = "Samsung_"; + break; + case 0: + default: + DISPLAY_Type = "Pearl_"; + break; + } + if (ModeStandby) { - Layout = "standby"; + Layout = DISPLAY_Type + "standby"; } else if ((g_settings.lcd4l_skin_radio) && (m_Mode == NeutrinoModes::mode_radio || m_Mode == NeutrinoModes::mode_webradio)) { - Layout = "radio"; + Layout = DISPLAY_Type + "radio"; } else { switch (g_settings.lcd4l_skin) { case 4: - Layout = "user"; + Layout = DISPLAY_Type + "user"; break; case 3: - Layout = "d-box2"; + Layout = DISPLAY_Type + "d-box2"; break; case 2: - Layout = "small"; + Layout = DISPLAY_Type + "small"; break; case 1: - Layout = "large"; + Layout = DISPLAY_Type + "large"; break; default: - Layout = "standard"; + Layout = DISPLAY_Type + "standard"; } } diff --git a/src/gui/lcd4l_setup.cpp b/src/gui/lcd4l_setup.cpp index 805cd3d12..d1c0d9a38 100644 --- a/src/gui/lcd4l_setup.cpp +++ b/src/gui/lcd4l_setup.cpp @@ -63,6 +63,13 @@ const CMenuOptionChooser::keyval LCD4L_SUPPORT_OPTIONS[] = }; #define LCD4L_SUPPORT_OPTION_COUNT (sizeof(LCD4L_SUPPORT_OPTIONS)/sizeof(CMenuOptionChooser::keyval)) +const CMenuOptionChooser::keyval_ext LCD4L_DISPLAY_TYPE_OPTIONS[] = +{ + { 0, NONEXISTANT_LOCALE, "Pearl"}, + { 1, NONEXISTANT_LOCALE, "Samsung"} +}; +#define LCD4L_DISPLAY_TYPE_OPTION_COUNT (sizeof(LCD4L_DISPLAY_TYPE_OPTIONS)/sizeof(CMenuOptionChooser::keyval_ext)) + const CMenuOptionChooser::keyval LCD4L_SKIN_OPTIONS[] = { { 0, LOCALE_LCD4L_SKIN_0 }, @@ -124,7 +131,8 @@ int CLCD4lSetup::show() { int shortcut = 1; - int temp_lcd4l_skin = g_settings.lcd4l_skin; + int temp_lcd4l_display_type = g_settings.lcd4l_display_type; + int temp_lcd4l_skin = g_settings.lcd4l_skin; // lcd4l setup CMenuWidget* lcd4lSetup = new CMenuWidget(LOCALE_MISCSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_LCD4L_SETUP); @@ -139,6 +147,10 @@ int CLCD4lSetup::show() mf->setHint(NEUTRINO_ICON_HINT_LCD4L, LOCALE_MENU_HINT_LCD4L_LOGODIR); lcd4lSetup->addItem(mf); + mc = new CMenuOptionChooser(LOCALE_LCD4L_DISPLAY_TYPE, &temp_lcd4l_display_type, LCD4L_DISPLAY_TYPE_OPTIONS, LCD4L_DISPLAY_TYPE_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++)); +// mc->setHint("", LOCALE_MENU_HINT_LCD4L_DISPLAY_TYPE); + lcd4lSetup->addItem(mc); + mc = new CMenuOptionChooser(LOCALE_LCD4L_SKIN, &temp_lcd4l_skin, LCD4L_SKIN_OPTIONS, LCD4L_SKIN_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++)); mc->setHint(NEUTRINO_ICON_HINT_LCD4L, LOCALE_MENU_HINT_LCD4L_SKIN); lcd4lSetup->addItem(mc); @@ -176,6 +188,12 @@ int CLCD4lSetup::show() // the things to do on exit + if (g_settings.lcd4l_display_type != temp_lcd4l_display_type) + { + g_settings.lcd4l_display_type = temp_lcd4l_display_type; + LCD4l->InitLCD4l(); + } + if (g_settings.lcd4l_skin != temp_lcd4l_skin) { g_settings.lcd4l_skin = temp_lcd4l_skin; diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 37b868de4..35d4b5650 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -370,6 +370,7 @@ int CNeutrinoApp::loadSetup(const char * fname) g_settings.inetradio_autostart = configfile.getInt32("inetradio_autostart" , 0); g_settings.lcd4l_support = configfile.getInt32("lcd4l_support" , 0); g_settings.lcd4l_logodir = configfile.getString("lcd4l_logodir", LOGODIR); + 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_convert = configfile.getInt32("lcd4l_convert", 1); @@ -1298,6 +1299,7 @@ void CNeutrinoApp::saveSetup(const char * fname) configfile.setInt32("inetradio_autostart" , g_settings.inetradio_autostart); 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_convert" , g_settings.lcd4l_convert); diff --git a/src/system/locals.h b/src/system/locals.h index 6a49022c1..7ad89716a 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1059,6 +1059,7 @@ typedef enum LOCALE_LANGUAGESETUP_SELECT, LOCALE_LCD4L_CLOCK_A, LOCALE_LCD4L_CONVERT, + LOCALE_LCD4L_DISPLAY_TYPE, LOCALE_LCD4L_LOGODIR, LOCALE_LCD4L_SKIN, LOCALE_LCD4L_SKIN_0, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index ff848f91b..f1f464552 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1059,6 +1059,7 @@ const char * locale_real_names[] = "languagesetup.select", "lcd4l_clock_a", "lcd4l_convert", + "lcd4l_display_type", "lcd4l_logodir", "lcd4l_skin", "lcd4l_skin_0", diff --git a/src/system/settings.h b/src/system/settings.h index c8c9b56fb..6d1966373 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -865,12 +865,14 @@ struct SNeutrinoSettings int font_scaling_x; int font_scaling_y; - //NI - int lcd4l_support; - std::string lcd4l_logodir; - int lcd4l_skin; - int lcd4l_skin_radio; - int lcd4l_convert; + // lcd4linux + int lcd4l_support; + std::string lcd4l_logodir; + int lcd4l_display_type; + int lcd4l_skin; + int lcd4l_skin_radio; + int lcd4l_convert; + int ca_init; int show_menu_hints_line; int inetradio_autostart;