| // 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. | 
 |  | 
 | #ifndef UI_DISPLAY_UTIL_EDID_PARSER_H_ | 
 | #define UI_DISPLAY_UTIL_EDID_PARSER_H_ | 
 |  | 
 | #include <stdint.h> | 
 |  | 
 | #include <string> | 
 | #include <vector> | 
 |  | 
 | #include "ui/display/util/display_util_export.h" | 
 |  | 
 | namespace gfx { | 
 | class Size; | 
 | } | 
 |  | 
 | // EDID (Extended Display Identification Data) is a format for monitor | 
 | // metadata. This provides a parser for the data. | 
 |  | 
 | namespace display { | 
 |  | 
 | // Generates the display id and product id for the pair of |edid| and |index|, | 
 | // and store in |display_id_out| and |product_id_out|. Returns true if the | 
 | // display id is successfully generated, or false otherwise. | 
 | DISPLAY_UTIL_EXPORT bool GetDisplayIdFromEDID(const std::vector<uint8_t>& edid, | 
 |                                               uint8_t index, | 
 |                                               int64_t* display_id_out, | 
 |                                               int64_t* product_id_out); | 
 |  | 
 | // Parses |edid| as EDID data and stores extracted data into |manufacturer_id|, | 
 | // |product_code|, |human_readable_name|, |active_pixel_out| and | 
 | // |physical_display_size_out|, then returns true. nullptr can be passed for | 
 | // unwanted output parameters.  Some devices (especially internal displays) may | 
 | // not have the field for |human_readable_name|, and it will return true in | 
 | // that case. | 
 | DISPLAY_UTIL_EXPORT bool ParseOutputDeviceData( | 
 |     const std::vector<uint8_t>& edid, | 
 |     uint16_t* manufacturer_id, | 
 |     uint16_t* product_code, | 
 |     std::string* human_readable_name, | 
 |     gfx::Size* active_pixel_out, | 
 |     gfx::Size* physical_display_size_out); | 
 |  | 
 | DISPLAY_UTIL_EXPORT bool ParseOutputOverscanFlag( | 
 |     const std::vector<uint8_t>& edid, | 
 |     bool* flag); | 
 |  | 
 | }  // namespace display | 
 |  | 
 | #endif // UI_DISPLAY_UTIL_EDID_PARSER_H_ |