libdisplaydevice latest
C++ library to modify display devices.
win_api_utils.cpp File Reference

Definitions for lower level Windows API utility functions. More...

#include "display_device/windows/win_api_utils.h"
#include <unordered_set>
#include "display_device/logging.h"
Include dependency graph for win_api_utils.cpp:

Namespaces

namespace  display_device::win_utils
 Shared "utility-level" code for Settings.
 

Functions

PathSourceIndexDataMap display_device::win_utils::collectSourceDataForMatchingPaths (const WinApiLayerInterface &w_api, const std::vector< DISPLAYCONFIG_PATH_INFO > &paths)
 Collect arbitrary source data from provided paths.
 
bool display_device::win_utils::fuzzyCompareModes (const DisplayMode &lhs, const DisplayMode &rhs)
 Check if the display modes are almost equal.
 
bool display_device::win_utils::fuzzyCompareRefreshRates (const Rational &lhs, const Rational &rhs)
 Check if the refresh rates are almost equal.
 
const DISPLAYCONFIG_PATH_INFO * display_device::win_utils::getActivePath (const WinApiLayerInterface &w_api, const std::string &device_id, const std::vector< DISPLAYCONFIG_PATH_INFO > &paths)
 Get the active path matching the device id.
 
DISPLAYCONFIG_PATH_INFO * display_device::win_utils::getActivePath (const WinApiLayerInterface &w_api, const std::string &device_id, std::vector< DISPLAYCONFIG_PATH_INFO > &paths)
 
std::set< std::string > display_device::win_utils::getAllDeviceIdsAndMatchingDuplicates (const WinApiLayerInterface &w_api, const std::set< std::string > &device_ids)
 Get all the missing duplicate device ids for the provided device ids.
 
std::optional< ValidatedDeviceInfodisplay_device::win_utils::getDeviceInfoForValidPath (const WinApiLayerInterface &w_api, const DISPLAYCONFIG_PATH_INFO &path, ValidatedPathType type)
 Validate the path and get the commonly used information from it.
 
std::optional< UINT32 > display_device::win_utils::getSourceIndex (const DISPLAYCONFIG_PATH_INFO &path, const std::vector< DISPLAYCONFIG_MODE_INFO > &modes)
 Get the source mode index from the path.
 
const DISPLAYCONFIG_SOURCE_MODE * display_device::win_utils::getSourceMode (const std::optional< UINT32 > &index, const std::vector< DISPLAYCONFIG_MODE_INFO > &modes)
 Get the source mode from the list at the specified index.
 
DISPLAYCONFIG_SOURCE_MODE * display_device::win_utils::getSourceMode (const std::optional< UINT32 > &index, std::vector< DISPLAYCONFIG_MODE_INFO > &modes)
 
bool display_device::win_utils::isActive (const DISPLAYCONFIG_PATH_INFO &path)
 Check if the display device path is marked as active.
 
bool display_device::win_utils::isAvailable (const DISPLAYCONFIG_PATH_INFO &path)
 Check if the display device path's target is available.
 
bool display_device::win_utils::isPrimary (const DISPLAYCONFIG_SOURCE_MODE &mode)
 Check if the display's source mode is primary - if the associated device is a primary display device.
 
std::vector< DISPLAYCONFIG_PATH_INFO > display_device::win_utils::makePathsForNewTopology (const ActiveTopology &new_topology, const PathSourceIndexDataMap &path_source_data, const std::vector< DISPLAYCONFIG_PATH_INFO > &paths)
 Select the best possible paths to be used for the requested topology based on the data that is available to us.
 
void display_device::win_utils::setActive (DISPLAYCONFIG_PATH_INFO &path)
 Mark the display device path as active.
 
void display_device::win_utils::setCloneGroupId (DISPLAYCONFIG_PATH_INFO &path, const std::optional< UINT32 > &id)
 Set the clone group id in the path.
 
void display_device::win_utils::setDesktopIndex (DISPLAYCONFIG_PATH_INFO &path, const std::optional< UINT32 > &index)
 Set the desktop mode index in the path.
 
void display_device::win_utils::setSourceIndex (DISPLAYCONFIG_PATH_INFO &path, const std::optional< UINT32 > &index)
 Set the source mode index in the path.
 
void display_device::win_utils::setTargetIndex (DISPLAYCONFIG_PATH_INFO &path, const std::optional< UINT32 > &index)
 Set the target mode index in the path.
 

Detailed Description

Definitions for lower level Windows API utility functions.