| Index: ui/display/chromeos/display_util.cc
|
| diff --git a/ui/display/chromeos/display_util.cc b/ui/display/chromeos/display_util.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..212144cf20740c297d7d081a20cddd4bbc0c5934
|
| --- /dev/null
|
| +++ b/ui/display/chromeos/display_util.cc
|
| @@ -0,0 +1,71 @@
|
| +// Copyright 2014 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.
|
| +
|
| +#include "ui/display/chromeos/display_util.h"
|
| +
|
| +#include "base/strings/string_number_conversions.h"
|
| +#include "base/strings/stringprintf.h"
|
| +#include "ui/display/types/display_snapshot.h"
|
| +
|
| +namespace ui {
|
| +
|
| +std::string DisplayPowerStateToString(chromeos::DisplayPowerState state) {
|
| + switch (state) {
|
| + case chromeos::DISPLAY_POWER_ALL_ON:
|
| + return "ALL_ON";
|
| + case chromeos::DISPLAY_POWER_ALL_OFF:
|
| + return "ALL_OFF";
|
| + case chromeos::DISPLAY_POWER_INTERNAL_OFF_EXTERNAL_ON:
|
| + return "INTERNAL_OFF_EXTERNAL_ON";
|
| + case chromeos::DISPLAY_POWER_INTERNAL_ON_EXTERNAL_OFF:
|
| + return "INTERNAL_ON_EXTERNAL_OFF";
|
| + default:
|
| + return "unknown (" + base::IntToString(state) + ")";
|
| + }
|
| +}
|
| +
|
| +std::string MultipleDisplayStateToString(MultipleDisplayState state) {
|
| + switch (state) {
|
| + case MULTIPLE_DISPLAY_STATE_INVALID:
|
| + return "INVALID";
|
| + case MULTIPLE_DISPLAY_STATE_HEADLESS:
|
| + return "HEADLESS";
|
| + case MULTIPLE_DISPLAY_STATE_SINGLE:
|
| + return "SINGLE";
|
| + case MULTIPLE_DISPLAY_STATE_DUAL_MIRROR:
|
| + return "DUAL_MIRROR";
|
| + case MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED:
|
| + return "DUAL_EXTENDED";
|
| + case MULTIPLE_DISPLAY_STATE_MULTI_EXTENDED:
|
| + return "MULTI_EXTENDED";
|
| + }
|
| + NOTREACHED() << "Unknown state " << state;
|
| + return "INVALID";
|
| +}
|
| +
|
| +int GetDisplayPower(
|
| + const std::vector<DisplayConfigurator::DisplayState>& display_states,
|
| + chromeos::DisplayPowerState state,
|
| + std::vector<bool>* display_power) {
|
| + int num_on_displays = 0;
|
| + if (display_power)
|
| + display_power->resize(display_states.size());
|
| +
|
| + for (size_t i = 0; i < display_states.size(); ++i) {
|
| + bool internal =
|
| + display_states[i].display->type() == DISPLAY_CONNECTION_TYPE_INTERNAL;
|
| + bool on =
|
| + state == chromeos::DISPLAY_POWER_ALL_ON ||
|
| + (state == chromeos::DISPLAY_POWER_INTERNAL_OFF_EXTERNAL_ON &&
|
| + !internal) ||
|
| + (state == chromeos::DISPLAY_POWER_INTERNAL_ON_EXTERNAL_OFF && internal);
|
| + if (display_power)
|
| + (*display_power)[i] = on;
|
| + if (on)
|
| + num_on_displays++;
|
| + }
|
| + return num_on_displays;
|
| +}
|
| +
|
| +} // namespace ui
|
|
|