#!/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