2020-08-23 15:47:22 +02:00
|
|
|
#!/bin/sh
|
2020-09-23 15:18:30 +02:00
|
|
|
# SPDX-License-Identifier: Unlicense
|
2020-08-23 15:47:22 +02:00
|
|
|
|
2020-09-23 15:18:30 +02:00
|
|
|
buzzergpio=0
|
|
|
|
strobegpio=2
|
2020-09-19 00:22:52 +02:00
|
|
|
swupgpio=23
|
2020-09-19 00:49:46 +02:00
|
|
|
swdowngpio=25
|
2020-09-04 22:12:30 +02:00
|
|
|
|
2020-09-22 18:52:12 +02:00
|
|
|
player="cvlc"
|
2020-09-22 22:05:36 +02:00
|
|
|
playerparam="--play-and-exit --quiet --no-osd -A alsa --alsa-audio-device=front:CARD=Device,DEV=0"
|
2020-09-23 15:18:30 +02:00
|
|
|
playerloop="--loop"
|
|
|
|
|
2020-09-22 18:25:58 +02:00
|
|
|
pgrepplayer="vlc"
|
2020-09-19 23:33:19 +02:00
|
|
|
|
2020-09-23 15:18:30 +02:00
|
|
|
pollingtime=0.05
|
|
|
|
buzzertimeout=2
|
|
|
|
strobeduration=1
|
|
|
|
|
|
|
|
volumetimeout=0.1
|
2020-09-23 15:52:22 +02:00
|
|
|
volumedelay=0.1
|
2020-09-23 18:08:44 +02:00
|
|
|
volumemax=60
|
2020-09-23 15:18:30 +02:00
|
|
|
|
|
|
|
playerfull="$(command -v $player) $playerparam"
|
2020-09-19 03:44:34 +02:00
|
|
|
cmdgpio="$(command -v gpio)"
|
2020-09-23 15:18:30 +02:00
|
|
|
cmdamixer="$(command -v amixer)"
|
2020-09-04 22:12:30 +02:00
|
|
|
|
2020-09-23 15:18:30 +02:00
|
|
|
$cmdgpio mode $buzzergpio in
|
2020-08-23 15:47:22 +02:00
|
|
|
|
2020-09-23 15:18:30 +02:00
|
|
|
$cmdgpio mode $strobegpio out
|
|
|
|
$cmdgpio write $strobegpio 1
|
2020-08-23 15:47:22 +02:00
|
|
|
|
2020-09-19 03:44:34 +02:00
|
|
|
$cmdgpio mode $swdowngpio in
|
|
|
|
$cmdgpio mode $swupgpio in
|
2020-09-19 00:22:52 +02:00
|
|
|
|
2020-09-23 15:18:30 +02:00
|
|
|
volumevalue=0
|
|
|
|
$cmdamixer -q -c 2 sset 'Speaker' $volumevalue%
|
|
|
|
|
2020-08-23 15:47:22 +02:00
|
|
|
while true; do
|
2020-09-22 20:23:21 +02:00
|
|
|
|
2020-09-23 15:18:30 +02:00
|
|
|
buzzerstat="$($cmdgpio read $buzzergpio)"
|
2020-09-19 03:44:34 +02:00
|
|
|
swupstat="$($cmdgpio read $swupgpio)"
|
2020-09-23 15:18:30 +02:00
|
|
|
swdownstat="$($cmdgpio read $swdowngpio)"
|
2020-08-23 15:47:22 +02:00
|
|
|
|
2020-09-19 00:44:08 +02:00
|
|
|
if [ "$buzzerstat" -eq 0 ] && [ "$swupstat" -eq 0 ]; then
|
2020-09-23 15:18:30 +02:00
|
|
|
~/RandomVideo/RandomVideo.sh buzzer
|
|
|
|
$cmdgpio write $strobegpio 0; sleep $strobeduration; $cmdgpio write $strobegpio 1 &
|
|
|
|
sleep $buzzertimeout
|
2020-09-19 19:57:49 +02:00
|
|
|
|
|
|
|
elif [ "$swupstat" -eq 1 ]; then
|
|
|
|
|
2020-09-23 15:18:30 +02:00
|
|
|
if pgrep "$pgrepplayer" > /dev/null; then
|
|
|
|
pkill "$pgrepplayer"
|
2020-09-19 23:33:19 +02:00
|
|
|
fi
|
|
|
|
|
2020-09-23 15:18:30 +02:00
|
|
|
$playerfull $playerloop ~/RandomVideo/onair.mp4 &
|
2020-09-19 20:18:17 +02:00
|
|
|
|
2020-09-22 20:39:17 +02:00
|
|
|
while [ "$swupstat" -eq 1 ]; do
|
2020-09-19 20:01:41 +02:00
|
|
|
swupstat="$($cmdgpio read $swupgpio)"
|
2020-09-23 15:18:30 +02:00
|
|
|
sleep $pollingtime
|
2020-09-19 19:57:49 +02:00
|
|
|
done
|
|
|
|
|
2020-09-23 15:18:30 +02:00
|
|
|
pkill "$pgrepplayer"
|
|
|
|
|
|
|
|
elif [ "$volumevalue" -eq 0 ] && [ "$swdownstat" -eq 1 ]; then
|
|
|
|
|
2020-09-23 15:39:11 +02:00
|
|
|
while [ "$volumevalue" -lt "$volumemax" ] && [ "$buzzerstat" -eq 1 ]; do
|
2020-09-23 15:18:30 +02:00
|
|
|
volumevalue=$((volumevalue + 1))
|
|
|
|
$cmdamixer -q -c 2 sset 'Speaker' $volumevalue%
|
|
|
|
buzzerstat="$($cmdgpio read $buzzergpio)"
|
|
|
|
sleep $volumetimeout
|
|
|
|
done
|
2020-09-23 15:44:30 +02:00
|
|
|
|
2020-09-23 15:47:53 +02:00
|
|
|
sleep $volumedelay
|
2020-09-23 15:18:30 +02:00
|
|
|
|
|
|
|
elif [ "$volumevalue" -gt 0 ] && [ "$swdownstat" -eq 0 ]; then
|
|
|
|
|
2020-09-23 15:39:11 +02:00
|
|
|
while [ "$volumevalue" -gt 0 ] && [ "$swdownstat" -eq 0 ]; do
|
2020-09-23 15:18:30 +02:00
|
|
|
volumevalue=$((volumevalue -1))
|
|
|
|
$cmdamixer -q -c 2 sset 'Speaker' $volumevalue%
|
|
|
|
swdownstat="$($cmdgpio read $swdowngpio)"
|
|
|
|
sleep $volumetimeout
|
|
|
|
done
|
2020-09-22 20:27:36 +02:00
|
|
|
|
2020-09-23 15:47:53 +02:00
|
|
|
sleep $volumedelay
|
2020-09-23 15:44:30 +02:00
|
|
|
|
2020-09-19 19:57:49 +02:00
|
|
|
elif [ "$buzzerstat" -eq 1 ] && [ "$swupstat" -eq 0 ]; then
|
2020-09-23 15:18:30 +02:00
|
|
|
sleep $pollingtime
|
2020-08-23 15:47:22 +02:00
|
|
|
|
|
|
|
fi
|
|
|
|
|
2020-08-23 15:58:11 +02:00
|
|
|
done
|