File: keyboard.pyx

package info (click to toggle)
pyepl 1.1.0-3.1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 2,120 kB
  • sloc: cpp: 7,986; python: 6,026; makefile: 360; ansic: 132
file content (62 lines) | stat: -rw-r--r-- 1,642 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# PyEPL: hardware/keyboard.pyx
#
# Copyright (C) 2003-2005 Michael J. Kahana
# Authors: Ian Schleifer, Per Sederberg, Aaron Geller, Josh Jacobs
# URL: http://memory.psych.upenn.edu/programming/pyepl
#
# Distributed under the terms of the GNU Lesser General Public License
# (LGPL). See the license.txt that came with this file.

"""
This module provides low-level keyboard functionality.
"""

import pygame
import eventpoll
import sys

def initialize(**options):
    """
    Do any preparation necessary before using keyboard input.
    """
    global nametokeydict
    global keytonamedict
    nametokeydict = {}  # dictionary mapping key names to identifiers that can be used with keyboard functions
    keytonamedict = {}  # ...opposite
    for x in xrange(512):
        name = pygame.key.name(x).upper()
        nametokeydict[name] = x
        keytonamedict[x] = name
##     if sys.platform == "darwin":
##         nametokeydict["RETURN"] = nametokeydict["ENTER"]
##     else:
##         nametokeydict["ENTER"] = nametokeydict["RETURN"]

def finalize():
    """
    Shut down keyboard features.
    """
    setKeyboardCallback(None)

def nameToKey(name):
    """
    Returns the key identifier for the given name.
    """
    global nametokeydict
    return nametokeydict[name.upper()]

def keyToName(k):
    """
    Returns the name for the given key identifier.
    """
    global keytonamedict
    return keytonamedict[k]

def keyNames():
    """
    Returns an iterator over the names of all the available keys.
    """
    global nametokeydict
    return nametokeydict.iterkeys()

setKeyboardCallback = eventpoll.setKeyboardCallback