diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2020-06-16 14:33:32 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2020-06-16 14:33:32 +0200 |
commit | ba9ccc12a5ec96dd07654417b378257200958d17 (patch) | |
tree | 1497355794ea0e32c58cdf16e34194620921da1d | |
parent | 67ea2163f41de6f0b42a32c25e82c7ea23b8570f (diff) | |
download | vdr-ba9ccc12a5ec96dd07654417b378257200958d17.tar.gz vdr-ba9ccc12a5ec96dd07654417b378257200958d17.tar.bz2 |
Added cMtdHandler::StopDecrypting()
-rw-r--r-- | CONTRIBUTORS | 1 | ||||
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | ci.c | 8 | ||||
-rw-r--r-- | mtd.c | 12 | ||||
-rw-r--r-- | mtd.h | 4 |
5 files changed, 20 insertions, 6 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 61999e43..59b1884d 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -3598,6 +3598,7 @@ Helmut Binder <cco@aon.at> override character table for adding codes for more languages and special audio tracks for adding cMtdCamSlot::TsPostProcess() + for adding cMtdHandler::StopDecrypting() Ulrich Eckhardt <uli@uli-eckhardt.de> for reporting a problem with shutdown after user inactivity in case a plugin is @@ -9470,3 +9470,4 @@ Video Disk Recorder Revision History Herdler). - Added codes for more languages and special audio tracks (thanks to Helmut Binder). - Added cMtdCamSlot::TsPostProcess() (thanks to Helmut Binder). +- Added cMtdHandler::StopDecrypting() (thanks to Helmut Binder). @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: ci.c 4.27 2020/06/16 14:25:43 kls Exp $ + * $Id: ci.c 4.28 2020/06/16 14:33:32 kls Exp $ */ #include "ci.h" @@ -2757,9 +2757,13 @@ void cCamSlot::StartDecrypting(void) void cCamSlot::StopDecrypting(void) { cMutexLock MutexLock(&mutex); + if (mtdHandler) { + mtdHandler->StopDecrypting(); + return; + } if (caProgramList.Count()) { caProgramList.Clear(); - if (!dynamic_cast<cMtdCamSlot *>(this)) + if (!dynamic_cast<cMtdCamSlot *>(this) || !MasterSlot()->IsDecrypting()) SendCaPmt(CPCI_NOT_SELECTED); } } @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: mtd.c 1.15 2020/06/16 14:25:43 kls Exp $ + * $Id: mtd.c 1.16 2020/06/16 14:33:32 kls Exp $ */ #include "mtd.h" @@ -112,6 +112,14 @@ void cMtdHandler::StartDecrypting(void) } } +void cMtdHandler::StopDecrypting(void) +{ + for (int i = 0; i < camSlots.Size(); i++) { + if (camSlots[i]->Device()) + camSlots[i]->StopDecrypting(); + } +} + void cMtdHandler::CancelActivation(void) { for (int i = 0; i < camSlots.Size(); i++) @@ -292,8 +300,6 @@ void cMtdCamSlot::StartDecrypting(void) void cMtdCamSlot::StopDecrypting(void) { cCamSlot::StopDecrypting(); - if (!MasterSlot()->IsDecrypting()) - MasterSlot()->StopDecrypting(); cMutexLock MutexLock(&clearMutex); mtdMapper->Clear(); mtdBuffer->Clear(); @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: mtd.h 1.10 2020/06/16 14:25:43 kls Exp $ + * $Id: mtd.h 1.11 2020/06/16 14:33:32 kls Exp $ */ #ifndef __MTD_H @@ -132,6 +132,8 @@ public: ///< Returns true if any of the active MTD CAM slots is currently decrypting. void StartDecrypting(void); ///< Tells all active MTD CAM slots to start decrypting. + void StopDecrypting(void); + ///< Tells all active MTD CAM slots to stop decrypting. void CancelActivation(void); ///< Tells all active MTD CAM slots to cancel activation. bool IsActivating(void); |