l4l: force update of output files if ...

lcd4linux is not running and display is changed in automatic mode
This commit is contained in:
GetAway
2019-01-20 16:28:50 +01:00
parent 84693c62e6
commit 9a8d5657f7
3 changed files with 17 additions and 3 deletions

View File

@@ -296,6 +296,8 @@ void CLCD4l::Init()
if (!access(LCD_DATADIR, F_OK) == 0) if (!access(LCD_DATADIR, F_OK) == 0)
mkdir(LCD_DATADIR, 0755); mkdir(LCD_DATADIR, 0755);
wait4lcd = true;
} }
void* CLCD4l::LCD4lProc(void* arg) void* CLCD4l::LCD4lProc(void* arg)
@@ -320,9 +322,13 @@ void* CLCD4l::LCD4lProc(void* arg)
{ {
if (g_settings.lcd4l_support == 1) // automatic if (g_settings.lcd4l_support == 1) // automatic
{ {
//printf("[CLCD4l] %s: waiting for lcd4linux\n", __FUNCTION__); if (PLCD4l->GetWaitStatus()) {
sleep(10); //printf("[CLCD4l] %s: waiting for lcd4linux\n", __FUNCTION__);
continue; sleep(10);
continue;
}
else
PLCD4l->SetWaitStatus(true);
} }
} }

View File

@@ -56,6 +56,7 @@ class CLCD4l
void StartLCD4l(); void StartLCD4l();
void StopLCD4l(); void StopLCD4l();
void SwitchLCD4l(); void SwitchLCD4l();
void ForceRun() { wait4lcd = false; }
int CreateFile(const char *file, std::string content = "", bool convert = false); int CreateFile(const char *file, std::string content = "", bool convert = false);
int RemoveFile(const char *file); int RemoveFile(const char *file);
@@ -69,6 +70,7 @@ class CLCD4l
static void* LCD4lProc(void *arg); static void* LCD4lProc(void *arg);
struct tm *tm_struct; struct tm *tm_struct;
bool wait4lcd;
// Functions // Functions
void Init(); void Init();
@@ -82,6 +84,9 @@ class CLCD4l
void strReplace(std::string &orig, const std::string &fstr, const std::string &rstr); void strReplace(std::string &orig, const std::string &fstr, const std::string &rstr);
bool WriteFile(const char *file, std::string content = "", bool convert = false); bool WriteFile(const char *file, std::string content = "", bool convert = false);
void SetWaitStatus(bool wait) { wait4lcd = wait; }
bool GetWaitStatus() { return wait4lcd; }
// Variables // Variables
uint64_t m_ParseID; uint64_t m_ParseID;
int m_Mode; int m_Mode;

View File

@@ -242,6 +242,9 @@ int CLCD4lSetup::show()
if (initlcd4l) if (initlcd4l)
LCD4l->InitLCD4l(); LCD4l->InitLCD4l();
if (g_settings.lcd4l_support == 1 ) // automatic
LCD4l->ForceRun();
return res; return res;
} }