
It turns out, for Windows and Linux having the exact memory allows for easy tracing of an individual. That is exactly against the idea of the survey. And honestly, we don't need this precision.
42 lines
1.4 KiB
C++
42 lines
1.4 KiB
C++
/*
|
|
* This file is part of OpenTTD.
|
|
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
|
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/** @file survey_win.cpp Windows implementation of OS-specific survey information. */
|
|
|
|
#ifdef WITH_NLOHMANN_JSON
|
|
|
|
#include "../../stdafx.h"
|
|
|
|
#include "../../3rdparty/fmt/format.h"
|
|
|
|
#include <nlohmann/json.hpp>
|
|
#include <thread>
|
|
#include <windows.h>
|
|
|
|
#include "../../safeguards.h"
|
|
|
|
extern std::string SurveyMemoryToText(uint64_t memory);
|
|
|
|
void SurveyOS(nlohmann::json &json)
|
|
{
|
|
_OSVERSIONINFOA os;
|
|
os.dwOSVersionInfoSize = sizeof(os);
|
|
GetVersionExA(&os);
|
|
|
|
json["os"] = "Windows";
|
|
json["release"] = fmt::format("{}.{}.{} ({})", os.dwMajorVersion, os.dwMinorVersion, os.dwBuildNumber, os.szCSDVersion);
|
|
|
|
MEMORYSTATUSEX status;
|
|
status.dwLength = sizeof(status);
|
|
GlobalMemoryStatusEx(&status);
|
|
|
|
json["memory"] = SurveyMemoryToText(status.ullTotalPhys);
|
|
json["hardware_concurrency"] = std::thread::hardware_concurrency();
|
|
}
|
|
|
|
#endif /* WITH_NLOHMANN_JSON */
|