#!/bin/bash
# The original script: http://blog.mrverrall.co.uk/2013/01/raspberry-pi-a2dp-bluetooth-audio.html.

# Find the right sink with `pactl list sources short`.
PA_SINK="alsa_output.0.analog-stereo"
BT_MAC=$(echo "$NAME" | sed 's/:/_/g' | sed 's/\"//g')
BT_USER=pi

function log {
	echo "[$(date)]: $*" >> /var/log/a2dp-autoconnect
}

function checkSource {
	# Get the current sources
	local _sources=$(sudo -u "$BT_USER" pactl list sources short)

	# Check if any sources are currently running and that our new device is valid.
	if [[ ! "$_sources" =~ RUNIING ]] && [[ "$_sources" =~ "$1" ]] ; then
		log "Validated new source: $1."
		log "$1"
	fi
}

function setVolume {
	# Set our volume to max
	sudo -u "$BT_USER" pacmd set-sink-volume 0 65537
	sudo -u "$BT_USER" amixer set Master 100%
}

function connect {
	# Connect source to sink
	sudo -u "$BT_USER" pactl load-module module-loopback \
	source="$1" sink="$PA_SINK" rate=44100 adjust_time=0
}

log "Change for device $BT_MAC detected, running $ACTION."

if [ "$ACTION" = "add" ]
then
	incoming=bluez_source."$BT_MAC"
	if [ ! -z $(checkSource "$incoming") ] ; then
		connect "$incoming"
		setVolume
	else
		log "Source $incoming invalid or some source already running."
	fi
fi