fuchsia.media.target

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.

Added: 7

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

NameType
session_id fuchsia.media.sessions2/SessionId
target_ids vector<uint64>[100]

Response

NameType
payload Selector_BindGroupTarget_Result

BindTarget

Renders the media session specified by session_id on the target specified by target_id.

Request

NameType
session_id fuchsia.media.sessions2/SessionId
target_id Id

Response

NameType
payload Selector_BindTarget_Result

ConnectToTarget

Connects to a target by id. Drops the given channel if no such target exists.

Request

NameType
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

NameType
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

NameType
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

NameType
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

NameType
target_id Id

Response

NameType
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

NameType
target_id Id

Response

NameType
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

NameType
session_id fuchsia.media.sessions2/SessionId
target_ids vector<uint64>[100]

Response

NameType
payload Selector_BindGroupTarget_Result

BindTarget

Renders the media session specified by session_id on the target specified by target_id.

Request

NameType
session_id fuchsia.media.sessions2/SessionId
target_id Id

Response

NameType
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

NameType
target_id Id

Response

NameType
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

NameType
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

NameType
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

NameType
target_id Id

Response

NameType
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

NameType
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

NameType
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

NameType
volume_control_request server_end<fuchsia.media.audio/VolumeControl>

STRUCTS

GroupEditor_AddTarget_Response

Defined in fuchsia.media.target/target_discovery.fidl

FieldTypeDescriptionDefault
target_change TargetChange? No default

GroupEditor_RemoveTarget_Response

Defined in fuchsia.media.target/target_discovery.fidl

FieldTypeDescriptionDefault
target_change TargetChange? No default

Selector_BindGroupTarget_Response

Defined in fuchsia.media.target/target_discovery.fidl

FieldTypeDescriptionDefault
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.

FieldTypeDescriptionDefault
session_id fuchsia.media.sessions2/SessionId No default
target_id Id No default

TargetChange

Defined in fuchsia.media.target/target_discovery.fidl

FieldTypeDescriptionDefault
new_target_id Id No default

ENUMS

Error strict

Type: uint32

Defined in fuchsia.media.target/target_discovery.fidl

NameValueDescription
0
1
2
3
4
5
6

TABLES

Description

Defined in fuchsia.media.target/target_discovery.fidl

A description of a target.

OrdinalFieldTypeDescription
target_id Id

Identifies the target.

capability_flags CapabilityFlags

Enumerates of the interoperability features the device supports.

display_name DisplayName
metadata fuchsia.media/Metadata

SessionBindingsWatchEvent

Defined in fuchsia.media.target/target_discovery.fidl

OrdinalFieldTypeDescription
updated vector<SessionBinding>

A list of active session bindings added or updated in the network at any point in time.

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

OrdinalFieldTypeDescription
updated vector<Description>

Targets added or updated on the network at any point in time.

removed vector<uint64>

Targets that are removed since last notified.

UNIONS

GroupEditor_AddTarget_Result strict

Defined in fuchsia.media.target/target_discovery.fidl

OrdinalVariantTypeDescription
response GroupEditor_AddTarget_Response
err Error

GroupEditor_RemoveTarget_Result strict

Defined in fuchsia.media.target/target_discovery.fidl

OrdinalVariantTypeDescription
response GroupEditor_RemoveTarget_Response
err Error

Selector_BindGroupTarget_Result strict

Defined in fuchsia.media.target/target_discovery.fidl

OrdinalVariantTypeDescription
response Selector_BindGroupTarget_Response
err Error

Selector_BindTarget_Result strict

Defined in fuchsia.media.target/target_discovery.fidl

OrdinalVariantTypeDescription
response Selector_BindTarget_Response
err Error

BITS

CapabilityFlags strict

Type: uint64

Defined in fuchsia.media.target/target_discovery.fidl

Capabilities of the target.

NameValueDescription
1

Indicates the target can receive a transfer of a media session from another target.

2

Indicates the target can transfer a media session to another target.

4

Indicates the target can participate in rendering media with other devices.

8

Indicates the target can render video.

ALIASES

NameValueDescription
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.