]> git.vomp.tv Git - vompclient.git/commitdiff
Make localtime_r portable for windows
authorMarten Richter <marten.richter@freenet.de>
Sat, 25 Feb 2017 11:23:16 +0000 (12:23 +0100)
committerMarten Richter <marten.richter@freenet.de>
Sat, 25 Feb 2017 11:23:16 +0000 (12:23 +0100)
15 files changed:
defines.h
log.cc
media.cc
vepg.cc
vepglistadvanced.cc
vepgsettimer.cc
vradiorec.cc
vrecordinglistadvanced.cc
vrecordinglistclassic.cc
vtimeredit.cc
vtimerlist.cc
vvideolivetv.cc
vvideomedia.cc
vvideorec.cc
vwelcome.cc

index ca9a1eeefb3f506b1d083e5d9e1b0747827f8b4b..18048a4f574348b43ec3e2921d1e5aa832975021 100644 (file)
--- a/defines.h
+++ b/defines.h
@@ -67,6 +67,7 @@ int getClockRealTime(struct timespec *tp);
 /*  #define STRTOULL _strtoui64 */
   #define STRTOUL strtoul
   #define STRTOKR strtok_s
+  #define LOCALTIME_R(time, tm) (localtime_s(tm,time)) 
 
   #define CLOSESOCKET closesocket
   #define DEFAULT_TCP_WINDOWSIZE 2048
@@ -100,6 +101,9 @@ int getClockRealTime(struct timespec *tp);
   #define STRCASESTR strcasestr
   #define STRTOUL strtoul
   #define STRTOKR strtok_r
+  #define LOCALTIME_R(time, tm) (localtime_r(time, tm)) 
+
+
   #define CLOSESOCKET close
 
 // add here defines for plattform specific objects
diff --git a/log.cc b/log.cc
index f1e8085db62676dde74b07f59667b8996973e6a8..4da7d33af61ac9fb2beedd33e6c7e58398330a9d 100644 (file)
--- a/log.cc
+++ b/log.cc
@@ -108,7 +108,7 @@ int Log::log(const char *fromModule, int level,const char* message, ...)
   struct timeval tv;
   gettimeofday(&tv, NULL);
   struct tm tms;
-  localtime_r(&tv.tv_sec, &tms);
+  LOCALTIME_R(&tv.tv_sec, &tms);
   spaceLeft -= strftime(buffer, spaceLeft, "%H:%M:%S.", &tms);
   spaceLeft -= SNPRINTF(&buffer[150-spaceLeft], spaceLeft, "%06lu ", (unsigned long)tv.tv_usec);
 #else
