summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2010-01-20 16:14:04 +0000
committerAndreas Brachold <vdr07@deltab.de>2010-01-20 16:14:04 +0000
commite2add39d4d27be842011c6299f1e13c1ef1a3052 (patch)
treed99f41b62cb589e61eff81c3d641d8f83c0d885a
parent1f3e833bd0f75cfed788034df2a290b0713b4aec (diff)
downloadxxv-e2add39d4d27be842011c6299f1e13c1ef1a3052.tar.gz
xxv-e2add39d4d27be842011c6299f1e13c1ef1a3052.tar.bz2
* change way to generate channel id, support plugin provided channels
-rw-r--r--lib/XXV/MODULES/CHANNELS.pm14
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/XXV/MODULES/CHANNELS.pm b/lib/XXV/MODULES/CHANNELS.pm
index e0da981..200e649 100644
--- a/lib/XXV/MODULES/CHANNELS.pm
+++ b/lib/XXV/MODULES/CHANNELS.pm
@@ -298,11 +298,11 @@ sub _prepare {
}
- # ID
- my $freqID = $data->[1];
- if ( $data->[3] eq 'C' or $data->[3] eq 'T') {
- while(length($freqID) > 3) {
- $freqID = substr($freqID, 0, length($freqID)-3);
+ # Build alternative transponder ID from frequency
+ my $altid = CORE::int($data->[1]);
+ if ($data->[3] !~ /^S/sig) {
+ while($altid > 20000) {
+ $altid = CORE::int($altid / 1000);
}
}
@@ -312,9 +312,9 @@ sub _prepare {
# By DVB-C gabs Probleme weil die Zahl grösser 100 war
# Siehe auch http://www.vdr-portal.de/board/thread.php?sid=&postid=364373
if($data->[12] && $data->[12] > 0) {
- $id = sprintf('%s-%u-%u-%u-%u', $data->[3], $data->[10], ($data->[10] || $data->[11]) ? $data->[11] : $freqID, $data->[9],$data->[12]);
+ $id = sprintf('%s-%u-%u-%u-%u', $data->[3], $data->[10], ($data->[10] || $data->[11]) ? $data->[11] : $altid, $data->[9],$data->[12]);
} else {
- $id = sprintf('%s-%u-%u-%u', $data->[3], $data->[10], ($data->[10] || $data->[11]) ? $data->[11] : $freqID, $data->[9]);
+ $id = sprintf('%s-%u-%u-%u', $data->[3], $data->[10], ($data->[10] || $data->[11]) ? $data->[11] : $altid, $data->[9]);
}
my $attr = {