diff options
Diffstat (limited to 'users/dennytom/chording_engine/state_machine.dot')
-rw-r--r-- | users/dennytom/chording_engine/state_machine.dot | 49 |
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 0000000000..431e6f69b6 --- /dev/null +++ b/users/dennytom/chording_engine/state_machine.dot @@ -0,0 +1,49 @@ +digraph { + IDLE + READY + ACTIVATED + DEACTIVATED + PRESS_FROM_ACTIVE + FINISHED_FROM_ACTIVE + IDLE_IN_DANCE + READY_IN_DANCE + FINISHED + LOCKED + READY_LOCKED + RESTART + IN_ONE_SHOT + + // common + FINISHED -> RESTART; + RESTART -> IDLE; + DEACTIVATED -> IDLE_IN_DANCE; + + // kill_one_shots() + IN_ONE_SHOT -> RESTART [label="non-one-shot key went through", color="blue"]; + + // process_finished_dances() + ACTIVATED -> PRESS_FROM_ACTIVE [label="dance timer", color="green"]; + IDLE_IN_DANCE -> FINISHED [label="dance timer", color="green"]; + PRESS_FROM_ACTIVE -> FINISHED_FROM_ACTIVE [label="dance timer", color="green"]; + + // remove_subchords() + READY -> IDLE [label="superchord active", color="red"]; + READY_IN_DANCE -> IDLE_IN_DANCE [label="superchord active", color="red"]; + READY_LOCKED -> LOCKED [label="superchord active", color="red"]; + + // process_ready_chords() + LOCKED -> READY_LOCKED [label="all keys pressed", color="orange"]; + IDLE -> READY [label="all keys pressed", color="orange"]; + IDLE_IN_DANCE -> READY_IN_DANCE [label="all keys pressed", color="orange"]; + + READY_LOCKED -> RESTART [label="chord timer", color="orange"]; + READY -> ACTIVATED [label="chord timer", color="orange"]; + READY_IN_DANCE -> ACTIVATED [label="chord timer", color="orange"]; + ACTIVATED -> PRESS_FROM_ACTIVE [label="lock next", color="orange"]; + PRESS_FROM_ACTIVE -> LOCKED [label="lock next", color="orange"]; + + // deactivate_active_chords() + ACTIVATED -> DEACTIVATED [label="a key lifted", color="purple"]; + PRESS_FROM_ACTIVE -> RESTART [label="a key lifted", color="orange"]; + FINISHED_FROM_ACTIVE -> DEACTIVATED [label="a key lifted", color="orange"]; +}
\ No newline at end of file |