summaryrefslogtreecommitdiff
path: root/doc/media-api.txt
diff options
context:
space:
mode:
authorMikel Astiz <mikel.astiz@bmw-carit.de>2012-09-14 14:55:58 +0200
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2012-09-14 16:48:24 +0300
commit3edd39f0fd42686d0b1260525ae9778ef798f806 (patch)
tree6fcf31cc747363350ed9acc96dfef7088961213f /doc/media-api.txt
parent4138972b5b84a4c25c06847c714761495f296b96 (diff)
downloadbluez-3edd39f0fd42686d0b1260525ae9778ef798f806.tar.gz
media: Expose transport state in D-Bus
Extend the Media API to expose the transport state in D-Bus, as a property of the transport. This way the clients do not have to find out which is the corresponding profile-specific interface for the transport. Additionally, this state along with the automatic release of transports will allow clients to avoid the "optional release" or "accept remote release" race condition. For example, with HSP/HFP profiles, the problem is the following: 1. User suspends SCO in the remote end. 2. BlueZ signals the Playing->Connected state change in D-Bus. 3. Exactly afterwards, the user resumes SCO in the remote end. 4. In parallel, PulseAudio sees the aforementioned transition to Connected, and thus releases the transport. 5. BlueZ receives a Release() request while SCO is up. So the audio stream will be suspended. The last step is an undesired behavior since the user explicitly wanted to route the audio stream through Bluetooth. The issue is difficult to reproduce but it can easily be solved by exposing the transport state in D-Bus.
Diffstat (limited to 'doc/media-api.txt')
-rw-r--r--doc/media-api.txt8
1 files changed, 8 insertions, 0 deletions
diff --git a/doc/media-api.txt b/doc/media-api.txt
index e5eeaa009..da8ef5331 100644
--- a/doc/media-api.txt
+++ b/doc/media-api.txt
@@ -317,6 +317,14 @@ Properties object Device [readonly]
Configuration blob, it is used as it is so the size and
byte order must match.
+ string State [readonly]
+
+ Indicates the state of the transport. Possible
+ values are:
+ "idle": not streaming
+ "pending": streaming but not acquired
+ "active": streaming and acquired
+
uint16 Delay [readwrite]
Optional. Transport delay in 1/10 of millisecond, this