diff options
Diffstat (limited to 'keyboardpython/__init__.py')
-rw-r--r-- | keyboardpython/__init__.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/keyboardpython/__init__.py b/keyboardpython/__init__.py index 160a6b8..50410b1 100644 --- a/keyboardpython/__init__.py +++ b/keyboardpython/__init__.py @@ -29,3 +29,18 @@ def getkey(fd='default',buffersize=6): if fd == 'default': fd = sys.stdin.fileno() c = os.read(fd,buffersize) return key.parse_code(c) + +def queue_keypresses(q,signal,fd='default',buffersize=6): + ''' Read keypress and put in Queue q while signal + is True, deals with setup and teardown. + + - fd='default' will try and get this stdin. + - buffersize is passed to os.read, 6 is + enough for alt+F12 for example. + ''' + import Queue + assert isinstance(q,Queue.Queue), "expected a Queue" + if signal: set_to_read_key(fd) + while signal: + if not q.full(): q.put(getkey(fd,buffersize)) + reset_tty(fd) |