Fixed handling the system time transponder setting in the Setup/EPG menu, which was broken by the min/max fix in cMenuEditIntItem

This commit is contained in:
Klaus Schmidinger 2006-04-01 09:12:38 +02:00
parent daa9047247
commit 6b968a6b27
3 changed files with 10 additions and 13 deletions

View File

@ -4456,7 +4456,7 @@ Video Disk Recorder Revision History
EPG event has been explicitly set to SI::RunningStatusNotRunning.
- The check for timers to be deleted is now done only every 30 seconds.
2006-03-31: Version 1.3.46
2006-04-01: Version 1.3.46
- Fixed handling broken PMT records (thanks to Marcel Wiesweg for pointing out how
to detect these).
@ -4466,3 +4466,5 @@ Video Disk Recorder Revision History
- Replaced the obsolete entry 'S21.5E' in the default 'diseqc.conf' with 'S13.0E'
(reported by Ville Skyttä).
- Fixed learning keys when VDR is already running (thanks to Jurij Retzlaff).
- Fixed handling the system time transponder setting in the Setup/EPG menu, which
was broken by the min/max fix in cMenuEditIntItem.

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menuitems.c 1.34 2006/03/26 09:10:17 kls Exp $
* $Id: menuitems.c 1.35 2006/03/31 15:17:21 kls Exp $
*/
#include "menuitems.h"
@ -588,11 +588,11 @@ eOSState cMenuEditChanItem::ProcessKey(eKeys Key)
// --- cMenuEditTranItem -----------------------------------------------------
cMenuEditTranItem::cMenuEditTranItem(const char *Name, int *Value, int *Source)
:cMenuEditChanItem(Name, Value)
:cMenuEditChanItem(Name, &number)
{
number = 0;
source = Source;
transponder = *Value;
transponder = Value;
cChannel *channel = Channels.First();
while (channel) {
if (!channel->GroupSep() && *source == channel->Source() && ISTRANSPONDER(channel->Transponder(), *Value)) {
@ -601,22 +601,17 @@ cMenuEditTranItem::cMenuEditTranItem(const char *Name, int *Value, int *Source)
}
channel = (cChannel *)channel->Next();
}
*Value = number;
Set();
*Value = transponder;
}
eOSState cMenuEditTranItem::ProcessKey(eKeys Key)
{
*value = number;
eOSState state = cMenuEditChanItem::ProcessKey(Key);
number = *value;
cChannel *channel = Channels.GetByNumber(*value);
cChannel *channel = Channels.GetByNumber(number);
if (channel) {
*source = channel->Source();
transponder = channel->Transponder();
*transponder = channel->Transponder();
}
*value = transponder;
return state;
}

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menuitems.h 1.17 2006/02/12 10:22:03 kls Exp $
* $Id: menuitems.h 1.18 2006/03/31 15:12:42 kls Exp $
*/
#ifndef __MENUITEMS_H
@ -120,7 +120,7 @@ class cMenuEditTranItem : public cMenuEditChanItem {
private:
int number;
int *source;
int transponder;
int *transponder;
public:
cMenuEditTranItem(const char *Name, int *Value, int *Source);
virtual eOSState ProcessKey(eKeys Key);