A library of protocols for routing media between devices.
This library is based on "targets", which are devices or groups of devices
which can render media sessions. See fuchsia.media.sessions2
for media
session details.
Through the Discovery
protocol, clients can discover what media targets
are available on the network, and select them to render media sessions.
PROTOCOLS
Discovery
Defined in fuchsia.media.target/target_discovery.fidl
A protocol for discovering media targets.
BindGroupTarget
Renders the media session specified by session_id
on the set of
targets specified by target_ids
.
This may create a new group target which contains all the specified
targets as members, if one does not exist. The group target may be
temporary, only existing for the lifetime of playback, and not
discoverable through Discovery
.
Request
Name | Type |
---|---|
session_id |
fuchsia.media.sessions2/SessionId
|
target_ids |
vector<Id>:100
|
Response
Name | Type |
---|---|
payload |
Selector_BindGroupTarget_Result
|
BindTarget
Renders the media session specified by session_id
on the target
specified by target_id
.
Request
Name | Type |
---|---|
session_id |
fuchsia.media.sessions2/SessionId
|
target_id |
Id
|
Response
Name | Type |
---|---|
payload |
Selector_BindTarget_Result
|
ConnectToTarget
Connects to a target by id. Drops the given channel if no such target exists.
Request
Name | Type |
---|---|
target_id |
Id
|
target_request |
server_end:Target
|
WatchSessionBindings
Watches for bindings of media sessions to targets.
A media session is rendered on the target to which it is bound.
Bindings are returned as deltas between the watch calls, leave a request hanging to get the latest updates.
Request
<EMPTY>
Response
Name | Type |
---|---|
event |
SessionBindingsWatchEvent
|
WatchTargets
Watches for changes to the set of registered targets. Leave a request hanging to get replies when changes occur. New clients will be caught up with the state of the world.
Targets are returned as deltas between the watch calls.
Request
<EMPTY>
Response
Name | Type |
---|---|
targets_watch_event |
TargetsWatchEvent
|
Group
Defined in fuchsia.media.target/target_discovery.fidl
A protocol for watching the members of a group.
WatchTargets
Watches for changes to the set of registered targets. Leave a request hanging to get replies when changes occur. New clients will be caught up with the state of the world.
Targets are returned as deltas between the watch calls.
Request
<EMPTY>
Response
Name | Type |
---|---|
targets_watch_event |
TargetsWatchEvent
|
GroupEditor
Defined in fuchsia.media.target/target_discovery.fidl
A protocol for adding and removing members of a group target.
AddTarget
Adds a target to this group target.
If the added target is a group of devices, all the devices in that group are added to this group. A group itself cannot be a member of a group.
Returns the id of the new target if a new group was created to fulfill this request.
Request
Name | Type |
---|---|
target_id |
Id
|
Response
Name | Type |
---|---|
payload |
GroupEditor_AddTarget_Result
|
RemoveTarget
Removes a target from this group. Returns the id of the new target if a new group was created to fulfill this request.
Request
Name | Type |
---|---|
target_id |
Id
|
Response
Name | Type |
---|---|
payload |
GroupEditor_RemoveTarget_Result
|
Selector
Defined in fuchsia.media.target/target_discovery.fidl
A protocol for selecting a media target. Commands on this protocol can change the target on which a media session is rendered.
BindGroupTarget
Renders the media session specified by session_id
on the set of
targets specified by target_ids
.
This may create a new group target which contains all the specified
targets as members, if one does not exist. The group target may be
temporary, only existing for the lifetime of playback, and not
discoverable through Discovery
.
Request
Name | Type |
---|---|
session_id |
fuchsia.media.sessions2/SessionId
|
target_ids |
vector<Id>:100
|
Response
Name | Type |
---|---|
payload |
Selector_BindGroupTarget_Result
|
BindTarget
Renders the media session specified by session_id
on the target
specified by target_id
.
Request
Name | Type |
---|---|
session_id |
fuchsia.media.sessions2/SessionId
|
target_id |
Id
|
Response
Name | Type |
---|---|
payload |
Selector_BindTarget_Result
|
Target
Defined in fuchsia.media.target/target_discovery.fidl
A target is a device or group of devices on which media can be rendered, such as a speaker which renders audio.
AddTarget
Adds a target to this group target.
If the added target is a group of devices, all the devices in that group are added to this group. A group itself cannot be a member of a group.
Returns the id of the new target if a new group was created to fulfill this request.
Request
Name | Type |
---|---|
target_id |
Id
|
Response
Name | Type |
---|---|
payload |
GroupEditor_AddTarget_Result
|
BindMemberVolumeControl
Binds to the target's volume control as a member of the given group. The request channel is dropped if the target is not a member of the group.
This volume control influences the volume of this target only when it is participating as a member of the group. This is used to adjust the balance of volume among members of a group. These settings persist for the lifetime of the target
Request
Name | Type |
---|---|
group |
Id
|
volume_control_request |
server_end:fuchsia.media.audio/VolumeControl
|
BindVolumeControl
Binds to the target's volume control. If this target is a group, all member volumes are influenced. These settings persist for the lifetime of the target.
Request
Name | Type |
---|---|
volume_control_request |
server_end:fuchsia.media.audio/VolumeControl
|
RemoveTarget
Removes a target from this group. Returns the id of the new target if a new group was created to fulfill this request.
Request
Name | Type |
---|---|
target_id |
Id
|
Response
Name | Type |
---|---|
payload |
GroupEditor_RemoveTarget_Result
|
WatchTargets
Watches for changes to the set of registered targets. Leave a request hanging to get replies when changes occur. New clients will be caught up with the state of the world.
Targets are returned as deltas between the watch calls.
Request
<EMPTY>
Response
Name | Type |
---|---|
targets_watch_event |
TargetsWatchEvent
|
VolumeControl
Defined in fuchsia.media.target/target_discovery.fidl
A protocol to control the volume of target.
BindMemberVolumeControl
Binds to the target's volume control as a member of the given group. The request channel is dropped if the target is not a member of the group.
This volume control influences the volume of this target only when it is participating as a member of the group. This is used to adjust the balance of volume among members of a group. These settings persist for the lifetime of the target
Request
Name | Type |
---|---|
group |
Id
|
volume_control_request |
server_end:fuchsia.media.audio/VolumeControl
|
BindVolumeControl
Binds to the target's volume control. If this target is a group, all member volumes are influenced. These settings persist for the lifetime of the target.
Request
Name | Type |
---|---|
volume_control_request |
server_end:fuchsia.media.audio/VolumeControl
|
STRUCTS
GroupEditor_AddTarget_Response
Defined in fuchsia.media.target/target_discovery.fidl
Field | Type | Description | Default |
---|---|---|---|
target_change |
TargetChange?
|
No default |
GroupEditor_RemoveTarget_Response
Defined in fuchsia.media.target/target_discovery.fidl
Field | Type | Description | Default |
---|---|---|---|
target_change |
TargetChange?
|
No default |
Selector_BindGroupTarget_Response
Defined in fuchsia.media.target/target_discovery.fidl
Field | Type | Description | Default |
---|---|---|---|
target_id |
Id
|
No default |
Selector_BindTarget_Response
Defined in fuchsia.media.target/target_discovery.fidl
<EMPTY>
SessionBinding
Defined in fuchsia.media.target/target_discovery.fidl
A binding between a session and a target, indicating the media session is rendered on the target.
Field | Type | Description | Default |
---|---|---|---|
session_id |
fuchsia.media.sessions2/SessionId
|
No default | |
target_id |
Id
|
No default |
TargetChange
Defined in fuchsia.media.target/target_discovery.fidl
Field | Type | Description | Default |
---|---|---|---|
new_target_id |
Id
|
No default |
ENUMS
Error strict
Type: uint32
Defined in fuchsia.media.target/target_discovery.fidl
Name | Value | Description |
---|---|---|
NOT_A_GROUP |
0 |
|
UNKNOWN_ON_DOMAIN |
1 |
|
CANNOT_BE_GROUPED |
2 |
|
NOT_MEMBER_OF_GROUP |
3 |
|
TRANSFER_FROM_TARGET_UNSUPPORTED |
4 |
|
TRANSFER_TO_TARGET_UNSUPPORTED |
5 |
|
MULTI_TARGET_PLAYBACK_UNSUPPORTED |
6 |
TABLES
Description
Defined in fuchsia.media.target/target_discovery.fidl
A description of a target.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
target_id |
Id
|
Identifies the target. |
2 |
capability_flags |
CapabilityFlags
|
Enumerates of the interoperability features the device supports. |
3 |
display_name |
DisplayName
|
|
4 |
metadata |
fuchsia.media/Metadata
|
SessionBindingsWatchEvent
Defined in fuchsia.media.target/target_discovery.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
updated |
vector<SessionBinding>
|
A list of active session bindings added or updated in the network at any point in time. |
2 |
removed |
vector<SessionBinding>
|
A list of session bindings that are removed in the network since notified. |
TargetsWatchEvent
Defined in fuchsia.media.target/target_discovery.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
updated |
vector<Description>
|
Targets added or updated on the network at any point in time. |
2 |
removed |
vector<Id>
|
Targets that are removed since last notified. |
UNIONS
GroupEditor_AddTarget_Result strict
Defined in fuchsia.media.target/target_discovery.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
GroupEditor_AddTarget_Response
|
|
2 |
err |
Error
|
GroupEditor_RemoveTarget_Result strict
Defined in fuchsia.media.target/target_discovery.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
GroupEditor_RemoveTarget_Response
|
|
2 |
err |
Error
|
Selector_BindGroupTarget_Result strict
Defined in fuchsia.media.target/target_discovery.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Selector_BindGroupTarget_Response
|
|
2 |
err |
Error
|
Selector_BindTarget_Result strict
Defined in fuchsia.media.target/target_discovery.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Selector_BindTarget_Response
|
|
2 |
err |
Error
|
BITS
CapabilityFlags strict
Type: uint64
Defined in fuchsia.media.target/target_discovery.fidl
Capabilities of the target.
Name | Value | Description |
---|---|---|
TRANSFER_TO |
1 | Indicates the target can receive a transfer of a media session from another target. |
TRANSFER_FROM |
2 | Indicates the target can transfer a media session to another target. |
MULTI_TARGET_PLAYBACK |
4 | Indicates the target can participate in rendering media with other devices. |
VIDEO |
8 | Indicates the target can render video. |
ALIASES
Name | Value | Description |
---|---|---|
DisplayName |
string [200 ] |
A user-visible name for a target to display in user interface or read in voice interfaces. |
Id |
uint64 |
A unique id for a target. |