add license file
[undvd.git] / scandvd
blob3be31f7ff1bc2871685f340fbbedbf1188df071a
1 #!/usr/bin/perl
3 # Author: Martin Matusiak <numerodix@gmail.com>
4 # Licensed under the GNU Public License, version 3.
6 use strict;
7 use Getopt::Long qw(:config no_ignore_case);
9 use FindBin qw($RealBin);
10 use lib $RealBin;
11 use colors;
12 use common qw(:DEFAULT $suite $defaults $tools);
15 my $usage = "Usage: " . s_b($suite->{tool_name}) . " ["
16 . s_b("--dev") . " " . s_bb($defaults->{dvd_device}) . " | "
17 . s_b("--dir") . " " . s_bb("/path") . " | "
18 . s_b("--iso") . " " . s_bb($defaults->{disc_image}) . "]
19 -d --dev dvd device to read from (default is " . s_bb($defaults->{dvd_device}) . ")
20 -q --dir dvd directory to read from
21 -i --iso dvd iso image to read from
22 -v be verbose (print id numbers)
23 --version show " . $suite->{suite_name} . " version\n";
25 my ($verbose);
26 my $dvd_device = $defaults->{dvd_device};
27 my $parse = GetOptions(
28 "d|dev=s"=>\$dvd_device,
29 "q|dir=s"=>\$dvd_device,
30 "i|iso=s"=>\$dvd_device,
31 "v"=>\$verbose,
32 "version"=>\&print_version,
35 print_tool_banner();
37 if (! $parse) {
38 print $usage;
39 exit 2;
42 my @titles = scan_dvd_for_titledata($dvd_device);
45 foreach my $title (@titles) {
46 my ($title_s, $length, @aids, @alangs, @sids, @slangs);
48 my $audio = "";
49 for (my $i = 0; $i < scalar @{ $title->{aids} }; $i++) {
50 if ($i == 0) { $audio = " audio: "; }
51 $audio .= s_bb(@{ $title->{alangs} }[$i]) . " ";
52 if ($verbose) { $audio .= s_it(@{ $title->{aids} }[$i]) . " "; }
54 $audio =~ s/\s*$//;
56 my $subs = "";
57 for (my $i = 0; $i < scalar @{ $title->{sids} }; $i++) {
58 if ($i == 0) { $subs = " subs: "; }
59 $subs .= s_bb(@{ $title->{slangs} }[$i]) . " ";
60 if ($verbose) { $subs .= s_it(@{ $title->{sids} }[$i]) . " "; }
62 $subs =~ s/\s*$//;
64 print s_b($title->{title_number}) ." length: " . s_bb($title->{length_s})
65 . $audio . $subs . "\n";
68 print "\nTo watch a title:\n";
69 print " " . s_b("mplayer")
70 ." " . s_b("dvd://") . s_bb("01")
71 ." " . s_b("-alang") . " " . s_bb("en")
72 ." " . s_b("-slang") . " " . s_bb("en/off") . "\n";
73 print "To rip titles:\n";
74 print " " . s_b("undvd")
75 ." " . s_b("-t") . " " . s_bb("01,02,03")
76 ." " . s_b("-a") . " " . s_bb("en")
77 ." " . s_b("-s") . " " . s_bb("en/off") . "\n";