Fixed deleting the last recording in the 'Recordings' menu, which started pausing live video

This commit is contained in:
Klaus Schmidinger 2003-04-26 13:53:50 +02:00
parent fd0774c811
commit a86ed8181b
3 changed files with 13 additions and 5 deletions

View File

@ -592,3 +592,7 @@ Thomas Koch <tom@harhar.net>
Stefan Hußfeldt <vdr@marvin.on-luebeck.de>
for his help in keeping 'channels.conf.cable' up to date
Christoph Friederich <christoph.friederich@gmx.de>
for reporting a bug in deleting the last recording in the "Recordings" menu, which
started pausing live video

View File

@ -2065,3 +2065,5 @@ Video Disk Recorder Revision History
with the audio PIDs, because this is not an alternate PID, but rather an
additional, necessary PID. In order to use this feature you need a driver version
dated 2003-04-27 or higher (setting the PCR PID didn't work in earlier versions).
- Fixed deleting the last recording in the "Recordings" menu, which started pausing
live video (thanks to Christoph Friederich for reporting this one).

12
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.238 2003/04/26 11:50:14 kls Exp $
* $Id: menu.c 1.239 2003/04/26 13:51:19 kls Exp $
*/
#include "menu.h"
@ -2496,8 +2496,10 @@ void cMenuMain::Set(const char *Plugin)
eOSState cMenuMain::ProcessKey(eKeys Key)
{
bool HadSubMenu = HasSubMenu();
int osdLanguage = Setup.OSDLanguage;
eOSState state = cOsdMenu::ProcessKey(Key);
HadSubMenu |= HasSubMenu();
switch (state) {
case osSchedule: return AddSubMenu(new cMenuSchedule);
@ -2544,10 +2546,10 @@ eOSState cMenuMain::ProcessKey(eKeys Key)
break;
default: switch (Key) {
case kRecord:
case kRed: if (!HasSubMenu())
case kRed: if (!HadSubMenu)
state = osRecord;
break;
case kGreen: if (!HasSubMenu()) {
case kGreen: if (!HadSubMenu) {
int CurrentAudioTrack = -1;
const char **AudioTracks = cDevice::PrimaryDevice()->GetAudioTracks(&CurrentAudioTrack);
if (AudioTracks) {
@ -2561,10 +2563,10 @@ eOSState cMenuMain::ProcessKey(eKeys Key)
}
}
break;
case kYellow: if (!HasSubMenu())
case kYellow: if (!HadSubMenu)
state = osPause;
break;
case kBlue: if (!HasSubMenu())
case kBlue: if (!HadSubMenu)
state = replaying ? osStopReplay : cReplayControl::LastReplayed() ? osReplay : osContinue;
break;
default: break;