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

fuchsia.settings.policy

PROTOCOLS

VolumePolicyController

Defined in fuchsia.settings.policy/volume_policy.fidl

Provides access to enumerating and modifying policies for the fuchsia.settings.Audio API.

AddPolicy

Adds a policy for the given target.

Returns a policy_id for the added policy, which can be used to remove the policy with RemovePolicy.

If the policy being added contradicts an existing policy, the add call will return an error. An example would be specifying a max volume for a stream that is lower than an existing min volume.

If the transform specified in the PolicyParameters is not enumerated in the available_transforms of the policy property, the connection will be closed.

Adding a policy will immediately adjust the audio setting values if they don't yet conform to the policy, such as reducing the volume if it's greater than a specified maximum volume.

Request

NameType
target Target
parameters PolicyParameters

Response

NameType
result VolumePolicyController_AddPolicy_Result

GetProperties

Gets a list of volume policy properties, including possible transforms and active policies for the property.

Request

NameType

Response

NameType
properties vector<Property>

RemovePolicy

Removes a policy with the given policy id.

Request

NameType
policy_id PolicyId

Response

NameType
result VolumePolicyController_RemovePolicy_Result

STRUCTS

VolumePolicyController_AddPolicy_Response

Defined in fuchsia.settings.policy/volume_policy.fidl

NameTypeDescriptionDefault
policy_id PolicyId No default

VolumePolicyController_RemovePolicy_Response

Defined in fuchsia.settings.policy/volume_policy.fidl

NameTypeDescriptionDefault

ENUMS

Error

Type: uint32

Defined in fuchsia.settings.policy/error.fidl

Common error code used across policies.

NameValueDescription
FAILED 1

Generic internal failure.

UNKNOWN_POLICY 2

The specified policy ID is not known.

This may happen if another client removed a policy between a Get call and a RemovePolicy call.

INVALID_POLICY 3

The specified policy contradicts an existing policy.

This may happen if another client added a policy between a Get call and an AddPolicy call.

Transform

Type: uint8

Defined in fuchsia.settings.policy/volume_policy.fidl

Possible transforms for a policy target.

A transform is an operation that is applied to a policy property when the fuchsia.settings.Audio API is used. Multiple transforms of the same time can be active for a single property.

NameValueDescription
MAX 1

Limits the maximum value of an audio stream to a certain level.

MIN 2

Limits the minimum value of an audio stream to a certain level.

MUTE 3

Locks the mute state of an audio stream. Any changes to the mute state in Set calls to fuchsia.settings.Audio will be ignored, but the call itself will not rejected.

DISABLE 4

Disables modifying a given audio stream entirely, rejecting all Set calls to fuchsia.settings.Audio by closing the connection.

TABLES

Disable

Defined in fuchsia.settings.policy/volume_policy.fidl

Argument to be included for a DISABLE transform. Currently empty but may be allow arguments in the future.

OrdinalNameTypeDescription

Mute

Defined in fuchsia.settings.policy/volume_policy.fidl

OrdinalNameTypeDescription
1 mute bool

Locks the mute state of the stream to always muted if true, or never muted if false.

Policy

Defined in fuchsia.settings.policy/volume_policy.fidl

Definition for a policy that is applied to the fuchsia.settings.Audio API.

OrdinalNameTypeDescription
1 policy_id PolicyId

Unique identifier for this policy.

Returned from AddPolicy and also used by RemovePolicy.

2 parameters PolicyParameters

Parameters for this policy.

Property

Defined in fuchsia.settings.policy/volume_policy.fidl

A controllable property of the fuchsia.settings.Audio API that can have transforms applied to it.

OrdinalNameTypeDescription
1 target Target

Unique aspect of settings that this property controls.

Only one property may control any given target.

2 available_transforms vector<Transform>

List of available transform types for this property.

3 active_policies vector<Policy>

List of active policies for this property.

Volume

Defined in fuchsia.settings.policy/volume_policy.fidl

OrdinalNameTypeDescription
1 volume float32

A volume between 0.0 and 1.0 inclusive.

UNIONS

PolicyParameters

Defined in fuchsia.settings.policy/volume_policy.fidl

Specifies the type of policy transform and its arguments.

The chosen union field implies the type of transform that the arguments apply to.

NameTypeDescription
min Volume

This parameter should be included for the MIN transform and specifies the volume level to clamp the audio stream to.

max Volume

This parameter should be included for the MAX transform and specifies the volume level to clamp the audio stream to.

mute Mute

This parameter should be included for the MUTE transform and specifies the state to lock the mute status of an audio stream to.

disable Disable

This parameter should be included for the DISABLE transform and causes all Set calls to fuchsia.settings.Audio to be rejected by closing the connection.

Target

Defined in fuchsia.settings.policy/volume_policy.fidl

Specifies what aspect of the settings a property controls.

NameTypeDescription
stream fuchsia.media/AudioRenderUsage

An audio stream that can have policies applied to it.

VolumePolicyController_AddPolicy_Result

Defined in fuchsia.settings.policy/volume_policy.fidl

NameTypeDescription
response VolumePolicyController_AddPolicy_Response
err Error

VolumePolicyController_RemovePolicy_Result

Defined in fuchsia.settings.policy/volume_policy.fidl

NameTypeDescription
response VolumePolicyController_RemovePolicy_Response
err Error

TYPE ALIASES

NameValueDescription
PolicyId uint32