- lcd4l/weather: fix creation of data files for first run

Signed-off-by: Thilo Graf <dbt@novatux.de>
This commit is contained in:
svenhoefer
2019-03-20 15:27:15 +01:00
committed by Thilo Graf
parent 1850fb3692
commit f8e0bf244a
4 changed files with 10 additions and 10 deletions

View File

@@ -104,8 +104,8 @@ extern CPictureViewer *g_PicViewer;
#define FCOLOR2 LCD_DATADIR "fcolor2" #define FCOLOR2 LCD_DATADIR "fcolor2"
#define PBCOLOR LCD_DATADIR "pbcolor" #define PBCOLOR LCD_DATADIR "pbcolor"
#define WEATHER_TEMP LCD_DATADIR "weather_temp" #define WEATHER_TEMP LCD_DATADIR "weather_temp"
#define WEATHER_ICON LCD_DATADIR "weather_icon" #define WEATHER_ICON LCD_DATADIR "weather_icon"
#define FLAG_LCD4LINUX "/tmp/.lcd4linux" #define FLAG_LCD4LINUX "/tmp/.lcd4linux"
#define PIDFILE "/tmp/lcd4linux.pid" #define PIDFILE "/tmp/lcd4linux.pid"
@@ -298,8 +298,8 @@ void CLCD4l::Init()
m_Start = "00:00"; m_Start = "00:00";
m_End = "00:00"; m_End = "00:00";
m_wtemp = ""; m_wtemp = "";
m_wicon = ""; m_wicon = "";
if (!access(LCD_DATADIR, F_OK) == 0) if (!access(LCD_DATADIR, F_OK) == 0)
mkdir(LCD_DATADIR, 0755); mkdir(LCD_DATADIR, 0755);
@@ -1053,7 +1053,7 @@ void CLCD4l::ParseInfo(uint64_t parseID, bool newID, bool firstRun)
strcpy(m_Duration, Duration); strcpy(m_Duration, Duration);
} }
if (g_settings.weather_enabled && CWeather::getInstance()->checkUpdate()) if (g_settings.weather_enabled && CWeather::getInstance()->checkUpdate(firstRun))
{ {
std::string wtemp = CWeather::getInstance()->getActTemp(); std::string wtemp = CWeather::getInstance()->getActTemp();
std::string wicon = CWeather::getInstance()->getActIcon(); std::string wicon = CWeather::getInstance()->getActIcon();

View File

@@ -128,8 +128,8 @@ class CLCD4l
std::string m_fcolor2; std::string m_fcolor2;
std::string m_pbcolor; std::string m_pbcolor;
std::string m_wtemp; std::string m_wtemp;
std::string m_wicon; std::string m_wicon;
}; };
#endif #endif

View File

@@ -78,10 +78,10 @@ void CWeather::setCoords(std::string new_coords, std::string new_city)
} }
} }
bool CWeather::checkUpdate() bool CWeather::checkUpdate(bool forceUpdate)
{ {
time_t current_time = time(NULL); time_t current_time = time(NULL);
if (difftime(current_time,last_time) > MINUTES) if (forceUpdate || (difftime(current_time,last_time) > MINUTES))
return GetWeatherDetails(); return GetWeatherDetails();
else else
return false; return false;

View File

@@ -60,7 +60,7 @@ public:
static CWeather* getInstance(); static CWeather* getInstance();
CWeather(); CWeather();
~CWeather(); ~CWeather();
bool checkUpdate(); bool checkUpdate(bool forceUpdate = false);
void setCoords(std::string new_coords, std::string new_city = "Unknown"); void setCoords(std::string new_coords, std::string new_city = "Unknown");
void show(int x = 50, int y = 50); void show(int x = 50, int y = 50);
void hide(); void hide();