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 #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; }