diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.cpp b/interface/src/scripting/PlatformInfoScriptingInterface.cpp
index 9a5a08503d..84c4d923d0 100644
--- a/interface/src/scripting/PlatformInfoScriptingInterface.cpp
+++ b/interface/src/scripting/PlatformInfoScriptingInterface.cpp
@@ -192,7 +192,7 @@ QString PlatformInfoScriptingInterface::getDisplay(int index) {
}
QString PlatformInfoScriptingInterface::getMemory() {
- auto desc = platform::getMemory(0);
+ auto desc = platform::getMemory();
return QString(desc.dump().c_str());
}
@@ -201,6 +201,10 @@ QString PlatformInfoScriptingInterface::getComputer() {
return QString(desc.dump().c_str());
}
+QString PlatformInfoScriptingInterface::getPlatform() {
+ auto desc = platform::getAll();
+ return QString(desc.dump().c_str());
+}
PlatformInfoScriptingInterface::PlatformTier PlatformInfoScriptingInterface::getTierProfiled() {
return (PlatformInfoScriptingInterface::PlatformTier) platform::Profiler::profilePlatform();
diff --git a/interface/src/scripting/PlatformInfoScriptingInterface.h b/interface/src/scripting/PlatformInfoScriptingInterface.h
index 476c5c5788..113509d6d9 100644
--- a/interface/src/scripting/PlatformInfoScriptingInterface.h
+++ b/interface/src/scripting/PlatformInfoScriptingInterface.h
@@ -51,6 +51,8 @@ public slots:
* Gets the operating system type.
* @function PlatformInfo.getOperatingSystemType
* @returns {string} "WINDOWS"
, "MACOS"
, or "UNKNOWN"
.
+ * @deprecated This function is deprecated and will be removed.
+ * use getComputer()["OS"] instead
*/
QString getOperatingSystemType();
@@ -61,6 +63,10 @@ public slots:
* @example
Report the CPU being used.
* print("CPU: " + PlatformInfo.getCPUBrand());
* // Example: Intel(R) Core(TM) i7-7820HK CPU @ 2.90GHz
+ * @deprecated This function is deprecated and will be removed.
+ * use getNumCPUs() to know the number of CPUs in the hardware, at least one is expected
+ * use getCPU(0)["vendor"] to get the brand of the vendor
+ * use getCPU(0)["model"] to get the model name of the cpu
*/
QString getCPUBrand();
@@ -68,6 +74,8 @@ public slots:
* Gets the number of logical CPU cores.
* @function PlatformInfo.getNumLogicalCores
* @returns {number} The number of logical CPU cores.
+ * @deprecated This function is deprecated and will be removed.
+ * use getCPU(0)["numCores"] instead
*/
unsigned int getNumLogicalCores();
@@ -75,6 +83,8 @@ public slots:
* Returns the total system memory in megabytes.
* @function PlatformInfo.getTotalSystemMemoryMB
* @returns {number} The total system memory in megabytes.
+ * @deprecated This function is deprecated and will be removed.
+ * use getMemory()["memTotal"] instead
*/
int getTotalSystemMemoryMB();
@@ -82,6 +92,10 @@ public slots:
* Gets the graphics card type.
* @function PlatformInfo.getGraphicsCardType
* @returns {string} The graphics card type.
+ * @deprecated This function is deprecated and will be removed.
+ * use getNumGPUs() to know the number of GPUs in the hardware, at least one is expected
+ * use getGPU(0)["vendor"] to get the brand of the vendor
+ * use getGPU(0)["model"] to get the model name of the gpu
*/
QString getGraphicsCardType();
@@ -141,7 +155,7 @@ public slots:
/**jsdoc
* Get the description of the GPU at the index parameter
* expected fields are:
- * - gpuVendor...
+ * - vendor, model...
* @param index The index of the GPU of the platform
* @function PlatformInfo.getGPU
* @returns {string} The GPU description json field
@@ -183,6 +197,14 @@ public slots:
*/
QString getComputer();
+ /**jsdoc
+ * Get the complete description of the Platform as an aggregated Json
+ * The expected object description is:
+ * { "computer": {...}, "memory": {...}, "cpus": [{...}, ...], "gpus": [{...}, ...], "displays": [{...}, ...] }
+ * @function PlatformInfo.getPlatform
+ * @returns {string} The Platform description json field
+ */
+ QString getPlatform();
/**jsdoc
* Get the Platform TIer profiled on startup of the Computer
diff --git a/libraries/platform/src/platform/Platform.h b/libraries/platform/src/platform/Platform.h
index 7f73ff4ff4..9405c77ae0 100644
--- a/libraries/platform/src/platform/Platform.h
+++ b/libraries/platform/src/platform/Platform.h
@@ -27,12 +27,13 @@ json getGPU(int index);
int getNumDisplays();
json getDisplay(int index);
-
-int getNumMemories();
-json getMemory(int index);
+
+json getMemory();
json getComputer();
+json getAll();
+
} // namespace platform
#endif // hifi_platform_h
diff --git a/libraries/platform/src/platform/PlatformKeys.h b/libraries/platform/src/platform/PlatformKeys.h
index fd29b2ff7f..1008c5ca4b 100644
--- a/libraries/platform/src/platform/PlatformKeys.h
+++ b/libraries/platform/src/platform/PlatformKeys.h
@@ -9,6 +9,9 @@
#define hifi_platform_PlatformKeys_h
namespace platform { namespace keys{
+ // "UNKNOWN"
+ extern const char* UNKNOWN;
+
namespace cpu {
extern const char* vendor;
extern const char* vendor_Intel;
@@ -36,8 +39,9 @@ namespace platform { namespace keys{
extern const char* coordsTop;
extern const char* coordsBottom;
}
+ namespace memory {
extern const char* memTotal;
-
+ }
namespace computer {
extern const char* OS;
extern const char* OS_WINDOWS;
@@ -45,6 +49,8 @@ namespace platform { namespace keys{
extern const char* OS_LINUX;
extern const char* OS_ANDROID;
+ extern const char* OSVersion;
+
extern const char* vendor;
extern const char* vendor_Apple;
@@ -52,6 +58,14 @@ namespace platform { namespace keys{
extern const char* profileTier;
}
- } } // namespace plaform::keys
+
+ // Keys for categories used in json returned by getAll()
+ extern const char* CPUS;
+ extern const char* GPUS;
+ extern const char* DISPLAYS;
+ extern const char* MEMORY;
+ extern const char* COMPUTER;
+
+} } // namespace plaform::keys
#endif
diff --git a/libraries/platform/src/platform/backend/AndroidPlatform.cpp b/libraries/platform/src/platform/backend/AndroidPlatform.cpp
index ee5a7e39b9..b0a4c5e67b 100644
--- a/libraries/platform/src/platform/backend/AndroidPlatform.cpp
+++ b/libraries/platform/src/platform/backend/AndroidPlatform.cpp
@@ -9,39 +9,45 @@
#include "AndroidPlatform.h"
#include "../PlatformKeys.h"
#include
+#include
using namespace platform;
-void AndroidInstance::enumerateCpu() {
+void AndroidInstance::enumerateCpus() {
json cpu;
cpu[keys::cpu::vendor] = "";
cpu[keys::cpu::model] = "";
cpu[keys::cpu::clockSpeed] = "";
cpu[keys::cpu::numCores] = 0;
- _cpu.push_back(cpu);
+
+ _cpus.push_back(cpu);
}
-void AndroidInstance::enumerateGpu() {
+void AndroidInstance::enumerateGpus() {
GPUIdent* ident = GPUIdent::getInstance();
json gpu = {};
- gpu[keys::gpu::vendor] = ident->getName().toUtf8().constData();
gpu[keys::gpu::model] = ident->getName().toUtf8().constData();
+ gpu[keys::gpu::vendor] = findGPUVendorInDescription(gpu[keys::gpu::model].get());
gpu[keys::gpu::videoMemory] = ident->getMemory();
gpu[keys::gpu::driver] = ident->getDriver().toUtf8().constData();
- _gpu.push_back(gpu);
- _display = ident->getOutput();
+ _gpus.push_back(gpu);
+ _displays = ident->getOutput();
}
void AndroidInstance::enumerateMemory() {
json ram = {};
- ram[keys::memTotal]=0;
- _memory.push_back(ram);
+ ram[keys::memory::memTotal]=0;
+ _memory = ram;
}
void AndroidInstance::enumerateComputer(){
_computer[keys::computer::OS] = keys::computer::OS_ANDROID;
_computer[keys::computer::vendor] = "";
_computer[keys::computer::model] = "";
+
+ auto sysInfo = QSysInfo();
+
+ _computer[keys::computer::OSVersion] = sysInfo.kernelVersion().toStdString();
}
diff --git a/libraries/platform/src/platform/backend/AndroidPlatform.h b/libraries/platform/src/platform/backend/AndroidPlatform.h
index d1496383c0..6592b3519d 100644
--- a/libraries/platform/src/platform/backend/AndroidPlatform.h
+++ b/libraries/platform/src/platform/backend/AndroidPlatform.h
@@ -15,10 +15,10 @@ namespace platform {
class AndroidInstance : public Instance {
public:
- void enumerateCpu() override;
+ void enumerateCpus() override;
+ void enumerateGpus() override;
void enumerateMemory() override;
- void enumerateGpu() override;
- void enumerateComputer () override;
+ void enumerateComputer() override;
};
} // namespace platform
diff --git a/libraries/platform/src/platform/backend/LinuxPlatform.cpp b/libraries/platform/src/platform/backend/LinuxPlatform.cpp
index 356df27e0a..61501669cb 100644
--- a/libraries/platform/src/platform/backend/LinuxPlatform.cpp
+++ b/libraries/platform/src/platform/backend/LinuxPlatform.cpp
@@ -13,36 +13,37 @@
#include
#include
#include
+#include
using namespace platform;
-void LinuxInstance::enumerateCpu() {
+void LinuxInstance::enumerateCpus() {
json cpu = {};
cpu[keys::cpu::vendor] = CPUIdent::Vendor();
cpu[keys::cpu::model] = CPUIdent::Brand();
cpu[keys::cpu::numCores] = std::thread::hardware_concurrency();
- _cpu.push_back(cpu);
+ _cpus.push_back(cpu);
}
-void LinuxInstance::enumerateGpu() {
+void LinuxInstance::enumerateGpus() {
GPUIdent* ident = GPUIdent::getInstance();
json gpu = {};
- gpu[keys::gpu::vendor] = ident->getName().toUtf8().constData();
gpu[keys::gpu::model] = ident->getName().toUtf8().constData();
+ gpu[keys::gpu::vendor] = findGPUVendorInDescription(gpu[keys::gpu::model].get());
gpu[keys::gpu::videoMemory] = ident->getMemory();
gpu[keys::gpu::driver] = ident->getDriver().toUtf8().constData();
- _gpu.push_back(gpu);
- _display = ident->getOutput();
+ _gpus.push_back(gpu);
+ _displays = ident->getOutput();
}
void LinuxInstance::enumerateMemory() {
json ram = {};
- ram[keys::memTotal]=0;
+ ram[keys::memory::memTotal]=0;
- _memory.push_back(ram);
+ _memory = ram;
}
void LinuxInstance::enumerateComputer(){
@@ -50,5 +51,9 @@ void LinuxInstance::enumerateComputer(){
_computer[keys::computer::OS] = keys::computer::OS_LINUX;
_computer[keys::computer::vendor] = "";
_computer[keys::computer::model] = "";
+
+ auto sysInfo = QSysInfo();
+
+ _computer[keys::computer::OSVersion] = sysInfo.kernelVersion().toStdString();
}
diff --git a/libraries/platform/src/platform/backend/LinuxPlatform.h b/libraries/platform/src/platform/backend/LinuxPlatform.h
index 1629101f41..2f2529db7c 100644
--- a/libraries/platform/src/platform/backend/LinuxPlatform.h
+++ b/libraries/platform/src/platform/backend/LinuxPlatform.h
@@ -15,10 +15,10 @@ namespace platform {
class LinuxInstance : public Instance {
public:
- void enumerateCpu() override;
+ void enumerateCpus() override;
+ void enumerateGpus() override;
void enumerateMemory() override;
- void enumerateGpu() override;
- void enumerateComputer () override;
+ void enumerateComputer() override;
};
} // namespace platform
diff --git a/libraries/platform/src/platform/backend/MACOSPlatform.cpp b/libraries/platform/src/platform/backend/MACOSPlatform.cpp
index 7dbc403783..cacbd06816 100644
--- a/libraries/platform/src/platform/backend/MACOSPlatform.cpp
+++ b/libraries/platform/src/platform/backend/MACOSPlatform.cpp
@@ -21,32 +21,33 @@
#include
#include
+#include
#endif
using namespace platform;
-void MACOSInstance::enumerateCpu() {
+void MACOSInstance::enumerateCpus() {
json cpu = {};
cpu[keys::cpu::vendor] = CPUIdent::Vendor();
cpu[keys::cpu::model] = CPUIdent::Brand();
cpu[keys::cpu::numCores] = std::thread::hardware_concurrency();
- _cpu.push_back(cpu);
+ _cpus.push_back(cpu);
}
-void MACOSInstance::enumerateGpu() {
+void MACOSInstance::enumerateGpus() {
#ifdef Q_OS_MAC
GPUIdent* ident = GPUIdent::getInstance();
json gpu = {};
- gpu[keys::gpu::vendor] = ident->getName().toUtf8().constData();
gpu[keys::gpu::model] = ident->getName().toUtf8().constData();
+ gpu[keys::gpu::vendor] = findGPUVendorInDescription(gpu[keys::gpu::model].get());
gpu[keys::gpu::videoMemory] = ident->getMemory();
gpu[keys::gpu::driver] = ident->getDriver().toUtf8().constData();
- _gpu.push_back(gpu);
+ _gpus.push_back(gpu);
#endif
@@ -101,7 +102,7 @@ void MACOSInstance::enumerateDisplays() {
display["modeWidth"] = displayModeWidth;
display["modeHeight"] = displayModeHeight;
- _display.push_back(display);
+ _displays.push_back(display);
#endif
}
@@ -111,9 +112,9 @@ void MACOSInstance::enumerateMemory() {
#ifdef Q_OS_MAC
long pages = sysconf(_SC_PHYS_PAGES);
long page_size = sysconf(_SC_PAGE_SIZE);
- ram[keys::memTotal] = pages * page_size;
+ ram[keys::memory::memTotal] = pages * page_size;
#endif
- _memory.push_back(ram);
+ _memory = ram;
}
void MACOSInstance::enumerateComputer(){
@@ -133,5 +134,9 @@ void MACOSInstance::enumerateComputer(){
free(model);
#endif
+
+ auto sysInfo = QSysInfo();
+
+ _computer[keys::computer::OSVersion] = sysInfo.kernelVersion().toStdString();
}
diff --git a/libraries/platform/src/platform/backend/MACOSPlatform.h b/libraries/platform/src/platform/backend/MACOSPlatform.h
index 4a257d8be5..e893dda739 100644
--- a/libraries/platform/src/platform/backend/MACOSPlatform.h
+++ b/libraries/platform/src/platform/backend/MACOSPlatform.h
@@ -15,11 +15,11 @@ namespace platform {
class MACOSInstance : public Instance {
public:
- void enumerateCpu() override;
- void enumerateMemory() override;
- void enumerateGpu() override;
+ void enumerateCpus() override;
+ void enumerateGpus() override;
void enumerateDisplays() override;
- void enumerateComputer () override;
+ void enumerateMemory() override;
+ void enumerateComputer() override;
};
} // namespace platform
diff --git a/libraries/platform/src/platform/backend/Platform.cpp b/libraries/platform/src/platform/backend/Platform.cpp
index 8e9fda30ed..dba41ce121 100644
--- a/libraries/platform/src/platform/backend/Platform.cpp
+++ b/libraries/platform/src/platform/backend/Platform.cpp
@@ -11,6 +11,8 @@
#include "../PlatformKeys.h"
namespace platform { namespace keys {
+ const char* UNKNOWN = "UNKNOWN";
+
namespace cpu {
const char* vendor = "vendor";
const char* vendor_Intel = "Intel";
@@ -38,8 +40,9 @@ namespace platform { namespace keys {
const char* coordsTop = "coordinatestop";
const char* coordsBottom = "coordinatesbottom";
}
- const char* memTotal = "memTotal";
-
+ namespace memory {
+ const char* memTotal = "memTotal";
+ }
namespace computer {
const char* OS = "OS";
const char* OS_WINDOWS = "WINDOWS";
@@ -47,6 +50,8 @@ namespace platform { namespace keys {
const char* OS_LINUX = "LINUX";
const char* OS_ANDROID = "ANDROID";
+ const char* OSVersion = "OSVersion";
+
const char* vendor = "vendor";
const char* vendor_Apple = "Apple";
@@ -54,6 +59,12 @@ namespace platform { namespace keys {
const char* profileTier = "profileTier";
}
+
+ const char* CPUS = "cpus";
+ const char* GPUS = "gpus";
+ const char* DISPLAYS = "displays";
+ const char* MEMORY = "memory";
+ const char* COMPUTER = "computer";
}}
#include
@@ -117,14 +128,14 @@ json platform::getDisplay(int index) {
return _instance->getDisplay(index);
}
-int platform::getNumMemories() {
- return _instance->getNumMemories();
+json platform::getMemory() {
+ return _instance->getMemory();
}
-json platform::getMemory(int index) {
- return _instance->getMemory(index);
-}
-
-json platform::getComputer(){
+json platform::getComputer() {
return _instance->getComputer();
}
+
+json platform::getAll() {
+ return _instance->getAll();
+}
diff --git a/libraries/platform/src/platform/backend/PlatformInstance.cpp b/libraries/platform/src/platform/backend/PlatformInstance.cpp
index 3dd3e5f592..f3a82f8cc4 100644
--- a/libraries/platform/src/platform/backend/PlatformInstance.cpp
+++ b/libraries/platform/src/platform/backend/PlatformInstance.cpp
@@ -16,10 +16,10 @@ using namespace platform;
bool Instance::enumeratePlatform() {
enumerateComputer();
- enumerateCpu();
- enumerateGpu();
- enumerateDisplays();
enumerateMemory();
+ enumerateCpus();
+ enumerateGpus();
+ enumerateDisplays();
// And profile the platform and put the tier in "computer"
_computer[keys::computer::profileTier] = Profiler::TierNames[Profiler::profilePlatform()];
@@ -28,55 +28,42 @@ bool Instance::enumeratePlatform() {
}
json Instance::getCPU(int index) {
- assert(index <(int) _cpu.size());
- if (index >= (int)_cpu.size())
+ assert(index <(int) _cpus.size());
+ if (index >= (int)_cpus.size())
return json();
- return _cpu.at(index);
-}
-
-//These are ripe for template.. will work on that next
-json Instance::getMemory(int index) {
- assert(index <(int) _memory.size());
- if(index >= (int)_memory.size())
- return json();
-
- return _memory.at(index);
+ return _cpus.at(index);
}
json Instance::getGPU(int index) {
- assert(index <(int) _gpu.size());
+ assert(index <(int) _gpus.size());
- if (index >=(int) _gpu.size())
+ if (index >=(int) _gpus.size())
return json();
- return _gpu.at(index);
+ return _gpus.at(index);
}
json Instance::getDisplay(int index) {
- assert(index <(int) _display.size());
+ assert(index <(int) _displays.size());
- if (index >=(int) _display.size())
+ if (index >=(int) _displays.size())
return json();
- return _display.at(index);
+ return _displays.at(index);
}
Instance::~Instance() {
- if (_cpu.size() > 0) {
- _cpu.clear();
+ if (_cpus.size() > 0) {
+ _cpus.clear();
}
- if (_memory.size() > 0) {
- _memory.clear();
+ if (_gpus.size() > 0) {
+ _gpus.clear();
}
- if (_gpu.size() > 0) {
- _gpu.clear();
- }
-
- if (_display.size() > 0) {
- _display.clear();
+ if (_displays.size() > 0) {
+ _displays.clear();
}
}
@@ -106,17 +93,53 @@ json Instance::listAllKeys() {
keys::display::coordsTop,
keys::display::coordsBottom,
- keys::memTotal,
+ keys::memory::memTotal,
keys::computer::OS,
keys::computer::OS_WINDOWS,
keys::computer::OS_MACOS,
keys::computer::OS_LINUX,
keys::computer::OS_ANDROID,
+ keys::computer::OSVersion,
keys::computer::vendor,
keys::computer::vendor_Apple,
keys::computer::model,
- keys::computer::profileTier
+ keys::computer::profileTier,
+
+ keys::CPUS,
+ keys::GPUS,
+ keys::DISPLAYS,
+ keys::MEMORY,
+ keys::COMPUTER,
}});
return allKeys;
}
+
+const char* Instance::findGPUVendorInDescription(const std::string& description) {
+ // intel integrated graphics
+ if (description.find(keys::gpu::vendor_Intel) != std::string::npos) {
+ return keys::gpu::vendor_Intel;
+ }
+ // AMD gpu
+ else if (description.find(keys::gpu::vendor_AMD) != std::string::npos) {
+ return keys::gpu::vendor_AMD;
+ }
+ // NVIDIA gpu
+ else if (description.find(keys::gpu::vendor_NVIDIA) != std::string::npos) {
+ return keys::gpu::vendor_NVIDIA;
+ } else {
+ return keys::UNKNOWN;
+ }
+}
+
+json Instance::getAll() {
+ json all = {};
+
+ all[keys::COMPUTER] = _computer;
+ all[keys::MEMORY] = _memory;
+ all[keys::CPUS] = _cpus;
+ all[keys::GPUS] = _gpus;
+ all[keys::DISPLAYS] = _displays;
+
+ return all;
+}
diff --git a/libraries/platform/src/platform/backend/PlatformInstance.h b/libraries/platform/src/platform/backend/PlatformInstance.h
index 95eb2ef25e..b7983446f5 100644
--- a/libraries/platform/src/platform/backend/PlatformInstance.h
+++ b/libraries/platform/src/platform/backend/PlatformInstance.h
@@ -19,36 +19,39 @@ class Instance {
public:
bool virtual enumeratePlatform();
- int getNumCPUs() { return (int)_cpu.size(); }
+ int getNumCPUs() { return (int)_cpus.size(); }
json getCPU(int index);
- int getNumGPUs() { return (int)_gpu.size(); }
+ int getNumGPUs() { return (int)_gpus.size(); }
json getGPU(int index);
- int getNumMemories() { return (int)_memory.size(); }
- json getMemory(int index);
-
- int getNumDisplays() { return (int)_display.size(); }
+ int getNumDisplays() { return (int)_displays.size(); }
json getDisplay(int index);
+ json getMemory() { return _memory; }
+
+ json getComputer() { return _computer; }
- json getComputer() {return _computer;}
-
- void virtual enumerateCpu()=0;
- void virtual enumerateMemory()=0;
- void virtual enumerateGpu()=0;
+ json getAll();
+
+ void virtual enumerateCpus()=0;
+ void virtual enumerateGpus()=0;
void virtual enumerateDisplays() {}
+ void virtual enumerateMemory() = 0;
void virtual enumerateComputer()=0;
virtual ~Instance();
static json listAllKeys();
+ // Helper function to filter the vendor name out of the description of a GPU
+ static const char* findGPUVendorInDescription(const std::string& description);
+
protected:
- std::vector _cpu;
- std::vector _memory;
- std::vector _gpu;
- std::vector _display;
+ std::vector _cpus;
+ std::vector _gpus;
+ std::vector _displays;
+ json _memory;
json _computer;
};
diff --git a/libraries/platform/src/platform/backend/WINPlatform.cpp b/libraries/platform/src/platform/backend/WINPlatform.cpp
index e34d87d853..9cf01ce4e0 100644
--- a/libraries/platform/src/platform/backend/WINPlatform.cpp
+++ b/libraries/platform/src/platform/backend/WINPlatform.cpp
@@ -16,32 +16,33 @@
#ifdef Q_OS_WIN
#include
+#include
#endif
using namespace platform;
-void WINInstance::enumerateCpu() {
+void WINInstance::enumerateCpus() {
json cpu = {};
cpu[keys::cpu::vendor] = CPUIdent::Vendor();
cpu[keys::cpu::model] = CPUIdent::Brand();
cpu[keys::cpu::numCores] = std::thread::hardware_concurrency();
- _cpu.push_back(cpu);
+ _cpus.push_back(cpu);
}
-void WINInstance::enumerateGpu() {
+void WINInstance::enumerateGpus() {
GPUIdent* ident = GPUIdent::getInstance();
json gpu = {};
- gpu[keys::gpu::vendor] = ident->getName().toUtf8().constData();
gpu[keys::gpu::model] = ident->getName().toUtf8().constData();
+ gpu[keys::gpu::vendor] = findGPUVendorInDescription(gpu[keys::gpu::model].get());
gpu[keys::gpu::videoMemory] = ident->getMemory();
gpu[keys::gpu::driver] = ident->getDriver().toUtf8().constData();
- _gpu.push_back(gpu);
- _display = ident->getOutput();
+ _gpus.push_back(gpu);
+ _displays = ident->getOutput();
}
void WINInstance::enumerateMemory() {
@@ -52,9 +53,9 @@ void WINInstance::enumerateMemory() {
statex.dwLength = sizeof(statex);
GlobalMemoryStatusEx(&statex);
int totalRam = statex.ullTotalPhys / 1024 / 1024;
- ram[platform::keys::memTotal] = totalRam;
+ ram[platform::keys::memory::memTotal] = totalRam;
#endif
- _memory.push_back(ram);
+ _memory = ram;
}
void WINInstance::enumerateComputer(){
@@ -62,5 +63,8 @@ void WINInstance::enumerateComputer(){
_computer[keys::computer::vendor] = "";
_computer[keys::computer::model] = "";
+ auto sysInfo = QSysInfo();
+
+ _computer[keys::computer::OSVersion] = sysInfo.kernelVersion().toStdString();
}
diff --git a/libraries/platform/src/platform/backend/WINPlatform.h b/libraries/platform/src/platform/backend/WINPlatform.h
index e540335d94..cb6d3f482f 100644
--- a/libraries/platform/src/platform/backend/WINPlatform.h
+++ b/libraries/platform/src/platform/backend/WINPlatform.h
@@ -15,9 +15,9 @@ namespace platform {
class WINInstance : public Instance {
public:
- void enumerateCpu() override;
+ void enumerateCpus() override;
+ void enumerateGpus() override;
void enumerateMemory() override;
- void enumerateGpu() override;
void enumerateComputer () override;
};
} // namespace platform
diff --git a/libraries/shared/src/GPUIdent.cpp b/libraries/shared/src/GPUIdent.cpp
index f092a56c17..c195b2ec3a 100644
--- a/libraries/shared/src/GPUIdent.cpp
+++ b/libraries/shared/src/GPUIdent.cpp
@@ -282,12 +282,13 @@ GPUIdent* GPUIdent::ensureQuery(const QString& vendor, const QString& renderer)
if (!validAdapterList.empty()) {
for (auto outy = adapterToOutputs.begin(); outy != adapterToOutputs.end(); ++outy) {
- AdapterEntry entry = *outy;
+ AdapterEntry entry = *outy;
for (auto test = entry.second.begin(); test != entry.second.end(); ++test) {
-
+ std::wstring wDeviceName(test->DeviceName);
+ std::string deviceName(wDeviceName.begin(), wDeviceName.end());
+
nlohmann::json output = {};
- output["description"] = entry.first.first.Description;
- output["deviceName"]= test->DeviceName;
+ output["model"] = deviceName;
output["coordinatesleft"] = test->DesktopCoordinates.left;
output["coordinatesright"] = test->DesktopCoordinates.right;
output["coordinatestop"] = test->DesktopCoordinates.top;