1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef UI_DISPLAY_UTIL_EDID_PARSER_H_ 6 #define UI_DISPLAY_UTIL_EDID_PARSER_H_ 7 8 #include <stdint.h> 9 10 #include <string> 11 #include <vector> 12 13 #include "ui/display/util/display_util_export.h" 14 15 // EDID (Extended Display Identification Data) is a format for monitor 16 // metadata. This provides a parser for the data. 17 18 namespace ui { 19 20 // Generates the display id for the pair of |edid| and |index|, and store in 21 // |display_id_out|. Returns true if the display id is successfully generated, 22 // or false otherwise. 23 DISPLAY_UTIL_EXPORT bool GetDisplayIdFromEDID(const std::vector<uint8_t>& edid, 24 uint8_t index, 25 int64_t* display_id_out); 26 27 // Parses |edid| as EDID data and stores extracted data into |manufacturer_id| 28 // and |human_readable_name| and returns true. NULL can be passed for unwanted 29 // output parameters. Some devices (especially internal displays) may not have 30 // the field for |human_readable_name|, and it will return true in that case. 31 DISPLAY_UTIL_EXPORT bool ParseOutputDeviceData( 32 const std::vector<uint8_t>& edid, 33 uint16_t* manufacturer_id, 34 std::string* human_readable_name); 35 36 DISPLAY_UTIL_EXPORT bool ParseOutputOverscanFlag( 37 const std::vector<uint8_t>& edid, 38 bool* flag); 39 40 } // namespace ui 41 42 #endif // UI_DISPLAY_UTIL_EDID_PARSER_H_ 43