Now calling Hide() and cStatus::MsgReplaying(..., false) from cReplayControl::Stop()

This commit is contained in:
Klaus Schmidinger 2017-11-26 15:07:00 +01:00
parent a9d82331e6
commit 9d5ce204aa
2 changed files with 8 additions and 7 deletions

View File

@ -9205,3 +9205,6 @@ Video Disk Recorder Revision History
cControl::player to NULL in cDvbPlayerControl::Stop() to avoid a possible crash 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 with plugins that retrieve player information after a replay has been stopped, but
before the replay control has been destroyed (thanks to Johann Friedrich). 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.

12
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 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" #include "menu.h"
@ -5476,8 +5476,6 @@ cReplayControl::cReplayControl(bool PauseLive)
cReplayControl::~cReplayControl() cReplayControl::~cReplayControl()
{ {
cDevice::PrimaryDevice()->SetKeepTracks(false); cDevice::PrimaryDevice()->SetKeepTracks(false);
Hide();
cStatus::MsgReplaying(this, NULL, fileName, false);
Stop(); Stop();
if (currentReplayControl == this) if (currentReplayControl == this)
currentReplayControl = NULL; currentReplayControl = NULL;
@ -5485,6 +5483,8 @@ cReplayControl::~cReplayControl()
void cReplayControl::Stop(void) void cReplayControl::Stop(void)
{ {
Hide();
cStatus::MsgReplaying(this, NULL, fileName, false);
if (Setup.DelTimeshiftRec && *fileName) { if (Setup.DelTimeshiftRec && *fileName) {
cRecordControl* rc = cRecordControls::GetRecordControl(fileName); cRecordControl* rc = cRecordControls::GetRecordControl(fileName);
if (rc && rc->InstantId()) { if (rc && rc->InstantId()) {
@ -5940,8 +5940,7 @@ eOSState cReplayControl::ProcessKey(eKeys Key)
SkipSeconds(Setup.SkipSecondsRepeat); break; SkipSeconds(Setup.SkipSecondsRepeat); break;
case kYellow: SkipSeconds(Setup.SkipSeconds); break; case kYellow: SkipSeconds(Setup.SkipSeconds); break;
case kStop: case kStop:
case kBlue: Hide(); case kBlue: Stop();
Stop();
return osEnd; return osEnd;
default: { default: {
DoShowMode = false; DoShowMode = false;
@ -5985,8 +5984,7 @@ eOSState cReplayControl::ProcessKey(eKeys Key)
else else
Show(); Show();
break; break;
case kBack: Hide(); case kBack: Stop();
Stop();
return osRecordings; return osRecordings;
default: return osUnknown; default: return osUnknown;
} }