| 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 mumber 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 objets 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 |
| Interface org.bluez.MediaPlayer |
| Object path freely definable |
| |
| Methods void SetProperty(string property, variant value) |
| |
| Changes the value of the specified property. Only |
| properties that are listed as read-write can be changed. |
| |
| On success this will emit a PropertyChanged signal. |
| |
| 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 PropertyChanged(string setting, variant value) |
| |
| This signal indicates a changed value of the given |
| property. |
| |
| 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 dict GetProperties() |
| |
| Returns all properties for the interface. See the |
| properties section for available properties. |
| |
| 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 |
| |
| void Release(string accesstype) |
| |
| Releases file descriptor. |
| |
| void SetProperty(string name, variant value) |
| |
| Changes the value of the specified property. Only |
| properties that are listed a read-write can be changed. |
| |
| On success this will emit a PropertyChanged signal. |
| |
| Signals void PropertyChanged(string name, variant value) |
| |
| This signal indicates a changed value of the given |
| property. |
| |
| 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 mumber 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. |
| |
| uint16 Delay [readwrite] |
| |
| Optional. Transport delay in 1/10 of milisecond, 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" |