#!/bin/sh
#
# (C) 2008 Frantisek Dufka <dufkaf@seznam.cz>
#

infoprint(){
DBUS_SESSION_BUS_ADDRESS='unix:path=/tmp/session_bus_socket' dbus-send >/dev/null 2>&1 --session --print-reply --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint "string:$*" &
}

dbus_method(){
local dest=$1
shift
DBUS_REPLY=$(dbus-send 2>&1 --system --type=method_call --print-reply --dest="$dest" $* )
}

dbus_result(){
    echo $DBUS_REPLY | cut -d ' ' -f 7- | tr -d \"
}

err(){
echo >&2 $*
}


get_mode(){
if dbus_method org.bluez /org/bluez/hci0 org.bluez.Adapter.GetMode ; then
    MODE=$(dbus_result)
    echo $MODE
fi
}
set_mode(){
if dbus_method org.bluez /org/bluez/hci0 org.bluez.Adapter.SetMode string:$1 ; then
    RES=$(dbus_result)
fi
}

if [ $# -lt 1 ] ; then
    get_mode
    exit
else
    case $1 in
	off|connectable|discoverable) set_mode $1 ;;
        -h|--help) echo "$0 [off|connectable|discoverable]" ;;
        *) echo "unknown adapter mode $1" ;;
    esac
fi
