#!/bin/bash device_1=$1 device_2=$2 echo "" echo "*****************************************************" echo "* Rockchip Platform Audio Functions Test *" echo "*****************************************************" echo "* Loop playback: [0] *" echo "* Loop capture: [1] *" echo "* Test loopback: [2] *" echo "* Exit audio test: [q] *" echo "*****************************************************" echo "" echo -n "Please select a test case: " read TEST_CASE echo "" PATH_AUDIO=/tmp/audio_test mkdir -p $PATH_AUDIO prepare_mic_capture() { amixer set "Capture Digital" 192 amixer set "Capture Mute" 0 amixer set "Right PGA Mux" "DifferentialR" amixer set "Left PGA Mux" "DifferentialL" amixer set "Differential Mux" "Line 2" amixer set "Left Channel" 0 amixer set "Right Channel" 0 } loop_playback() { echo "******** Loop playback start ********" fs_tbl="8000 11025 16000 22050 32000 44100 48000 64000 88200 96000 176400 192000" bits_tbl="16 24 32" ch=2 seconds=2 gain=-30 play_device="default" if [ -n "$1" ]; then play_device=$1 fi while [ $ch -ge 1 ] do for fs in $fs_tbl do for bits in $bits_tbl do echo "play_device=$play_device, ch="$ch", rate="$fs", bit=$bits, $seconds sec, gain=$gain" sox -b $bits -r $fs -c $ch -n -t alsa $play_device synth $seconds sine 440 gain $gain done done done echo "******** Loop playback end ********" } loop_capture() { PATH_CAPTURE=$PATH_AUDIO/cap_files mkdir $PATH_CAPTURE fs_tbl="8000 11025 16000 22050 32000 44100 48000 64000 88200 96000 176400 192000" bits_tbl="S16_LE S24_LE S32_LE" ch_tbl="2" seconds=3 capt_device="default" if [ -n "$1" ]; then capt_device=$1 fi echo "******** Loop capture start ********" for fs in $fs_tbl do for bits in $bits_tbl do for ch in $ch_tbl do DUMP_FILE=$(printf 'cap_fs%d_format_%s_ch%d.wav' $fs $bits $ch) echo "capt_device: $capt_device capture $DUMP_FILE $seconds sec" arecord -D $capt_device -r $fs -f $bits -c $ch -d $seconds $PATH_CAPTURE/$DUMP_FILE done done done echo "******** Loop capture end ********" echo "!! Please using 'adb pull /tmp/audio_test/cap_files/ .' dump all capture files !!" } case $TEST_CASE in "0") loop_playback $device_1 ;; "1") prepare_mic_capture loop_capture $device_1 ;; "2") source ./test_loopback.sh $device_1 $device_2 ;; "q") echo "Exit audio test" ;; *) echo "Invalid case $TEST_CASE" ;; esac exit