// 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/util/display_util.h" #include #include "base/logging.h" #include "base/macros.h" namespace display { namespace { // A list of bogus sizes in mm that should be ignored. // See crbug.com/136533. The first element maintains the minimum // size required to be valid size. const int kInvalidDisplaySizeList[][2] = { {40, 30}, {50, 40}, {160, 90}, {160, 100}, }; } // namespace bool IsDisplaySizeBlackListed(const gfx::Size& physical_size) { // Ignore if the reported display is smaller than minimum size. if (physical_size.width() <= kInvalidDisplaySizeList[0][0] || physical_size.height() <= kInvalidDisplaySizeList[0][1]) { VLOG(1) << "Smaller than minimum display size"; return true; } for (size_t i = 1; i < arraysize(kInvalidDisplaySizeList); ++i) { const gfx::Size size(kInvalidDisplaySizeList[i][0], kInvalidDisplaySizeList[i][1]); if (physical_size == size) { VLOG(1) << "Black listed display size detected:" << size.ToString(); return true; } } return false; } int64_t GenerateDisplayID(uint16_t manufacturer_id, uint32_t product_code_hash, uint8_t output_index) { return ((static_cast(manufacturer_id) << 40) | (static_cast(product_code_hash) << 8) | output_index); } } // namespace display