summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave <vdr@pickles.me.uk>2010-09-18 15:24:07 +0100
committerDave <vdr@pickles.me.uk>2010-09-18 15:40:27 +0100
commit2ec66f6dc2007f377e07f5ec487b1dc947d84195 (patch)
treee59e6bf3976575818dbe4220625cc76058d2f5d4
parentf6135bfa2d6195b4ead6249fa0c44c1cd456ad77 (diff)
downloadvdrtva-2ec66f6dc2007f377e07f5ec487b1dc947d84195.tar.gz
vdrtva-2ec66f6dc2007f377e07f5ec487b1dc947d84195.tar.bz2
Code tidy.
-rwxr-xr-xseries.pl58
1 files changed, 34 insertions, 24 deletions
diff --git a/series.pl b/series.pl
index fae9558..af3b75e 100755
--- a/series.pl
+++ b/series.pl
@@ -51,7 +51,7 @@ get_links();
if (scalar (@timers)) {
$updates = check_timers();
}
- $updates += check_links();
+$updates += check_links();
if (scalar (@timers)) {
$updates += check_split_recordings();
if ($updates) {
@@ -71,7 +71,7 @@ sub check_timers {
my $count = 0;
foreach my $timer (@timers) {
- my $channelid = $chans[$timer->{chan}-1] -> {id};
+ my $channelid = $chans[$timer->{chan}] -> {id};
my $start_t = $timer->{tstart};
my $stop_t = $timer->{tstop};
foreach my $prog (@epg) {
@@ -143,29 +143,33 @@ sub check_timer_clashes
push @tstop, $timers[$ii]->{tstop};
for ($jj = 0 ; $jj < $ii ; $jj++) {
- if (($tstart[$ii] >= $tstart[$jj] && $tstart[$ii] < $tstop[$jj])
- || ($tstart[$jj] >= $tstart[$ii] && $tstart[$jj] < $tstop[$ii]))
- {
- # Timers collide in time. Check if the
- # Timers are on the same transponder
- my $t1 = $chans[$timers[$ii]->{chan}-1] -> {transponder};
- my $t2 = $chans[$timers[$jj]->{chan}-1] -> {transponder};
- if ($t1 eq $t2) {
-# print STDOUT "Multiple recordings on same transponder - OK\n";
- }
- else {
- # What to do?? For now just report the collision
- my $ttl1 = get_title($chans[$timers[$ii]->{chan}-1]->{id}, $tstart[$ii]+$CONFIG{START_PADDING}*60);
- my $ttl2 = get_title($chans[$timers[$jj]->{chan}-1]->{id}, $tstart[$jj]+$CONFIG{START_PADDING}*60);
- my $when = localtime ($timers[$ii]->{tstart});
- print STDOUT "Collision! $when\n$ttl1 <-> $ttl2\n";
- }
- }
+ if (is_clash($ii, $jj)) {
+ # What to do?? For now just report the collision
+ my $ttl1 = get_title($chans[$timers[$ii]->{chan}]->{id}, $tstart[$ii]+$CONFIG{START_PADDING}*60);
+ my $ttl2 = get_title($chans[$timers[$jj]->{chan}]->{id}, $tstart[$jj]+$CONFIG{START_PADDING}*60);
+ my $when = localtime ($timers[$ii]->{tstart});
+ print STDOUT "Collision! $when\n$ttl1 <-> $ttl2\n";
}
+ }
}
sub is_clash {
- return 1;
+ my ($i, $j) = @_;
+ if (($tstart[$i] >= $tstart[$j] && $tstart[$i] < $tstop[$j])
+ || ($tstart[$j] >= $tstart[$i] && $tstart[$j] < $tstop[$i])) {
+ # Timers collide in time. Check if the
+ # Timers are on the same transponder
+ my $t1 = $chans[$timers[$i]->{chan}] -> {transponder};
+ my $t2 = $chans[$timers[$j]->{chan}] -> {transponder};
+ if ($t1 eq $t2) {
+# print STDOUT "Multiple recordings on same transponder - OK\n";
+ return 0;
+ }
+ else {
+ return 1;
+ }
+ }
+ return 0;
}
}
@@ -180,7 +184,7 @@ sub check_split_recordings {
my @splits;
print STDOUT "Checking for split recordings\n";
foreach my $timer (@timers) {
- my $channelid = $chans[$timer->{chan}-1] -> {id};
+ my $channelid = $chans[$timer->{chan}] -> {id};
my $start_t = $timer->{tstart};
my $stop_t = $timer->{tstop};
foreach my $prog (@epg) {
@@ -227,7 +231,7 @@ sub check_changed_events {
print STDOUT "Checking for changed timer events\n";
foreach my $timer (@timers) {
- my $channelid = $chans[$timer->{chan}-1] -> {id};
+ my $channelid = $chans[$timer->{chan}] -> {id};
my $start_t = $timer->{tstart};
my $timer_title = $timer ->{title};
my $event_title = get_title ($channelid, $start_t);
@@ -306,10 +310,15 @@ sub get_epg {
print STDOUT "Read ",scalar(@epg)," EPG lines\n";
}
-# Read the channels list from VDR
+# Read the channels list from VDR. Channel numbers are 1-based not 0-based...
sub get_channels {
+ push (@chans, {
+ id => '0-0-0-0',
+ transponder => '0-0',
+ name => 'Dummy'
+ });
Send("LSTC");
while (<SOCK>) {
chomp;
@@ -369,6 +378,7 @@ sub put_links {
rename "$CONFIG{LINKSDIR}/links.data", "$CONFIG{LINKSDIR}/links.data.old";
}
rename "$CONFIG{LINKSDIR}/links.data.new", "$CONFIG{LINKSDIR}/links.data";
+ print STDOUT "Wrote ",scalar(keys(%links))," Links\n";
}
# Display the links