diff --git a/src/driver/lcd4l.cpp b/src/driver/lcd4l.cpp index 74ace5120..03d85e5b3 100644 --- a/src/driver/lcd4l.cpp +++ b/src/driver/lcd4l.cpp @@ -199,6 +199,18 @@ void CLCD4l::StopLCD4l() OnError(); } +void CLCD4l::RestartLCD4lScript() +{ + OnBeforeStart(); + if (thrLCD4l && g_settings.lcd4l_support) + { + if (exec_initscript("lcd4linux", "restart", "systemctl")) + OnAfterStart(); + else + OnError(); + } +} + void CLCD4l::SwitchLCD4l() { if (thrLCD4l) @@ -947,11 +959,7 @@ void CLCD4l::ParseInfo(uint64_t parseID, bool newID, bool firstRun) m_Layout = Layout; if (!firstRun) { - OnBeforeRestart(); - if (exec_initscript("lcd4linux", "restart", "systemctl")) - OnAfterRestart(); - else - OnError(); + RestartLCD4lScript(); } } } diff --git a/src/driver/lcd4l.h b/src/driver/lcd4l.h index 9886086ee..524138341 100644 --- a/src/driver/lcd4l.h +++ b/src/driver/lcd4l.h @@ -60,6 +60,7 @@ class CLCD4l void StartLCD4l(); void StopLCD4l(); void SwitchLCD4l(); + void RestartLCD4lScript(); void ForceRun() { wait4daemon = false; } int CreateFile(const char *file, std::string content = "", bool convert = false); diff --git a/src/gui/osdlang_setup.cpp b/src/gui/osdlang_setup.cpp index b18765223..e2c7cdfdc 100644 --- a/src/gui/osdlang_setup.cpp +++ b/src/gui/osdlang_setup.cpp @@ -32,7 +32,9 @@ #ifdef HAVE_CONFIG_H #include #endif - +#ifdef ENABLE_LCD4LINUX +#include "driver/lcd4l.h" +#endif #include #include "osdlang_setup.h" @@ -126,6 +128,9 @@ int COsdLangSetup::showLocalSetup() delete localSettings; delete langNotifier; delete tzNotifier; +#ifdef ENABLE_LCD4LINUX + CLCD4l::getInstance()->RestartLCD4lScript(); +#endif return res; }