Bin ja schon wieder da... Hektiker...
Nur gut, saß ich dieses Feature selber nicht brauche - verstehen würde ich es vermutlich auf Anhieb nicht...
Ok, zur Erklärung:
Das System merkt sich bei jeder User-Aktivität, dass es in Now+MinUserInactivity (default 3h) davon ausgehen kann, dass kein User mehr da ist. Das beinhaltet auch, dass zum Zeitpunkt activeTimeout-5min der Countdown startet.
Die Funktion erlaubt nun zusätzlich, statt MinUserInactivity eine andere Zeitspanne anzugeben. Ist aber MinUserInactivity=0, hat der User ja kundgetan, dass er überhaupt nicht möchte, dass das System von selbst inaktiv wird, deswegen wird der Aufruf dann ignoriert. Aber selbst mit MinUserInactivity=0 kann der User noch auf den Powerbutton drücken, und so seine Abwesenheit kundtun (insbes. wenn kein Shutdown-Skript angegeben ist), deswegen ist es erforderlich, sich notfalls an MinUserInactivity=0 vorbei zu schummeln.
Ehrlich gesagt greift mir "Urig"s Patch zum jetzigen Zeitpunkt zu tief ein. Ich wollte eigentlich für die Version 2.0 keine großartigen funktionellen Änderungen mehr machen, und da die Shutdown-Funktion bisher anscheinend problemlos funktioniert hat, möchte ich nicht riskieren, sie im letzten Moment noch "kaputtzuändern".
"S:oren"s Änderung dagegen würde mir simpel genug erscheinen um sie noch mit reinzunehmen.
Auch wenn mein Patch auf den ersten Blick komplexer scheint, greift er eher weniger tief ein, als S:oren's Patch. Beide führen den Sonderfall activeTimeout=1 ( = 1.1.1970 00:00:01 Uhr) für einen unbekannten, in der Vergangenheit liegenden Zeitpunkt ein. Der Unterschied ist, dass mein Patch diesen Sonderfall nur beim Programmstart verwendet, S:oren's auch bei bestimmten Fällen des Powerbuttons. Meine Version führt noch formal die Sonderparameter -2 und -3 ein, die vorher undefiniert waren, und wie -1 interpretiert wurden. Extrem unwahrscheinlich, dass diese Sonderfälle schon mal genutzt wurden. Der Rest sind Kommentare, die nur zur Klarstellung dienen.
Nur mal interessehalber: Wo wird denn die Information benutzt, seit wann der User inaktiv ist? Habe nichts gefunden, habs aber vielleicht uebersehen.
In VDR gar nicht, aber es ist direkt über GetUserInactiveTime und indirekt über IsUserInactive für Plugins abfragbar. Es würde z.B. dem hddevice erlauben, mit IsUserInactive(time(NULL)-10) gezielt 10 Sekunden später erst den Bildschirm abzuschalten, damit man noch Zeit hat, die letzte Meldung zu lesen.
Gruß,
Udo