| // Copyright 2018 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.hardware.backlight; |
| using zx; |
| |
| struct State { |
| bool backlight_on; |
| /// `brightness` can either be: |
| /// 1. The unitless brightness value on a linear scale where 0.0 is the minimum |
| /// brightness and 1.0 is the maximum brightness - represents the current / |
| /// desired brightness as a percentage within the supported range. Used |
| /// by the `GetStateNormalized` / `SetStateNormalized` calls. The maximum |
| /// brightness that can be set using `SetStateNormalized` is |
| /// GetBrightnessScale() * GetMaxAbsoluteBrightness(). |
| /// 2. Absolute brightness in nits. Used by the `GetStateAbsolute` / |
| /// `SetStateAbsolute` calls. |
| float64 brightness; |
| }; |
| |
| protocol Device { |
| /// Gets the current backlight brightness as a percentage value between 0.0 |
| /// and 1.0 |
| GetStateNormalized() -> (State state) error zx.status; |
| |
| /// Sets the current backlight brightness as a percentage value between 0.0 |
| /// and 1.0 |
| SetStateNormalized(State state) -> () error zx.status; |
| |
| /// Gets the current backlight brightness in nits |
| GetStateAbsolute() -> (State state) error zx.status; |
| |
| /// Sets the current backlight brightness in nits. Not affected by the scale |
| /// set by SetNormalizedBrightnessScale. |
| SetStateAbsolute(State state) -> () error zx.status; |
| |
| /// Gets the maximum supported backlight brightness in nits, if known. |
| /// Otherwise returns error ZX_ERR_NOT_SUPPORTED. |
| GetMaxAbsoluteBrightness() -> (float64 max_brightness) error zx.status; |
| |
| /// Scales the maximum normalized brightness by a percentage value in |
| /// [0.0, 1.0], if supported. Otherwise returns error ZX_ERR_NOT_SUPPORTED. |
| /// Values passed to SetStateNormalized will correspond to a maximum |
| /// brightness of scale * GetMaxAbsoluteBrightness(). Calling this may |
| /// change the current absolute brightness. |
| SetNormalizedBrightnessScale(float64 scale) -> () error zx.status; |
| |
| /// Gets the current normalized brightness scale as a percentage value in |
| /// [0.0, 1.0]. |
| GetNormalizedBrightnessScale() -> (float64 scale) error zx.status; |
| }; |