rules: add more debugging output for rules
This commit is contained in:
parent
2890966b3f
commit
6cbd45a1c0
|
@ -418,6 +418,8 @@ class Rule(RuleComponent):
|
||||||
return 'Rule%s[%s]' % (source, ', '.join([c.__str__() for c in self.components]))
|
return 'Rule%s[%s]' % (source, ', '.join([c.__str__() for c in self.components]))
|
||||||
|
|
||||||
def evaluate(self, feature, notification, device, status, last_result):
|
def evaluate(self, feature, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate rule: %s', self)
|
||||||
result = True
|
result = True
|
||||||
for component in self.components:
|
for component in self.components:
|
||||||
result = component.evaluate(feature, notification, device, status, result)
|
result = component.evaluate(feature, notification, device, status, result)
|
||||||
|
@ -444,6 +446,8 @@ class Condition(RuleComponent):
|
||||||
return 'CONDITION'
|
return 'CONDITION'
|
||||||
|
|
||||||
def evaluate(self, feature, notification, device, status, last_result):
|
def evaluate(self, feature, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
@ -459,6 +463,8 @@ class Not(Condition):
|
||||||
return 'Not: ' + str(self.component)
|
return 'Not: ' + str(self.component)
|
||||||
|
|
||||||
def evaluate(self, feature, notification, device, status, last_result):
|
def evaluate(self, feature, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
result = self.component.evaluate(feature, notification, device, status, last_result)
|
result = self.component.evaluate(feature, notification, device, status, last_result)
|
||||||
return None if result is None else not result
|
return None if result is None else not result
|
||||||
|
|
||||||
|
@ -475,6 +481,8 @@ class Or(Condition):
|
||||||
return 'Or: [' + ', '.join(str(c) for c in self.components) + ']'
|
return 'Or: [' + ', '.join(str(c) for c in self.components) + ']'
|
||||||
|
|
||||||
def evaluate(self, feature, notification, device, status, last_result):
|
def evaluate(self, feature, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
result = False
|
result = False
|
||||||
for component in self.components:
|
for component in self.components:
|
||||||
result = component.evaluate(feature, notification, device, status, last_result)
|
result = component.evaluate(feature, notification, device, status, last_result)
|
||||||
|
@ -497,6 +505,8 @@ class And(Condition):
|
||||||
return 'And: [' + ', '.join(str(c) for c in self.components) + ']'
|
return 'And: [' + ', '.join(str(c) for c in self.components) + ']'
|
||||||
|
|
||||||
def evaluate(self, feature, notification, device, status, last_result):
|
def evaluate(self, feature, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
result = True
|
result = True
|
||||||
for component in self.components:
|
for component in self.components:
|
||||||
result = component.evaluate(feature, notification, device, status, last_result)
|
result = component.evaluate(feature, notification, device, status, last_result)
|
||||||
|
@ -558,6 +568,8 @@ class Process(Condition):
|
||||||
return 'Process: ' + str(self.process)
|
return 'Process: ' + str(self.process)
|
||||||
|
|
||||||
def evaluate(self, feature, notification, device, status, last_result):
|
def evaluate(self, feature, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
if not isinstance(self.process, str):
|
if not isinstance(self.process, str):
|
||||||
return False
|
return False
|
||||||
focus = x11_focus_prog()
|
focus = x11_focus_prog()
|
||||||
|
@ -584,6 +596,8 @@ class MouseProcess(Condition):
|
||||||
return 'MouseProcess: ' + str(self.process)
|
return 'MouseProcess: ' + str(self.process)
|
||||||
|
|
||||||
def evaluate(self, feature, notification, device, status, last_result):
|
def evaluate(self, feature, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
if not isinstance(self.process, str):
|
if not isinstance(self.process, str):
|
||||||
return False
|
return False
|
||||||
pointer_focus = x11_pointer_prog()
|
pointer_focus = x11_pointer_prog()
|
||||||
|
@ -607,6 +621,8 @@ class Feature(Condition):
|
||||||
return 'Feature: ' + str(self.feature)
|
return 'Feature: ' + str(self.feature)
|
||||||
|
|
||||||
def evaluate(self, feature, notification, device, status, last_result):
|
def evaluate(self, feature, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
return feature == self.feature
|
return feature == self.feature
|
||||||
|
|
||||||
def data(self):
|
def data(self):
|
||||||
|
@ -627,6 +643,8 @@ class Report(Condition):
|
||||||
return 'Report: ' + str(self.report)
|
return 'Report: ' + str(self.report)
|
||||||
|
|
||||||
def evaluate(self, report, notification, device, status, last_result):
|
def evaluate(self, report, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
return (notification.address >> 4) == self.report
|
return (notification.address >> 4) == self.report
|
||||||
|
|
||||||
def data(self):
|
def data(self):
|
||||||
|
@ -648,6 +666,8 @@ class Setting(Condition):
|
||||||
return 'Setting: ' + ' '.join([str(a) for a in self.args])
|
return 'Setting: ' + ' '.join([str(a) for a in self.args])
|
||||||
|
|
||||||
def evaluate(self, report, notification, device, status, last_result):
|
def evaluate(self, report, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
if len(self.args) < 3:
|
if len(self.args) < 3:
|
||||||
return None
|
return None
|
||||||
dev = _Device.find(self.args[0]) if self.args[0] is not None else device
|
dev = _Device.find(self.args[0]) if self.args[0] is not None else device
|
||||||
|
@ -698,6 +718,8 @@ class Modifiers(Condition):
|
||||||
return 'Modifiers: ' + str(self.desired)
|
return 'Modifiers: ' + str(self.desired)
|
||||||
|
|
||||||
def evaluate(self, feature, notification, device, status, last_result):
|
def evaluate(self, feature, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
if gkeymap:
|
if gkeymap:
|
||||||
current = gkeymap.get_modifier_state() # get the current keyboard modifier
|
current = gkeymap.get_modifier_state() # get the current keyboard modifier
|
||||||
return self.desired == (current & MODIFIER_MASK)
|
return self.desired == (current & MODIFIER_MASK)
|
||||||
|
@ -753,6 +775,8 @@ class Key(Condition):
|
||||||
return 'Key: %s (%s)' % ((str(self.key) if self.key else 'None'), self.action)
|
return 'Key: %s (%s)' % ((str(self.key) if self.key else 'None'), self.action)
|
||||||
|
|
||||||
def evaluate(self, feature, notification, device, status, last_result):
|
def evaluate(self, feature, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
return bool(self.key and self.key == (key_down if self.action == self.DOWN else key_up))
|
return bool(self.key and self.key == (key_down if self.action == self.DOWN else key_up))
|
||||||
|
|
||||||
def data(self):
|
def data(self):
|
||||||
|
@ -784,6 +808,8 @@ class KeyIsDown(Condition):
|
||||||
return 'KeyIsDown: %s' % (str(self.key) if self.key else 'None')
|
return 'KeyIsDown: %s' % (str(self.key) if self.key else 'None')
|
||||||
|
|
||||||
def evaluate(self, feature, notification, device, status, last_result):
|
def evaluate(self, feature, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
return key_is_down(self.key)
|
return key_is_down(self.key)
|
||||||
|
|
||||||
def data(self):
|
def data(self):
|
||||||
|
@ -838,6 +864,8 @@ class Test(Condition):
|
||||||
return 'Test: ' + str(self.test)
|
return 'Test: ' + str(self.test)
|
||||||
|
|
||||||
def evaluate(self, feature, notification, device, status, last_result):
|
def evaluate(self, feature, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
return self.function(feature, notification.address, notification.data, self.parameter)
|
return self.function(feature, notification.address, notification.data, self.parameter)
|
||||||
|
|
||||||
def data(self):
|
def data(self):
|
||||||
|
@ -861,6 +889,8 @@ class TestBytes(Condition):
|
||||||
return 'TestBytes: ' + str(self.test)
|
return 'TestBytes: ' + str(self.test)
|
||||||
|
|
||||||
def evaluate(self, feature, notification, device, status, last_result):
|
def evaluate(self, feature, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
return self.function(feature, notification.address, notification.data)
|
return self.function(feature, notification.address, notification.data)
|
||||||
|
|
||||||
def data(self):
|
def data(self):
|
||||||
|
@ -886,6 +916,8 @@ class MouseGesture(Condition):
|
||||||
return 'MouseGesture: ' + ' '.join(self.movements)
|
return 'MouseGesture: ' + ' '.join(self.movements)
|
||||||
|
|
||||||
def evaluate(self, feature, notification, device, status, last_result):
|
def evaluate(self, feature, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
if feature == _F.MOUSE_GESTURE:
|
if feature == _F.MOUSE_GESTURE:
|
||||||
d = notification.data
|
d = notification.data
|
||||||
data = _unpack('!' + (int(len(d) / 2) * 'h'), d)
|
data = _unpack('!' + (int(len(d) / 2) * 'h'), d)
|
||||||
|
@ -927,6 +959,8 @@ class Active(Condition):
|
||||||
return 'Active: ' + str(self.devID)
|
return 'Active: ' + str(self.devID)
|
||||||
|
|
||||||
def evaluate(self, feature, notification, device, status, last_result):
|
def evaluate(self, feature, notification, device, status, last_result):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluate condition: %s', self)
|
||||||
dev = _Device.find(self.devID)
|
dev = _Device.find(self.devID)
|
||||||
return bool(dev and dev.ping())
|
return bool(dev and dev.ping())
|
||||||
|
|
||||||
|
@ -1282,6 +1316,12 @@ def key_is_down(key):
|
||||||
return key in keys_down
|
return key in keys_down
|
||||||
|
|
||||||
|
|
||||||
|
def evaluate_rules(feature, notification, device, status):
|
||||||
|
if _log.isEnabledFor(_DEBUG):
|
||||||
|
_log.debug('evaluating rules on %s', notification)
|
||||||
|
rules.evaluate(feature, notification, device, status, True)
|
||||||
|
|
||||||
|
|
||||||
# process a notification
|
# process a notification
|
||||||
def process_notification(device, status, notification, feature):
|
def process_notification(device, status, notification, feature):
|
||||||
global keys_down, g_keys_down, m_keys_down, mr_key_down, key_down, key_up, thumb_wheel_displacement
|
global keys_down, g_keys_down, m_keys_down, mr_key_down, key_down, key_up, thumb_wheel_displacement
|
||||||
|
@ -1328,7 +1368,7 @@ def process_notification(device, status, notification, feature):
|
||||||
thumb_wheel_displacement = 0
|
thumb_wheel_displacement = 0
|
||||||
thumb_wheel_displacement += signed(notification.data[0:2])
|
thumb_wheel_displacement += signed(notification.data[0:2])
|
||||||
|
|
||||||
GLib.idle_add(rules.evaluate, feature, notification, device, status, True)
|
GLib.idle_add(evaluate_rules, feature, notification, device, status)
|
||||||
|
|
||||||
|
|
||||||
_XDG_CONFIG_HOME = _os.environ.get('XDG_CONFIG_HOME') or _path.expanduser(_path.join('~', '.config'))
|
_XDG_CONFIG_HOME = _os.environ.get('XDG_CONFIG_HOME') or _path.expanduser(_path.join('~', '.config'))
|
||||||
|
|
Loading…
Reference in New Issue