diff options
author | Jorge Lopez <jorginho@riseup.net> | 2014-12-04 21:46:10 +0100 |
---|---|---|
committer | Jorge Lopez <jorginho@riseup.net> | 2014-12-04 21:46:10 +0100 |
commit | 1128eaad3ff68be9e156488fe6cc9c4eadcc4c01 (patch) | |
tree | 53024aec8c7e473201c40e01ba16519c8dd16a0e /configs/talkingparabola/root-image/usr/bin/pick-a-card | |
parent | cdb7aa1413132df18c92b96d0d93dd4e12daa761 (diff) |
Add TalkingParabola and edit in live X11 the design
Diffstat (limited to 'configs/talkingparabola/root-image/usr/bin/pick-a-card')
-rwxr-xr-x | configs/talkingparabola/root-image/usr/bin/pick-a-card | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/configs/talkingparabola/root-image/usr/bin/pick-a-card b/configs/talkingparabola/root-image/usr/bin/pick-a-card new file mode 100755 index 0000000..7f469e8 --- /dev/null +++ b/configs/talkingparabola/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 |