summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY3
-rw-r--r--menu.c12
2 files changed, 8 insertions, 7 deletions
diff --git a/HISTORY b/HISTORY
index dbaa40e3..4dade437 100644
--- a/HISTORY
+++ b/HISTORY
@@ -9205,3 +9205,6 @@ Video Disk Recorder Revision History
cControl::player to NULL in cDvbPlayerControl::Stop() to avoid a possible crash
with plugins that retrieve player information after a replay has been stopped, but
before the replay control has been destroyed (thanks to Johann Friedrich).
+- Now calling Hide() and cStatus::MsgReplaying(..., false) from cReplayControl::Stop(),
+ to inform plugins about an ending replay session before the replay control gets
+ destroyed.
diff --git a/menu.c b/menu.c
index f69f25ec..f5545edc 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 4.44 2017/11/09 14:56:38 kls Exp $
+ * $Id: menu.c 4.45 2017/11/26 15:07:00 kls Exp $
*/
#include "menu.h"
@@ -5476,8 +5476,6 @@ cReplayControl::cReplayControl(bool PauseLive)
cReplayControl::~cReplayControl()
{
cDevice::PrimaryDevice()->SetKeepTracks(false);
- Hide();
- cStatus::MsgReplaying(this, NULL, fileName, false);
Stop();
if (currentReplayControl == this)
currentReplayControl = NULL;
@@ -5485,6 +5483,8 @@ cReplayControl::~cReplayControl()
void cReplayControl::Stop(void)
{
+ Hide();
+ cStatus::MsgReplaying(this, NULL, fileName, false);
if (Setup.DelTimeshiftRec && *fileName) {
cRecordControl* rc = cRecordControls::GetRecordControl(fileName);
if (rc && rc->InstantId()) {
@@ -5940,8 +5940,7 @@ eOSState cReplayControl::ProcessKey(eKeys Key)
SkipSeconds(Setup.SkipSecondsRepeat); break;
case kYellow: SkipSeconds(Setup.SkipSeconds); break;
case kStop:
- case kBlue: Hide();
- Stop();
+ case kBlue: Stop();
return osEnd;
default: {
DoShowMode = false;
@@ -5985,8 +5984,7 @@ eOSState cReplayControl::ProcessKey(eKeys Key)
else
Show();
break;
- case kBack: Hide();
- Stop();
+ case kBack: Stop();
return osRecordings;
default: return osUnknown;
}