1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

cDevice::GetDevice() now prefers any device that's already receiving and doesn't require detatching receivers

This commit is contained in:
Klaus Schmidinger 2006-07-22 14:11:02 +02:00
parent 375aa2563a
commit 92e4e131d0
3 changed files with 6 additions and 2 deletions

View File

@ -1936,6 +1936,8 @@ Prakash Punnoor <prakash@punnoor.de>
Anssi Hannula <anssi.hannula@gmail.com>
for a patch that was used to implement processing the "frequency list descriptor"
for suggesting that cDevice::GetDevice() should prefer any device that's already
receiving and doesn't require detatching receivers
Antti Hartikainen <ami+vdr@ah.fi>
for updating 'S13E' in 'sources.conf'

View File

@ -4826,3 +4826,5 @@ Video Disk Recorder Revision History
some superfluous semicolons in ci.c (thanks to Marco Schlüßler).
- Fixed handling client side termination of SVDRP connections (thanks to Frank
Schmirler).
- cDevice::GetDevice() now prefers any device that's already receiving and doesn't
require detatching receivers (suggested by Anssi Hannula).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: device.c 1.132 2006/07/22 13:18:34 kls Exp $
* $Id: device.c 1.133 2006/07/22 14:06:11 kls Exp $
*/
#include "device.h"
@ -292,7 +292,7 @@ cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool *NeedsDe
// to their individual severity, where the one listed first will make the most
// difference, because it results in the most significant bit of the result.
uint imp = 0;
imp <<= 1; imp |= !device[i]->Receiving() || ndr; // use receiving devices if we don't need to detach existing receivers
imp <<= 1; imp |= !device[i]->Receiving(true) || ndr; // use receiving devices if we don't need to detach existing receivers
imp <<= 1; imp |= device[i]->Receiving(); // avoid devices that are receiving
imp <<= 1; imp |= device[i] == ActualDevice(); // avoid the actual device (in case of Transfer Mode)
imp <<= 1; imp |= device[i]->IsPrimaryDevice(); // avoid the primary device