summaryrefslogtreecommitdiff
path: root/menu.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2006-03-26 19:00:00 +0200
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2006-03-26 19:00:00 +0200
commit49b561fcad16d3315fce8cb854de9f4ee6156640 (patch)
tree5612d6646e299dec266787f6068834f28c7ca81b /menu.c
parent9d12ac30f006ed63b4c9ab4c1a076b7d4f025022 (diff)
downloadvdr-patch-lnbsharing-49b561fcad16d3315fce8cb854de9f4ee6156640.tar.gz
vdr-patch-lnbsharing-49b561fcad16d3315fce8cb854de9f4ee6156640.tar.bz2
Version 1.3.45vdr-1.3.45
- Fixed updating the "Info" button in the "Timers" menu. - Reduced the number of events to actually check when setting events to timers. - cMenuEditIntItem now checks the given value and forces it to be between the given min and max limits. - The status changes of EPG events are now logged for all channels that have timers. - Removed the log message "deleting plugin: ..." when shutting down VDR (thanks to Christoph Haubrich for reporting that this is irritating when calling "vdr --help"). - Fixed cReadLine::Read() for lines that end with the infamous "\r\n" (thanks to Rolf Ahrenberg). - Fixed cDvbDevice::SetAudioBypass() in case setTransferModeForDolbyDigital is false (thanks to Werner Fink). - Updated 'sources.conf' (thanks to Oleg Roitburd). - Fixed the shutdown timeout (thanks to Alexander Wenzel). - Only calling RemoveEmptyVideoDirectories() once in case a recording has been deleted (reported by Hardy Flor). - Fixed deleting recordings that have been removed externally when running out of disk space (reported by Jan Lenz). - Fixed handling repeating VPS timers (they stopped recording too early). - Timer log messages now show "VPS" if this is a VPS timer. - Fixed getting the present EPG event in case none is currently 'running' (it then returns the one that just ended). - Fixed calling a plugin's main menu function while a message is being displayed (reported by Helmut Auer). - Updated the Russian OSD texts (thanks to Oleg Roitburd). - Made cMenuRecordings::GetRecording() 'protected' (suggested by Marius Heidenstecker). - Speeded up cRemux::ScanVideoPacket() (thanks to Reinhard Nissl). - Enhanced logging EPG event data. - Fixed format string handling (thanks to Darren Salt). - The new function cDevice::ForceTransferMode() can be used to force the primary device into transfer mode (thanks to Reinhard Nissl). - The 'version' of EPG events is now ignored when reading EPG data from 'epg.data' or via SVDRP/PUTE to avoid problems with double EPG events. - The 'running status' of EPG events is now only set to SI::RunningStatusNotRunning for events before the present event. - Fixed some #include sequences. - Single shot VPS timers are now only considered 'expired' if their associated EPG event has been explicitly set to SI::RunningStatusNotRunning. - The check for timers to be deleted is now done only every 30 seconds.
Diffstat (limited to 'menu.c')
-rw-r--r--menu.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/menu.c b/menu.c
index d15c017..f3c9fab 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.422 2006/02/25 15:41:40 kls Exp $
+ * $Id: menu.c 1.424 2006/02/28 13:58:00 kls Exp $
*/
#include "menu.h"
@@ -500,12 +500,10 @@ eOSState cMenuChannels::Delete(void)
cChannel *channel = GetChannel(Current());
int DeletedChannel = channel->Number();
// Check if there is a timer using this channel:
- for (cTimer *ti = Timers.First(); ti; ti = Timers.Next(ti)) {
- if (ti->Channel() == channel) {
- Skins.Message(mtError, tr("Channel is being used by a timer!"));
- return osContinue;
- }
- }
+ if (channel->HasTimer()) {
+ Skins.Message(mtError, tr("Channel is being used by a timer!"));
+ return osContinue;
+ }
if (Interface->Confirm(tr("Delete channel?"))) {
Channels.Del(channel);
cOsdMenu::Del(Index);
@@ -690,8 +688,8 @@ eOSState cMenuEditTimer::ProcessKey(eKeys Key)
*timer = data;
if (addIfConfirmed)
Timers.Add(timer);
- timer->Matches();
timer->SetEventFromSchedule();
+ timer->Matches();
Timers.SetModified();
isyslog("timer %s %s (%s)", *timer->ToDescr(), addIfConfirmed ? "added" : "modified", timer->HasFlags(tfActive) ? "active" : "inactive");
addIfConfirmed = false;
@@ -787,8 +785,10 @@ cMenuTimers::cMenuTimers(void)
:cOsdMenu(tr("Timers"), 2, CHNUMWIDTH, 10, 6, 6)
{
helpKeys = -1;
- for (cTimer *timer = Timers.First(); timer; timer = Timers.Next(timer))
+ for (cTimer *timer = Timers.First(); timer; timer = Timers.Next(timer)) {
+ timer->SetEventFromSchedule(); // make sure the event is current
Add(new cMenuTimerItem(timer));
+ }
Sort();
SetCurrent(First());
SetHelpKeys();
@@ -900,7 +900,7 @@ eOSState cMenuTimers::ProcessKey(eKeys Key)
case kOk: return Edit();
case kRed: state = OnOff(); break; // must go through SetHelpKeys()!
case kGreen: return New();
- case kYellow: return Delete();
+ case kYellow: state = Delete(); break;
case kBlue: return Info();
break;
default: break;