Google is committed to advancing racial equity for Black communities. See how.

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.

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
result 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
result 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 request<Target>

GetNextSessionBinding

Request

NameType

Response

NameType
event SessionBindingWatchEvent

GetNextTarget

Request

NameType

Response

NameType
target_watch_event TargetWatchEvent

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

NameType

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

NameType

Response

NameType
targets_watch_event TargetsWatchEvent

Group

Defined in fuchsia.media.target/target_discovery.fidl

A protocol for watching the members of a group.

GetNextTarget

Request

NameType

Response

NameType
target_watch_event TargetWatchEvent

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

NameType

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
result 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
result 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
result 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
result 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
result 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 request<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 request<fuchsia.media.audio/VolumeControl>

GetNextTarget

Request

NameType

Response

NameType
target_watch_event TargetWatchEvent

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
result 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

NameType

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 request<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 request<fuchsia.media.audio/VolumeControl>

STRUCTS

GroupEditor_AddTarget_Response

Defined in fuchsia.media.target/target_discovery.fidl

NameTypeDescriptionDefault
target_change TargetChange? No default

GroupEditor_RemoveTarget_Response

Defined in fuchsia.media.target/target_discovery.fidl

NameTypeDescriptionDefault
target_change TargetChange? No default

Selector_BindGroupTarget_Response

Defined in fuchsia.media.target/target_discovery.fidl

NameTypeDescriptionDefault
target_id Id No default

Selector_BindTarget_Response

Defined in fuchsia.media.target/target_discovery.fidl

NameTypeDescriptionDefault

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.

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

TargetChange

Defined in fuchsia.media.target/target_discovery.fidl

NameTypeDescriptionDefault
new_target_id Id No default

Void

Defined in fuchsia.media.target/target_discovery.fidl

NameTypeDescriptionDefault

ENUMS

Error

Type: uint32

Defined in fuchsia.media.target/target_discovery.fidl

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

OrdinalNameTypeDescription
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

OrdinalNameTypeDescription
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

OrdinalNameTypeDescription
1 updated vector<Description>

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

2 removed vector<uint64>

Targets that are removed since last notified.

UNIONS

GroupEditor_AddTarget_Result

Defined in fuchsia.media.target/target_discovery.fidl

NameTypeDescription
response GroupEditor_AddTarget_Response
err Error

GroupEditor_RemoveTarget_Result

Defined in fuchsia.media.target/target_discovery.fidl

NameTypeDescription
response GroupEditor_RemoveTarget_Response
err Error

Selector_BindGroupTarget_Result

Defined in fuchsia.media.target/target_discovery.fidl

NameTypeDescription
response Selector_BindGroupTarget_Response
err Error

Selector_BindTarget_Result

Defined in fuchsia.media.target/target_discovery.fidl

NameTypeDescription
response Selector_BindTarget_Response
err Error

SessionBindingWatchEvent

Defined in fuchsia.media.target/target_discovery.fidl

NameTypeDescription
existing SessionBinding

An already existing binding at the time of connection.

idle Void

Indicates the full set of bindings from the time of connection have been enumerated. No more existing events will be received.

added SessionBinding

A new binding added since connection.

removed SessionBinding

A binding removed.

TargetWatchEvent

Defined in fuchsia.media.target/target_discovery.fidl

NameTypeDescription
existing Description

An already existing target at the time of connection.

idle Void

Indicates the full set of targets from the time of connection have been enumerated. No more existing events will be received.

added Description

A new target added since connection.

updated Description

A target’s description was updated.

removed Id

A target removed.

BITS

CapabilityFlags

Type: uint64

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

TYPE ALIASES

NameValueDescription
DisplayName string

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.