Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

"""LICENSE 

Copyright 2019 Hermann Krumrey <hermann@krumreyh.com> 

 

This file is part of nasharia-led-remote. 

 

nasharia-led-remote is free software: you can redistribute it and/or modify 

it under the terms of the GNU General Public License as published by 

the Free Software Foundation, either version 3 of the License, or 

(at your option) any later version. 

 

nasharia-led-remote is distributed in the hope that it will be useful, 

but WITHOUT ANY WARRANTY; without even the implied warranty of 

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

GNU General Public License for more details. 

 

You should have received a copy of the GNU General Public License 

along with nasharia-led-remote. If not, see <http://www.gnu.org/licenses/>. 

LICENSE""" 

 

import os 

import json 

from typing import Dict, Any 

 

config_dir = os.path.join(os.path.expanduser("~"), ".config/led-remote") 

""" 

The directory containing configuration data for this application 

""" 

 

state_file = os.path.join(config_dir, "state.json") 

""" 

The file in which state variables are stored 

""" 

 

 

def get_state() -> Dict[str, Any]: 

""" 

Retrieves the current state variables from the state file 

:return: A dictionary containing the current state 

""" 

with open(state_file, "r") as f: 

return json.load(f) 

 

 

def set_state(state: Dict[str, Any]): 

""" 

Sets the state file tot the values of a dictionary 

:param state: The new state data 

:return: None 

""" 

with open(state_file, "w") as f: 

json.dump(state, f) 

 

 

def is_on() -> bool: 

""" 

Checks whether or not the LEDs are currently on 

:return: True if on, False if off 

""" 

return bool(get_state()["power"]) 

 

 

def set_power_state(state: bool): 

""" 

Sets the power state 

:param state: The power state 

:return: None 

""" 

old = get_state() 

old["power"] = state 

set_state(old)