summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2004-01-05 12:08:09 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2004-01-05 12:08:09 +0100
commit6096500940b17b92ac6be82007daf22e055e041e (patch)
tree77ca9993f9e726497c9bd271b0079106423e57a8
parenteab7806f2018eeed66d4cfb2151c069237206cd4 (diff)
downloadvdr-6096500940b17b92ac6be82007daf22e055e041e.tar.gz
vdr-6096500940b17b92ac6be82007daf22e055e041e.tar.bz2
Added 'Update channels' setup parameter
-rw-r--r--HISTORY4
-rw-r--r--MANUAL5
-rw-r--r--config.c5
-rw-r--r--config.h3
-rw-r--r--i18n.c70
-rw-r--r--menu.c10
-rw-r--r--pat.c10
-rw-r--r--sdt.c8
8 files changed, 104 insertions, 11 deletions
diff --git a/HISTORY b/HISTORY
index 377fd306..9bd9fb45 100644
--- a/HISTORY
+++ b/HISTORY
@@ -2546,3 +2546,7 @@ Video Disk Recorder Revision History
Lauri Tischler for reporting this one).
- Fixed a warning about character comparison in libsi/si.c (thanks to Lauri
Tischler for reporting this one).
+- The new parameter "Update channels" in the "Setup/DVB" menu can be used to
+ control if and how channels will be automatically updated (see MANUAL).
+ This has already been part of the 'autopid' patch by Andreas Schultz and has
+ now been adopted.
diff --git a/MANUAL b/MANUAL
index 8687e704..9b08914e 100644
--- a/MANUAL
+++ b/MANUAL
@@ -498,6 +498,11 @@ Version 1.2
Video format = 4:3 The video format (or aspect ratio) of the tv set in use
(4:3 or 16:9).
+ Update channels = 3 Controls the automatic channel update function. '0' means
+ no update, '1' will only update channel names, '2' will
+ update channel names and PIDs, and '3' will perform all
+ updates and also add newly found channels.
+
LNB:
SLOF = 11700 The switching frequency (in MHz) between low and
diff --git a/config.c b/config.c
index d3f2db7d..12172900 100644
--- a/config.c
+++ b/config.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: config.c 1.117 2003/10/17 14:11:27 kls Exp $
+ * $Id: config.c 1.118 2004/01/05 11:45:40 kls Exp $
*/
#include "config.h"
@@ -272,6 +272,7 @@ cSetup::cSetup(void)
UseSubtitle = 1;
RecordingDirs = 1;
VideoFormat = 0;
+ UpdateChannels = 3;
RecordDolbyDigital = 1;
ChannelInfoPos = 0;
OSDwidth = 52;
@@ -424,6 +425,7 @@ bool cSetup::Parse(const char *Name, const char *Value)
else if (!strcasecmp(Name, "UseSubtitle")) UseSubtitle = atoi(Value);
else if (!strcasecmp(Name, "RecordingDirs")) RecordingDirs = atoi(Value);
else if (!strcasecmp(Name, "VideoFormat")) VideoFormat = atoi(Value);
+ else if (!strcasecmp(Name, "UpdateChannels")) UpdateChannels = atoi(Value);
else if (!strcasecmp(Name, "RecordDolbyDigital")) RecordDolbyDigital = atoi(Value);
else if (!strcasecmp(Name, "ChannelInfoPos")) ChannelInfoPos = atoi(Value);
else if (!strcasecmp(Name, "OSDwidth")) OSDwidth = atoi(Value);
@@ -474,6 +476,7 @@ bool cSetup::Save(void)
Store("UseSubtitle", UseSubtitle);
Store("RecordingDirs", RecordingDirs);
Store("VideoFormat", VideoFormat);
+ Store("UpdateChannels", UpdateChannels);
Store("RecordDolbyDigital", RecordDolbyDigital);
Store("ChannelInfoPos", ChannelInfoPos);
Store("OSDwidth", OSDwidth);
diff --git a/config.h b/config.h
index 4d27349b..db4769cd 100644
--- a/config.h
+++ b/config.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: config.h 1.180 2004/01/05 10:05:57 kls Exp $
+ * $Id: config.h 1.181 2004/01/05 11:31:54 kls Exp $
*/
#ifndef __CONFIG_H
@@ -227,6 +227,7 @@ public:
int UseSubtitle;
int RecordingDirs;
int VideoFormat;
+ int UpdateChannels;
int RecordDolbyDigital;
int ChannelInfoPos;
int OSDwidth, OSDheight;
diff --git a/i18n.c b/i18n.c
index a2230217..3b6c0bcf 100644
--- a/i18n.c
+++ b/i18n.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: i18n.c 1.137 2003/12/13 11:09:17 kls Exp $
+ * $Id: i18n.c 1.138 2004/01/05 11:56:24 kls Exp $
*
* Translations provided by:
*
@@ -2261,6 +2261,74 @@ const tI18nPhrase Phrases[] = {
"Video formátum",
"Format del vídeo",
},
+ { "Setup.DVB$Update channels",
+ "Kanäle aktualisieren",
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ },
+ { "names only",
+ "nur Namen",
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ },
+ { "names and PIDs",
+ "Namen und PIDs",
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ },
+ { "add new channels",
+ "neue Kanäle hinzufügen",
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ },
{ "Setup.LNB$SLOF (MHz)",
"SLOF (MHz)",
"Frekvenca preklopa (MHz)",
diff --git a/menu.c b/menu.c
index 5e628bbb..6e2c17be 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 1.276 2004/01/04 11:12:43 kls Exp $
+ * $Id: menu.c 1.277 2004/01/05 11:51:33 kls Exp $
*/
#include "menu.h"
@@ -2045,6 +2045,8 @@ cMenuSetupEPG::cMenuSetupEPG(void)
// --- cMenuSetupDVB ---------------------------------------------------------
class cMenuSetupDVB : public cMenuSetupBase {
+private:
+ const char *updateChannelsTexts[4];
public:
cMenuSetupDVB(void);
virtual eOSState ProcessKey(eKeys Key);
@@ -2052,9 +2054,15 @@ public:
cMenuSetupDVB::cMenuSetupDVB(void)
{
+ updateChannelsTexts[0] = tr("no");
+ updateChannelsTexts[1] = tr("names only");
+ updateChannelsTexts[2] = tr("names and PIDs");
+ updateChannelsTexts[3] = tr("add new channels");
+
SetSection(tr("DVB"));
Add(new cMenuEditIntItem( tr("Setup.DVB$Primary DVB interface"), &data.PrimaryDVB, 1, cDevice::NumDevices()));
Add(new cMenuEditBoolItem(tr("Setup.DVB$Video format"), &data.VideoFormat, "4:3", "16:9"));
+ Add(new cMenuEditStraItem(tr("Setup.DVB$Update channels"), &data.UpdateChannels, 4, updateChannelsTexts));
}
eOSState cMenuSetupDVB::ProcessKey(eKeys Key)
diff --git a/pat.c b/pat.c
index 3fa6848c..312e2f15 100644
--- a/pat.c
+++ b/pat.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: pat.c 1.3 2004/01/04 12:27:06 kls Exp $
+ * $Id: pat.c 1.4 2004/01/05 11:42:30 kls Exp $
*/
#include "pat.h"
@@ -368,9 +368,11 @@ void cPatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
delete d;
}
}
- Channel->SetPids(Vpid, Ppid, Apids[0], Apids[1], Dpids[0], Dpids[1], Tpid);
- Channel->SetCaIds(CaDescriptors->CaIds());
- Channel->SetCaDescriptors(CaDescriptorHandler.AddCaDescriptors(CaDescriptors));
+ if (Setup.UpdateChannels >= 2) {
+ Channel->SetPids(Vpid, Ppid, Apids[0], Apids[1], Dpids[0], Dpids[1], Tpid);
+ Channel->SetCaIds(CaDescriptors->CaIds());
+ Channel->SetCaDescriptors(CaDescriptorHandler.AddCaDescriptors(CaDescriptors));
+ }
}
lastPmtScan = 0; // this triggers the next scan
Channels.Unlock();
diff --git a/sdt.c b/sdt.c
index a4e91b80..9ede48dd 100644
--- a/sdt.c
+++ b/sdt.c
@@ -4,11 +4,12 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: sdt.c 1.1 2004/01/04 11:54:42 kls Exp $
+ * $Id: sdt.c 1.2 2004/01/05 11:40:24 kls Exp $
*/
#include "sdt.h"
#include "channels.h"
+#include "config.h"
#include "libsi/section.h"
#include "libsi/descriptor.h"
@@ -80,14 +81,15 @@ cSDT::cSDT(int Source, int Transponder, uchar &lastSdtVersion, cPatFilter *PatFi
}
if (Channel) {
Channel->SetId(getOriginalNetworkId(), getTransportStreamId(), SiSdtService.getServiceId());
- Channel->SetName(pn);
+ if (Setup.UpdateChannels >= 1)
+ Channel->SetName(pn);
// Using SiSdtService.getFreeCaMode() is no good, because some
// tv stations set this flag even for non-encrypted channels :-(
// The special value 0xFFFF was supposed to mean "unknown encryption"
// and would have been overwritten with real CA values later:
// Channel->SetCa(SiSdtService.getFreeCaMode() ? 0xFFFF : 0);
}
- else if (*pn) {
+ else if (*pn && Setup.UpdateChannels >= 3) {
Channel = Channels.NewChannel(Source, Transponder, pn, getOriginalNetworkId(), getTransportStreamId(), SiSdtService.getServiceId());
PatFilter->Trigger();
}