// 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.device.display;

// An interface for accessing and modifying display state.
[Discoverable]
protocol Manager {
    // Retrieves the current brightness of the display. The brightness is
    // specified as a percentage of the maximum brightness.
    GetBrightness() -> (bool success, float64 brightness);

    // Sets the brightness of the display. The brightness is specified a
    // percentage of the maximum brightness.
    SetBrightness(float64 brightness) -> (bool success);
};
