summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2008-02-15 16:13:10 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2008-02-15 16:13:10 +0100
commit6bef17cdecfc0f195409df6778cfa79293e9962c (patch)
tree5795208ac917ab18513542a953f5baf3a14f7d99
parenta81e3699d13527ac8651969ddf0e0e411915d313 (diff)
downloadvdr-6bef17cdecfc0f195409df6778cfa79293e9962c.tar.gz
vdr-6bef17cdecfc0f195409df6778cfa79293e9962c.tar.bz2
When deleting the recording that is currently replayed, the replay is now stopped immediately
-rw-r--r--CONTRIBUTORS4
-rw-r--r--HISTORY3
-rw-r--r--menu.c4
-rw-r--r--recording.c12
4 files changed, 17 insertions, 6 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index a9f9f5c0..16fa7cc9 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -2288,3 +2288,7 @@ Winfried Koehler <w_koehl@gmx.de>
Hans-Werner Hilse <hilse@web.de>
for adding the command line option --userdump to enable core dumps in case VDR
is run as root with option -u
+
+Mikko Matilainen <mikkom@iki.fi>
+ for reporting a possible crash if the Info key is pressed after deleting the
+ currently replayed recording
diff --git a/HISTORY b/HISTORY
index 56740ac3..d4a293cd 100644
--- a/HISTORY
+++ b/HISTORY
@@ -5620,3 +5620,6 @@ Video Disk Recorder Revision History
for pointing out a possible problem if the return value is not checked).
Plugin authors may want to consider doing the same. For convenience there is now
an additional version of cString::sprintf() that accepts a va_list parameter.
+- When deleting the recording that is currently replayed, the replay is now
+ stopped immediately (thanks to Mikko Matilainen for reporting a possible crash
+ if the Info key is pressed after deleting the currently replayed recording).
diff --git a/menu.c b/menu.c
index c00dc667..486eedb5 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.474 2008/02/10 16:02:02 kls Exp $
+ * $Id: menu.c 1.475 2008/02/15 16:06:56 kls Exp $
*/
#include "menu.h"
@@ -2084,6 +2084,8 @@ eOSState cMenuRecordings::Delete(void)
}
cRecording *recording = GetRecording(ri);
if (recording) {
+ if (cReplayControl::NowReplaying() && strcmp(cReplayControl::NowReplaying(), ri->FileName()) == 0)
+ cControl::Shutdown();
if (recording->Delete()) {
cReplayControl::ClearLastReplayed(ri->FileName());
Recordings.DelByName(ri->FileName());
diff --git a/recording.c b/recording.c
index 096e0f85..894757c7 100644
--- a/recording.c
+++ b/recording.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: recording.c 1.159 2008/02/10 21:57:09 kls Exp $
+ * $Id: recording.c 1.160 2008/02/15 15:50:06 kls Exp $
*/
#include "recording.h"
@@ -987,10 +987,12 @@ bool cRecordings::Update(bool Wait)
cRecording *cRecordings::GetByName(const char *FileName)
{
- for (cRecording *recording = First(); recording; recording = Next(recording)) {
- if (strcmp(recording->FileName(), FileName) == 0)
- return recording;
- }
+ if (FileName) {
+ for (cRecording *recording = First(); recording; recording = Next(recording)) {
+ if (strcmp(recording->FileName(), FileName) == 0)
+ return recording;
+ }
+ }
return NULL;
}