. /usr/share/acpi-support/power-funcs

CheckUPowerPolicy() {
	pidof upowerd > /dev/null
}

# The (not very aptly named) function CheckPolicy checks if the current X
# console user is running a power management daemon that handles suspend/resume
# requests. This is used in various places to determine if we need to handle
# something ourselves or if we need to pass the info on to a power management
# daemon (e.g. through a fake key press).

CheckPolicy() {
	local PMS

	getXconsole
	PMS="/usr/bin/gnome-power-manager /usr/bin/kpowersave /usr/bin/xfce4-power-manager"
	PMS="$PMS /usr/bin/guidance-power-manager /usr/lib/dalston/dalston-power-applet"
	pidof -x $PMS > /dev/null ||
        { test "$XUSER" != "" && 
          pidof dcopserver > /dev/null &&
          test -x /usr/bin/dcop &&
          /usr/bin/dcop --user $XUSER kded kded loadedModules | grep -q klaptopdaemon; } ||
        PowerDevilRunning
}

PowerDevilRunning() {
	test -x /usr/bin/dbus-send || return 1

	local DBUS_SESS	
	for p in $(pidof kded4); do
		test -r /proc/$p/environ || continue
		DBUS_SESS=$(grep -a -z "DBUS_SESSION_BUS_ADDRESS=" /proc/$p/environ || :)
		test "$DBUS_SESS" != "" || continue
		! su $(ps -o user= $p) -s /bin/sh -c "$DBUS_SESS dbus-send --print-reply --dest=org.kde.kded /kded org.kde.kded.loadedModules" | grep -q powerdevil || return 0
	done
	
	return 1
}
