mirror of
https://github.com/Febbweiss/mopidy-touchscreen.git
synced 2026-03-04 14:15:41 +00:00
98 lines
2.4 KiB
Python
98 lines
2.4 KiB
Python
import logging
|
|
import pygame
|
|
|
|
import RPi.GPIO as GPIO
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class GPIOManager():
|
|
def __init__(self, pins):
|
|
GPIO.setmode(GPIO.BCM)
|
|
|
|
# Left Button
|
|
GPIO.setup(pins['left'], GPIO.IN, pull_up_down=GPIO.PUD_UP)
|
|
GPIO.add_event_detect(pins['left'], GPIO.BOTH, callback=left,
|
|
bouncetime=30)
|
|
|
|
# Right Button
|
|
GPIO.setup(pins['right'], GPIO.IN, pull_up_down=GPIO.PUD_UP)
|
|
GPIO.add_event_detect(pins['right'], GPIO.BOTH, callback=right,
|
|
bouncetime=30)
|
|
|
|
# Up Button
|
|
GPIO.setup(pins['up'], GPIO.IN, pull_up_down=GPIO.PUD_UP)
|
|
GPIO.add_event_detect(pins['up'], GPIO.BOTH, callback=up,
|
|
bouncetime=30)
|
|
|
|
# Down Button
|
|
GPIO.setup(pins['down'], GPIO.IN, pull_up_down=GPIO.PUD_UP)
|
|
GPIO.add_event_detect(pins['down'], GPIO.BOTH, callback=right,
|
|
bouncetime=30)
|
|
|
|
# Enter Button
|
|
GPIO.setup(pins['enter'], GPIO.IN, pull_up_down=GPIO.PUD_UP)
|
|
GPIO.add_event_detect(pins['enter'], GPIO.BOTH, callback=right,
|
|
bouncetime=30)
|
|
|
|
|
|
def right(channel):
|
|
dict = {}
|
|
if GPIO.input(channel) == 1:
|
|
type = pygame.KEYUP
|
|
else:
|
|
type = pygame.KEYDOWN
|
|
dict['key'] = pygame.K_RIGHT
|
|
event = pygame.event.Event(type, dict)
|
|
pygame.event.post(event)
|
|
|
|
|
|
def left(channel):
|
|
dict = {}
|
|
if GPIO.input(channel) == 1:
|
|
type = pygame.KEYUP
|
|
else:
|
|
type = pygame.KEYDOWN
|
|
dict['key'] = pygame.K_RIGHT
|
|
event = pygame.event.Event(type, dict)
|
|
pygame.event.post(event)
|
|
|
|
|
|
def down(channel):
|
|
dict = {}
|
|
if GPIO.input(channel) == 1:
|
|
type = pygame.KEYUP
|
|
else:
|
|
type = pygame.KEYDOWN
|
|
dict['key'] = pygame.K_DOWN
|
|
event = pygame.event.Event(type, dict)
|
|
pygame.event.post(event)
|
|
|
|
|
|
def up(channel):
|
|
dict = {}
|
|
if GPIO.input(channel) == 1:
|
|
type = pygame.KEYUP
|
|
else:
|
|
type = pygame.KEYDOWN
|
|
dict['key'] = pygame.K_UP
|
|
event = pygame.event.Event(type, dict)
|
|
pygame.event.post(event)
|
|
|
|
|
|
def enter(channel):
|
|
dict = {}
|
|
if GPIO.input(channel) == 1:
|
|
type = pygame.KEYUP
|
|
else:
|
|
type = pygame.KEYDOWN
|
|
dict['key'] = pygame.K_RETURN
|
|
event = pygame.event.Event(type, dict)
|
|
pygame.event.post(event)
|
|
|
|
|
|
|
|
|
|
|