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() {deprecated}

			Returns list of adapter object paths under /org/bluez.
			This method is deprecated, instead use the Adapters
			Property to get the list of adapter object paths.

			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.
