#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;
static void kick_vob(unsigned index, unsigned titlep)
{
+ char fn[MAXFNSZ];
dvd_file_t *vob;
+ secaddr start, len;
+
+ store_filename(fn, mkident(VOB, index, titlep));
+ start = UDFFindFile(dvd, fn, &len);
+ if (!start) return;
vob = DVDOpenFile(dvd, index,
titlep ? DVD_READ_TITLE_VOBS : DVD_READ_MENU_VOBS);
int main(int argc, char *argv[])
{
- char fn[MAXFNSZ];
- int opt;
- unsigned i, f = 0;
- secaddr start, len;
+ int opt, i;
+ unsigned j, f = 0;
#define f_bogus 1u
set_prog(argv[0]);
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], O_RDONLY, 0, &dvd);
- for (i = 0; i < 100; i++) {
- store_filename(fn, mkident(VOB, i, 0));
- start = UDFFindFile(dvd, fn, &len); if (start) kick_vob(i, 0);
- if (i) {
- store_filename(fn, mkident(VOB, i, 1));
- start = UDFFindFile(dvd, fn, &len); if (start) kick_vob(i, 1);
+ for (j = 0; j < 100; j++) {
+ kick_vob(j, 0);
+ if (j) kick_vob(j, 1);
}
+
+ DVDClose(dvd);
}
- if (dvd) DVDClose(dvd);
progress_free(&progress);
return (0);
}