Skript zum Starten und Beenden von ecasound
von smutbert- SNIPPET_DESC:
- zweiter Versuch
- SNIPPET_CREATION_TIME:
- 21.06.2020 15:48:18
- SNIPPET_PRUNE_TIME:
- Unendlich
- SNIPPET_TEXT:
-
- #!/bin/bash
- echo -n "setzen der konstanten Variablen: "
- BT_MAC[1]="88:00:00:00:31:F0"
- BT_MAC[2]="12:51:02:20:0F:E8"
- INTERVAL=10
- BUFFER=4096
- echo "erledigt."
- echo -n "definiere Funktion zum Starten von ecasound: "
- # Funktion zum Starten von ecasound mit einem Argument
- # 0 -> Ausgabe über die eingebauten Lautsprecher
- # 1 -> Ausgabe über plugbtL1
- # 2 -> Ausgabe über plugbtL2
- # 3 -> Ausgabe über plugbtL1 und plugbtL2
- start_ecasound() {
- if test "${1}" = 0 ; then
- ecasound -b:${BUFFER} -i alsaplugin,1,1 -o alsaplugin,0 &> /dev/null &
- elif test "${1}" = 1 ; then
- ecasound -b:${BUFFER} -i alsaplugin,1,1 -o alsa,plugbtL1 &> /dev/null &
- elif test "${1}" = 2 ; then
- ecasound -b:${BUFFER} -i alsaplugin,1,1 -o alsa,plugbtL2 &> /dev/null &
- elif test "${1}" = 3 ; then
- ecasound -b:${BUFFER} -a:1,2 -i alsaplugin,1,1 -a:1 -o alsa,plugbtL1 -a:2 -o alsa,plugbtL2 &> /dev/null &
- fi
- echo ${!}
- }
- echo "erledigt."
- echo -n "definiere Funktion zum Prüfen der Bluetooth-Verbindung: "
- # Funktion, die prüft welche Bluetoothgeräte verbunden sind
- # 0: keines
- # 1: plugbtL1
- # 2: plugbtL2
- # 3: plugbtL1 und plugbtL2
- check_device() {
- bt_count=0
- for i in ${!BT_MAC[@]} ; do
- bluetoothctl info "${BT_MAC[${i}]}" | grep "Connected: yes$" &> /dev/null && bt_count=$((${bt_count}+${i}))
- done
- echo ${bt_count}
- }
- echo "erledigt."
- # Hauptteil
- # die Variable running speichert, welcher ecasound-Befehl gerade läuft, -1 bedeutet keiner,
- # der Rest stimmt mit den Argumenten von von start_ecasound() überein
- running=-1
- while true ; do
- echo "neuer Schleifendurchgang, connected=${connected} und running=${running}..."
- echo -n "überprüfe Bluetooth-Verbindungen: "
- connected=$(check_device)
- echo "${connected}."
- if test ${running} -eq ${connected}; then
- echo -n "prüfe ob ecasound noch läuft: "
- pgrep "ecasound" | grep ${pid} &> /dev/null || running=-1
- echo "${running}."
- elif test ${running} -ne -1 ; then
- echo -n "beende laufendes ecasound: "
- pgrep "ecasound" | grep ${pid} &> /dev/null && kill ${pid} && echo "erledigt." || echo "?"
- running=-1
- fi
- if test ${running} -ne ${connected} ; then
- echo -n "starte ecasound: "
- pid=$(start_ecasound ${connected}) && running=${connected} && echo "ok." || echo "nicht ok."
- fi
- sleep ${INTERVAL}
- done
Quellcode
Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN