| // 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.ui.brightness; |
| |
| /// Allows clients to request changes to the screen's color adjustment matrix. |
| /// This protocol should be implemented and served by the owner of screen presentation. |
| @discoverable |
| @available(added=16) |
| open protocol ColorAdjustment { |
| /// Called to change the color adjustment to a discrete value. |
| /// The server will send a response once the request has been serviced. |
| /// A client can then use this response to determine when to make |
| /// additional calls when limiting the amount of requests being sent. |
| flexible SetDiscreteColorAdjustment(struct { |
| color_adjustment ColorAdjustmentTable; |
| }) -> (); |
| }; |
| |
| /// Handler implemented by the owner of the presentation. |
| /// The UI component that controls brightness and screen tint uses this protocol to request changes |
| /// to the screen's color adjustment matrix. |
| @discoverable |
| closed protocol ColorAdjustmentHandler { |
| /// Called when the color adjustment has changed. |
| strict SetColorAdjustment(struct { |
| color_adjustment ColorAdjustmentTable; |
| }); |
| }; |
| |
| /// The table for screen color tint adjustments. |
| type ColorAdjustmentTable = table { |
| /// 3x3 Matrix in row-major form which will be used by root presenter |
| /// to apply color adjustment. |
| /// This field may be omitted to disable color adjustment. |
| 1: matrix array<float32, 9>; |
| }; |