// Copyright 2018 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Private API for HDMI CEC functionality. [platforms=("chromeos")] namespace cecPrivate { enum DisplayCecPowerState { // There was an error querying the power state of the display. error, // The kernel adapter for the CEC endpoint isn’t configured (no EDID set). adapterNotConfigured, // No device ACKed the request on the CEC bus. noDevice, // The display is a powered on state. on, // The display is in standby mode. standby, // The display is currently transitioning to an awake state. It can't be // relied on to show any output yet. transitioningToOn, // The display is currently transitioning to standby. transitioningToStandby, // Found a CEC endpoint but unable to determine the power state. unknown }; callback DisplayCecPowerStateCallback = void(DisplayCecPowerState[] powerStates); callback ChangePowerStateCallback = void(); interface Functions { // Attempt to put all HDMI CEC compatible devices in standby. // // This is not guaranteed to have any effect on the connected displays. // Displays that do not support HDMI CEC will not be affected. // // |callback| will be run as soon as all displays have been requested to // change their power state. static void sendStandBy(optional ChangePowerStateCallback callback); // Attempt to announce this device as the active input source towards all // HDMI CEC enabled displays connected, waking them from standby if // necessary. // // |callback| will be run as soon as all displays have been requested to // change their power state. static void sendWakeUp(optional ChangePowerStateCallback callback); // Queries all HDMI CEC capable displays for their current power state. static void queryDisplayCecPowerState( DisplayCecPowerStateCallback callback); }; };