chromium/ui/display/win/audio_edid_scan.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_DISPLAY_WIN_AUDIO_EDID_SCAN_H_
#define UI_DISPLAY_WIN_AUDIO_EDID_SCAN_H_

#include <stdint.h>

#include "ui/display/display_export.h"

namespace display {
namespace win {

// The WMI service allows the querying of monitor-type devices which report
// Extended Display Identification Data (EDID).  The WMI service can be
// queried for a list of COM objects which represent the "paths" which
// are associated with individual EDID devices.  Querying each of those
// paths using the WmiGetMonitorRawEEdidV1Block method returns the EDID
// blocks for those devices.  We query the extended blocks which contain
// the Short Audio Descriptor (SAD), and parse them to obtain a bitmask
// indicating which audio content is supported.  The bitmask bits are
// defined in edid_parser.h, as returned from the EdidParser::audio_formats()
// method.  If multiple EDID devices are present, the intersection is
// reported as the bitmask.
DISPLAY_EXPORT uint32_t ScanEdidBitstreams();

}  // namespace win
}  // namespace display

#endif  // UI_DISPLAY_WIN_AUDIO_EDID_SCAN_H_