Portability
authorChris Tallon <chris@vomp.tv>
Sun, 26 Mar 2006 14:22:36 +0000 (14:22 +0000)
committerChris Tallon <chris@vomp.tv>
Sun, 26 Mar 2006 14:22:36 +0000 (14:22 +0000)
afeed.cc
afeed.h
afeedr.cc
afeedr.h
defines.h
main.cc
vconnect.cc
vdr.cc
vfeed.cc
vfeed.h

index 7035087b070e0d843ec967ea1f346edbe80f7c4a..0d1ec3cf002c7d33ebd536f773e12d1f2174e378 100644 (file)
--- a/afeed.cc
+++ b/afeed.cc
@@ -23,8 +23,6 @@
 AFeed::AFeed(Callback* tcb)
 : cb(*tcb)
 {
-  delayTime.tv_sec = 0;
-  delayTime.tv_nsec = 100000000;
   audioEnabled = 1;
 }
 
@@ -82,16 +80,13 @@ void AFeed::threadMethod()
       else
       {
 //        Log::getInstance()->log("AFeed", Log::DEBUG, "No data delay");
-        nanosleep(&delayTime, NULL);
+        MILLISLEEP(100);
       }
     }
     else
     {
       Demuxer::getInstance()->flushAudio();
-      usleep(100000);
-
-      // FIXME, no delay here now
-//      if (demux_get_audio(demuxHandle, buffer, 1000) != 1000) nanosleep(&delayTime, NULL);
+      MILLISLEEP(100);
     }
   }
 }
diff --git a/afeed.h b/afeed.h
index ba465c9125b53499099e14bc40e1c976d7f82af3..dfd4c61ec4e79f3550e6f0edd9d756e1b79299f9 100644 (file)
--- a/afeed.h
+++ b/afeed.h
@@ -48,8 +48,6 @@ class AFeed : public Thread
     int audioEnabled;
     int fd;
     Callback& cb;
-    struct timespec delayTime;
-
 };
 
 #endif
index 69385e6562a684ea977c93e11f6aa89c2f64f9c0..6abc7379fa1961c060153839735898ea2435da53 100644 (file)
--- a/afeedr.cc
+++ b/afeedr.cc
@@ -23,8 +23,6 @@
 AFeedR::AFeedR(Callback* tcb, Stream* tstream)
 : cb(*tcb), stream(*tstream)
 {
-  delayTime.tv_sec = 0;
-  delayTime.tv_nsec = 100000000;
 }
 
 int AFeedR::init(int tfd)
@@ -66,7 +64,7 @@ void AFeedR::threadMethod()
     }
     else
     {
-      nanosleep(&delayTime, NULL);
+      MILLISLEEP(100);
     }
   }
 }
index 939d9196706acce6ab5f007191e9f98186da943f..0d9d29e78543ac7e67cc53c003f419e1d06d3ca2 100644 (file)
--- a/afeedr.h
+++ b/afeedr.h
@@ -47,8 +47,6 @@ class AFeedR : public Thread
     int fd;
     Callback& cb;
     Stream& stream;
-    struct timespec delayTime;
-
 };
 
 #endif
index 1c278f37972ec27733eac31d7c31683a17ea36e4..8ab58db613acbd5a9ab0cd92687699b444788e51 100644 (file)
--- a/defines.h
+++ b/defines.h
@@ -32,17 +32,20 @@ typedef unsigned long long ULLONG;
 
 ULLONG htonll(ULLONG a);
 ULLONG ntohll(ULLONG a);
+void MILLISLEEP(ULONG a);
 
 #ifdef WIN32
 #define SNPRINTF _snprintf
 #define VSNPRINTF _vsnprintf
 #define STRCASECMP stricmp
 #define STRCASESTR StrStrI
+#define STRTOULL _strtoui64
 #else
 #define SNPRINTF snprintf
 #define VSNPRINTF vsnprintf
 #define STRCASECMP strcasecmp
 #define STRCASESTR strcasestr
+#define STRTOULL strtoull
 #endif
 
 #endif
