Fixed a possible 'invalid lock sequence' when switching to an unavailable channel with the main menu open

This commit is contained in:
Klaus Schmidinger 2020-07-13 08:16:41 +02:00
parent dd6077eb90
commit 88a2ef45ee
2 changed files with 6 additions and 4 deletions

View File

@ -9499,7 +9499,7 @@ Video Disk Recorder Revision History
rendered the whole code branch inactive. Now this branch is only executed for devices rendered the whole code branch inactive. Now this branch is only executed for devices
that are not bonded. that are not bonded.
2020-07-10: 2020-07-13:
- Improved deleting plugins in case the plugin uses its own memory management (thanks - Improved deleting plugins in case the plugin uses its own memory management (thanks
to Winfried Köhler). Plugins that have been compiled with previous versions of VDR to Winfried Köhler). Plugins that have been compiled with previous versions of VDR
@ -9509,3 +9509,5 @@ Video Disk Recorder Revision History
(reported by Thomas Reufer). (reported by Thomas Reufer).
- Fixed handling inactive shared CA pids (thanks to Helmut Binder). - Fixed handling inactive shared CA pids (thanks to Helmut Binder).
- Implemented handling multi packet CATs with MTD (thanks to Helmut Binder). - Implemented handling multi packet CATs with MTD (thanks to Helmut Binder).
- Fixed a possible 'invalid lock sequence' when switching to an unavailable channel
with the main menu open.

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: device.c 4.34 2020/06/27 10:24:46 kls Exp $ * $Id: device.c 4.35 2020/07/13 08:16:41 kls Exp $
*/ */
#include "device.h" #include "device.h"
@ -808,9 +808,9 @@ bool cDevice::SwitchChannel(const cChannel *Channel, bool LiveView)
for (int i = 3; i--;) { for (int i = 3; i--;) {
switch (SetChannel(Channel, LiveView)) { switch (SetChannel(Channel, LiveView)) {
case scrOk: return true; case scrOk: return true;
case scrNotAvailable: Skins.Message(mtInfo, tr("Channel not available!")); case scrNotAvailable: Skins.QueueMessage(mtInfo, tr("Channel not available!"));
return false; return false;
case scrNoTransfer: Skins.Message(mtError, tr("Can't start Transfer Mode!")); case scrNoTransfer: Skins.QueueMessage(mtError, tr("Can't start Transfer Mode!"));
return false; return false;
case scrFailed: break; // loop will retry case scrFailed: break; // loop will retry
default: esyslog("ERROR: invalid return value from SetChannel"); default: esyslog("ERROR: invalid return value from SetChannel");