aboutsummaryrefslogtreecommitdiff
path: root/users/dennytom/chording_engine/state_machine.dot
diff options
context:
space:
mode:
Diffstat (limited to 'users/dennytom/chording_engine/state_machine.dot')
-rw-r--r--users/dennytom/chording_engine/state_machine.dot49
1 files changed, 49 insertions, 0 deletions
diff --git a/users/dennytom/chording_engine/state_machine.dot b/users/dennytom/chording_engine/state_machine.dot
new file mode 100644
index 000000000..431e6f69b
--- /dev/null
+++ b/users/dennytom/chording_engine/state_machine.dot
@@ -0,0 +1,49 @@
1digraph {
2 IDLE
3 READY
4 ACTIVATED
5 DEACTIVATED
6 PRESS_FROM_ACTIVE
7 FINISHED_FROM_ACTIVE
8 IDLE_IN_DANCE
9 READY_IN_DANCE
10 FINISHED
11 LOCKED
12 READY_LOCKED
13 RESTART
14 IN_ONE_SHOT
15
16 // common
17 FINISHED -> RESTART;
18 RESTART -> IDLE;
19 DEACTIVATED -> IDLE_IN_DANCE;
20
21 // kill_one_shots()
22 IN_ONE_SHOT -> RESTART [label="non-one-shot key went through", color="blue"];
23
24 // process_finished_dances()
25 ACTIVATED -> PRESS_FROM_ACTIVE [label="dance timer", color="green"];
26 IDLE_IN_DANCE -> FINISHED [label="dance timer", color="green"];
27 PRESS_FROM_ACTIVE -> FINISHED_FROM_ACTIVE [label="dance timer", color="green"];
28
29 // remove_subchords()
30 READY -> IDLE [label="superchord active", color="red"];
31 READY_IN_DANCE -> IDLE_IN_DANCE [label="superchord active", color="red"];
32 READY_LOCKED -> LOCKED [label="superchord active", color="red"];
33
34 // process_ready_chords()
35 LOCKED -> READY_LOCKED [label="all keys pressed", color="orange"];
36 IDLE -> READY [label="all keys pressed", color="orange"];
37 IDLE_IN_DANCE -> READY_IN_DANCE [label="all keys pressed", color="orange"];
38
39 READY_LOCKED -> RESTART [label="chord timer", color="orange"];
40 READY -> ACTIVATED [label="chord timer", color="orange"];
41 READY_IN_DANCE -> ACTIVATED [label="chord timer", color="orange"];
42 ACTIVATED -> PRESS_FROM_ACTIVE [label="lock next", color="orange"];
43 PRESS_FROM_ACTIVE -> LOCKED [label="lock next", color="orange"];
44
45 // deactivate_active_chords()
46 ACTIVATED -> DEACTIVATED [label="a key lifted", color="purple"];
47 PRESS_FROM_ACTIVE -> RESTART [label="a key lifted", color="orange"];
48 FINISHED_FROM_ACTIVE -> DEACTIVATED [label="a key lifted", color="orange"];
49} \ No newline at end of file