forked from amaurymedeiros/cghs-PIano
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
64 lines (54 loc) · 1.59 KB
/
main.py
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
63
64
# encoding: utf-8
from Xlib.display import Display
from Xlib import X
from Xlib.protocol.event import KeyPress
# Imports para reprodução de audio
import pyaudio, array, math
# Botão Esquerdo: 1
# Botão Direito: 3
botoes_ref = [1, 3]
botoes = ["Botão Esquerdo", "Botão Direito"]
# Tecla A: 38
# Tecla S: 39
# Tecla D: 40
# Tecla F: 41
# Tecla G: 42
# Tecla W: 25
# Tecla Espaço: 65
teclas_ref = [38, 39, 40, 41, 42, 25, 65]
teclas = ["A", "S", "D", "F", "G", "W", "Espaço"]
# Cima: 111
# Baixo: 116
# Esquerda: 113
# Direita: 114
setas_ref = [111, 116, 113, 114]
setas = ["Cima", "Baixo", "Esquerda", "Direita"]
# Captura de teclado e mouse
display = Display(':0')
root = display.screen().root
root.grab_pointer(True, X.ButtonPressMask, X.GrabModeAsync, X.GrabModeAsync, 0,
0, X.CurrentTime)
root.grab_keyboard(True, X.GrabModeAsync, X.GrabModeAsync, X.CurrentTime)
while True:
event = display.next_event()
# Para evitar o erro de mudança de source (e.g. maKey maKey pra teclado)
try:
e = event.detail
except:
continue
# Caso precise verificar numeros de tecla, descomentar a linha abaixo
#print e
# Botões
if e in botoes_ref:
print botoes[botoes_ref.index(e)] + " clicado."
# Teclas
elif e in teclas_ref:
if isinstance(event, KeyPress):
print "Tecla " + teclas[teclas_ref.index(e)] + " pressionada."
# Setas
elif e in setas_ref:
if isinstance(event, KeyPress):
print "Seta para " + setas[setas_ref.index(e)] + " pressionada."
else:
break
#continue