From c402d57809e42137b4294185ed0b27af312f7471 Mon Sep 17 00:00:00 2001
From: Klaus Schmidinger <vdr@tvdr.de>
Date: Mon, 11 Jan 2021 10:36:05 +0100
Subject: Increased the number of possible modulation systems in
 cDevice::GetDevice()

---
 CONTRIBUTORS | 3 +++
 HISTORY      | 4 +++-
 device.c     | 4 ++--
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 32d2a621..cd242b6d 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -3673,3 +3673,6 @@ Jens Schleusener <Jens.Schleusener@fossies.org>
 
 Bernd Kuhls <bernd.kuhls@t-online.de>
  for fixing possible compilation errors with libjpeg
+
+Ulf Gr�ne <ulf.gruene@t-online.de>
+ for reporting the need for more than 15 modulation systems in cDevice::GetDevice()
diff --git a/HISTORY b/HISTORY
index 81763ebe..a465182a 100644
--- a/HISTORY
+++ b/HISTORY
@@ -9578,7 +9578,7 @@ Video Disk Recorder Revision History
   given (reported by Manuel Reimer).
 - Fixed handling $(PKG_CONFIG) in newplugin (thanks to Winfried K�hler).
 
-2021-01-07:
+2021-01-11:
 
 - Fixed strreplace() to handle NULL strings (reported by J�rgen Schneider).
 - Somewhere down the road the 'x' bit of Doxyfile.filter got lost, so the
@@ -9591,3 +9591,5 @@ Video Disk Recorder Revision History
   (reported by Manuel Reimer).
 - Fixed VPS handling when spawning a pattern timer, in case Setup.UseVps is false
   (reported by J�rgen Schneider).
+- Increased the number of possible modulation systems in cDevice::GetDevice()
+  (reported by Ulf Gr�ne).
diff --git a/device.c b/device.c
index 6b170565..7553c5ba 100644
--- a/device.c
+++ b/device.c
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: device.c 4.36 2020/09/16 13:48:33 kls Exp $
+ * $Id: device.c 5.1 2021/01/11 10:36:05 kls Exp $
  */
 
 #include "device.h"
@@ -304,7 +304,7 @@ cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool LiveView
              imp <<= 1; imp |= LiveView ? !device[i]->IsPrimaryDevice() || ndr : 0;                                  // prefer the primary device for live viewing if we don't need to detach existing receivers
              imp <<= 1; imp |= !device[i]->Receiving() && (device[i] != cTransferControl::ReceiverDevice() || device[i]->IsPrimaryDevice()) || ndr; // use receiving devices if we don't need to detach existing receivers, but avoid primary device in local transfer mode
              imp <<= 1; imp |= device[i]->Receiving();                                                               // avoid devices that are receiving
-             imp <<= 4; imp |= GetClippedNumProvidedSystems(4, device[i]) - 1;                                       // avoid cards which support multiple delivery systems
+             imp <<= 5; imp |= GetClippedNumProvidedSystems(5, device[i]) - 1;                                       // avoid cards which support multiple delivery systems
              imp <<= 1; imp |= device[i] == cTransferControl::ReceiverDevice();                                      // avoid the Transfer Mode receiver device
              imp <<= 8; imp |= device[i]->Priority() - IDLEPRIORITY;                                                 // use the device with the lowest priority (- IDLEPRIORITY to assure that values -100..99 can be used)
              imp <<= 8; imp |= ((NumUsableSlots && !HasInternalCam) ? SlotPriority[j] : IDLEPRIORITY) - IDLEPRIORITY;// use the CAM slot with the lowest priority (- IDLEPRIORITY to assure that values -100..99 can be used)
-- 
cgit v1.2.3