diff --git a/main.cc b/main.cc
index e33bae86bd1135592e244bce206c9cfae962306b..5ff34bc1666190dce111f66800db93d27d1d549b 100644 (file)
--- a/main.cc
+++ b/main.cc
@@ -460,3 +460,16 @@ ULLONG htonll(ULLONG a)
     return b;
   #endif
 }
+
+void MILLISLEEP(ULONG a)
+{
+#ifndef WIN32
+  struct timespec delayTime;
+  delayTime.tv_sec = a / 1000;
+  delayTime.tv_nsec = (a % 1000) * 1000000;
+  printf("%lu %lu\n", delayTime.tv_sec, delayTime.tv_nsec);
+  nanosleep(&delayTime, NULL);
+#else
+  Sleep(a);
+#endif
+}
index 6b19c2705f3ab2d8e10bf0c9b307c55729faeb55..7292b71aa74463f0054ec04ee4d0a9c1b1dcb66c 100644 (file)
@@ -64,7 +64,7 @@ void VConnect::run()
 
 void VConnect::threadMethod()
 {
-  struct timespec ts;
+  ULONG delay = 0;
   int success;
   irun = 1;
 
@@ -138,29 +138,22 @@ void VConnect::threadMethod()
       logger->log("Command", Log::DEBUG, "Connected ok, doing login");
       success = vdr->doLogin();
 
-      if (success)
-      {
-        ts.tv_sec = 0;
-        ts.tv_nsec = 000000000;
-      }
-      else
+      if (!success)
       {
         vdr->disconnect();
         setOneLiner(tr("Login failed"));
-        ts.tv_sec = 3;
-        ts.tv_nsec = 0;
+        delay = 3000;
       }
     }
     else
     {
       setOneLiner(tr("Connection failed"));
-      ts.tv_sec = 3;
-      ts.tv_nsec = 0;
+      delay = 3000;
     }
 
     draw();
     viewman->updateView(this);
-    nanosleep(&ts, NULL);
+    MILLISLEEP(delay);
 
   } while(!success);
 
diff --git a/vdr.cc b/vdr.cc
index 10e6d67faa89e48fe1cc2bc56fc346bb5d5ce770..689d316d57ca8cc938e5877c07651ad0e83c5515 100644 (file)
--- a/vdr.cc
+++ b/vdr.cc
@@ -810,7 +810,7 @@ ULLONG VDR::getResumePoint(char* fileName)
   char* resumeString = configLoad("ResumeData", fileName);
   if (!resumeString) return 0;
 
-  ULLONG toReturn = strtoull(resumeString, NULL, 10);
+  ULLONG toReturn = STRTOULL(resumeString, NULL, 10);
   delete[] resumeString;
   return toReturn;
 }
index b7d6a26eb8f534b9d30cc64ec356388d687ff3b8..aaf72853990b80b9495b6b7c40c17b575890e73e 100644 (file)
--- a/vfeed.cc
+++ b/vfeed.cc
@@ -23,8 +23,6 @@
 VFeed::VFeed(Callback* tcb)
 : cb(*tcb)
 {
-  delayTime.tv_sec = 0;
-  delayTime.tv_nsec = 100000000;
 }
 
 int VFeed::init(int tfd)
@@ -66,7 +64,7 @@ void VFeed::threadMethod()
     else
     {
 //      Log::getInstance()->log("VFeed", Log::DEBUG, "No data delay");
-      nanosleep(&delayTime, NULL);
+      MILLISLEEP(100);
     }
   }
 }
diff --git a/vfeed.h b/vfeed.h
index 51cd666921b2b2a047188d8e82c5c0e58e2ba40a..93117ce3b1274f37b1a6f5c6755cc64da0ec55ff 100644 (file)
--- a/vfeed.h
+++ b/vfeed.h
@@ -45,8 +45,6 @@ class VFeed : public Thread
     void threadPostStopCleanup() {};
     int fd;
     Callback& cb;
-    struct timespec delayTime;
-
 };
 
 #endif