1 ! Copyright (C) 2010 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors timers bit-arrays calendar endian game.input io
4 io.encodings.binary io.files kernel literals math namespaces
8 CONSTANT: frequency $[ 1/30 seconds ]
10 CONSTANT: path "resource:key-log.txt"
12 : update-key-caps-state ( -- )
15 [ now unix-1970 time- duration>nanoseconds >integer ]
16 [ bit-array>integer ] bi*
17 [ 8 >be write ] bi@ flush
18 ] with-file-appender ;
22 : start-key-logger ( -- )
23 key-logger get-global [
26 [ update-key-caps-state ] frequency every key-logger set-global
30 : stop-key-logger ( -- )
31 key-logger get-global [ stop-timer ] when*
32 f key-logger set-global
35 MAIN: start-key-logger