index 3901049e33eef59df151ee9c88db5172951293bf..d1fcd1a5cb8996b34719a773fda076b0e2bc1f80 100644 (file)
--- a/media.cc
+++ b/media.cc
@@ -232,7 +232,7 @@ char * Media::getTimeString(char * buffer) const {
   if (! buffer) buffer=new char[TIMEBUFLEN];
   time_t tTime = (time_t)getTime();
   struct tm btime;
-  localtime_r(&tTime, &btime);
+  LOCALTIME_R(&tTime, &btime);
 
   if (tTime != 0) {
 #ifndef _MSC_VER
diff --git a/vepg.cc b/vepg.cc
index bd5e4e7040cc6646eb5b6b2160a8404bf5497488..689300cefc3ce8b9baa9e864af34be6bfe2fff8a 100644 (file)
--- a/vepg.cc
+++ b/vepg.cc
@@ -220,7 +220,7 @@ void VEpg::setInfo(Event* event)
   int length = strlen(event->title); // calculate length of programme title string
   char* title = new char[length + 15]; // create string to hold start time, end time and programme title
   time_t eventtime = event->time;
-  localtime_r((time_t*)&eventtime, &btime); //get programme start time
+  LOCALTIME_R((time_t*)&eventtime, &btime); //get programme start time
 #ifndef _MSC_VER
   strftime(timeString, 9, "%0H:%0M - ", &btime); // and format it as hh:mm -
 #else
@@ -228,7 +228,7 @@ void VEpg::setInfo(Event* event)
 #endif
   strcpy(title, timeString); // put it in our buffer
   t = event->time + event->duration; //get programme end time
-  localtime_r(&t, &btime);
+  LOCALTIME_R(&t, &btime);
 #ifndef _MSC_VER
   strftime(timeString, 7, "%0H:%0M ", &btime); // and format it as hh:mm -
 #else
@@ -569,7 +569,7 @@ void VEpg::drawgrid() // redraws grid and select programme
 
   t = ltime;
   struct tm tms;
-  localtime_r(&t, &tms);
+  LOCALTIME_R(&t, &tms);
   strftime(timeString, 19, "%a %d %b", &tms);
   int timey = chanListbox.getRootBoxOffsetY() - getFontHeight() - 3;
   int timex = 135;
@@ -579,12 +579,12 @@ void VEpg::drawgrid() // redraws grid and select programme
 
   rectangle(155, timey + getFontHeight(), 2, 7, white);
   t = t + 3600;
-  localtime_r(&t, &tms);
+  LOCALTIME_R(&t, &tms);
   strftime(timeString, 19, "%H:%M", &tms);
   drawText(timeString, timex + 180, timey, DrawStyle::LIGHTTEXT); // print middle time
   rectangle(335, timey + getFontHeight(), 2, 7, white);
   t = t + 3600;
-  localtime_r(&t, &tms);
+  LOCALTIME_R(&t, &tms);
   strftime(timeString, 19, "%H:%M", &tms);
   drawText(timeString, timex + 360, timey, DrawStyle::LIGHTTEXT); // print right time
   rectangle(515, timey + getFontHeight(), 2, 7, white);
@@ -788,7 +788,7 @@ void VEpg::paintCell(Event* event, int yOffset, const DrawStyle& bg, const DrawS
 time_t VEpg::prevHour(time_t* t)
 {
   struct tm tms;
-  localtime_r(t, &tms);
+  LOCALTIME_R(t, &tms);
   tms.tm_sec = 0;
   tms.tm_min = 0;
   return mktime(&tms);
index e65e9ac9c665c2e0d6906c39a224574eaa438509..42450f8771c5b7189c0af9260f6dbe4bbd738b31 100644 (file)
@@ -469,9 +469,9 @@ void VEpgListAdvanced::drawDataChannel(bool doIndexPop)
                  time_t eventStartTime = (time_t)currentEvent->time;
                  time_t eventEndTime = (time_t)(currentEvent->time + currentEvent->duration);
 
-                 localtime_r(&eventStartTime, &btime);
+                 LOCALTIME_R(&eventStartTime, &btime);
                  strftime(tempA, 299, "%d/%m/%y %H:%M ", &btime);
-                 localtime_r(&eventEndTime, &btime);
+                 LOCALTIME_R(&eventEndTime, &btime);
                  strftime(tempB, 299, "- %H:%M ", &btime);
                  //#endif
                  sprintf(tempC, "\t %s\n \t \t%s%s", currentEvent->title,tempA,tempB);
@@ -536,9 +536,9 @@ void VEpgListAdvanced::drawDataNowNext(bool next, bool doIndexPop)
                  time_t eventStartTime = (time_t)currentEvent->time;
                  time_t eventEndTime = (time_t)(currentEvent->time + currentEvent->duration);
 
-                 localtime_r(&eventStartTime, &btime);
+                 LOCALTIME_R(&eventStartTime, &btime);
                  strftime(tempA, 299, "%H:%M ", &btime);
-                 localtime_r(&eventEndTime, &btime);
+                 LOCALTIME_R(&eventEndTime, &btime);
                  strftime(tempB, 299, "- %H:%M ", &btime);
                  //#endif
                  sprintf(tempC, "%s\n%s\t %s%s", currentEvent->title, chan->name,tempA,tempB);
@@ -613,7 +613,7 @@ void VEpgListAdvanced::draw(bool doIndexPop)
        struct tm btime;
        time_t now;
        time(&now);
-       localtime_r(&now, &btime);
+       LOCALTIME_R(&now, &btime);
        strftime(freeSpace, 299, "%d/%m/%y", &btime);
 
        drawTextRJ(freeSpace, getWidth(), 5, DrawStyle::LIGHTTEXT);
index 3f7ad7b18f2341ff56ec26f5e80cc39c6e3a214b..5c6a527c0b260315bb3f75ccc23ddb1a27e05596 100644 (file)
@@ -108,7 +108,7 @@ char* VEpgSetTimer::genTimerString()
   else strcpy(startMargin, "5");
 
   startTime = event->time - (atoi(startMargin) * 60);
-  localtime_r(&startTime, &btime);
+  LOCALTIME_R(&startTime, &btime);
   strftime(dateString, 19, "%Y-%m-%d", &btime);
   strftime(startString, 9, "%H%M", &btime);
 
@@ -121,7 +121,7 @@ char* VEpgSetTimer::genTimerString()
   else strcpy(endMargin, "5");
 
   endTime = event->time + event->duration + (atoi(endMargin) * 60);
-  localtime_r(&endTime, &btime);
+  LOCALTIME_R(&endTime, &btime);
   strftime(endString, 9, "%H%M", &btime);
 
   char* priorityConfig = vdr->configLoad("Timers", "Priority");
@@ -181,7 +181,7 @@ void VEpgSetTimer::draw()
   struct tm btime;
   char timeString[10];
   time_t eventtime = event->time;
-  localtime_r(&eventtime, &btime);
+  LOCALTIME_R(&eventtime, &btime);
 #ifndef _MSC_VER
   strftime(timeString, 9, "%0H:%0M - ", &btime); // and format it as hh:mm -
 #else
@@ -189,7 +189,7 @@ void VEpgSetTimer::draw()
 #endif
   strcpy(fullString, timeString); // put it in our buffer
   t = event->time + event->duration; //get programme end time
-  localtime_r(&t, &btime);
+  LOCALTIME_R(&t, &btime);
 #ifndef _MSC_VER
   strftime(timeString, 9, "%0H:%0M", &btime); // and format it as hh:mm -
 #else
index b48eec1074ca0ea5ebf870f4c3df5912991a7314..81840d7191e06eabcb05ee7307eecb407e60bf5c 100644 (file)
@@ -430,7 +430,7 @@ void VRadioRec::drawBarClocks()
   time_t t;
   time(&t);
   struct tm tms;
-  localtime_r(&t, &tms);
+  LOCALTIME_R(&t, &tms);
   strftime(timeString, 19, "%H:%M", &tms);
   drawText(timeString, barRegion.x + 624, barRegion.y + 12, DrawStyle::LIGHTTEXT);
 
index bfbf1661b724aa5e2918cee444e2bf97df07ba05..9007d8ab923eb10d0f19494f19686a497cc25f2d 100644 (file)
@@ -127,7 +127,7 @@ void VRecordingListAdvanced::drawData(bool doIndexPop)
   {
     currentRec = *j;
     time_t recStartTime = (time_t)currentRec->getStartTime();
-    localtime_r(&recStartTime, &btime);
+    LOCALTIME_R(&recStartTime, &btime);
 //NMT does not like this too!
        //#ifndef _MSC_VER
 //    strftime(tempA, 299, "%0d/%0m %0H:%0M ", &btime);
@@ -287,7 +287,7 @@ void VRecordingListAdvanced::updateSelection()
                                currentRec = *j;
 
                                time_t recStartTime = (time_t)currentRec->getStartTime();
-                               localtime_r(&recStartTime, &btime);
+                               LOCALTIME_R(&recStartTime, &btime);
                                strftime(tempA, 299, "%d/%m/%y %H:%M ", &btime);
 
                                description<< tempA <<" "<< std::string(currentRec->getProgName()) << "\n";
index 82ffbb4967781ee8b9915763785c9593598baccb..4e08a8479af9aa70a90fff7e088c0cbec1b29bbb 100644 (file)
@@ -97,7 +97,7 @@ void VRecordingListClassic::drawData(bool doIndexPop)
   {
     currentRec = *j;
     time_t recStartTime = (time_t)currentRec->getStartTime();
-    localtime_r(&recStartTime, &btime);
+    LOCALTIME_R(&recStartTime, &btime);
 //NMT does not like this too!
        //#ifndef _MSC_VER
 //    strftime(tempA, 299, "%0d/%0m %0H:%0M ", &btime);
index 0e8795d5db8877e70415243a9bb45599bb1b01d7..f977d4dc077eada4348574a1c1ad836e4287dc39 100644 (file)
@@ -120,13 +120,13 @@ void VTimerEdit::draw()
 
   // Start
   time_t rectime = recTimer->startTime;
-  localtime_r((time_t*)&rectime, &tms);
+  LOCALTIME_R((time_t*)&rectime, &tms);
   strftime(buffer, 999, "%d/%m %H:%M", &tms);
   drawText(buffer, xpos, ypos, DrawStyle::LIGHTTEXT);         ypos += fontheight;
 
   // Stop
   rectime = recTimer->startTime;
-  localtime_r((time_t*)&rectime, &tms);
+  LOCALTIME_R((time_t*)&rectime, &tms);
   strftime(buffer, 999, "%d/%m %H:%M", &tms);
   drawText(buffer, xpos, ypos, DrawStyle::LIGHTTEXT);         ypos += fontheight;
 
index 29d5027e83e5fc068c264b471d84e2c2cc99ff92..76d1280677cc2c3071162e39e40527ee3549f697 100644 (file)
@@ -151,7 +151,7 @@ bool VTimerList::load()
   {
     recTimer = (*recTimerList)[i];
     time_t rectime = recTimer->startTime;
-    localtime_r((time_t*)&rectime, &btime);
+    LOCALTIME_R((time_t*)&rectime, &btime);
     strftime(strA, 299, "%d/%m %H:%M ", &btime);
     SNPRINTF(strB, 299, "%s\t%s", strA, recTimer->getName());
     sl.addOption(strB, (ULONG)recTimer, first);
@@ -172,7 +172,7 @@ void VTimerList::drawClock()
   time_t t;
   time(&t);
   struct tm tms;
-  localtime_r(&t, &tms);
+  LOCALTIME_R(&t, &tms);
   strftime(timeString, 19, "%d/%m %H:%M:%S", &tms);
   drawTextRJ(timeString, 560, 5, DrawStyle::LIGHTTEXT);
 
index 3055f6849fb9135e362a1afa908892e194b6644c..825526338547bc13fd9362aff342d9f0649cab5f 100644 (file)
@@ -779,7 +779,7 @@ void VVideoLiveTV::setNowNextData()
       event = (*eventList)[i];
 
       time_t etime = event->time;
-      localtime_r(&etime, &btime);
+      LOCALTIME_R(&etime, &btime);
 #ifndef _MSC_VER
       strftime(tempString2, 299, "%0H:%0M ", &btime);
 #else
@@ -861,7 +861,7 @@ void VVideoLiveTV::setClock()
   time_t t;
   time(&t);
   struct tm tms;
-  localtime_r(&t, &tms);
+  LOCALTIME_R(&t, &tms);
   strftime(timeString, 19, "%H:%M", &tms);
   clock.setText(timeString);
 
index 2f7a10891b043e39826cb0cd6490dc356882d247..7477f0ed68abcc0db92ad24a1581cbe8fedd6e2c 100644 (file)
@@ -616,7 +616,8 @@ void VVideoMedia::drawBarClocks()
   time_t t;
   time(&t);
   struct tm tms;
-  localtime_r(&t, &tms);
+  LOCALTIME_R(&t, &tms);
+
   strftime(timeString, 19, "%H:%M", &tms);
   drawText(timeString, barRegion.x + 624, barRegion.y + 12, DrawStyle::LIGHTTEXT);
 
index 1a0af09026bc30ad25da2b0cda9cd837f4755db5..0989cda06a295dd98db8de4a307a920d86f0f332 100644 (file)
@@ -964,7 +964,7 @@ void VVideoRec::drawBarClocks()
   time_t t;
   time(&t);
   struct tm tms;
-  localtime_r(&t, &tms);
+  LOCALTIME_R(&t, &tms);
   strftime(timeString, 19, "%H:%M", &tms);
   drawText(timeString, barRegion.x + 624, barRegion.y + 12, DrawStyle::LIGHTTEXT);
 
index b92ad5d6a2f062f9cb08b81999d8f2200458d47c..6a88f3b5ed78f0d238b6e57ca266ddc9b5751191 100644 (file)
@@ -161,7 +161,8 @@ void VWelcome::drawClock()
   time_t t;
   time(&t);
   struct tm tms;
-  localtime_r(&t, &tms);
+  LOCALTIME_R(&t, &tms);
+
   strftime(timeString, 19, "%H:%M", &tms);
   drawTextRJ(timeString, 450, 5, DrawStyle::LIGHTTEXT);