summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Orlenko <alex@ubuntu.(none)>2011-09-23 16:20:51 +1100
committerAlexander Orlenko <alex@ubuntu.(none)>2011-09-23 16:20:51 +1100
commitb8b3832000af5423a487143bb28b3f19589116ce (patch)
tree51e1b9e2d85f5038fa0e98314980a18bb3d6b8b5
parent95418b6cbea2c25b950e957fc4aea3fed1305bc3 (diff)
downloadbluez-tools-b8b3832000af5423a487143bb28b3f19589116ce.tar.gz
Updated API of bluez-tools to 4.96
Updated API of obexd to 0.42 Fixed type of daemon_arg in bt-agent Added daemon mode support in bt-network
-rw-r--r--contrib/bluez-api-4.96-fixed/adapter-api.txt285
-rw-r--r--contrib/bluez-api-4.96-fixed/agent-api.txt99
-rw-r--r--contrib/bluez-api-4.96-fixed/audio-api.txt458
-rw-r--r--contrib/bluez-api-4.96-fixed/device-api.txt199
-rw-r--r--contrib/bluez-api-4.96-fixed/input-api.txt44
-rw-r--r--contrib/bluez-api-4.96-fixed/manager-api.txt74
-rw-r--r--contrib/bluez-api-4.96-fixed/network-api.txt88
-rw-r--r--contrib/bluez-api-4.96-fixed/serial-api.txt41
-rw-r--r--contrib/obexd-api-0.42-fixed/agent-api.txt30
-rw-r--r--contrib/obexd-api-0.42-fixed/agent.xml35
-rw-r--r--contrib/obexd-api-0.42-fixed/client-api.txt329
-rw-r--r--contrib/obexd-api-0.42-fixed/obexd-api.txt90
12 files changed, 1772 insertions, 0 deletions
diff --git a/contrib/bluez-api-4.96-fixed/adapter-api.txt b/contrib/bluez-api-4.96-fixed/adapter-api.txt
new file mode 100644
index 0000000..55d0918
--- /dev/null
+++ b/contrib/bluez-api-4.96-fixed/adapter-api.txt
@@ -0,0 +1,285 @@
+BlueZ D-Bus Adapter 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>
+
+
+Adapter hierarchy
+=================
+
+Service org.bluez
+Interface org.bluez.Adapter
+Object path [variable prefix]/{hci0,hci1,...}
+
+Methods dict GetProperties()
+
+ Returns all properties for the adapter. See the
+ properties section for available properties.
+
+ Possible Errors: org.bluez.Error.NotReady
+
+ void SetProperty(string name, variant value)
+
+ Changes the value of the specified property. Only
+ properties that are listed a read-write are changeable.
+ On success this will emit a PropertyChanged signal.
+
+ Possible Errors: org.bluez.Error.InvalidArguments
+
+ void RequestSession() {unneeded_in_bluez_tools}
+
+ This method requests a client session that provides
+ operational Bluetooth. A possible mode change must be
+ confirmed by the user via the agent.
+
+ Clients may request multiple sessions. All sessions
+ are released when adapter's mode is changed to off
+ state.
+
+ Possible Errors: org.bluez.Error.Rejected
+
+ void ReleaseSession() {unneeded_in_bluez_tools}
+
+ Release a previously requested session. It sets
+ adapter to the mode in use on the moment of session
+ request.
+
+ SetProperty method call changes adapter's mode
+ persistently, such that session release will not
+ modify it.
+
+ Possible Errors: org.bluez.Error.DoesNotExist
+
+ void StartDiscovery()
+
+ This method starts the device discovery session. This
+ includes an inquiry procedure and remote device name
+ resolving. Use StopDiscovery to release the sessions
+ acquired.
+
+ This process will start emitting DeviceFound and
+ PropertyChanged "Discovering" signals.
+
+ Possible errors: org.bluez.Error.NotReady
+ org.bluez.Error.Failed
+
+ void StopDiscovery()
+
+ This method will cancel any previous StartDiscovery
+ transaction.
+
+ Note that a discovery procedure is shared between all
+ discovery sessions thus calling StopDiscovery will only
+ release a single session.
+
+ Possible errors: org.bluez.Error.NotReady
+ org.bluez.Error.Failed
+ org.bluez.Error.NotAuthorized
+
+ object FindDevice(string address)
+
+ Returns the object path of device for given address.
+ The device object needs to be first created via
+ CreateDevice or CreatePairedDevice.
+
+ Possible Errors: org.bluez.Error.DoesNotExist
+ org.bluez.Error.InvalidArguments
+
+ array{object} ListDevices() {deprecated}
+
+ Returns list of device object paths.
+ This method is deprecated, instead use the Devices
+ Property to get the list of devices object paths.
+
+ Possible errors: org.bluez.Error.InvalidArguments
+ org.bluez.Error.Failed
+ org.bluez.Error.OutOfMemory
+
+ object CreateDevice(string address)
+
+ Creates a new object path for a remote device. This
+ method will connect to the remote device and retrieve
+ all SDP records.
+
+ If the object for the remote device already exists
+ this method will fail.
+
+ Possible errors: org.bluez.Error.InvalidArguments
+ org.bluez.Error.Failed
+
+ object CreatePairedDevice(string address, object agent, string capability) [async]
+
+ Creates a new object path for a remote device. This
+ method will connect to the remote device and retrieve
+ all SDP records and then initiate the pairing.
+
+ If previously CreateDevice was used successfully,
+ this method will only initiate the pairing.
+
+ Compared to CreateDevice this method will fail if
+ the pairing already exists, but not if the object
+ path already has been created. This allows applications
+ to use CreateDevice first and the if needed use
+ CreatePairedDevice to initiate pairing.
+
+ The agent object path is assumed to reside within the
+ process (D-Bus connection instance) that calls this
+ method. No separate registration procedure is needed
+ for it and it gets automatically released once the
+ pairing operation is complete.
+
+ The capability parameter is the same as for the
+ RegisterAgent method.
+
+ Possible errors: org.bluez.Error.InvalidArguments
+ org.bluez.Error.Failed
+
+ void CancelDeviceCreation(string address)
+
+ Aborts either a CreateDevice call or a
+ CreatePairedDevice call.
+
+ Possible errors: org.bluez.Error.InvalidArguments
+ org.bluez.Error.NotInProgress
+
+ void RemoveDevice(object device)
+
+ This removes the remote device object at the given
+ path. It will remove also the pairing information.
+
+ Possible errors: org.bluez.Error.InvalidArguments
+ org.bluez.Error.Failed
+
+ void RegisterAgent(object agent, string capability)
+
+ This registers the adapter wide agent.
+
+ The object path defines the path of the agent
+ that will be called when user input is needed.
+
+ If an application disconnects from the bus all
+ of its registered agents will be removed.
+
+ The capability parameter can have the values
+ "DisplayOnly", "DisplayYesNo", "KeyboardOnly" and
+ "NoInputNoOutput" which reflects the input and output
+ capabilities of the agent. If an empty string is
+ used it will fallback to "DisplayYesNo".
+
+ Possible errors: org.bluez.Error.InvalidArguments
+ org.bluez.Error.AlreadyExists
+
+ void UnregisterAgent(object agent)
+
+ This unregisters the agent that has been previously
+ registered. The object path parameter must match the
+ same value that has been used on registration.
+
+ Possible errors: org.bluez.Error.DoesNotExist
+
+Signals PropertyChanged(string name, variant value)
+
+ This signal indicates a changed value of the given
+ property.
+
+ DeviceFound(string address, dict values)
+
+ This signal will be sent every time an inquiry result
+ has been found by the service daemon. In general they
+ only appear during a device discovery.
+
+ The dictionary can contain basically the same values
+ that are returned by the GetProperties method
+ from the org.bluez.Device interface. In addition there
+ can be values for the RSSI, the TX power level and
+ Broadcaster role.
+
+ DeviceDisappeared(string address)
+
+ This signal will be sent when an inquiry session for
+ a periodic discovery finishes and previously found
+ devices are no longer in range or visible.
+
+ DeviceCreated(object device)
+
+ Parameter is object path of created device.
+
+ DeviceRemoved(object device)
+
+ Parameter is object path of removed device.
+
+Properties string Address [readonly]
+
+ The Bluetooth device address.
+
+ string Name [readwrite]
+
+ The Bluetooth friendly name. This value can be
+ changed and a PropertyChanged signal will be emitted.
+
+ uint32 Class [readonly]
+
+ The Bluetooth class of device.
+
+ boolean Powered [readwrite]
+
+ Switch an adapter on or off. This will also set the
+ appropriate connectable state.
+
+ boolean Discoverable [readwrite]
+
+ Switch an adapter to discoverable or non-discoverable
+ to either make it visible or hide it. This is a global
+ setting and should only be used by the settings
+ application.
+
+ If the DiscoverableTimeout is set to a non-zero
+ value then the system will set this value back to
+ false after the timer expired.
+
+ In case the adapter is switched off, setting this
+ value will fail.
+
+ When changing the Powered property the new state of
+ this property will be updated via a PropertyChanged
+ signal.
+
+ boolean Pairable [readwrite]
+
+ Switch an adapter to pairable or non-pairable. This is
+ a global setting and should only be used by the
+ settings application.
+
+ Note that this property only affects incoming pairing
+ requests.
+
+ uint32 PairableTimeout [readwrite]
+
+ The pairable timeout in seconds. A value of zero
+ means that the timeout is disabled and it will stay in
+ pareable mode forever.
+
+ uint32 DiscoverableTimeout [readwrite]
+
+ The discoverable timeout in seconds. A value of zero
+ means that the timeout is disabled and it will stay in
+ discoverable/limited mode forever.
+
+ The default value for the discoverable timeout should
+ be 180 seconds (3 minutes).
+
+ boolean Discovering [readonly]
+
+ Indicates that a device discovery procedure is active.
+
+ array{object} Devices [readonly]
+
+ List of device object paths.
+
+ array{string} UUIDs [readonly]
+
+ List of 128-bit UUIDs that represents the available
+ local services.
diff --git a/contrib/bluez-api-4.96-fixed/agent-api.txt b/contrib/bluez-api-4.96-fixed/agent-api.txt
new file mode 100644
index 0000000..9ab2063
--- /dev/null
+++ b/contrib/bluez-api-4.96-fixed/agent-api.txt
@@ -0,0 +1,99 @@
+BlueZ D-Bus Agent API description
+**********************************
+
+Copyright (C) 2004-2010 Marcel Holtmann <marcel@holtmann.org>
+Copyright (C) 2005-2006 Johan Hedberg <johan.hedberg@nokia.com>
+
+
+Agent hierarchy
+===============
+
+Service unique name
+Interface org.bluez.Agent
+Object path freely definable
+
+Methods void Release()
+
+ This method gets called when the service daemon
+ unregisters the agent. An agent can use it to do
+ cleanup tasks. There is no need to unregister the
+ agent, because when this method gets called it has
+ already been unregistered.
+
+ string RequestPinCode(object device)
+
+ This method gets called when the service daemon
+ needs to get the passkey for an authentication.
+
+ The return value should be a string of 1-16 characters
+ length. The string can be alphanumeric.
+
+ Possible errors: org.bluez.Error.Rejected
+ org.bluez.Error.Canceled
+
+ uint32 RequestPasskey(object device)
+
+ This method gets called when the service daemon
+ needs to get the passkey for an authentication.
+
+ The return value should be a numeric value
+ between 0-999999.
+
+ Possible errors: org.bluez.Error.Rejected
+ org.bluez.Error.Canceled
+
+ void DisplayPasskey(object device, uint32 passkey, uint8 entered)
+
+ This method gets called when the service daemon
+ needs to display a passkey for an authentication.
+
+ The entered parameter indicates the number of already
+ typed keys on the remote side.
+
+ An empty reply should be returned. When the passkey
+ needs no longer to be displayed, the Cancel method
+ of the agent will be called.
+
+ During the pairing process this method might be
+ called multiple times to update the entered value.
+
+ Note that the passkey will always be a 6-digit number,
+ so the display should be zero-padded at the start if
+ the value contains less than 6 digits.
+
+ void RequestConfirmation(object device, uint32 passkey)
+
+ This method gets called when the service daemon
+ needs to confirm a passkey for an authentication.
+
+ To confirm the value it should return an empty reply
+ or an error in case the passkey is invalid.
+
+ Note that the passkey will always be a 6-digit number,
+ so the display should be zero-padded at the start if
+ the value contains less than 6 digits.
+
+ Possible errors: org.bluez.Error.Rejected
+ org.bluez.Error.Canceled
+
+ void Authorize(object device, string uuid)
+
+ This method gets called when the service daemon
+ needs to authorize a connection/service request.
+
+ Possible errors: org.bluez.Error.Rejected
+ org.bluez.Error.Canceled
+
+ void ConfirmModeChange(string mode)
+
+ This method gets called if a mode change is requested
+ that needs to be confirmed by the user. An example
+ would be leaving flight mode.
+
+ Possible errors: org.bluez.Error.Rejected
+ org.bluez.Error.Canceled
+
+ void Cancel()
+
+ This method gets called to indicate that the agent
+ request failed before a reply was returned.
diff --git a/contrib/bluez-api-4.96-fixed/audio-api.txt b/contrib/bluez-api-4.96-fixed/audio-api.txt
new file mode 100644
index 0000000..f36beb2
--- /dev/null
+++ b/contrib/bluez-api-4.96-fixed/audio-api.txt
@@ -0,0 +1,458 @@
+BlueZ D-Bus Audio API description
+*********************************
+
+Copyright (C) 2004-2010 Marcel Holtmann <marcel@holtmann.org>
+Copyright (C) 2005-2007 Johan Hedberg <johan.hedberg@nokia.com>
+Copyright (C) 2005-2006 Brad Midgley <bmidgley@xmission.com>
+
+Audio hierarchy
+===============
+
+Service org.bluez
+Interface org.bluez.Audio
+Object path [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+This is a generic audio interface that abstracts the different audio profiles.
+
+Methods void Connect()
+
+ Connect all supported audio profiles on the device.
+
+ void Disconnect()
+
+ Disconnect all audio profiles on the device
+
+ dict GetProperties()
+
+ Returns all properties for the interface. See the
+ properties section for available properties.
+
+Signals PropertyChanged(string name, variant value)
+
+ This signal indicates a changed value of the given
+ property.
+
+Properties string State [readonly]
+
+ Possible values: "disconnected", "connecting",
+ "connected"
+
+ "disconnected" -> "connecting"
+ Either an incoming or outgoing connection
+ attempt ongoing.
+
+ "connecting" -> "disconnected"
+ Connection attempt failed
+
+ "connecting" -> "connected"
+ Successfully connected
+
+ "connected" -> "disconnected"
+ Disconnected from the remote device
+
+Headset hierarchy
+=================
+
+Service org.bluez
+Interface org.bluez.Headset
+Object path [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+Methods void Connect()
+
+ Connect to the HSP/HFP service on the remote device.
+
+ void Disconnect()
+
+ Disconnect from the HSP/HFP service on the remote
+ device.
+
+ boolean IsConnected() {deprecated}
+
+ Returns TRUE if there is a active connection to the
+ HSP/HFP connection on the remote device.
+
+ void IndicateCall()
+
+ Indicate an incoming call on the headset
+ connected to the stream. Will continue to
+ ring the headset about every 3 seconds.
+
+ void CancelCall()
+
+ Cancel the incoming call indication.
+
+ void Play() {deprecated}
+
+ Open the audio connection to the headset.
+
+ void Stop()
+
+ Close the audio connection.
+
+ boolean IsPlaying() {deprecated}
+
+ Returns true if an audio connection to the headset
+ is active.
+
+ uint16 GetSpeakerGain() {deprecated}
+
+ Returns the current speaker gain if available,
+ otherwise returns the error NotAvailable.
+
+ uint16 GetMicrophoneGain() {deprecated}
+
+ Returns the current microphone gain if available,
+ otherwise returns the error NotAvailable.
+
+ void SetSpeakerGain(uint16 gain) {deprecated}
+
+ Changes the current speaker gain if possible.
+
+ void SetMicrophoneGain(uint16 gain) {deprecated}
+
+ Changes the current speaker gain if possible.
+
+ dict GetProperties()
+
+ Returns all properties for the interface. See the
+ properties section for available properties.
+
+ Possible Errors: org.bluez.Error.InvalidArguments
+
+ void SetProperty(string name, variant value)
+
+ Changes the value of the specified property. Only
+ properties that are listed a read-write are changeable.
+ On success this will emit a PropertyChanged signal.
+
+ Possible Errors: org.bluez.Error.DoesNotExist
+ org.bluez.Error.InvalidArguments
+
+Signals AnswerRequested()
+
+ Sent when the answer button is pressed on the headset
+
+ Connected() {deprecated}
+
+ Sent when the device has been connected to.
+
+ Disconnected() {deprecated}
+
+ Sent when the device has been disconnected from.
+
+ Stopped() {deprecated}
+
+ Sent when the audio connection is closed
+
+ Playing() {deprecated}
+
+ Sent when the audio connection is opened
+
+ SpeakerGainChanged(uint16 gain) {deprecated}
+
+ The speaker gain changed.
+
+ MicrophoneGainChanged(uint16 gain) {deprecated}
+
+ The microphone gain changed.
+
+ PropertyChanged(string name, variant value)
+
+ This signal indicates a changed value of the given
+ property.
+
+Properties string State [readonly]
+
+ Possible values: "disconnected", "connecting",
+ "connected", "playing"
+
+ "disconnected" -> "connecting"
+ Either an incoming or outgoing connection
+ attempt ongoing.
+
+ "connecting" -> "disconnected"
+ Connection attempt failed
+
+ "connecting" -> "connected"
+ Successfully connected
+
+ "connected" -> "playing"
+ SCO audio connection successfully opened
+
+ "playing" -> "connected"
+ SCO audio connection closed
+
+ "connected" -> "disconnected"
+ "playing" -> "disconnected"
+ Disconnected from the remote device
+
+ boolean Connected [readonly]
+
+ Indicates if there is a active connection to the
+ HSP/HFP connection on the remote device.
+
+ boolean Playing [readonly]
+
+ Indicates if an audio connection to the headset
+ is active.
+
+ uint16 SpeakerGain [readwrite]
+
+ The speaker gain when available.
+
+ uint16 MicrophoneGain [readwrite]
+
+ The speaker gain when available.
+
+
+AudioSink hierarchy
+===================
+
+Service org.bluez
+Interface org.bluez.AudioSink
+Object path [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+Methods void Connect()
+
+ Connect and setup a stream to a A2DP sink on the
+ remote device.
+
+ void Disconnect()
+
+ Disconnect from the remote device.
+
+ boolean IsConnected() {deprecated}
+
+ Returns TRUE if a stream is setup to a A2DP sink on
+ the remote device.
+
+ dict GetProperties()
+
+ Returns all properties for the interface. See the
+ properties section for available properties.
+
+ Possible Errors: org.bluez.Error.InvalidArguments
+
+Signals Connected() {deprecated}
+
+ Sent when a successful connection has been made to the
+ remote A2DP Sink
+
+ Disconnected() {deprecated}
+
+ Sent when the device has been disconnected from.
+
+ Playing() {deprecated}
+
+ Sent when a stream with remote device is started.
+
+ Stopped() {deprecated}
+
+ Sent when a stream with remote device is suspended.
+
+ PropertyChanged(string name, variant value)
+
+ This signal indicates a changed value of the given
+ property.
+
+Properties string State [readonly]
+
+ Possible values: "disconnected", "connecting",
+ "connected", "playing"
+
+ "disconnected" -> "connecting"
+ Either an incoming or outgoing connection
+ attempt ongoing.
+
+ "connecting" -> "disconnected"
+ Connection attempt failed
+
+ "connecting" -> "connected"
+ Successfully connected
+
+ "connected" -> "playing"
+ Audio stream active
+
+ "playing" -> "connected"
+ Audio stream suspended
+
+ "connected" -> "disconnected"
+ "playing" -> "disconnected"
+ Disconnected from the remote device
+
+ boolean Connected [readonly]
+
+ Indicates if a stream is setup to a A2DP sink on
+ the remote device.
+
+ boolean Playing [readonly]
+
+ Indicates if a stream is active to a A2DP sink on
+ the remote device.
+
+AudioSource hierarchy
+=====================
+
+Service org.bluez
+Interface org.bluez.AudioSource
+Object path [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+Methods void Connect()
+
+ Connect and setup a stream to a A2DP source on the
+ remote device.
+
+ void Disconnect()
+
+ Disconnect from the remote device.
+
+ dict GetProperties()
+
+ Returns all properties for the interface. See the
+ properties section for available properties.
+
+ Possible Errors: org.bluez.Error.InvalidArguments
+
+Signals PropertyChanged(string name, variant value)
+
+ This signal indicates a changed value of the given
+ property.
+
+Properties string State [readonly]
+
+ Possible values: "disconnected", "connecting",
+ "connected", "playing"
+
+ "disconnected" -> "connecting"
+ Either an incoming or outgoing connection
+ attempt ongoing.
+
+ "connecting" -> "disconnected"
+ Connection attempt failed
+
+ "connecting" -> "connected"
+ Successfully connected
+
+ "connected" -> "playing"
+ Audio stream active
+
+ "playing" -> "connected"
+ Audio stream suspended
+
+ "connected" -> "disconnected"
+ "playing" -> "disconnected"
+ Disconnected from the remote device
+
+
+HeadsetGateway hierarchy
+========================
+
+Service org.bluez
+Interface org.bluez.HeadsetGateway
+Object path [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+This interface is available for remote devices which can function in the Audio
+Gateway role of the HFP profiles.
+
+Methods void Connect()
+
+ Connect to the AG service on the remote device.
+
+ void Disconnect()
+
+ Disconnect from the AG service on the remote device
+
+ void AnswerCall()
+
+ It has to called only after Ring signal received.
+
+ void TerminateCall()
+
+ Terminate call which is running or reject an incoming
+ call. This has nothing with any 3-way situation incl.
+ RaH. Just plain old PDH.
+
+ void Call(string number)
+
+ Dial a number 'number'. No number processing is done
+ thus if AG would reject to dial it don't blame me :)
+
+ string GetOperatorName()
+
+ Find out the name of the currently selected network
+ operator by AG.
+
+ void SendDTMF(string digits)
+
+ Will send each digit in the 'digits' sequentially. Would
+ send nothing if there is non-dtmf digit.
+
+ string GetSubscriberNumber()
+
+ Get the voicecall subscriber number of AG
+
+ dict GetProperties()
+
+ Returns all properties for the interface. See the
+ properties section for available properties.
+
+Signals Ring(string number)
+
+ Someone's calling from 'number'.
+ Caller number is provided as received from AG.
+
+ CallTerminated()
+
+ Call failed to set up. It means that we tried to call
+ someone or someone tried to call us but call was not
+ accepted.
+
+ CallStarted()
+
+ Call set up successfully.
+
+ CallEnded()
+
+ Call was started and now ended. In contrast with
+ CallTerminated where call didn't started
+
+ PropertyChanged(string name, variant value)
+
+ This signal indicates a changed value of the given
+ property.
+
+Properties boolean Connected [readonly]
+
+ Indicates if there is an active connection to the
+ AG service on the remote device.
+
+ uint16 RegistrationStatus [readonly]
+
+ Service availability indicatior of AG, where:
+ 0 implies no service. No Home/Roam network available.
+ 1 implies presence of service. Home/Roam network
+ available.
+
+ uint16 SignalStrength [readonly]
+
+ Signal strength indicator of AG, the value ranges from
+ 0 to 5.
+
+ uint16 RoamingStatus [readonly]
+
+ Roaming status indicator of AG, where:
+ 0 means roaming is not active
+ 1 means a roaming is active
+
+ uint16 BatteryCharge [readonly]
+
+ Battery Charge indicator of AG, the value ranges from
+ 0 to 5.
+
+ uint16 SpeakerGain [readonly]
+
+ The speaker gain when available.
+
+ uint16 MicrophoneGain [readonly]
+
+ The speaker gain when available.
diff --git a/contrib/bluez-api-4.96-fixed/device-api.txt b/contrib/bluez-api-4.96-fixed/device-api.txt
new file mode 100644
index 0000000..484e83f
--- /dev/null
+++ b/contrib/bluez-api-4.96-fixed/device-api.txt
@@ -0,0 +1,199 @@
+BlueZ D-Bus Device 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>
+
+
+Device hierarchy
+================
+
+Service org.bluez
+Interface org.bluez.Device
+Object path [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+Methods dict GetProperties()
+
+ Returns all properties for the device. See the
+ properties section for available properties.
+
+ Possible Errors: org.bluez.Error.DoesNotExist
+ org.bluez.Error.InvalidArguments
+
+ void SetProperty(string name, variant value)
+
+ Changes the value of the specified property. Only
+ properties that are listed a read-write are changeable.
+ On success this will emit a PropertyChanged signal.
+
+ Possible Errors: org.bluez.Error.DoesNotExist
+ org.bluez.Error.InvalidArguments
+
+ dict{u,s} DiscoverServices(string pattern)
+
+ This method starts the service discovery to retrieve
+ remote service records. The pattern parameter can
+ be used to specify specific UUIDs. And empty string
+ will look for the public browse group.
+
+ The return value is a dictionary with the record
+ handles as keys and the service record in XML format
+ as values. The key is uint32 and the value a string
+ for this dictionary.
+
+ Possible errors: org.bluez.Error.NotReady
+ org.bluez.Error.Failed
+ org.bluez.Error.InProgress
+
+ void CancelDiscovery()
+
+ This method will cancel any previous DiscoverServices
+ transaction.
+
+ Possible errors: org.bluez.Error.NotReady
+ org.bluez.Error.Failed
+ org.bluez.Error.NotAuthorized
+
+ void Disconnect()
+
+ This method disconnects a specific remote device by
+ terminating the low-level ACL connection. The use of
+ this method should be restricted to administrator
+ use.
+
+ A DisconnectRequested signal will be sent and the
+ actual disconnection will only happen 2 seconds later.
+ This enables upper-level applications to terminate
+ their connections gracefully before the ACL connection
+ is terminated.
+
+ Possible errors: org.bluez.Error.NotConnected
+
+ array{object} ListNodes() {unimplemented}
+
+ Returns list of device node object paths.
+
+ Possible errors: org.bluez.Error.InvalidArguments
+ org.bluez.Error.Failed
+ org.bluez.Error.OutOfMemory
+
+ object CreateNode(string uuid) {unimplemented}
+
+ Creates a persistent device node binding with a
+ remote device. The actual support for the specified
+ UUID depends if the device driver has support for
+ persistent binding. At the moment only RFCOMM TTY
+ nodes are supported.
+
+ Possible errors: org.bluez.Error.InvalidArguments
+ org.bluez.Error.NotSupported
+
+ void RemoveNode(object node) {unimplemented}
+
+ Removes a persistent device node binding.
+
+ Possible errors: org.bluez.Error.InvalidArguments
+ org.bluez.Error.DoesNotExist
+
+Signals PropertyChanged(string name, variant value)
+
+ This signal indicates a changed value of the given
+ property.
+
+ DisconnectRequested()
+
+ This signal will be sent when a low level
+ disconnection to a remote device has been requested.
+ The actual disconnection will happen 2 seconds later.
+
+ NodeCreated(object node) {unimplemented}
+
+ Parameter is object path of created device node.
+
+ NodeRemoved(object node) {unimplemented}
+
+ Parameter is object path of removed device node.
+
+Properties string Address [readonly]
+
+ The Bluetooth device address of the remote device.
+
+ string Name [readonly]
+
+ The Bluetooth remote name. This value can not be
+ changed. Use the Alias property instead.
+
+ string Icon [readonly]
+
+ Proposed icon name according to the freedesktop.org
+ icon naming specification.
+
+ uint32 Class [readonly]
+
+ The Bluetooth class of device of the remote device.
+
+ array{string} UUIDs [readonly]
+
+ List of 128-bit UUIDs that represents the available
+ remote services.
+
+ array{object} Services [readonly]
+
+ List of characteristics based services.
+
+ boolean Paired [readonly]
+
+ Indicates if the remote device is paired.
+
+ boolean Connected [readonly]
+
+ Indicates if the remote device is currently connected.
+ A PropertyChanged signal indicate changes to this
+ status.
+
+ boolean Trusted [readwrite]
+
+ Indicates if the remote is seen as trusted. This
+ setting can be changed by the application.
+
+ boolean Blocked [readwrite]
+
+ If set to true any incoming connections from the
+ device will be immediately rejected. Any device
+ drivers will also be removed and no new ones will
+ be probed as long as the device is blocked.
+
+ string Alias [readwrite]
+
+ The name alias for the remote device. The alias can
+ be used to have a different friendly name for the
+ remote device.
+
+ In case no alias is set, it will return the remote
+ device name. Setting an empty string as alias will
+ convert it back to the remote device name.
+
+ When reseting the alias with an empty string, the
+ emitted PropertyChanged signal will show the remote
+ name again.
+
+ array{object} Nodes [readonly] {unimplemented}
+
+ List of device node object paths.
+
+ object Adapter [readonly]
+
+ The object path of the adapter the device belongs to.
+
+ boolean LegacyPairing [readonly]
+
+ Set to true if the device only supports the pre-2.1
+ pairing mechanism. This property is useful in the
+ Adapter.DeviceFound signal to anticipate whether
+ legacy or simple pairing will occur.
+
+ Note that this property can exhibit false-positives
+ in the case of Bluetooth 2.1 (or newer) devices that
+ have disabled Extended Inquiry Response support.
diff --git a/contrib/bluez-api-4.96-fixed/input-api.txt b/contrib/bluez-api-4.96-fixed/input-api.txt
new file mode 100644
index 0000000..7c3a4b2
--- /dev/null
+++ b/contrib/bluez-api-4.96-fixed/input-api.txt
@@ -0,0 +1,44 @@
+BlueZ D-Bus Input API description
+*********************************
+
+Copyright (C) 2004-2010 Marcel Holtmann <marcel@holtmann.org>
+
+
+Input hierarchy
+===============
+
+Service org.bluez
+Interface org.bluez.Input
+Object path [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+Methods void Connect()
+
+ Connect to the input device.
+
+ Possible errors: org.bluez.Error.AlreadyConnected
+ org.bluez.Error.ConnectionAttemptFailed
+
+ void Disconnect()
+
+ Disconnect from the input device.
+
+ To abort a connection attempt in case of errors or
+ timeouts in the client it is fine to call this method.
+
+ Possible errors: org.bluez.Error.Failed
+
+ dict GetProperties()
+
+ Returns all properties for the interface. See the
+ properties section for available properties.
+
+ Possible Errors: org.bluez.Error.InvalidArguments
+
+Signals PropertyChanged(string name, variant value)
+
+ This signal indicates a changed value of the given
+ property.
+
+Properties boolean Connected [readonly]
+
+ Indicates if the device is connected.
diff --git a/contrib/bluez-api-4.96-fixed/manager-api.txt b/contrib/bluez-api-4.96-fixed/manager-api.txt
new file mode 100644
index 0000000..d2c1caf
--- /dev/null
+++ b/contrib/bluez-api-4.96-fixed/manager-api.txt
@@ -0,0 +1,74 @@
+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.
diff --git a/contrib/bluez-api-4.96-fixed/network-api.txt b/contrib/bluez-api-4.96-fixed/network-api.txt
new file mode 100644
index 0000000..4dd3e58
--- /dev/null
+++ b/contrib/bluez-api-4.96-fixed/network-api.txt
@@ -0,0 +1,88 @@
+BlueZ D-Bus Network API description
+***********************************
+
+Copyright (C) 2004-2010 Marcel Holtmann <marcel@holtmann.org>
+
+
+Network hierarchy
+=================
+
+Service org.bluez
+Interface org.bluez.Network
+Object path [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+Methods string Connect(string uuid)
+
+ Connect to the network device and return the network
+ interface name. Examples of the interface name are
+ bnep0, bnep1 etc.
+
+ uuid can be either one of "gn", "panu" or "nap" (case
+ insensitive) or a traditional string representation of
+ UUID or a hexadecimal number.
+
+ The connection will be closed and network device
+ released either upon calling Disconnect() or when
+ the client disappears from the message bus.
+
+ Possible errors: org.bluez.Error.AlreadyConnected
+ org.bluez.Error.ConnectionAttemptFailed
+
+ void Disconnect()
+
+ Disconnect from the network device.
+
+ To abort a connection attempt in case of errors or
+ timeouts in the client it is fine to call this method.
+
+ Possible errors: org.bluez.Error.Failed
+
+ dict GetProperties()
+
+ Returns all properties for the interface. See the
+ properties section for available properties.
+
+Signals PropertyChanged(string name, variant value)
+
+ This signal indicates a changed value of the given
+ property.
+
+Properties boolean Connected [readonly]
+
+ Indicates if the device is connected.
+
+ string Interface [readonly]
+
+ Indicates the network interface name when available.
+
+ string UUID [readonly]
+
+ Indicates the connection role when available.
+
+
+Network server hierarchy
+========================
+
+Service org.bluez
+Interface org.bluez.NetworkServer
+Object path /org/bluez/{hci0,hci1,...}
+
+Methods void Register(string uuid, string bridge)
+
+ Register server for the provided UUID. Every new
+ connection to this server will be added the bridge
+ interface.
+
+ Valid UUIDs are "gn", "panu" or "nap".
+
+ Initially no network server SDP is provided. Only
+ after this method a SDP record will be available
+ and the BNEP server will be ready for incoming
+ connections.
+
+ void Unregister(string uuid)
+
+ Unregister the server for provided UUID.
+
+ All servers will be automatically unregistered when
+ the calling application terminates.
diff --git a/contrib/bluez-api-4.96-fixed/serial-api.txt b/contrib/bluez-api-4.96-fixed/serial-api.txt
new file mode 100644
index 0000000..5f9bd5f
--- /dev/null
+++ b/contrib/bluez-api-4.96-fixed/serial-api.txt
@@ -0,0 +1,41 @@
+BlueZ D-Bus Serial API description
+**********************************
+
+Copyright (C) 2004-2010 Marcel Holtmann <marcel@holtmann.org>
+
+
+Serial hierarchy
+================
+
+Service org.bluez
+Interface org.bluez.Serial
+Object path [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+Methods string Connect(string pattern)
+
+ Connects to a specific RFCOMM based service on a
+ remote device and then creates a RFCOMM TTY
+ device for it. The RFCOMM TTY device is returned.
+
+ Possible patterns: UUID 128 bit as string
+ Profile short names, e.g: spp, dun
+ RFCOMM channel as string, 1-30
+
+ Possible errors: org.bluez.Error.InvalidArguments
+ org.bluez.Error.InProgress
+ org.bluez.Error.ConnectionAttemptFailed
+ org.bluez.Error.NotSupported
+
+ void Disconnect(string device)
+
+ Disconnect a RFCOMM TTY device that has been
+ created by Connect method.
+
+ To abort a connection attempt in case of errors or
+ timeouts in the client it is fine to call this method.
+
+ In that case one of patterns of the Connect method should
+ be suplied instead of the TTY device.
+
+ Possible errors: org.bluez.Error.InvalidArguments
+ org.bluez.Error.DoesNotExist
diff --git a/contrib/obexd-api-0.42-fixed/agent-api.txt b/contrib/obexd-api-0.42-fixed/agent-api.txt
new file mode 100644
index 0000000..e3dbc78
--- /dev/null
+++ b/contrib/obexd-api-0.42-fixed/agent-api.txt
@@ -0,0 +1,30 @@
+obexd Agent API description
+**********************************
+
+Copyright (C) 2007-2010 Nokia Corporation
+Copyright (C) 2007-2010 Marcel Holtmann <marcel@holtmann.org>
+
+
+Agent hierarchy
+===============
+
+Service unique name
+Interface org.openobex.Agent
+Object path freely definable
+
+Methods
+ string Authorize(object transfer, string bt_address, string name, string type, int32 length, int32 time)
+
+ This method gets called when the service daemon
+ needs to accept/reject a Bluetooth object push request.
+ Returns the full path (including the filename) where
+ the object shall be stored.
+
+ Possible errors: org.openobex.Error.Rejected
+ org.openobex.Error.Canceled
+
+ void Cancel()
+
+ This method gets called to indicate that the agent
+ request failed before a reply was returned. It cancels
+ the previous request.
diff --git a/contrib/obexd-api-0.42-fixed/agent.xml b/contrib/obexd-api-0.42-fixed/agent.xml
new file mode 100644
index 0000000..bb089dd
--- /dev/null
+++ b/contrib/obexd-api-0.42-fixed/agent.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/ObexAgent">
+ <interface name="org.openobex.Agent">
+ <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="obexagent"/>
+
+ <method name="Authorize">
+ <arg type="o" name="transfer" direction="in"/>
+ <arg type="s" name="bt_address" direction="in"/>
+ <arg type="s" name="name" direction="in"/>
+ <arg type="s" name="type" direction="in"/>
+ <arg type="i" name="length" direction="in"/>
+ <arg type="i" name="time" direction="in"/>
+ <arg type="s" direction="out"/>
+ </method>
+ <method name="Cancel"/>
+
+ <method name="Release"/>
+ <method name="Request">
+ <arg type="o" name="transfer" direction="in"/>
+ <arg type="s" direction="out"/>
+ </method>
+ <method name="Progress">
+ <arg type="o" name="transfer" direction="in"/>
+ <arg type="t" name="transferred" direction="in"/>
+ </method>
+ <method name="Complete">
+ <arg type="o" name="transfer" direction="in"/>
+ </method>
+ <method name="Error">
+ <arg type="o" name="transfer" direction="in"/>
+ <arg type="s" name="message" direction="in"/>
+ </method>
+
+ </interface>
+</node>
diff --git a/contrib/obexd-api-0.42-fixed/client-api.txt b/contrib/obexd-api-0.42-fixed/client-api.txt
new file mode 100644
index 0000000..fa8a36d
--- /dev/null
+++ b/contrib/obexd-api-0.42-fixed/client-api.txt
@@ -0,0 +1,329 @@
+OBEX client API description
+***************************
+
+Copyright (C) 2007-2010 Marcel Holtmann <marcel@holtmann.org>
+
+
+Client hierarchy
+================
+
+Service org.openobex.client
+Interface org.openobex.Client
+Object path /
+Object name OBEXClient
+
+Methods void SendFiles(dict device, array{string} files, object agent)
+
+ Send one or multiple local files to the specified
+ device. The device is configured via properties. At
+ least the Destination property should be specified.
+
+ void PullBusinessCard(dict device, string file)
+
+ Request the business card from a remote device and
+ store it in the local file.
+
+ void ExchangeBusinessCards(dict device, string clientfile, string file)
+
+ Push the client's business card to the remote device
+ and then retrieve the remote business card and store
+ it in a local file.
+
+ object CreateSession(dict device)
+
+ Create a new OBEX session. The device is configured
+ via properties like in SendFiles.
+
+ void RemoveSession(object session)
+
+ Unregister session and abort pending transfers.
+
+ string GetCapabilities(dict device)
+
+ Get remote device capabilities.
+
+Properties string Target
+
+ string Source
+
+ string Destination
+
+ byte Channel
+
+
+Session hierarchy
+=================
+
+Service org.openobex.client
+Interface org.openobex.Session
+Object path [variable prefix]/{session0,session1,...}
+Object name OBEXClientSession
+
+Methods dict GetProperties()
+
+ Returns all properties for the session.
+
+ void AssignAgent(object agent)
+
+ Assign an OBEX agent to this session. This allows
+ detailed progress reports about the transactions.
+
+ void ReleaseAgent(object agent)
+
+ Release a previously assigned OBEX agent.
+
+Properties string Source [readonly]
+
+ string Destination [readonly]
+
+ byte Channel [readonly]
+
+
+File Transfer hierarchy
+=======================
+
+Service org.openobex.client
+Interface org.openobex.FileTransfer
+Object path [variable prefix]/{session0,session1,...}
+Object name OBEXClientFileTransfer
+
+Methods void ChangeFolder(string folder)
+
+ Change the current folder of the remote device.
+
+ void CreateFolder(string folder)
+
+ Create a new folder in the remote device.
+
+ array{dict} ListFolder()
+
+ Returns a dictionary containing information about
+ the current folder content.
+
+ The following keys are defined:
+
+ string Name : Object name in UTF-8 format
+ string Type : Either "folder" or "file"
+ uint64 Size : Object size or number of items in folder
+ string Permission : Group, owner and other permission
+ guint64 Modified : Last change
+ guint64 Accessed : Last access
+ guint64 Created : Creation date
+
+ void GetFile(string targetfile, string sourcefile)
+
+ Copy the source file (from remote device) to the
+ target file (on local filesystem).
+
+ A new Transfer object is created to represent this
+ transaction.
+
+ void PutFile(string sourcefile, string targetfile)
+
+ Copy the source file (from local filesystem) to the
+ target file (on remote device).
+
+ A new Transfer object is created to represent this
+ transaction.
+
+ void CopyFile(string sourcefile, string targetfile)
+
+ Copy a file within the remote device from source file
+ to target file.
+
+ void MoveFile(string sourcefile, string targetfile)
+
+ Movea file within the remote device from source file
+ to the target file.
+
+ void Delete(string file)
+
+ Deletes the specified file/folder.
+
+
+Phonebook Access hierarchy
+=======================
+
+Service org.openobex.client
+Interface org.openobex.PhonebookAccess
+Object path [variable prefix]/{session0,session1,...}
+
+Methods void Select(string location, string phonebook)
+
+ Select the phonebook object for other operations. Should
+ be call before all the other operations.
+
+ location : Where the phonebook is stored, possible inputs :
+ "INT" ( "INTERNAL" which is default )
+ "SIM" ( "SIM1" )
+ "SIM2"
+ ...
+
+ phonebook : Possible inputs :
+ "pb" : phonebook for the saved contacts
+ "ich": incoming call history
+ "och": outgoing call history
+ "mch": missing call history
+ "cch": combination of ich och mch
+
+ string PullAll()
+
+ Return the entire phonebook object from the PSE server
+ in plain string with vcard format.
+
+ array{string vcard, string name} List()
+
+ Return an array of vcard-listing data which contains the
+ vcard : name paired string, for example "1.vcf" : "John".
+
+ string Pull(string vcard)
+
+ Retrieve the vcard in the current phonebook object
+ for example : Pull("0.vcf")
+
+ array{string vcard, string name}
+ Search(string field, string value)
+
+ Return an array of vcard-listing data which contains the
+ vcard : name paired string match the search condition.
+
+ field : the field in the vcard to search with
+ { "name" (default) | "number" | "sound" }
+ value : the string value to search for
+
+ uint16 GetSize()
+
+ Return the number of the non-null entries in the selected
+ phonebook object.
+
+ void SetFormat(string format)
+
+ Indicate the format of the vcard that should be return by
+ related methods.
+
+ format : { "vcard21" (default) | "vcard30" }
+
+ void SetOrder(string order)
+
+ Indicate the sorting method of the vcard-listing data returned
+ by List and Search methods.
+
+ order : { "indexed" (default) | "alphanumeric" | "phonetic" }
+
+ void SetFilter(array{string}) {FIX?!}
+
+ Indicate fields that should be contained in vcards return by
+ related methods.
+
+ Give an empty array will clear the filter and return all fields
+ available in vcards. And this is the default behavior.
+
+ Possible filter fields : "VERSION", "FN", ..., "ALL", "bit[0-63]"
+
+ array{string} ListFilterFields() {FIX?!}
+
+ Return All Available fields that can be used in SefFilter method.
+
+ array{string} GetFilter()
+
+ Return the current filter setting
+
+Synchronization hierarchy
+=======================
+
+Service org.openobex.client
+Interface org.openobex.Synchronization
+Object path [variable prefix]/{session0,session1,...}
+
+Methods void SetLocation(string location)
+
+ Set the phonebook object store location for other operations. Should
+ be called before all the other operations.
+
+ location: Where the phonebook is stored, possible values:
+ "INT" ( "INTERNAL" which is default )
+ "SIM1"
+ "SIM2"
+ ......
+
+ string GetPhonebook()
+
+ retrieve an entire Phonebook Object store from remote device
+
+ void PutPhonebook(string obj)
+
+ send an entire Phonebook Object store to remote device
+
+Transfer hierarchy
+==================
+
+Service org.openobex.client
+Interface org.openobex.Transfer
+Object path [variable prefix]/{transfer0,transfer1,...}
+Object name OBEXClientTransfer
+
+Methods dict GetProperties()
+
+ Returns all properties for the transfer. See the
+ properties section for available properties.
+
+ void Cancel()
+
+ Cancels this transfer.
+
+Properties string Name [readonly]
+
+ Name of the transferred object.
+
+ uint64 Size [readonly]
+
+ Size of the transferred object. If the size is
+ unknown, then this property will not be present.
+
+ string Filename [readonly]
+
+ Complete name of the file being received or sent.
+
+
+Agent hierarchy
+===============
+
+Service unique name
+Interface org.openobex.Agent
+Object path freely definable
+
+Methods void Release()
+
+ This method gets called when the service daemon
+ unregisters the agent. An agent can use it to do
+ cleanup tasks. There is no need to unregister the
+ agent, because when this method gets called it has
+ already been unregistered.
+
+ string Request(object transfer)
+
+ Accept or reject a new transfer (client and server)
+ and provide the filename for it.
+
+ In case of incoming transfers it is the filename
+ where to store the file and for outgoing transfers
+ it is the filename to show the remote device. If left
+ empty it will be calculated automatically.
+
+ Possible errors: org.openobex.Error.Rejected
+ org.openobex.Error.Canceled
+
+ void Progress(object transfer, uint64 transferred)
+
+ Progress within the transfer has been made. The
+ number of transferred bytes is given as second
+ argument for convenience.
+
+ void Complete(object transfer)
+
+ Informs that the transfer has completed sucessfully.
+
+ void Error(object transfer, string message)
+
+ Informs that the transfer has been terminated because
+ of some error.
diff --git a/contrib/obexd-api-0.42-fixed/obexd-api.txt b/contrib/obexd-api-0.42-fixed/obexd-api.txt
new file mode 100644
index 0000000..6cfaac7
--- /dev/null
+++ b/contrib/obexd-api-0.42-fixed/obexd-api.txt
@@ -0,0 +1,90 @@
+obexd API description
+**********************************
+
+Copyright (C) 2007-2010 Nokia Corporation
+Copyright (C) 2007-2010 Marcel Holtmann <marcel@holtmann.org>
+
+
+Manager hierarchy
+===============
+
+Service org.openobex
+Interface org.openobex.Manager
+Object path /
+Object name OBEXManager
+
+Methods
+ void RegisterAgent(object agent)
+
+ Register an agent to request authorization of
+ the user to accept/reject objects. Object push
+ service needs to authorize each received object.
+
+ Possible errors: org.openobex.Error.AlreadyExists
+
+ void UnregisterAgent(object agent)
+
+ This unregisters the agent that has been previously
+ registered. The object path parameter must match the
+ same value that has been used on registration.
+
+ Possible errors: org.openobex.Error.DoesNotExist
+
+Signals SessionCreated(object session)
+
+ Signal sent when OBEX connection has been accepted.
+ (FTP only)
+
+ SessionRemoved(object session)
+
+ Sent when the transport is disconnected
+ (FTP only)
+
+ TransferStarted(object transfer)
+
+ Signal sent when an object push operation starts.
+ (OPP only)
+
+ TransferCompleted(object transfer, boolean success)
+
+ Signal sent when the object has been received
+ or an error happens.
+ (OPP only)
+
+
+Transfer hierarchy
+===============
+
+Service org.openobex
+Interface org.openobex.Transfer
+Object path /transfer{0, 1, 2, ...}
+Object name OBEXTransfer
+
+Methods
+ void Cancel()
+
+ Stops the current transference.
+
+Signals
+ Progress(int32 total, int32 transfered)
+
+
+Session hierarchy
+===============
+
+Service org.openobex
+Interface org.openobex.Session
+Object path /session{0, 1, 2, ...}
+Object name OBEXSession
+
+Methods
+ dict GetProperties()
+
+
+Signals TBD
+
+
+Properties
+ string Address [readonly]
+
+ Bluetooth device address or USB