Commit e24c2217 authored by santiago duque's avatar santiago duque

added second button and logic to stop events as a test

parent 281d456a
import sys
import os
from os.path import isfile, join
import pygame
from gpiozero import Button
# import keyboard
from storage_media import USBDeviceHandler
# import time
# import signal
# import keyboard
pygame.init()
winW = pygame.display.Info().current_w * 0.2
winH = pygame.display.Info().current_h * 0.2
window = pygame.display.set_mode((winW, winH))
# Fullscreen = True
# window.fill((205,100,100))
# pygame.display.update()
#clock = pygame.time.Clock()
def reset_sounds():
global sound_array
sound_array = []
setup_sounds()
def setup_sounds():
global sound_array
global contentlist
global sound_dir
print("inside setup")
print(contentlist)
for content in contentlist:
print(join(sound_dir, content))
if isfile(join(sound_dir, content)):
if (content.endswith(".mp3") or content.endswith(".wav")) and (
not content.startswith("._")
):
sound = pygame.mixer.Sound(join(sound_dir, content))
sound_array.append(sound)
print(content)
print("sound array")
print(sound_array)
sound_playing = False
def play_sound(index):
global sound_playing
global cut_current_sound
global current_sound_index
global channel
global sound_array
global btn_array
print('play func called')
sound_playing = True
if not cut_current_sound:
current_sound_index = index
channel = sound_array[current_sound_index].play()
while channel.get_busy():
pygame.time.wait(100) # ms
print("Playing...")
print(btn_array[current_sound_index].is_held)
print(btn_array[current_sound_index].is_pressed)
pygame.event.clear()
sound_playing = False
btn_array[current_sound_index].when_pressed = lambda: btn_pressed(index)
print("Finished. ")
""" todo
make sounds stop when new key pressed
else:
if current_sound_index == index:
current_sound_index = index
channel = sound_array[current_sound_index].play()
while channel.get_busy():
pygame.time.wait(100) # ms
print("Playing...pygame.init()")
print("Finished.")
else:
print("STOP.")
"""
def setup_paths(val):
global contentlist
global sound_dir
global sound_dir_local
global usb_handler
sound_dir = sound_dir_local
usbdisks = usb_handler.get_usb_devices()
if len(usbdisks) > 0:
sound_dir = usbdisks[0].mountpoint
contentlist = os.listdir(sound_dir)
contentlist = sorted(contentlist)
reset_sounds()
# prepare local paths in case no USB
sound_dir_local = os.getcwd() + "/sounds"
sound_dir = ""
# start USB handler with listener
usb_handler = USBDeviceHandler()
usb_handler.on("example_event", setup_paths)
# prepare sound variables
sound_array = []
cut_current_sound = False
channel = False
current_sound_index = -1
# run setup
setup_paths(False)
def btn_pressed(index):
global btn_array
global sound_playing
btn_array[index].when_pressed = None
#btn_array[index].when_released = lambda: resetBtn(index)
print('keeps pressing')
if(not sound_playing):
print('btn pressed')
play_sound(index)
"""
def resetBtn(index):
global btn_array
#if(sound_playing):
print('btn released')
btn_array[index].when_released = None
btn_array[index].when_pressed = lambda: btn_pressed(index) """
btn1 = Button(21)
btn1.when_pressed = lambda: btn_pressed(0)
#btn1.when_held = None
#btn1.when_released = lambda: resetBtn(0)
btn2 = Button(13)
btn2.when_pressed = lambda: btn_pressed(1)
#btn2.when_held = None
#btn2.when_released = lambda: resetBtn(1)
btn_array = [btn1, btn2]
run = True
while run:
#clock.tick(25)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
# keyboard module
"""
if keyboard.is_pressed("q"):
print("You Pressed A Key!")
play_sound(0)
elif keyboard.is_pressed("w"):
print("You Pressed A Key!")
play_sound(1)
elif keyboard.is_pressed("e"):
print("You Pressed A Key!")
play_sound(2)
elif keyboard.is_pressed("r"):
print("You Pressed A Key!")
play_sound(3)
"""
if event.type == pygame.KEYDOWN:
print("you pressed " + pygame.key.name(event.key))
if event.key == pygame.K_q:
play_sound(0)
elif event.key == pygame.K_w:
play_sound(1)
elif event.key == pygame.K_e:
play_sound(2)
elif event.key == pygame.K_r:
play_sound(3)
"""
elif event.key == pygame.K_f:
if Fullscreen:
window = pygame.display.set_mode((winW,winH))
Fullscreen = False
else:
window = pygame.display.set_mode((0,0), pygame.FULLSCREEN)
Fullscreen = True
"""
pygame.quit()
sys.exit()
exit()
# time.sleep(5.5)
# signal.pause()
import sys import sys
import os import os
from os.path import isfile, join from os.path import isfile, join
import pygame
from gpiozero import Button
# import keyboard
from storage_media import USBDeviceHandler
# import time
# import signal
# import keyboard
pygame.init()
winW = pygame.display.Info().current_w * 0.2
winH = pygame.display.Info().current_h * 0.2
window = pygame.display.set_mode((winW, winH))
# Fullscreen = True
# window.fill((205,100,100))
# pygame.display.update()
#clock = pygame.time.Clock()
def reset_sounds():
global sound_array
sound_array = []
setup_sounds()
def setup_sounds():
global sound_array
global contentlist
global sound_dir
print("inside setup")
print(contentlist)
for content in contentlist:
print(join(sound_dir, content))
if isfile(join(sound_dir, content)):
if (content.endswith(".mp3") or content.endswith(".wav")) and (
not content.startswith("._")
):
sound = pygame.mixer.Sound(join(sound_dir, content))
sound_array.append(sound)
print(content)
print("sound array")
print(sound_array)
sound_playing = False
def play_sound(index):
global sound_playing
global cut_current_sound
global current_sound_index
global channel
global sound_array
global btn_array
print('play func called') from gpiozero import Button
sound_playing = True
if not cut_current_sound:
current_sound_index = index
channel = sound_array[current_sound_index].play()
while channel.get_busy():
pygame.time.wait(100) # ms
print("Playing...")
print(btn_array[current_sound_index].is_held)
print(btn_array[current_sound_index].is_pressed)
pygame.event.clear()
sound_playing = False
btn_array[current_sound_index].when_pressed = lambda: btn_pressed(index)
print("Finished. ")
""" todo
make sounds stop when new key pressed
else:
if current_sound_index == index:
current_sound_index = index
channel = sound_array[current_sound_index].play()
while channel.get_busy():
pygame.time.wait(100) # ms
print("Playing...pygame.init()")
print("Finished.")
else:
print("STOP.")
"""
def setup_paths(val):
global contentlist
global sound_dir
global sound_dir_local
global usb_handler
sound_dir = sound_dir_local
usbdisks = usb_handler.get_usb_devices()
if len(usbdisks) > 0:
sound_dir = usbdisks[0].mountpoint
contentlist = os.listdir(sound_dir)
contentlist = sorted(contentlist)
reset_sounds()
# prepare local paths in case no USB
sound_dir_local = os.getcwd() + "/sounds"
sound_dir = ""
# start USB handler with listener
usb_handler = USBDeviceHandler()
usb_handler.on("example_event", setup_paths)
# prepare sound variables
sound_array = []
cut_current_sound = False
channel = False
current_sound_index = -1
# run setup
setup_paths(False)
def btn_pressed(index): def btn_pressed(index):
global btn_array global btn_array
global sound_playing #btn_array[index].when_pressed = None
btn_array[index].when_pressed = None
#btn_array[index].when_released = lambda: resetBtn(index) #btn_array[index].when_released = lambda: resetBtn(index)
print('keeps pressing') print('keeps pressing')
if(not sound_playing):
print('btn pressed')
play_sound(index)
""" """
def resetBtn(index): def resetBtn(index):
...@@ -158,54 +39,3 @@ btn2.when_pressed = lambda: btn_pressed(1) ...@@ -158,54 +39,3 @@ btn2.when_pressed = lambda: btn_pressed(1)
btn_array = [btn1, btn2] btn_array = [btn1, btn2]
run = True
while run:
#clock.tick(25)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
# keyboard module
"""
if keyboard.is_pressed("q"):
print("You Pressed A Key!")
play_sound(0)
elif keyboard.is_pressed("w"):
print("You Pressed A Key!")
play_sound(1)
elif keyboard.is_pressed("e"):
print("You Pressed A Key!")
play_sound(2)
elif keyboard.is_pressed("r"):
print("You Pressed A Key!")
play_sound(3)
"""
if event.type == pygame.KEYDOWN:
print("you pressed " + pygame.key.name(event.key))
if event.key == pygame.K_q:
play_sound(0)
elif event.key == pygame.K_w:
play_sound(1)
elif event.key == pygame.K_e:
play_sound(2)
elif event.key == pygame.K_r:
play_sound(3)
"""
elif event.key == pygame.K_f:
if Fullscreen:
window = pygame.display.set_mode((winW,winH))
Fullscreen = False
else:
window = pygame.display.set_mode((0,0), pygame.FULLSCREEN)
Fullscreen = True
"""
pygame.quit()
sys.exit()
exit()
# time.sleep(5.5)
# signal.pause()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment