mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2024-11-26 05:34:23 +08:00
351 lines
7.9 KiB
Plaintext
351 lines
7.9 KiB
Plaintext
BlueZ D-Bus Media API description
|
|
*********************************
|
|
|
|
Media hierarchy
|
|
===============
|
|
|
|
Service org.bluez
|
|
Interface org.bluez.Media
|
|
Object path [variable prefix]/{hci0,hci1,...}
|
|
|
|
Methods void RegisterEndpoint(object endpoint, dict properties)
|
|
|
|
Register a local end point to sender, the sender can
|
|
register as many end points as it likes.
|
|
|
|
Note: If the sender disconnects the end points are
|
|
automatically unregistered.
|
|
|
|
possible properties:
|
|
|
|
string UUID:
|
|
|
|
UUID of the profile which the endpoint
|
|
is for.
|
|
|
|
byte Codec:
|
|
|
|
Assigned number of codec that the
|
|
endpoint implements. The values should
|
|
match the profile specification which
|
|
is indicated by the UUID.
|
|
|
|
array{byte} Capabilities:
|
|
|
|
Capabilities blob, it is used as it is
|
|
so the size and byte order must match.
|
|
|
|
Possible Errors: org.bluez.Error.InvalidArguments
|
|
org.bluez.Error.NotSupported - emitted
|
|
when interface for the end-point is
|
|
disabled.
|
|
|
|
void UnregisterEndpoint(object endpoint)
|
|
|
|
Unregister sender end point.
|
|
|
|
void RegisterPlayer(object player, dict properties,
|
|
dict metadata)
|
|
|
|
Register a media player object to sender, the sender
|
|
can register as many objects as it likes.
|
|
|
|
Note: If the sender disconnects its objects are
|
|
automatically unregistered.
|
|
|
|
Properties:
|
|
|
|
string Equalizer:
|
|
|
|
Possible values: "off" or "on"
|
|
|
|
string Repeat:
|
|
|
|
Possible values: "off", "singletrack",
|
|
"alltracks" or "group"
|
|
|
|
string Shuffle:
|
|
|
|
Possible values: "off", "alltracks" or
|
|
"group"
|
|
|
|
string Scan:
|
|
|
|
Possible values: "off", "alltracks" or
|
|
"group"
|
|
|
|
string Status:
|
|
|
|
Possible values: "playing", "stopped",
|
|
"paused",
|
|
"forward-seek",
|
|
"reverse-seek" or
|
|
"error"
|
|
|
|
uint32 Position
|
|
|
|
Playback position in milliseconds
|
|
|
|
Metadata:
|
|
|
|
string Title:
|
|
|
|
Track title name
|
|
|
|
string Artist:
|
|
|
|
Track artist name
|
|
|
|
string Album:
|
|
|
|
Track album name
|
|
|
|
string Genre:
|
|
|
|
Track genre name
|
|
|
|
uint32 NumberOfTracks:
|
|
|
|
Number of tracks in total
|
|
|
|
uint32 Number:
|
|
|
|
Track number
|
|
|
|
uint32 Duration:
|
|
|
|
Track duration in milliseconds
|
|
|
|
Possible Errors: org.bluez.Error.InvalidArguments
|
|
org.bluez.Error.NotSupported
|
|
|
|
void UnregisterPlayer(object player)
|
|
|
|
Unregister sender media player.
|
|
|
|
MediaPlayer hierarchy
|
|
=====================
|
|
|
|
Service unique name (Target role)
|
|
org.bluez (Controller role)
|
|
Interface org.bluez.MediaPlayer
|
|
Object path freely definable (Target role)
|
|
[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX/playerX
|
|
(Controller role)
|
|
|
|
Methods dict GetTrack()
|
|
|
|
Returns known metadata of the current track.
|
|
|
|
See TrackChanged for possible values.
|
|
|
|
void Release()
|
|
|
|
This method gets called when the service daemon
|
|
unregisters the player which can then perform
|
|
cleanup tasks. There is no need to unregister the
|
|
player, because when this method gets called it has
|
|
already been unregistered.
|
|
|
|
Signals TrackChanged(dict metadata)
|
|
|
|
This signal indicates that current track has changed.
|
|
All available metadata for the new track shall be set
|
|
at once in the metadata argument. Metadata cannot be
|
|
updated in parts, otherwise it will be interpreted as
|
|
multiple track changes.
|
|
|
|
Possible values:
|
|
|
|
string Title:
|
|
|
|
Track title name
|
|
|
|
string Artist:
|
|
|
|
Track artist name
|
|
|
|
string Album:
|
|
|
|
Track album name
|
|
|
|
string Genre:
|
|
|
|
Track genre name
|
|
|
|
uint32 NumberOfTracks:
|
|
|
|
Number of tracks in total
|
|
|
|
uint32 Number:
|
|
|
|
Track number
|
|
|
|
uint32 Duration:
|
|
|
|
Track duration in milliseconds
|
|
|
|
Properties string Equalizer [readwrite]
|
|
|
|
Possible values: "off" or "on"
|
|
|
|
string Repeat [readwrite]
|
|
|
|
Possible values: "off", "singletrack", "alltracks" or
|
|
"group"
|
|
|
|
string Shuffle [readwrite]
|
|
|
|
Possible values: "off", "alltracks" or "group"
|
|
|
|
string Scan [readwrite]
|
|
|
|
Possible values: "off", "alltracks" or "group"
|
|
|
|
string Status [readonly]
|
|
|
|
Possible status: "playing", "stopped", "paused",
|
|
"forward-seek", "reverse-seek" or
|
|
"error"
|
|
|
|
uint32 Position [readonly]
|
|
|
|
Playback position in milliseconds. Changing the
|
|
position may generate additional events that will be
|
|
sent to the remote device. When position is 0 it means
|
|
the track is starting and when it's greater than or
|
|
equal to track's duration the track has ended. Note
|
|
that even if duration is not available in metadata it's
|
|
possible to signal its end by setting position to the
|
|
maximum uint32 value.
|
|
|
|
MediaEndpoint hierarchy
|
|
=======================
|
|
|
|
Service unique name
|
|
Interface org.bluez.MediaEndpoint
|
|
Object path freely definable
|
|
|
|
Methods void SetConfiguration(object transport, dict properties)
|
|
|
|
Set configuration for the transport.
|
|
|
|
array{byte} SelectConfiguration(array{byte} capabilities)
|
|
|
|
Select preferable configuration from the supported
|
|
capabilities.
|
|
|
|
Returns a configuration which can be used to setup
|
|
a transport.
|
|
|
|
Note: There is no need to cache the selected
|
|
configuration since on success the configuration is
|
|
send back as parameter of SetConfiguration.
|
|
|
|
void ClearConfiguration(object transport)
|
|
|
|
Clear transport configuration.
|
|
|
|
void Release()
|
|
|
|
This method gets called when the service daemon
|
|
unregisters the endpoint. An endpoint can use it to do
|
|
cleanup tasks. There is no need to unregister the
|
|
endpoint, because when this method gets called it has
|
|
already been unregistered.
|
|
|
|
MediaTransport hierarchy
|
|
========================
|
|
|
|
Service org.bluez
|
|
Interface org.bluez.MediaTransport
|
|
Object path [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX/fdX
|
|
|
|
Methods fd, uint16, uint16 Acquire(string accesstype)
|
|
|
|
Acquire transport file descriptor and the MTU for read
|
|
and write respectively.
|
|
|
|
possible accesstype:
|
|
|
|
"r" : Read only access
|
|
|
|
"w" : Write only access
|
|
|
|
"rw": Read and write access
|
|
|
|
The accesstype string can also be combined with a "?"
|
|
suffix, which will make the request optional. This
|
|
typically means the transport will only be acquired if
|
|
it is already available (remote-initiated), but
|
|
otherwise no request will be sent to the remote side.
|
|
In this last case the function will fail. Note that,
|
|
due to compatibility issues with older versions of
|
|
BlueZ, clients are encouraged to use exactly the same
|
|
accesstype for Release(), matching the string provided
|
|
to Acquire().
|
|
|
|
void Release(string accesstype)
|
|
|
|
Releases file descriptor.
|
|
|
|
Properties object Device [readonly]
|
|
|
|
Device object which the transport is connected to.
|
|
|
|
string UUID [readonly]
|
|
|
|
UUID of the profile which the transport is for.
|
|
|
|
byte Codec [readonly]
|
|
|
|
Assigned number of codec that the transport support.
|
|
The values should match the profile specification which
|
|
is indicated by the UUID.
|
|
|
|
array{byte} Configuration [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
|
|
property is only writeable when the transport was
|
|
acquired by the sender.
|
|
|
|
boolean NREC [readwrite]
|
|
|
|
Optional. Indicates if echo cancelling and noise
|
|
reduction functions are active in the transport, this
|
|
property is only writeable when the transport was
|
|
acquired by the sender.
|
|
|
|
boolean InbandRingtone [readwrite]
|
|
|
|
Optional. Indicates if the transport support sending
|
|
ringtones, this property is only writeable when the
|
|
transport was acquired by the sender.
|
|
|
|
string Routing [readonly]
|
|
|
|
Optional. Indicates where is the transport being routed
|
|
|
|
Possible Values: "HCI" or "PCM"
|
|
|
|
uint16 Volume [readwrite]
|
|
|
|
Optional. Indicates volume level of the transport,
|
|
this property is only writeable when the transport was
|
|
acquired by the sender.
|
|
|
|
Possible Values: 0-127
|