diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 32d2a621..cd242b6d 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -3673,3 +3673,6 @@ Jens Schleusener Bernd Kuhls for fixing possible compilation errors with libjpeg + +Ulf Grüne + 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)