initial app helpers completed - moving to make the default apps next.

This commit is contained in:
Lucas Oskorep
2022-08-31 20:11:29 -04:00
parent 0136c1a1a4
commit 93e3e1eadc
27 changed files with 732 additions and 180 deletions
+61
View File
@@ -0,0 +1,61 @@
import json
from .config_item import ConfigItem
class Config(object):
def __init__(self, save_file):
self._data = {}
self._items = {}
self._save_file = save_file
def load(self, default_config=None):
try:
f = open(self._save_file, "r")
self._data = json.load(f)
self._items = {}
for key, value in self._data.items():
self._items[key] = ConfigItem.from_json(key, value)
except Exception as e:
print(e)
self._items = {}
self._data = {}
if default_config:
for item in default_config._items:
if not (item in self._items):
self._items[item] = default_config._items[item]
return self
def get_items(self):
return self._items
def get_item_by_name(self, key):
if key in self._items:
return self._items[key]
else:
return None
def set_item(self, config_item: ConfigItem):
self._items[config_item.name] = config_item
return self
def save(self):
save_format = {}
for name, item in self._items.items():
save_format[name] = item.to_json()
with open(self._save_file, "w") as f:
json.dump(save_format, f)
self._data = save_format
return self
def key_tone_enabled(self):
return self.get_item_by_name("key_tone").value
def key_tone_hz(self):
return self.get_item_by_name("key_tone_hz").value if self.key_tone_enabled() else 0
def brightness(self):
return self.get_item_by_name("brightness").value
def debug_app_enabled(self):
return self.get_item_by_name("debug_app").value