BlueZ D-Bus Manager API description
***********************************

Copyright (C) 2004-2010  Marcel Holtmann <marcel@holtmann.org>
Copyright (C) 2005-2006  Johan Hedberg <johan.hedberg@nokia.com>
Copyright (C) 2005-2006  Claudio Takahasi <claudio.takahasi@indt.org.br>
Copyright (C) 2006-2007  Luiz von Dentz <luiz.dentz@indt.org.br>


Manager hierarchy
=================

Service		org.bluez
Interface	org.bluez.Manager
Object path	/

Methods		dict GetProperties()

			Returns all global properties. See the
			properties section for available properties.

			Possible Errors: org.bluez.Error.DoesNotExist
					 org.bluez.Error.InvalidArguments

		object DefaultAdapter()

			Returns object path for the default adapter.

			Possible errors: org.bluez.Error.InvalidArguments
					 org.bluez.Error.NoSuchAdapter

		object FindAdapter(string pattern)

			Returns object path for the specified adapter. Valid
			patterns are "hci0" or "00:11:22:33:44:55".

			Possible errors: org.bluez.Error.InvalidArguments
					 org.bluez.Error.NoSuchAdapter

		array{object} ListAdapters()

			Returns list of adapter object paths under /org/bluez

			Possible errors: org.bluez.Error.InvalidArguments
					 org.bluez.Error.Failed
					 org.bluez.Error.OutOfMemory

Signals		PropertyChanged(string name, variant value)

			This signal indicates a changed value of the given
			property.

		AdapterAdded(object adapter)

			Parameter is object path of added adapter.

		AdapterRemoved(object adapter)

			Parameter is object path of removed adapter.

		DefaultAdapterChanged(object adapter)

			Parameter is object path of the new default adapter.

			In case all adapters are removed this signal will not
			be emitted. The AdapterRemoved signal has to be used
			to detect that no default adapter is selected or
			available anymore.

Properties	array{object} Adapters [readonly]

			List of adapter object paths.
