summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2001-11-04 10:47:37 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2001-11-04 10:47:37 +0100
commit56565721af5697a51da0efc9268ae3893f9a5e29 (patch)
treeb25e7236c8a2657b08a90fc00f2c2195be717edb
parent34721bcac5b0a6b8f98d5f5f9eee299168e5aa8e (diff)
downloadvdr-56565721af5697a51da0efc9268ae3893f9a5e29.tar.gz
vdr-56565721af5697a51da0efc9268ae3893f9a5e29.tar.bz2
Fixed ejecting a DVD while it is being replayed
-rw-r--r--HISTORY3
-rw-r--r--menu.c10
2 files changed, 11 insertions, 2 deletions
diff --git a/HISTORY b/HISTORY
index 5a75e495..07688229 100644
--- a/HISTORY
+++ b/HISTORY
@@ -831,7 +831,7 @@ Video Disk Recorder Revision History
- 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.
-2001-11-03: Version 0.98
+2001-11-04: Version 0.98
- Completed storing the current audio volume in the setup.conf file (thanks
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
this shutdown request (see INSTALL).
- Fixed releasing 'index' memory after recording or playback.
+- Fixed ejecting a DVD while it is being replayed.
diff --git a/menu.c b/menu.c
index a4a683b9..154f66cf 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.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"
@@ -1937,6 +1937,14 @@ eOSState cMenuMain::ProcessKey(eKeys Key)
#ifdef DVDSUPPORT
case kYellow: if (!HasSubMenu()) {
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();
state = osEnd;
}