Hello All,
 
   I am curious how vdr's tuning algorithm, in general, works. With all the refactoring that has gone on with how vdr tunes, locks, retunes, and otherwise tries to anticipate various forms of interference, storms, or other activities that could hinder vdr from performing its job adequitely, please describe, in pseudocode, how the tuning algorythm actually works. 
 
Some of my questions are:
 
1) What do all the tuning timers mean? There are some constants in vdr code,  what are the meanings of each tuning state? (i.e. the switch statement in dvbdevice.c.
2) Given that we understand what all the timers do, which ones depend on eachother? What are safe limits for each timer? For example, one timer is the DVBS_TUNE_TIMEOUT that traditionally is set to 9000 (miliseconds) but at times it takes my dvb card upwards of 18 seconds to actually tune the channel (so I might wish to set this to 19000 instead of 9000). What other timers need to be adjusted if any to account for this?
3) Does vdr care or know anything about a rotor setup where the channel isn't always present the moment the diseqc commands are sent?
4) There has been some talk in the past about refactoring this process some, do we think the current approach is the best approach? Does vdr-1.5.x plan to offer new and improved tuning algos?
 
Best Regards.