1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Fixed ejecting a DVD while it is being replayed

This commit is contained in:
Klaus Schmidinger 2001-11-04 10:47:37 +01:00
parent 34721bcac5
commit 56565721af
2 changed files with 11 additions and 2 deletions

View File

@ -831,7 +831,7 @@ Video Disk Recorder Revision History
- Fixed handling trick modes near the beginning and end of a recording. - Fixed handling trick modes near the beginning and end of a recording.
- Pressing the "Back" button while replaying a DVD now leads to the DVD menu. - Pressing the "Back" button while replaying a DVD now leads to the DVD menu.
2001-11-03: Version 0.98 2001-11-04: Version 0.98
- Completed storing the current audio volume in the setup.conf file (thanks - Completed storing the current audio volume in the setup.conf file (thanks
to Andy Grobb). to Andy Grobb).
@ -859,3 +859,4 @@ Video Disk Recorder Revision History
- Added a fifth parameter to the 'shutdown' call that indicates the reason for - Added a fifth parameter to the 'shutdown' call that indicates the reason for
this shutdown request (see INSTALL). this shutdown request (see INSTALL).
- Fixed releasing 'index' memory after recording or playback. - Fixed releasing 'index' memory after recording or playback.
- Fixed ejecting a DVD while it is being replayed.

10
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: menu.c 1.138 2001/10/28 17:06:34 kls Exp $ * $Id: menu.c 1.139 2001/11/04 10:37:18 kls Exp $
*/ */
#include "menu.h" #include "menu.h"
@ -1937,6 +1937,14 @@ eOSState cMenuMain::ProcessKey(eKeys Key)
#ifdef DVDSUPPORT #ifdef DVDSUPPORT
case kYellow: if (!HasSubMenu()) { case kYellow: if (!HasSubMenu()) {
if (cDVD::DiscOk()) { if (cDVD::DiscOk()) {
// We need to stop replaying a DVD before ejecting,
// otherwise the replay thread crashes. Currently
// checking LastReplayed() is pretty much the only way
// of finding out whether we are currently replaying a DVD
// (i.e. if LastReplayed() returns non-NULL, we are either
// replaying a normal recording, or nothing at all):
if (!cReplayControl::LastReplayed())
cDvbApi::PrimaryDvbApi->StopReplay();
cDVD::Eject(); cDVD::Eject();
state = osEnd; state = osEnd;
} }