aboutsummaryrefslogtreecommitdiff
path: root/json_layer.py
diff options
context:
space:
mode:
Diffstat (limited to 'json_layer.py')
-rw-r--r--json_layer.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/json_layer.py b/json_layer.py
index 8d12681..9e98fc3 100644
--- a/json_layer.py
+++ b/json_layer.py
@@ -8,6 +8,7 @@
#
+from supervisor import ticks_ms
from kmk.keys import Key, KC
from kmk.modules.macros import Delay, Macros, Tap
@@ -83,11 +84,15 @@ operators["no_press"] = no_press
class Layer(object):
""" Layer as an object.
This class gives the property name in addition of the keymap list
+
+ This layer keep a track of the last time the layer was updated. This is
+ used as timer in order to put the device in sleep mode or not.
"""
def __init__(self):
- self.name = ""
self.keys = []
+ self._name = ""
+ self.timer_start = ticks_ms()
def load(self, json_data):
""" Load the json dictionnary into the layer. The dictionnary shall be
@@ -101,6 +106,7 @@ class Layer(object):
The dictionnary must be one of the operators declared above.
"""
+ self.timer_start = ticks_ms()
for name, keys in json_data.items():
self.name = name
self.keys = list(map(key_of_json, keys))
@@ -114,3 +120,12 @@ class Layer(object):
""" Compare two layer by the name only
"""
return self.name == other.name
+
+ @property
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, value):
+ self.timer_start = ticks_ms()
+ self._name = value