v / examples / term_key_pressed.v
29 lines · 25 sloc · 499 bytes · 5b44b6721140885da6a026c8647decfbe22118ba
Raw
1module main
2
3import term
4import time
5
6fn main() {
7 unbuffer_stdout()
8 println('Press Ctrl-D or ESC to exit.')
9
10 term.enable_echo(false)
11 mut frame := 0
12 for {
13 print('\r${time.now()} | frame: ${frame:06} | ')
14 x := term.key_pressed()
15 if x in [i64(0), 4, 27] {
16 // pressing Ctrl-D or ESC exits the loop
17 // Ctrl-D mean EOF sometimes, so return 0
18 break
19 }
20 if x > 0 {
21 println('${x:08x}')
22 }
23 time.sleep(16 * time.millisecond)
24 frame++
25 }
26 term.enable_echo(true)
27
28 println('done')
29}
30