Browse Source

do nothing with skipped subtitles

Olivier Marty 9 years ago
parent
commit
128aaff0d0
3 changed files with 20 additions and 12 deletions
  1. 17 11
      main.c
  2. 1 1
      time.c
  3. 2 0
      time.h

+ 17 - 11
main.c

@@ -125,17 +125,23 @@ int main(int argc, char **argv)
   while(!feof(f))
   {
     id = next(f, id+1, &sline);
-    timeSleepUntil(sline.begin);
-    
-    // show
-    printf("%s\n", sline.text);
-    printerShow(penv, sline.text, 0);
-    
-    // hide
-    timeSleepUntil(sline.end);
-    // TODO manage when the next subtitle appear before
-    printf("\n");
-    printerClean(penv);
+    if(!timeSleepUntil(sline.begin)) // no error and in the future
+    {
+      // show
+      printf("%s\n", sline.text);
+      printerShow(penv, sline.text, 0);
+      
+      // hide
+      timeSleepUntil(sline.end);
+      // TODO manage when the next subtitle appear before
+      printf("\n");
+      printerClean(penv);
+    }
+    else
+    {
+      printf("skipped :\n");
+      printf("%s\n", sline.text);
+    }
   }
   
   printerCloseWindow(penv);

+ 1 - 1
time.c

@@ -22,7 +22,7 @@
 
 int timeSleep(struct timespec t)
 {
-  int r;
+  int r = -2;
   if(t.tv_sec >= 0)
   {
     do

+ 2 - 0
time.h

@@ -25,10 +25,12 @@ typedef struct timespec mytime;
 
 void timeInitialize(int rel); // add rel seconds to the clock
 mytime timeGetRelative();
+// return -2 if t is in the past
 int timeSleepUntil(mytime t);
 
 mytime timeCreate(time_t s, long ns);
 
+// return -2 if t is negative
 int timeSleep(mytime t);
 mytime timeDiff(mytime a, mytime b);