blob: 9d6a9de15e558e9baa9daf1559a03ac9b40b851b [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.settings;
using fuchsia.ui.types;
/// Modify or watch accessibility settings that are persisted.
///
/// Supported SettingsEpitaph enums:
/// REQUEST_NOT_SUPPORTED, INTERNAL_SERVICE_ERROR, PERSISTENT_STORAGE_ERROR
[Discoverable]
protocol Accessibility {
/// This call may fail if AccessibilitySettings are not accessible, possibly because of file
/// system errors, not being supported on this product, or general service failures.
///
/// DEPRECATED: new watches should use Watch2.
[Transitional = "Deprecated in favor of Watch2"]
Watch() -> (AccessibilitySettings settings) error Error;
/// Gets the current value of all accessibility settings. Returns
/// immediately on first call; subsequent calls return when any of the
/// values change.
///
/// - `settings` all current values of the accessibility settings.
/// * see [`AccessibilitySettings`] for their meaning.
///
/// If this call fails, it is considered a fatal error and the channel
/// will be closed.
[Transitional = "Replacement for Watch"]
Watch2() -> (AccessibilitySettings settings);
/// Sets [AccessibilitySettings] settings. Any field not explicitly set in the table performs a
/// no-op, and will not make any changes.
Set(AccessibilitySettings settings) -> () error Error;
};
/// Supported accessibility settings.
table AccessibilitySettings {
/// For videos, use an alternative audio track (akin to changing languages)
/// that explains what is happening visually while there is no dialogue.
1: bool audio_description;
/// Read aloud elements of the screen selected by the user.
2: bool screen_reader;
/// Invert colors on the screen.
3: bool color_inversion;
/// Interpret triple-tap on the touchscreen as a command to zoom in.
4: bool enable_magnification;
/// What type of color-blindness, if any, to correct for.
5: ColorBlindnessType color_correction;
/// What kind of sources get closed captions, and how they look.
6: CaptionsSettings captions_settings;
};
enum ColorBlindnessType {
/// No color blindness.
NONE = 0;
/// Red-green color blindness due to reduced sensitivity to red light.
PROTANOMALY = 1;
/// Red-green color blindness due to reduced sensitivity to green light.
DEUTERANOMALY = 2;
/// Blue-yellow color blindness. It is due to reduced sensitivity to blue
/// light.
TRITANOMALY = 3;
};
/// What kind of sources get closed captions, and how they look.
table CaptionsSettings {
/// Closed captions enabled for media sources of audio.
1: bool for_media;
/// Closed captions enabled for Text-To-Speech sources of audio.
2: bool for_tts;
/// Font style and color used for the closed captions text.
3: CaptionFontStyle font_style;
/// Border color used around the closed captions window.
4: fuchsia.ui.types.ColorRgba window_color;
/// Background color of the closed captions window.
5: fuchsia.ui.types.ColorRgba background_color;
};
/// Font, size, and color of closed captions text.
table CaptionFontStyle {
1: CaptionFontFamily family;
/// 47 CFR §79.103(c)(2) requires at least 3-bit RGB for user override of
/// closed-captions color.
2: fuchsia.ui.types.ColorRgba color;
/// Size of closed captions text relative to the default captions size. A
/// range of [0.5, 2] is guaranteed to be supported (as 47 CFR §79.103(c)(4)
/// establishes).
3: float32 relative_size;
4: EdgeStyle char_edge_style;
};
/// Font family groups for closed captions, specified by 47 CFR §79.102(k).
enum CaptionFontFamily {
UNKNOWN = 0;
MONOSPACED_SERIF = 1;
PROPORTIONAL_SERIF = 2;
MONOSPACED_SANS_SERIF = 3;
PROPORTIONAL_SANS_SERIF = 4;
CASUAL = 5;
CURSIVE = 6;
SMALL_CAPITALS = 7;
};
/// Edge style for fonts as specified in 47 CFR §79.103(c)(7)
enum EdgeStyle {
/// No border around fonts.
NONE = 0;
/// A shadow "behind" and slightly offset from each edge.
DROP_SHADOW = 1;
/// A bevel that mimics a 3D raised effect.
RAISED = 2;
/// A bevel that mimics a 3D depressed effect.
DEPRESSED = 3;
/// A plain border around each shapes.
OUTLINE = 4;
};