[高通]實作在QCS405 一鍵切換聲音訊號源

QCS405 Soundbar上實現按一個按鍵來切換聲音訊號源為HDMI input或是LINE input

1.evtest

對於 input輸入裝置有一個常用方便的測試工具: evtest。

將預先透過cross compiler build好的 evtest binary file透過 ADB push到 device

adb push evtest /bin

adb shell chmod 777 /bin/evtest

便可於 device console直接 輸入「 evtest」 測試 Linux系統底下所有 input device。

 

下例中我們選擇

device event number輸入 1,會列出該 input device目前支援的所有

event code,實際按下 HW板上實體 button時能確認是否正確觸發 event。

按下ctrl+c可結束測試。


2.新增自動啟動應用服務

 

(預先準備好aitg.service / aitg_start.sh)

adb root

adb disable-verity

(重開機)

adb root

adb shell mount -o remount,rw /

adb push aitg.service /etc/systemd/system/

adb push aitg_start.sh /etc/

adb shell sync

adb shell chmod 777 /etc/systemd/system/aitg.service

adb shell chmod 777 /etc/aitg_start.sh

adb shell systemctl enable aitg.service

 

aitg.service的代碼如下:

[Unit]

Description=start aitg r&d service

 

[Service]

Type=simple

ExecStart=/bin/sh /etc/aitg_start.sh

 

[Install]

WantedBy=multi-user.target

 

aitg_start.sh 的代碼如下:

chmod 777 /dev/diag

chmod 0666 /dev/ion

sleep 100

mount -o remount,rw /

systemctl stop display-bridge.service

pactl set-default-sink 2

pactl set-sink-port 2 speaker

loop_back_app --source=2 &

sh ./etc/Audio_source_switch.sh

wait

 

Audio_source_switch.sh的代碼如下:

# Script Start

chmod 777 /dev/diag

chmod 0666 /dev/ion

mount -o remount,rw /

cd /sys/class/gpio

echo 110 > export

sleep 0.5

cd /

# Replace "eventX" with the name of your mouse input device

DEVICE_NAME="event2"

x=0

 

# Listen to events

./evtest /dev/input/$DEVICE_NAME| while read -r line; --->讀取evtest message

     if echo "$line" | grep -q "KEY_HOME";  then

        if echo "$line" | grep -q "value 0"; then

           if [ $x -eq 0 ]; then

            echo "+++++++++++++KEY_HOME+Value=0"

            echo out > /sys/class/gpio/gpio110/direction

            ->用GPIO控制LED顯示Audio source 的狀態

            echo 0 > /sys/class/gpio/gpio110/value

            killall loop_back_app

            loop_back_app --source=1 &  ---->切換audio source為HDM-IN

            sleep 1

            x=1

            else

            echo "+++++++++++++KEY_HOME+Value=1"

            echo out > /sys/class/gpio/gpio110/direction

            echo 1 > /sys/class/gpio/gpio110/value

            killall loop_back_app

            loop_back_app --source=2 &  ----->切換audio source 為 LINE-IN

            sleep 1

            x=0

          fi

         fi

     fi

done



由dmesg log 查看按鍵偵測的訊息.接收到後就可以完成一鍵切換聲音訊號源為HDMI input或是LINE input









★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★博文作者未開放評論功能