diff options
author | David P <megver83@openmailbox.org> | 2017-09-29 14:18:19 -0300 |
---|---|---|
committer | David P <megver83@openmailbox.org> | 2017-09-29 14:18:19 -0300 |
commit | f5d62fdcd4a6d351fa25af3b3e443ba4de67a802 (patch) | |
tree | da3bb909024f145454fb7ff460931bbb8c4311af /configs/talking-parabola-openrc/root-image/usr/bin/pick-a-card | |
parent | 50a0dc41d6edbe36d081bcd0fab7d79f2a0d116a (diff) |
Added configs/profile-openrc
Diffstat (limited to 'configs/talking-parabola-openrc/root-image/usr/bin/pick-a-card')
-rwxr-xr-x | configs/talking-parabola-openrc/root-image/usr/bin/pick-a-card | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/configs/talking-parabola-openrc/root-image/usr/bin/pick-a-card b/configs/talking-parabola-openrc/root-image/usr/bin/pick-a-card new file mode 100755 index 0000000..7f469e8 --- /dev/null +++ b/configs/talking-parabola-openrc/root-image/usr/bin/pick-a-card @@ -0,0 +1,54 @@ +#!/bin/bash + +# If there are multiple usable sound cards, prompt the user to choose one, +# using auditory feedback. +# This script is released under the GNU General Public License. + +source /usr/share/livecd-sound/functions + +nwords() { + echo $# +} + +is_numeric() { + local str=$1 + expr match "$str" '[[:digit:]]\+$' > /dev/null 2>&1 +} + +set_default_card() { + local card=$1 + sed -e "s/%card%/$card/g" < /usr/share/livecd-sound/asound.conf.in \ + > /etc/asound.conf +} + +play_on_card() { + local card=$1 file=$2 + aplay "-Dplughw:$card,0" "$file" +} + +set -f +usable_cards="$(list_non_pcsp_cards)" +num_usable_cards=$(nwords $usable_cards) + +if [ "$num_usable_cards" -eq 1 ]; then + exit 0 +fi + +for card in $usable_cards; do + if ! is_numeric "$card"; then + continue + fi + play_on_card "$card" /usr/share/livecd-sound/sounds/pick-a-card.wav& +done +wait +sleep 1 +for card in $usable_cards; do + if ! is_numeric "$card"; then + continue + fi + play_on_card "$card" /usr/share/livecd-sound/sounds/beep.wav + if read -t 10; then + set_default_card "$card" + break + fi +done |