summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2004-01-17 15:38:11 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2004-01-17 15:38:11 +0100
commite4960d169e8f1184e571ab60df39e1ab2e584eb6 (patch)
tree1b1db050aef6f0da1cc4c91a0a678e46a9e16a95
parent004b82d3d44a2fdf455ec5f6f8f95dd7bc3ad659 (diff)
downloadvdr-e4960d169e8f1184e571ab60df39e1ab2e584eb6.tar.gz
vdr-e4960d169e8f1184e571ab60df39e1ab2e584eb6.tar.bz2
The "Red" button in the "Setup/EPG" menu can now be used to force an EPG scan on a single DVB card system
-rw-r--r--HISTORY2
-rw-r--r--MANUAL9
-rw-r--r--eitscan.c14
-rw-r--r--eitscan.h5
-rw-r--r--i18n.c20
-rw-r--r--menu.c8
6 files changed, 52 insertions, 6 deletions
diff --git a/HISTORY b/HISTORY
index 62ba1ace..ef33d5e4 100644
--- a/HISTORY
+++ b/HISTORY
@@ -2594,3 +2594,5 @@ Video Disk Recorder Revision History
full name.
- The EPG scan now scans newly found transponders together with already existing
ones.
+- The "Red" button in the "Setup/EPG" menu can now be used to force an EPG
+ scan on a single DVB card system (see MANUAL for details).
diff --git a/MANUAL b/MANUAL
index 1873c516..80977a90 100644
--- a/MANUAL
+++ b/MANUAL
@@ -482,6 +482,7 @@ Version 1.2
be taken. Note that in order to set the system time from
the transponder data the option "Set system time" must also
be enabled.
+
Preferred languages = 0
Some tv stations broadcast their EPG data in various
different languages. This option allows you to define
@@ -496,6 +497,14 @@ Version 1.2
different languages, the preferred languages are checked
in the given order to decide which one to take.
+ Scan The "Red" button in the "Setup/EPG" menu can be used to
+ force an EPG scan on a single DVB card system. If pressed,
+ and the primary DVB device is currently not recording or
+ replaying, it will loop through the transponders once and
+ then switch back to the original channel. Any user activity
+ during the EPG scan will also stop the scan and bring back
+ the original channel.
+
DVB:
Primary DVB interface = 1
diff --git a/eitscan.c b/eitscan.c
index b6f001ac..a2096af9 100644
--- a/eitscan.c
+++ b/eitscan.c
@@ -4,13 +4,14 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: eitscan.c 1.19 2004/01/17 13:13:47 kls Exp $
+ * $Id: eitscan.c 1.20 2004/01/17 15:38:11 kls Exp $
*/
#include "eitscan.h"
#include <stdlib.h>
#include "channels.h"
#include "dvbdevice.h"
+#include "interface.h"
// --- cScanData -------------------------------------------------------------
@@ -106,6 +107,11 @@ void cEITScanner::AddTransponder(cChannel *Channel)
transponderList->AddTransponder(Channel);
}
+void cEITScanner::ForceScan(void)
+{
+ lastActivity = 0;
+}
+
void cEITScanner::Activity(void)
{
if (currentChannel) {
@@ -142,8 +148,10 @@ void cEITScanner::Process(void)
if (Channel) {
//XXX if (Device->ProvidesTransponder(Channel)) {
if ((!Channel->Ca() || Channel->Ca() == Device->DeviceNumber() + 1 || Channel->Ca() >= 0x0100) && Device->ProvidesTransponder(Channel)) { //XXX temporary for the 'sky' plugin
- if (Device == cDevice::PrimaryDevice() && !currentChannel)
+ if (Device == cDevice::PrimaryDevice() && !currentChannel) {
currentChannel = Device->CurrentChannel();
+ Interface->Info("Starting EPG scan");
+ }
currentDevice = Device;//XXX see also dvbdevice.c!!!
Device->SwitchChannel(Channel, false);
currentDevice = NULL;
@@ -166,6 +174,8 @@ void cEITScanner::Process(void)
if (!scanList->Count()) {
delete scanList;
scanList = NULL;
+ if (lastActivity == 0) // this was a triggered scan
+ Activity();
break;
}
}
diff --git a/eitscan.h b/eitscan.h
index 8685898f..c5116cb9 100644
--- a/eitscan.h
+++ b/eitscan.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: eitscan.h 1.7 2004/01/17 13:13:47 kls Exp $
+ * $Id: eitscan.h 1.8 2004/01/17 15:36:24 kls Exp $
*/
#ifndef __EITSCAN_H
@@ -29,9 +29,10 @@ private:
public:
cEITScanner(void);
~cEITScanner();
- bool Active(void) { return currentChannel; }
+ bool Active(void) { return currentChannel || lastActivity == 0; }
bool UsesDevice(const cDevice *Device) { return currentDevice == Device; }
void AddTransponder(cChannel *Channel);
+ void ForceScan(void);
void Activity(void);
void Process(void);
};
diff --git a/i18n.c b/i18n.c
index f73c6b7f..a92630eb 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.142 2004/01/16 13:48:16 kls Exp $
+ * $Id: i18n.c 1.143 2004/01/17 14:39:38 kls Exp $
*
* Translations provided by:
*
@@ -819,6 +819,24 @@ const tI18nPhrase Phrases[] = {
"Reiniciar",
"ÁÑàÞá",
},
+ { "Scan",
+ "Scan",
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ "",//TODO
+ },
// Confirmations:
{ "Delete channel?",
"Kanal löschen?",
diff --git a/menu.c b/menu.c
index a2a408d3..8526f36b 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.280 2004/01/11 21:37:17 kls Exp $
+ * $Id: menu.c 1.281 2004/01/17 14:17:00 kls Exp $
*/
#include "menu.h"
@@ -16,6 +16,7 @@
#include "channels.h"
#include "config.h"
#include "cutter.h"
+#include "eitscan.h"
#include "i18n.h"
#include "menuitems.h"
#include "plugin.h"
@@ -2044,6 +2045,7 @@ cMenuSetupEPG::cMenuSetupEPG(void)
;
originalNumLanguages = numLanguages;
SetSection(tr("EPG"));
+ SetHelp(tr("Scan"));
Setup();
}
@@ -2105,6 +2107,10 @@ eOSState cMenuSetupEPG::ProcessKey(eKeys Key)
data.EPGLanguages[numLanguages] = -1;
Setup();
}
+ if (Key == kRed) {
+ EITScanner.ForceScan();
+ return osEnd;
+ }
}
return state;
}