blob: 2a4b1538cd85fdb6765834da889df4256b028367 [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.accessibility;
enum AccessibilitySettingsManagerStatus {
OK = 0;
ERROR = 1;
};
// Specifies color correction mode.
enum ColorCorrection {
// No color correction enabled.
DISABLED = 0;
// Color correction enabled for protoanomaly (red-green -- reduced sensitivity to red light).
CORRECT_PROTANOMALY = 1;
// Color correction enabled for deuteranomaly (red-green -- reduced sensitivy to green light).
CORRECT_DEUTERANOMALY = 2;
// Color correction enabled for tritanomaly (blue-yellow -- reduced sensitivity to blude light).
CORRECT_TRITANOMALY = 3;
};
table AccessibilityOptions {
1: bool magnification_enabled = false;
2: float32 magnification_zoom_factor = 1.0;
3: bool screen_reader_enabled = false;
4: bool color_inversion_enabled = false;
5: ColorCorrection color_correction = DISABLED;
};
// The accessibility settings manager enables clients to get/set and watch settings values
// for accessibility services.
[Discoverable]
interface AccessibilitySettingsManager {
GetAccessibilitySettings()
-> (AccessibilitySettingsManagerStatus status, AccessibilityOptions accessibility_options);
// When magnification is currently disabled, SetMagnificationEnabled(false) has no effect.
//
// When magnification is currently disabled, SetMagnificationEnabled(true)
// sets zoom factor to 1.0, enables magnification.
//
// When magnification is currently enabled, SetMagnificationEnabled(false)
// sets zoom factor to 1.0, disables magnification.
//
// When magnification is currently enabled, SetMagnificationEnabled(true) has no effect.
SetMagnificationEnabled(bool magnification_enabled)
-> (AccessibilitySettingsManagerStatus status);
// Sets value of zoom factor, provided that magnification is enabled.
// Zoom factor must be > 1.0.
// Returns ERROR if zoom is disabled or if magnification_zoom_factor < 0.
SetMagnificationZoomFactor(float32 magnification_zoom_factor)
-> (AccessibilitySettingsManagerStatus status);
SetScreenReaderEnabled(bool screen_reader_enabled)
-> (AccessibilitySettingsManagerStatus status);
SetColorInversionEnabled(bool color_inversion_enabled)
-> (AccessibilitySettingsManagerStatus status);
SetColorCorrection(ColorCorrection color_correction)
-> (AccessibilitySettingsManagerStatus status);
Watch(AccessibilitySettingsWatcher watcher)
-> (AccessibilitySettingsManagerStatus status);
};
interface AccessibilitySettingsWatcher {
// Called when accessibility settings elections change.
OnAccessibilitySettingsChange(AccessibilityOptions accessibility_options);
};