Skip to content

Commit 104f351

Browse files
committed
12 button soundboard demo
1 parent a7d25bd commit 104f351

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

examples/display_button_soundboard.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import time
2+
import board
3+
import displayio
4+
from adafruit_pyportal import PyPortal
5+
from adafruit_button import Button
6+
7+
SHOW_BUTTONS = False
8+
9+
# the current working directory (where this file is)
10+
cwd = ("/"+__file__).rsplit('/', 1)[0]
11+
# No internet use version of pyportal
12+
pyportal = PyPortal(default_bg=cwd+"/button_background.bmp")
13+
14+
spots = []
15+
spots.append({'label': "1", 'pos': (10, 10), 'size': (60, 60), 'file': "01.wav"})
16+
spots.append({'label': "2", 'pos': (90, 10), 'size': (60, 60), 'file': "02.wav"})
17+
spots.append({'label': "3", 'pos': (170, 10), 'size': (60, 60), 'file': "03.wav"})
18+
spots.append({'label': "4", 'pos': (250, 10), 'size': (60, 60), 'file': "04.wav"})
19+
spots.append({'label': "5", 'pos': (10, 90), 'size': (60, 60), 'file': "05.wav"})
20+
spots.append({'label': "6", 'pos': (90, 90), 'size': (60, 60), 'file': "06.wav"})
21+
spots.append({'label': "7", 'pos': (170, 90), 'size': (60, 60), 'file': "07.wav"})
22+
spots.append({'label': "8", 'pos': (250, 90), 'size': (60, 60), 'file': "08.wav"})
23+
spots.append({'label': "9", 'pos': (10, 170), 'size': (60, 60), 'file': "09.wav"})
24+
spots.append({'label': "10", 'pos': (90, 170), 'size': (60, 60), 'file': "10.wav"})
25+
spots.append({'label': "11", 'pos': (170, 170), 'size': (60, 60), 'file': "11.wav"})
26+
spots.append({'label': "12", 'pos': (250, 170), 'size': (60, 60), 'file': "12.wav"})
27+
28+
buttons = []
29+
for spot in spots:
30+
fill = outline = None
31+
if SHOW_BUTTONS:
32+
fill = None
33+
outline = 0x00FF00
34+
button = Button(x=spot['pos'][0], y=spot['pos'][1],
35+
width=spot['size'][0], height=spot['size'][1],
36+
fill_color=fill, outline_color=outline,
37+
label=spot['label'], label_color=None,
38+
name=spot['file'])
39+
pyportal.splash.append(button.group)
40+
buttons.append(button)
41+
42+
last_pressed = None
43+
currently_pressed = None
44+
while True:
45+
p = pyportal.touchscreen.touch_point
46+
if p:
47+
print(p)
48+
for b in buttons:
49+
if b.contains(p):
50+
print("Touched", b.name)
51+
if currently_pressed != b: # don't restart if playing
52+
pyportal.play_file(cwd + "/" + b.name,
53+
wait_to_finish=False)
54+
currently_pressed = b
55+
break
56+
else:
57+
currently_pressed = None
58+
time.sleep(0.05)

0 commit comments

Comments
 (0)