Callbacks working
[pi-music.git] / glove.py
1 import pygame
2 import RPi.GPIO as gpio
3 import time
4 import logging
5
6 logger = logging.getLogger(__name__)
7 loggerFileHandler = logging.FileHandler('glove.log')
8 loggerFileHandlerFormatter = logging.Formatter('%(asctime)s %(levelname)-8s %(message)s')
9 loggerFileHandler.setFormatter(loggerFileHandlerFormatter)
10 logger.addHandler(loggerFileHandler)
11 logger.setLevel(logging.WARNING)
12 logger.setLevel(logging.INFO)
13
14
15 guitars = ['sounds/guitar1.wav',
16 'sounds/guitar2.wav',
17 'sounds/guitar3.wav',
18 'sounds/guitar4.wav',
19 'sounds/guitar5.wav']
20
21 pygame.mixer.init()
22 sounds = [pygame.mixer.Sound(g) for g in guitars]
23
24 def handle_sound(pin):
25 if not gpio.input(pin):
26 sounds[pins.index(pin)].play()
27 logger.info("Started playing {0}".format(pins.index(pin)))
28 else:
29 sounds[pins.index(pin)].stop()
30 logger.info("Stopped playing {0}".format(pins.index(pin)))
31
32 gpio.setmode(gpio.BCM)
33 pins = [25, 24, 18, 22]
34 # pins = [25]
35
36 for pin in pins:
37 gpio.setup(pin, gpio.IN)
38 gpio.add_event_detect(pin, gpio.BOTH, callback=handle_sound, bouncetime=200)
39
40 while True:
41 pass