Am Montag, 22. Mai 2006 20:58 schrieb Andreas Brugger:
Was this the case also with older VDR-versions? I always thought that VDR behaves the way you also expected and avoids interrupting a recording ...
Atleast with 1.3.44 and above the problem exists.
I don't have a in depth look into this code either, but shouldn't cDevice::GetDevice already only prefer device 1 (the one recording timer 2). As it loops through the devices it should give device 1 the priority 5 and as it comes to device 2 it should evaluate it to priority 7, as Priority of the device 2 is not smaller than the Priority of device 1 (which is one of the conditions for priority 5).
With 'Priority' you probably mean the variable 'pri' used in GetDevice? In the case described before, GetDevice (1.4.0) sets 'pri' to 8 for both devices: The first loop for device 1 has no previously selected device ('d') and so 'pri' is set to 8, since device 1 is receiving. In the second loop device 2 has priority bigger than device 1 and so again 'pri' is set to 8. So device 2 will be returned resulting in a short break of recording 1 with priority 45.
The idea of my patch is to stretch the pri-value to MAXPRIORITY+1 and to add the current priority of the receiving device in this case. Perhaps it would even be a better approach to add the device priority in any case if a device is currently receiving.
Christian