[idd] helper: implement registry storage for default refresh

This commit is contained in:
Quantum
2025-11-15 04:34:54 -05:00
committed by Geoffrey McRae
parent 0983e50f4d
commit c8de7b27fd
2 changed files with 27 additions and 0 deletions

View File

@@ -8,6 +8,8 @@
#define LGIDD_REGKEY L"SOFTWARE\\LookingGlass\\IDD" #define LGIDD_REGKEY L"SOFTWARE\\LookingGlass\\IDD"
const DWORD DEFAULT_REFRESH = 120;
CRegistrySettings::CRegistrySettings() : hKey(nullptr) {} CRegistrySettings::CRegistrySettings() : hKey(nullptr) {}
CRegistrySettings::~CRegistrySettings() CRegistrySettings::~CRegistrySettings()
@@ -136,3 +138,25 @@ std::wstring DisplayMode::toString()
serialized.push_back('*'); serialized.push_back('*');
return serialized; return serialized;
} }
std::optional<DWORD> CRegistrySettings::getDefaultRefresh()
{
DWORD result, cbData = sizeof result;
LSTATUS status = RegGetValue(hKey, nullptr, L"DefaultRefresh", RRF_RT_REG_DWORD, nullptr, &result, &cbData);
switch (status)
{
case ERROR_SUCCESS:
return result;
case ERROR_FILE_NOT_FOUND:
return DEFAULT_REFRESH;
default:
DEBUG_ERROR_HR(status, "RegGetValue(Modes) length computation");
return {};
}
}
LSTATUS CRegistrySettings::setDefaultRefresh(DWORD refresh)
{
return RegSetValueEx(hKey, L"DefaultRefresh", 0, REG_DWORD, (LPBYTE) &refresh, sizeof(DWORD));
}

View File

@@ -26,4 +26,7 @@ public:
std::optional<std::vector<DisplayMode>> getModes(); std::optional<std::vector<DisplayMode>> getModes();
LSTATUS setModes(const std::vector<DisplayMode> &modes); LSTATUS setModes(const std::vector<DisplayMode> &modes);
std::optional<DWORD> getDefaultRefresh();
LSTATUS setDefaultRefresh(DWORD refresh);
}; };