dvd-cache-keys.c: Allow multiple devices and/or image files.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 6 Mar 2022 01:03:49 +0000 (01:03 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Sun, 6 Mar 2022 01:03:49 +0000 (01:03 +0000)
dvd-cache-keys.c

index b344e5b..a5fa895 100644 (file)
@@ -1,6 +1,6 @@
 #include "lib.h"
 
-static void usage(FILE *fp) { fprintf(fp, "usage: %s DEVICE\n", prog); }
+static void usage(FILE *fp) { fprintf(fp, "usage: %s DEVICE ...\n", prog); }
 
 static dvd_reader_t *dvd;
 
@@ -22,9 +22,8 @@ static void kick_vob(unsigned index, unsigned titlep)
 
 int main(int argc, char *argv[])
 {
-  int opt;
-  unsigned i, f = 0;
-  secaddr start, len;
+  int opt, i;
+  unsigned j, f = 0;
 #define f_bogus 1u
 
   set_prog(argv[0]);
@@ -35,20 +34,23 @@ int main(int argc, char *argv[])
       default: f |= f_bogus; break;
     }
   }
-  if (argc - optind != 1) f |= f_bogus;
+  if (argc - optind < 1) f |= f_bogus;
   if (f&f_bogus) { usage(stderr); exit(2); }
 
   setlocale(LC_ALL, "");
   progress_init(&progress);
 
-  open_dvd(argv[optind], 0, &dvd);
+  for (i = optind; i < argc; i++) {
+    open_dvd(argv[i], 0, &dvd);
+
+    for (j = 0; j < 100; j++) {
+      kick_vob(j, 0);
+      if (j) kick_vob(j, 1);
+    }
 
-  for (i = 0; i < 100; i++) {
-    kick_vob(i, 0);
-    if (i) kick_vob(i, 1);
+    DVDClose(dvd);
   }
 
-  if (dvd) DVDClose(dvd);
   progress_free(&progress);
   return (0);
 }