blob: b32874e57d8a3fa14bc6811f742344b8e2e78180 [file] [log] [blame]
// 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);
};
};