dvd-sector-copy.c: Go back to showing just disc progress when continuing.
[dvdrip] / dvd-cache-keys.c
1 #include "lib.h"
2
3 static void usage(FILE *fp) { fprintf(fp, "usage: %s DEVICE\n", prog); }
4
5 static dvd_reader_t *dvd;
6
7 static void kick_vob(int index, int titlep)
8 {
9 dvd_file_t *vob;
10
11 vob = DVDOpenFile(dvd, index,
12 titlep ? DVD_READ_TITLE_VOBS : DVD_READ_MENU_VOBS);
13 if (!vob) bail("failed to open %s %d", titlep ? "title" : "menu", index);
14 DVDCloseFile(vob);
15 }
16
17 int main(int argc, char *argv[])
18 {
19 char fn[MAXFNSZ];
20 int opt;
21 unsigned i, f = 0;
22 secaddr start, len;
23 #define f_bogus 1u
24
25 set_prog(argv[0]);
26 for (;;) {
27 opt = getopt(argc, argv, "h"); if (opt < 0) break;
28 switch (opt) {
29 case 'h': usage(stderr); exit(0);
30 default: f |= f_bogus; break;
31 }
32 }
33 if (argc - optind != 1) f |= f_bogus;
34 if (f&f_bogus) { usage(stderr); exit(2); }
35
36 setlocale(LC_ALL, "");
37 progress_init(&progress);
38
39 open_dvd(argv[optind], 0, &dvd);
40
41 for (i = 0; i < 100; i++) {
42 store_filename(fn, mkident(VOB, i, 0));
43 start = UDFFindFile(dvd, fn, &len); if (start) kick_vob(i, 0);
44 if (i) {
45 store_filename(fn, mkident(VOB, i, 1));
46 start = UDFFindFile(dvd, fn, &len); if (start) kick_vob(i, 1);
47 }
48 }
49
50 if (dvd) DVDClose(dvd);
51 progress_free(&progress);
52 return (0);
53 }