153a5a1b3Sopenharmony_ci#!/bin/bash 253a5a1b3Sopenharmony_ci 353a5a1b3Sopenharmony_ci# This file is part of PulseAudio. 453a5a1b3Sopenharmony_ci# 553a5a1b3Sopenharmony_ci# Copyright 2019 Russell Treleaven <rtreleaven@bunnykick.ca> 653a5a1b3Sopenharmony_ci# 753a5a1b3Sopenharmony_ci# PulseAudio is free software; you can redistribute it and/or modify 853a5a1b3Sopenharmony_ci# it under the terms of the GNU Lesser General Public License as published by 953a5a1b3Sopenharmony_ci# the Free Software Foundation; either version 2 of the License, or 1053a5a1b3Sopenharmony_ci# (at your option) any later version. 1153a5a1b3Sopenharmony_ci# 1253a5a1b3Sopenharmony_ci# PulseAudio is distributed in the hope that it will be useful, but 1353a5a1b3Sopenharmony_ci# WITHOUT ANY WARRANTY; without even the implied warranty of 1453a5a1b3Sopenharmony_ci# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1553a5a1b3Sopenharmony_ci# General Public License for more details. 1653a5a1b3Sopenharmony_ci# 1753a5a1b3Sopenharmony_ci# You should have received a copy of the GNU Lesser General Public License 1853a5a1b3Sopenharmony_ci# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>. 1953a5a1b3Sopenharmony_ci 2053a5a1b3Sopenharmony_ciexport LC_ALL=C 2153a5a1b3Sopenharmony_ciheader='________________' 2253a5a1b3Sopenharmony_cifunction cards_get { 2353a5a1b3Sopenharmony_ci local line 2453a5a1b3Sopenharmony_ci local re='/proc/asound/card([0-9])' 2553a5a1b3Sopenharmony_ci local cards=() 2653a5a1b3Sopenharmony_ci while read -r line; do 2753a5a1b3Sopenharmony_ci [[ $line =~ $re ]] && cards+="${BASH_REMATCH[1]} " 2853a5a1b3Sopenharmony_ci done <<< "$(ls --directory /proc/asound/card[0-9])" 2953a5a1b3Sopenharmony_ci echo $cards 3053a5a1b3Sopenharmony_ci} 3153a5a1b3Sopenharmony_cifunction jacks_do { 3253a5a1b3Sopenharmony_ci local cards=($(cards_get)) 3353a5a1b3Sopenharmony_ci for card in "${cards[@]}" ; do 3453a5a1b3Sopenharmony_ci echo "card=$card" 3553a5a1b3Sopenharmony_ci while read -r line; do 3653a5a1b3Sopenharmony_ci [[ $line != "" ]] && amixer -c$card cget "$line"; 3753a5a1b3Sopenharmony_ci done <<< "$(amixer -c$card controls | grep Jack)" 3853a5a1b3Sopenharmony_ci done 3953a5a1b3Sopenharmony_ci} 4053a5a1b3Sopenharmony_cifunction alsa_info_do { 4153a5a1b3Sopenharmony_ci alsa_info=$(which alsa-info.sh) 4253a5a1b3Sopenharmony_ci [ $alsa_info ] || alsa_info=$(which alsa-info) 4353a5a1b3Sopenharmony_ci [ $alsa_info ] || alsa_info='/usr/sbin/alsa-info.sh' 4453a5a1b3Sopenharmony_ci [ $alsa_info ] || alsa_info='/usr/share/alsa-base/alsa-info.sh' 4553a5a1b3Sopenharmony_ci [ -f $alsa_info ] && { 4653a5a1b3Sopenharmony_ci $alsa_info --stdout 4753a5a1b3Sopenharmony_ci return 4853a5a1b3Sopenharmony_ci } 4953a5a1b3Sopenharmony_ci echo "neither alsa-info.sh or alsa-info were found" 5053a5a1b3Sopenharmony_ci} 5153a5a1b3Sopenharmony_cifunction pulseaudio_ps_do { 5253a5a1b3Sopenharmony_ci ps aux | grep pulseaudio 5353a5a1b3Sopenharmony_ci} 5453a5a1b3Sopenharmony_cifunction cmd_do { 5553a5a1b3Sopenharmony_ci echo "$header" 5653a5a1b3Sopenharmony_ci echo "> $1" 5753a5a1b3Sopenharmony_ci $1 5853a5a1b3Sopenharmony_ci} 5953a5a1b3Sopenharmony_cifunction dot_d_files { 6053a5a1b3Sopenharmony_ci local files=$1 6153a5a1b3Sopenharmony_ci if ls -d1 "$files" 2> /dev/null; then 6253a5a1b3Sopenharmony_ci for fn in $files; do 6353a5a1b3Sopenharmony_ci cmd_do "cat $fn"; 6453a5a1b3Sopenharmony_ci done 6553a5a1b3Sopenharmony_ci fi 6653a5a1b3Sopenharmony_ci} 6753a5a1b3Sopenharmony_cicmds=( 6853a5a1b3Sopenharmony_ci 'pulseaudio_ps_do' 6953a5a1b3Sopenharmony_ci 'which pulseaudio' 7053a5a1b3Sopenharmony_ci 'pidof pulseaudio' 7153a5a1b3Sopenharmony_ci 'pulseaudio --version' 7253a5a1b3Sopenharmony_ci 'pactl info' 7353a5a1b3Sopenharmony_ci 'pactl list' 7453a5a1b3Sopenharmony_ci 'cat /etc/pulse/daemon.conf' 7553a5a1b3Sopenharmony_ci 'cat /etc/pulse/client.conf' 7653a5a1b3Sopenharmony_ci 'dot_d_files /etc/pulse/client.conf.d/*.conf' 7753a5a1b3Sopenharmony_ci 'cat /etc/pulse/default.pa' 7853a5a1b3Sopenharmony_ci 'dot_d_files /etc/pulse/default.pa.d/*.pa' 7953a5a1b3Sopenharmony_ci 'cat /etc/pulse/system.pa' 8053a5a1b3Sopenharmony_ci 'ls -alt /dev/snd/*' 8153a5a1b3Sopenharmony_ci 'lsof /dev/snd/*' 8253a5a1b3Sopenharmony_ci 'jacks_do' 8353a5a1b3Sopenharmony_ci 'aplay -L' 8453a5a1b3Sopenharmony_ci 'arecord -L' 8553a5a1b3Sopenharmony_ci 'alsa_info_do' 8653a5a1b3Sopenharmony_ci) 8753a5a1b3Sopenharmony_cifor cmd in "${cmds[@]}" ; do 8853a5a1b3Sopenharmony_ci cmd_do "$cmd" 8953a5a1b3Sopenharmony_cidone 90