diff options
author | Yann Leboulanger <asterix@lagaule.org> | 2004-01-03 02:27:28 +0300 |
---|---|---|
committer | Yann Leboulanger <asterix@lagaule.org> | 2004-01-03 02:27:28 +0300 |
commit | dead744a92506cc31c040692ef4445b2e1ec3b8e (patch) | |
tree | 025edebad7228098bbc516b66abcefa09aefa99e /common | |
parent | 1776cc4b45b5b70b860108240ecfa3ce131e352a (diff) |
bugfix in autoaway + autoxa support
Diffstat (limited to 'common')
-rw-r--r-- | common/sleepy.py | 52 |
1 files changed, 22 insertions, 30 deletions
diff --git a/common/sleepy.py b/common/sleepy.py index b715ea769..e5e58442c 100644 --- a/common/sleepy.py +++ b/common/sleepy.py @@ -6,20 +6,20 @@ from string import find, lower STATE_UNKNOWN = "OS probably not supported" -STATE_SLEEPING = "Going to sleep" -STATE_ASLEEP = "asleep" -STATE_WOKEN = "waking up" +STATE_XAWAY = "extanted away" +STATE_AWAY = "away" STATE_AWAKE = "awake" NOT_SUPPORTED = 0 class Sleepy: - def __init__(self, interval = 60, devices = ['keyboard', 'mouse', 'ts'] ): + def __init__(self, interval1 = 60, interval2 = 120, devices = ['keyboard', 'mouse', 'ts'] ): self.devices = devices self.time_marker = time.time() - self.interval = self.interval_orig = interval + self.interval = self.interval_orig = interval1 + self.interval_orig2 = interval2 self.last_proc_vals = {} for dev in self.devices: self.last_proc_vals[dev] = 0 @@ -35,34 +35,26 @@ class Sleepy: def poll(self): if NOT_SUPPORTED: return -1 now = time.time() - if (now - self.time_marker >= self.interval): - self.time_marker = time.time() ## reset marker - - changed = 0 ## figure out if we have recieved interupts - for dev in self.devices: ## any of the selected devices - proc_val = self._read_proc(dev) - changed = changed or ( self.last_proc_vals[dev] != proc_val ) - self.last_proc_vals[dev] = proc_val - - if changed: - ## we are awake :) - if self.state == STATE_ASLEEP or \ - self.state == STATE_SLEEPING : - self.state = STATE_WOKEN - self.interval = self.interval_orig - else: - self.state = STATE_AWAKE - else: + changed = 0 ## figure out if we have recieved interupts + for dev in self.devices: ## any of the selected devices + proc_val = self._read_proc(dev) + changed = changed or ( self.last_proc_vals[dev] != proc_val ) + self.last_proc_vals[dev] = proc_val + + if changed: + ## we are awake :) + self.time_marker = time.time() ## reset marker + self.state = STATE_AWAKE + self.interval = self.interval_orig + else: + if (now - self.time_marker >= self.interval): ## we are asleep - if self.state == STATE_AWAKE or \ - self.state == STATE_WOKEN : - self.state = STATE_SLEEPING - ## we increase the check time as catching activity - ## is now more important - self.interval = 5 + if self.state == STATE_AWAKE: + self.state = STATE_AWAY + self.interval = self.interval_orig2 #second interval else: - self.state = STATE_ASLEEP + self.state = STATE_XAWAY return 1 def getState(self): |