1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
--- magazine.c.orig Sun Aug 27 12:40:30 2006
+++ magazine.c Sun Sep 10 00:45:27 2006
@@ -458,6 +458,9 @@
}
const cEvent *magazine::getNext(const cSchedule *s,const cEvent *e)
{
+ if (e == NULL)
+ return NULL;
+
const cEvent *pe = NULL;
time_t ref = e->StartTime();
@@ -480,6 +483,9 @@
}
const cEvent *magazine::getPrev(const cSchedule *s,const cEvent *e)
{
+ if (e == NULL)
+ return NULL;
+
const cEvent *pe = NULL;
time_t ref = e->StartTime();
time_t delta = INT_MAX;
@@ -1077,9 +1083,9 @@
{
state = cOsdObject::ProcessKey(Key);
- if (state == osUnknown)
+ if (state == osUnknown && schedArrayNum>currentFirst)
{
- if (curmode==SHOW && schedArrayNum>currentFirst)
+ if (curmode==SHOW)
{
switch (Key & ~k_Repeat)
{
@@ -1111,6 +1117,8 @@
currentFirst++;
if (currentFirst>schedArrayNum-3)
currentFirst=schedArrayNum-3;
+ if (currentFirst<0)
+ currentFirst=0;
output();
break;
case kUp:
@@ -1145,6 +1153,8 @@
currentFirst+=3;
if (currentFirst>schedArrayNum-3)
currentFirst=schedArrayNum-3;
+ if (currentFirst<0)
+ currentFirst=0;
output();
break;
case k8: // zum aktuellen Sender
@@ -1206,14 +1216,17 @@
{
case kOk:
{
- delete osd;
- osd=NULL;
cEvent **ev=ev4ch(EDIT_curChannel);
- me=new tvOcMenuEvent(ev[EDIT_curEVI]);
- me->Display();
- curmode=SHOW;
- EDIT_curEvent=0;
- return osContinue;
+ if (ev[EDIT_curEVI] != NULL)
+ {
+ delete osd;
+ osd=NULL;
+ me=new tvOcMenuEvent(ev[EDIT_curEVI]);
+ me->Display();
+ curmode=SHOW;
+ EDIT_curEvent=0;
+ return osContinue;
+ }
}
break;
case kBack:
@@ -1238,11 +1251,15 @@
EDIT_curChannel++;
if (EDIT_curChannel>schedArrayNum-1)
EDIT_curChannel=schedArrayNum-1;
+ if (EDIT_curChannel<0)
+ EDIT_curChannel=0;
if (EDIT_curChannel>currentFirst+2)
{
currentFirst++;
if (currentFirst>schedArrayNum-3)
currentFirst=schedArrayNum-3;
+ if (currentFirst<0)
+ currentFirst=0;
EDIT_curChannel=currentFirst+2;
}
outputLR();
@@ -1343,17 +1360,20 @@
break; */
case kRecord:
{
- delete osd;
- osd=NULL;
cEvent **ev=ev4ch(EDIT_curChannel);
- cTimer *timer = new cTimer(ev[EDIT_curEVI]);
- cTimer *t = Timers.GetTimer(timer);
- if (t)
+ if (ev[EDIT_curEVI] != NULL)
{
- delete timer;
- timer = t;
+ delete osd;
+ osd=NULL;
+ cTimer *timer = new cTimer(ev[EDIT_curEVI]);
+ cTimer *t = Timers.GetTimer(timer);
+ if (t)
+ {
+ delete timer;
+ timer = t;
+ }
+ met=new cMenuEditTimer(timer, !t);
}
- met=new cMenuEditTimer(timer, !t);
}
break;
default:
|