3 static void usage(FILE *fp
) { fprintf(fp
, "usage: %s DEVICE\n", prog
); }
5 static dvd_reader_t
*dvd
;
7 static void kick_vob(unsigned index
, unsigned titlep
)
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
);
17 int main(int argc
, char *argv
[])
27 opt
= getopt(argc
, argv
, "h"); if (opt
< 0) break;
29 case 'h': usage(stderr
); exit(0);
30 default: f
|= f_bogus
; break;
33 if (argc
- optind
!= 1) f
|= f_bogus
;
34 if (f
&f_bogus
) { usage(stderr
); exit(2); }
36 setlocale(LC_ALL
, "");
37 progress_init(&progress
);
39 open_dvd(argv
[optind
], 0, &dvd
);
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);
45 store_filename(fn
, mkident(VOB
, i
, 1));
46 start
= UDFFindFile(dvd
, fn
, &len
); if (start
) kick_vob(i
, 1);
50 if (dvd
) DVDClose(dvd
);
51 progress_free(&progress
);