diff options
Diffstat (limited to '')
-rwxr-xr-x | src/utils/pa-info | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/utils/pa-info b/src/utils/pa-info new file mode 100755 index 0000000..1b1cc29 --- /dev/null +++ b/src/utils/pa-info @@ -0,0 +1,78 @@ +#!/bin/bash + +# This file is part of PulseAudio. +# +# Copyright 2019 Russell Treleaven <rtreleaven@bunnykick.ca> +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>. + +export LC_ALL=C +header='________________' +function cards_get { + local line + local re='/proc/asound/card([0-9])' + local cards=() + while read -r line; do + [[ $line =~ $re ]] && cards+="${BASH_REMATCH[1]} " + done <<< "$(ls --directory /proc/asound/card[0-9])" + echo $cards +} +function jacks_do { + local cards=($(cards_get)) + for card in "${cards[@]}" ; do + echo "card=$card" + while read -r line; do + [[ $line != "" ]] && amixer -c$card cget "$line"; + done <<< "$(amixer -c$card controls | grep Jack)" + done +} +function alsa_info_do { + alsa_info=$(which alsa-info.sh) + [ $alsa_info ] || alsa_info=$(which alsa-info) + [ $alsa_info ] || alsa_info='/usr/share/alsa-base/alsa-info.sh' + [ -f $alsa_info ] && { + $alsa_info --stdout + return + } + echo "neither alsa-info.sh or alsa-info were found" +} +function pulseaudio_ps_do { + ps aux | grep pulseaudio +} +function cmd_do { + echo "$header" + echo "> $1" + $1 +} +cmds=( + 'pulseaudio_ps_do' + 'which pulseaudio' + 'pidof pulseaudio' + 'pulseaudio --version' + 'pactl info' + 'pactl list' + 'cat /etc/pulse/daemon.conf' + 'cat /etc/pulse/client.conf' + 'cat /etc/pulse/default.pa' + 'cat /etc/pulse/system.pa' + 'ls -alt /dev/snd/*' + 'lsof /dev/snd/*' + 'jacks_do' + 'aplay -L' + 'arecord -L' + 'alsa_info_do' +) +for cmd in "${cmds[@]}" ; do + cmd_do "$cmd" +done |