The "Red" button in the "Setup/EPG" menu can now be used to force an EPG scan on a single DVB card system

This commit is contained in:
Klaus Schmidinger 2004-01-17 15:38:11 +01:00
parent 004b82d3d4
commit e4960d169e
6 changed files with 52 additions and 6 deletions

View File

@ -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).

9
MANUAL
View File

@ -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

View File

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

View File

@ -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);
};

20
i18n.c
View File

@ -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?",

8
menu.c
View File

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