From 633c0dfbac045885edddfdece9f47ea032337579 Mon Sep 17 00:00:00 2001 From: amerhifi Date: Wed, 15 May 2019 14:57:33 -0700 Subject: [PATCH 01/11] testing gcc warnings --- libraries/platform/src/AndroidPlatform.cpp | 16 ++++++------ libraries/platform/src/LinuxPlatform.cpp | 16 ++++++------ libraries/platform/src/MACOSPlatform.cpp | 16 ++++++------ libraries/platform/src/WINPlatform.cpp | 14 +++++----- libraries/platform/src/platformJsonKeys.h | 30 ++++++++++------------ 5 files changed, 45 insertions(+), 47 deletions(-) diff --git a/libraries/platform/src/AndroidPlatform.cpp b/libraries/platform/src/AndroidPlatform.cpp index e998f6f938..58274df9f5 100644 --- a/libraries/platform/src/AndroidPlatform.cpp +++ b/libraries/platform/src/AndroidPlatform.cpp @@ -15,19 +15,19 @@ using namespace platform; void AndroidInstance::enumerateCpu() { json cpu; - cpu["cpuBrand"] = ""; - cpu["cpuModel"] = ""; - cpu["cpuClockSpeed"] = ""; - cpu["cpuNumCores"] = ""; + cpu[jsonKeys::cpuBrand] = ""; + cpu[jsonKeys::cpuModel] = ""; + cpu[jsonKeys::cpuClockSpeed] = ""; + cpu[jsonKeys::cpuNumCores] = ""; _cpu.push_back(cpu); } void AndroidInstance::enumerateGpu() { GPUIdent* ident = GPUIdent::getInstance(); json gpu = {}; - gpu["gpuName"] = ident->getName().toUtf8().constData(); - gpu["gpuMemory"] = ident->getMemory(); - gpu["gpuDriver"] = ident->getDriver().toUtf8().constData(); + gpu[jsonKeys::gpuName] = ident->getName().toUtf8().constData(); + gpu[jsonKeys::gpuMemory] = ident->getMemory(); + gpu[jsonKeys::gpuDriver] = ident->getDriver().toUtf8().constData(); _gpu.push_back(gpu); _display = ident->getOutput(); @@ -35,6 +35,6 @@ void AndroidInstance::enumerateGpu() { void AndroidInstance::enumerateMemory() { json ram = {}; - + ram[jsonKeys::totalMemory]=""; _memory.push_back(ram); } diff --git a/libraries/platform/src/LinuxPlatform.cpp b/libraries/platform/src/LinuxPlatform.cpp index 96c105826f..b22344e728 100644 --- a/libraries/platform/src/LinuxPlatform.cpp +++ b/libraries/platform/src/LinuxPlatform.cpp @@ -15,10 +15,10 @@ using namespace platform; void LinuxInstance::enumerateCpu() { json cpu = {}; - cpu["cpuBrand"] = ""; - cpu["cpuModel"] = ""; - cpu["cpuClockSpeed"] = ""; - cpu["cpuNumCores"] = ""; + cpu[jsonKeys::cpuBrand] = ""; + cpu[jsonKeys::cpuModel] = ""; + cpu[jsonKeys::cpuClockSpeed] = ""; + cpu[jsonKeys::cpuNumCores] = ""; _cpu.push_back(cpu); } @@ -26,9 +26,9 @@ void LinuxInstance::enumerateCpu() { void LinuxInstance::enumerateGpu() { GPUIdent* ident = GPUIdent::getInstance(); json gpu = {}; - gpu["gpuName"] = ident->getName().toUtf8().constData(); - gpu["gpuMemory"] = ident->getMemory(); - gpu["gpuDriver"] = ident->getDriver().toUtf8().constData(); + gpu[jsonKeys::gpuName] = ident->getName().toUtf8().constData(); + gpu[jsonKeys::gpuMemory] = ident->getMemory(); + gpu[jsonKeys::gpuDriver] = ident->getDriver().toUtf8().constData(); _gpu.push_back(gpu); _display = ident->getOutput(); @@ -36,7 +36,7 @@ void LinuxInstance::enumerateGpu() { void LinuxInstance::enumerateMemory() { json ram = {}; - + ram[jsonKeys::totalMemory]=""; _memory.push_back(ram); } diff --git a/libraries/platform/src/MACOSPlatform.cpp b/libraries/platform/src/MACOSPlatform.cpp index 172cd642aa..a215f46335 100644 --- a/libraries/platform/src/MACOSPlatform.cpp +++ b/libraries/platform/src/MACOSPlatform.cpp @@ -55,10 +55,10 @@ void MACOSInstance::enumerateCpu() { } } - cpu["cpuBrand"] = CPUBrandString; - cpu["cpuModel"] = CPUModelString; - cpu["cpuClockSpeed"] = CPUClockString; - cpu["cpuNumCores"] = std::thread::hardware_concurrency(); + cpu[jsonKeys::cpuBrand] = CPUBrandString; + cpu[jsonKeys::cpuModel] = CPUModelString; + cpu[jsonKeys::cpuClockSpeed] = CPUClockString; + cpu[jsonKeys::cpuNumCores] = std::thread::hardware_concurrency(); _cpu.push_back(cpu); } @@ -66,9 +66,9 @@ void MACOSInstance::enumerateCpu() { void MACOSInstance::enumerateGpu() { GPUIdent* ident = GPUIdent::getInstance(); json gpu = {}; - gpu["gpuName"] = ident->getName().toUtf8().constData(); - gpu["gpuMemory"] = ident->getMemory(); - gpu["gpuDriver"] = ident->getDriver().toUtf8().constData(); + gpu[jsonKeys::gpuName] = ident->getName().toUtf8().constData(); + gpu[jsonKeys::gpuMemory] = ident->getMemory(); + gpu[jsonKeys::gpuDriver] = ident->getDriver().toUtf8().constData(); _gpu.push_back(gpu); _display = ident->getOutput(); @@ -80,7 +80,7 @@ void MACOSInstance::enumerateMemory() { #ifdef Q_OS_MAC long pages = sysconf(_SC_PHYS_PAGES); long page_size = sysconf(_SC_PAGE_SIZE); - ram["totalMemory"] = pages * page_size;; + ram[jsonKeys::totalMemory] = pages * page_size;; #endif _memory.push_back(ram); } diff --git a/libraries/platform/src/WINPlatform.cpp b/libraries/platform/src/WINPlatform.cpp index 601a9d7290..f1ed146c93 100644 --- a/libraries/platform/src/WINPlatform.cpp +++ b/libraries/platform/src/WINPlatform.cpp @@ -46,10 +46,10 @@ void WINInstance::enumerateCpu() { } } - cpu["cpuBrand"] = CPUBrandString; - cpu["cpuModel"] = CPUModelString; - cpu["cpuClockSpeed"] = CPUClockString; - cpu["cpuNumCores"] = std::thread::hardware_concurrency(); + cpu[platform::json::cpuBrand] = CPUBrandString; + cpu[jsonKeys::cpuModel] = CPUModelString; + cpu[jsonKeys::cpuClockSpeed] = CPUClockString; + cpu[jsonKeys::cpuNumCores] = std::thread::hardware_concurrency(); #endif _cpu.push_back(cpu); @@ -60,9 +60,9 @@ void WINInstance::enumerateGpu() { GPUIdent* ident = GPUIdent::getInstance(); json gpu = {}; - gpu["gpuName"] = ident->getName().toUtf8().constData(); - gpu["gpuMemory"] = ident->getMemory(); - gpu["gpuDriver"] = ident->getDriver().toUtf8().constData(); + gpu[jsonKeys::gpuName] = ident->getName().toUtf8().constData(); + gpu[jsonKeys::gpuMemory] = ident->getMemory(); + gpu[jsonKeys::gpuDriver] = ident->getDriver().toUtf8().constData(); _gpu.push_back(gpu); _display = ident->getOutput(); diff --git a/libraries/platform/src/platformJsonKeys.h b/libraries/platform/src/platformJsonKeys.h index 633add2b7e..cc2832a584 100644 --- a/libraries/platform/src/platformJsonKeys.h +++ b/libraries/platform/src/platformJsonKeys.h @@ -11,22 +11,20 @@ namespace platform { namespace jsonKeys{ -#if 0 - static const char* cpuBrand { "cpuBrand"}; - static const char* cpuModel {"cpuModel"}; - static const char* cpuClockSpeed {"clockSpeed"}; - static const char* cpuNumCores { "numCores"}; - static const char* gpuName {"GpuName"}; - static const char* gpuMemory {"gpuMemory"}; - static const char* gpuDriver {"gpuDriver"}; - static const char* totalMemory {"totalMem"}; - static const char* displayDescription { "description"}; - static const char* displayName {"deviceName"}; - static const char* displayCoordsLeft {"coordinatesleft"}; - static const char* displayCoordsRight { "coordinatesright"}; - static const char* displayCoordsTop { "coordinatestop"}; - static const char* displayCoordsBottom { "coordinatesbottom"}; -#endif + const char* cpuBrand { "cpuBrand"}; + const char* cpuModel {"cpuModel"}; + const char* cpuClockSpeed {"clockSpeed"}; + const char* cpuNumCores { "numCores"}; + const char* gpuName {"GpuName"}; + const char* gpuMemory {"gpuMemory"}; + const char* gpuDriver {"gpuDriver"}; + const char* totalMemory {"totalMem"}; + const char* displayDescription { "description"}; + const char* displayName {"deviceName"}; + const char* displayCoordsLeft {"coordinatesleft"}; + const char* displayCoordsRight { "coordinatesright"}; + const char* displayCoordsTop { "coordinatestop"}; + const char* displayCoordsBottom { "coordinatesbottom"}; } } // namespace platform From 9c786f3c5af9e71b4df0a03c19d2f46330a0e193 Mon Sep 17 00:00:00 2001 From: amerhifi Date: Wed, 15 May 2019 15:48:08 -0700 Subject: [PATCH 02/11] testing change --- libraries/platform/src/AndroidPlatform.cpp | 2 +- libraries/platform/src/LinuxPlatform.cpp | 2 +- libraries/platform/src/MACOSPlatform.cpp | 2 +- libraries/platform/src/WINPlatform.cpp | 2 +- libraries/platform/src/platformInstance.h | 1 + 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/libraries/platform/src/AndroidPlatform.cpp b/libraries/platform/src/AndroidPlatform.cpp index 58274df9f5..e44e8e156a 100644 --- a/libraries/platform/src/AndroidPlatform.cpp +++ b/libraries/platform/src/AndroidPlatform.cpp @@ -7,7 +7,7 @@ // #include "AndroidPlatform.h" -#include "platformJsonKeys.h" + #include #include diff --git a/libraries/platform/src/LinuxPlatform.cpp b/libraries/platform/src/LinuxPlatform.cpp index b22344e728..df72b899b3 100644 --- a/libraries/platform/src/LinuxPlatform.cpp +++ b/libraries/platform/src/LinuxPlatform.cpp @@ -7,7 +7,7 @@ // #include "LinuxPlatform.h" -#include "platformJsonKeys.h" + #include #include diff --git a/libraries/platform/src/MACOSPlatform.cpp b/libraries/platform/src/MACOSPlatform.cpp index a215f46335..c48fe32079 100644 --- a/libraries/platform/src/MACOSPlatform.cpp +++ b/libraries/platform/src/MACOSPlatform.cpp @@ -7,7 +7,7 @@ // #include "MACOSPlatform.h" -#include "platformJsonKeys.h" + #include #include #include diff --git a/libraries/platform/src/WINPlatform.cpp b/libraries/platform/src/WINPlatform.cpp index f1ed146c93..93c7aee84d 100644 --- a/libraries/platform/src/WINPlatform.cpp +++ b/libraries/platform/src/WINPlatform.cpp @@ -7,7 +7,7 @@ // #include "WINPlatform.h" -#include "platformJsonKeys.h" + #ifdef Q_OS_WINDOWS #include #include diff --git a/libraries/platform/src/platformInstance.h b/libraries/platform/src/platformInstance.h index 4770200f07..7ebefc7c6d 100644 --- a/libraries/platform/src/platformInstance.h +++ b/libraries/platform/src/platformInstance.h @@ -11,6 +11,7 @@ #include #include +#include "platformJsonKeys.h" namespace platform { using json = nlohmann::json; From 52afa64215c7b9ba95492a1c2ab2f5b86e9a5d08 Mon Sep 17 00:00:00 2001 From: amerhifi Date: Wed, 15 May 2019 16:33:05 -0700 Subject: [PATCH 03/11] undoing testing stuff also removing circular reference --- libraries/platform/src/AndroidPlatform.cpp | 2 +- libraries/platform/src/LinuxPlatform.cpp | 2 +- libraries/platform/src/MACOSPlatform.cpp | 1 + libraries/platform/src/WINPlatform.cpp | 1 + libraries/platform/src/platformInstance.cpp | 12 +-------- libraries/platform/src/platformInstance.h | 1 - libraries/platform/src/platformJsonKeys.h | 28 ++++++++++----------- 7 files changed, 19 insertions(+), 28 deletions(-) diff --git a/libraries/platform/src/AndroidPlatform.cpp b/libraries/platform/src/AndroidPlatform.cpp index e44e8e156a..58274df9f5 100644 --- a/libraries/platform/src/AndroidPlatform.cpp +++ b/libraries/platform/src/AndroidPlatform.cpp @@ -7,7 +7,7 @@ // #include "AndroidPlatform.h" - +#include "platformJsonKeys.h" #include #include diff --git a/libraries/platform/src/LinuxPlatform.cpp b/libraries/platform/src/LinuxPlatform.cpp index df72b899b3..b22344e728 100644 --- a/libraries/platform/src/LinuxPlatform.cpp +++ b/libraries/platform/src/LinuxPlatform.cpp @@ -7,7 +7,7 @@ // #include "LinuxPlatform.h" - +#include "platformJsonKeys.h" #include #include diff --git a/libraries/platform/src/MACOSPlatform.cpp b/libraries/platform/src/MACOSPlatform.cpp index c48fe32079..cdb9283657 100644 --- a/libraries/platform/src/MACOSPlatform.cpp +++ b/libraries/platform/src/MACOSPlatform.cpp @@ -7,6 +7,7 @@ // #include "MACOSPlatform.h" +#include "platformJsonKeys.h" #include #include diff --git a/libraries/platform/src/WINPlatform.cpp b/libraries/platform/src/WINPlatform.cpp index 93c7aee84d..cc10b47442 100644 --- a/libraries/platform/src/WINPlatform.cpp +++ b/libraries/platform/src/WINPlatform.cpp @@ -7,6 +7,7 @@ // #include "WINPlatform.h" +#include "platformJsonKeys.h" #ifdef Q_OS_WINDOWS #include diff --git a/libraries/platform/src/platformInstance.cpp b/libraries/platform/src/platformInstance.cpp index 705f5bd358..f1cef32096 100644 --- a/libraries/platform/src/platformInstance.cpp +++ b/libraries/platform/src/platformInstance.cpp @@ -10,17 +10,7 @@ #include "platform.h" #include - -#ifdef Q_OS_WIN -#include "WINPlatform.h" -#endif - -#ifdef Q_OS_MACOS -#include "MACOSPlatform.h" -#endif - -#ifdef Q_OS_LINUX -#endif +#include "platformInstance.h" using namespace platform; diff --git a/libraries/platform/src/platformInstance.h b/libraries/platform/src/platformInstance.h index 7ebefc7c6d..4770200f07 100644 --- a/libraries/platform/src/platformInstance.h +++ b/libraries/platform/src/platformInstance.h @@ -11,7 +11,6 @@ #include #include -#include "platformJsonKeys.h" namespace platform { using json = nlohmann::json; diff --git a/libraries/platform/src/platformJsonKeys.h b/libraries/platform/src/platformJsonKeys.h index cc2832a584..a46d5e5b89 100644 --- a/libraries/platform/src/platformJsonKeys.h +++ b/libraries/platform/src/platformJsonKeys.h @@ -11,20 +11,20 @@ namespace platform { namespace jsonKeys{ - const char* cpuBrand { "cpuBrand"}; - const char* cpuModel {"cpuModel"}; - const char* cpuClockSpeed {"clockSpeed"}; - const char* cpuNumCores { "numCores"}; - const char* gpuName {"GpuName"}; - const char* gpuMemory {"gpuMemory"}; - const char* gpuDriver {"gpuDriver"}; - const char* totalMemory {"totalMem"}; - const char* displayDescription { "description"}; - const char* displayName {"deviceName"}; - const char* displayCoordsLeft {"coordinatesleft"}; - const char* displayCoordsRight { "coordinatesright"}; - const char* displayCoordsTop { "coordinatestop"}; - const char* displayCoordsBottom { "coordinatesbottom"}; + static const char* cpuBrand { "cpuBrand"}; + static const char* cpuModel {"cpuModel"}; + static const char* cpuClockSpeed {"clockSpeed"}; + static const char* cpuNumCores { "numCores"}; + static const char* gpuName {"GpuName"}; + static const char* gpuMemory {"gpuMemory"}; + static const char* gpuDriver {"gpuDriver"}; + static const char* totalMemory {"totalMem"}; + static const char* displayDescription { "description"}; + static const char* displayName {"deviceName"}; + static const char* displayCoordsLeft {"coordinatesleft"}; + static const char* displayCoordsRight { "coordinatesright"}; + static const char* displayCoordsTop { "coordinatestop"}; + static const char* displayCoordsBottom { "coordinatesbottom"}; } } // namespace platform From 9e00920884357b04d6c99a3ebe163daee3dab526 Mon Sep 17 00:00:00 2001 From: amerhifi Date: Thu, 16 May 2019 14:30:11 -0700 Subject: [PATCH 04/11] adding computer model to platform for macos --- libraries/platform/src/MACOSPlatform.cpp | 13 +++++++++++++ libraries/platform/src/platform.cpp | 4 ++++ libraries/platform/src/platform.h | 1 + libraries/platform/src/platformInstance.h | 3 +++ libraries/shared/src/GPUIdent.cpp | 2 ++ 5 files changed, 23 insertions(+) diff --git a/libraries/platform/src/MACOSPlatform.cpp b/libraries/platform/src/MACOSPlatform.cpp index cdb9283657..6b2e39bac5 100644 --- a/libraries/platform/src/MACOSPlatform.cpp +++ b/libraries/platform/src/MACOSPlatform.cpp @@ -16,6 +16,7 @@ #ifdef Q_OS_MAC #include #include +#include #endif using namespace platform; @@ -34,6 +35,7 @@ static void getCpuId( uint32_t* p, uint32_t ax ) #endif } + void MACOSInstance::enumerateCpu() { json cpu = {}; uint32_t cpuInfo[4]={0,0,0,0}; @@ -62,6 +64,16 @@ void MACOSInstance::enumerateCpu() { cpu[jsonKeys::cpuNumCores] = std::thread::hardware_concurrency(); _cpu.push_back(cpu); + + + //get system name + size_t len=0; + sysctlbyname("hw.model",NULL, &len, NULL, 0); + char* model = (char *) malloc(sizeof(char)*len+1); + sysctlbyname("hw.model", model, &len, NULL,0); + + _computerModel=std::string(model); + free(model); } void MACOSInstance::enumerateGpu() { @@ -73,6 +85,7 @@ void MACOSInstance::enumerateGpu() { _gpu.push_back(gpu); _display = ident->getOutput(); + } void MACOSInstance::enumerateMemory() { diff --git a/libraries/platform/src/platform.cpp b/libraries/platform/src/platform.cpp index 27e773d435..6f9dc78768 100644 --- a/libraries/platform/src/platform.cpp +++ b/libraries/platform/src/platform.cpp @@ -77,3 +77,7 @@ int platform::getNumMemory() { json platform::getMemory(int index) { return _instance->getMemory(index); } + +std::string platform::getComputerModel(){ + return _instance->getComputerModel(); +} diff --git a/libraries/platform/src/platform.h b/libraries/platform/src/platform.h index 895114ba6d..250b9144ac 100644 --- a/libraries/platform/src/platform.h +++ b/libraries/platform/src/platform.h @@ -32,6 +32,7 @@ json getDisplay(int index); int getNumMemory(); json getMemory(int index); +std::string getComputerModel(); } // namespace platform #endif // hifi_platform_h diff --git a/libraries/platform/src/platformInstance.h b/libraries/platform/src/platformInstance.h index 4770200f07..59aede1fb3 100644 --- a/libraries/platform/src/platformInstance.h +++ b/libraries/platform/src/platformInstance.h @@ -31,6 +31,8 @@ public: int getNumDisplay() { return (int)_display.size(); } json getDisplay(int index); + std::string getComputerModel(){return _computerModel;} + void virtual enumerateCpu()=0; void virtual enumerateMemory()=0; void virtual enumerateGpu()=0; @@ -42,6 +44,7 @@ protected: std::vector _memory; std::vector _gpu; std::vector _display; + std::string _computerModel; }; } // namespace platform diff --git a/libraries/shared/src/GPUIdent.cpp b/libraries/shared/src/GPUIdent.cpp index a78ded483b..658f68a689 100644 --- a/libraries/shared/src/GPUIdent.cpp +++ b/libraries/shared/src/GPUIdent.cpp @@ -22,6 +22,7 @@ #elif defined(Q_OS_MAC) #include +#include #endif #include @@ -56,6 +57,7 @@ GPUIdent* GPUIdent::ensureQuery(const QString& vendor, const QString& renderer) } } } + _dedicatedMemoryMB = bestVRAM; CGLDestroyRendererInfo(rendererInfo); From d924560af0dfa4f797f1fae40b52297c432e53e6 Mon Sep 17 00:00:00 2001 From: amerhifi Date: Thu, 16 May 2019 14:36:31 -0700 Subject: [PATCH 05/11] undoing test code for gcc warnings --- libraries/platform/src/AndroidPlatform.cpp | 16 ++++++++-------- libraries/platform/src/LinuxPlatform.cpp | 16 ++++++++-------- libraries/platform/src/MACOSPlatform.cpp | 16 ++++++++-------- libraries/platform/src/WINPlatform.cpp | 16 ++++++++-------- libraries/platform/src/platformJsonKeys.h | 3 +++ 5 files changed, 35 insertions(+), 32 deletions(-) diff --git a/libraries/platform/src/AndroidPlatform.cpp b/libraries/platform/src/AndroidPlatform.cpp index 58274df9f5..4351b14688 100644 --- a/libraries/platform/src/AndroidPlatform.cpp +++ b/libraries/platform/src/AndroidPlatform.cpp @@ -15,19 +15,19 @@ using namespace platform; void AndroidInstance::enumerateCpu() { json cpu; - cpu[jsonKeys::cpuBrand] = ""; - cpu[jsonKeys::cpuModel] = ""; - cpu[jsonKeys::cpuClockSpeed] = ""; - cpu[jsonKeys::cpuNumCores] = ""; + cpu["cpuBrand"] = ""; + cpu["cpuModel"] = ""; + cpu["cpuClockSpeed"] = ""; + cpu["cpuNumCores"] = ""; _cpu.push_back(cpu); } void AndroidInstance::enumerateGpu() { GPUIdent* ident = GPUIdent::getInstance(); json gpu = {}; - gpu[jsonKeys::gpuName] = ident->getName().toUtf8().constData(); - gpu[jsonKeys::gpuMemory] = ident->getMemory(); - gpu[jsonKeys::gpuDriver] = ident->getDriver().toUtf8().constData(); + gpu["gpuName"] = ident->getName().toUtf8().constData(); + gpu["gpuMemory"] = ident->getMemory(); + gpu["gpuDriver"] = ident->getDriver().toUtf8().constData(); _gpu.push_back(gpu); _display = ident->getOutput(); @@ -35,6 +35,6 @@ void AndroidInstance::enumerateGpu() { void AndroidInstance::enumerateMemory() { json ram = {}; - ram[jsonKeys::totalMemory]=""; + ram["totalMemory"]=""; _memory.push_back(ram); } diff --git a/libraries/platform/src/LinuxPlatform.cpp b/libraries/platform/src/LinuxPlatform.cpp index b22344e728..01d89a4462 100644 --- a/libraries/platform/src/LinuxPlatform.cpp +++ b/libraries/platform/src/LinuxPlatform.cpp @@ -15,10 +15,10 @@ using namespace platform; void LinuxInstance::enumerateCpu() { json cpu = {}; - cpu[jsonKeys::cpuBrand] = ""; - cpu[jsonKeys::cpuModel] = ""; - cpu[jsonKeys::cpuClockSpeed] = ""; - cpu[jsonKeys::cpuNumCores] = ""; + cpu["cpuBrand"] = ""; + cpu["cpuModel"] = ""; + cpu["cpuClockSpeed"] = ""; + cpu["cpuNumCores"] = ""; _cpu.push_back(cpu); } @@ -26,9 +26,9 @@ void LinuxInstance::enumerateCpu() { void LinuxInstance::enumerateGpu() { GPUIdent* ident = GPUIdent::getInstance(); json gpu = {}; - gpu[jsonKeys::gpuName] = ident->getName().toUtf8().constData(); - gpu[jsonKeys::gpuMemory] = ident->getMemory(); - gpu[jsonKeys::gpuDriver] = ident->getDriver().toUtf8().constData(); + gpu["gpuName"] = ident->getName().toUtf8().constData(); + gpu["gpuMemory"] = ident->getMemory(); + gpu["gpuDriver"] = ident->getDriver().toUtf8().constData(); _gpu.push_back(gpu); _display = ident->getOutput(); @@ -36,7 +36,7 @@ void LinuxInstance::enumerateGpu() { void LinuxInstance::enumerateMemory() { json ram = {}; - ram[jsonKeys::totalMemory]=""; + ram["totalMemory"]=""; _memory.push_back(ram); } diff --git a/libraries/platform/src/MACOSPlatform.cpp b/libraries/platform/src/MACOSPlatform.cpp index 6b2e39bac5..151df96719 100644 --- a/libraries/platform/src/MACOSPlatform.cpp +++ b/libraries/platform/src/MACOSPlatform.cpp @@ -58,10 +58,10 @@ void MACOSInstance::enumerateCpu() { } } - cpu[jsonKeys::cpuBrand] = CPUBrandString; - cpu[jsonKeys::cpuModel] = CPUModelString; - cpu[jsonKeys::cpuClockSpeed] = CPUClockString; - cpu[jsonKeys::cpuNumCores] = std::thread::hardware_concurrency(); + cpu["cpuBrand"] = CPUBrandString; + cpu["cpuModel"] = CPUModelString; + cpu["cpuClockSpeed"] = CPUClockString; + cpu["cpuNumCores"] = std::thread::hardware_concurrency(); _cpu.push_back(cpu); @@ -79,9 +79,9 @@ void MACOSInstance::enumerateCpu() { void MACOSInstance::enumerateGpu() { GPUIdent* ident = GPUIdent::getInstance(); json gpu = {}; - gpu[jsonKeys::gpuName] = ident->getName().toUtf8().constData(); - gpu[jsonKeys::gpuMemory] = ident->getMemory(); - gpu[jsonKeys::gpuDriver] = ident->getDriver().toUtf8().constData(); + gpu["gpuName"] = ident->getName().toUtf8().constData(); + gpu["gpuMemory"] = ident->getMemory(); + gpu["gpuDriver"] = ident->getDriver().toUtf8().constData(); _gpu.push_back(gpu); _display = ident->getOutput(); @@ -94,7 +94,7 @@ void MACOSInstance::enumerateMemory() { #ifdef Q_OS_MAC long pages = sysconf(_SC_PHYS_PAGES); long page_size = sysconf(_SC_PAGE_SIZE); - ram[jsonKeys::totalMemory] = pages * page_size;; + ram["totalMemory"] = pages * page_size;; #endif _memory.push_back(ram); } diff --git a/libraries/platform/src/WINPlatform.cpp b/libraries/platform/src/WINPlatform.cpp index cc10b47442..b39c83889b 100644 --- a/libraries/platform/src/WINPlatform.cpp +++ b/libraries/platform/src/WINPlatform.cpp @@ -47,10 +47,10 @@ void WINInstance::enumerateCpu() { } } - cpu[platform::json::cpuBrand] = CPUBrandString; - cpu[jsonKeys::cpuModel] = CPUModelString; - cpu[jsonKeys::cpuClockSpeed] = CPUClockString; - cpu[jsonKeys::cpuNumCores] = std::thread::hardware_concurrency(); + cpu["cpuBrand"] = CPUBrandString; + cpu["cpuModel"] = CPUModelString; + cpu["cpuClockSpeed"] = CPUClockString; + cpu["cpuNumCores"] = std::thread::hardware_concurrency(); #endif _cpu.push_back(cpu); @@ -61,9 +61,9 @@ void WINInstance::enumerateGpu() { GPUIdent* ident = GPUIdent::getInstance(); json gpu = {}; - gpu[jsonKeys::gpuName] = ident->getName().toUtf8().constData(); - gpu[jsonKeys::gpuMemory] = ident->getMemory(); - gpu[jsonKeys::gpuDriver] = ident->getDriver().toUtf8().constData(); + gpu["gpuName"] = ident->getName().toUtf8().constData(); + gpu["gpuMemory"] = ident->getMemory(); + gpu["gpuDriver"] = ident->getDriver().toUtf8().constData(); _gpu.push_back(gpu); _display = ident->getOutput(); @@ -77,7 +77,7 @@ void WINInstance::enumerateMemory() { statex.dwLength = sizeof(statex); GlobalMemoryStatusEx(&statex); int totalRam = statex.ullTotalPhys / 1024 / 1024; - ram[jsonKeys::totalMemory] = totalRam; + ram["totalMemory"] = totalRam; #endif _memory.push_back(ram); } diff --git a/libraries/platform/src/platformJsonKeys.h b/libraries/platform/src/platformJsonKeys.h index a46d5e5b89..629aa30e34 100644 --- a/libraries/platform/src/platformJsonKeys.h +++ b/libraries/platform/src/platformJsonKeys.h @@ -11,6 +11,7 @@ namespace platform { namespace jsonKeys{ +#if 0 static const char* cpuBrand { "cpuBrand"}; static const char* cpuModel {"cpuModel"}; static const char* cpuClockSpeed {"clockSpeed"}; @@ -25,6 +26,8 @@ namespace platform { static const char* displayCoordsRight { "coordinatesright"}; static const char* displayCoordsTop { "coordinatestop"}; static const char* displayCoordsBottom { "coordinatesbottom"}; +#endif + } } // namespace platform From c1c2efc71dbc392311a0acf3ecc1179bd5cc3b9c Mon Sep 17 00:00:00 2001 From: amerhifi Date: Thu, 16 May 2019 15:47:03 -0700 Subject: [PATCH 06/11] getting gpu name via profiler parsing --- libraries/shared/src/GPUIdent.cpp | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/libraries/shared/src/GPUIdent.cpp b/libraries/shared/src/GPUIdent.cpp index 658f68a689..773e40aaee 100644 --- a/libraries/shared/src/GPUIdent.cpp +++ b/libraries/shared/src/GPUIdent.cpp @@ -22,7 +22,10 @@ #elif defined(Q_OS_MAC) #include -#include +#include +#include +#include + #endif #include @@ -57,6 +60,26 @@ GPUIdent* GPUIdent::ensureQuery(const QString& vendor, const QString& renderer) } } } + + //get gpu name + FILE* stream = popen("system_profiler SPDisplaysDataType | grep Chipset", "r"); + + std::ostringstream hostStream; + while (!feof(stream) && !ferror(stream)) { + char buf[128]; + int bytesRead = fread(buf, 1, 128, stream); + hostStream.write(buf, bytesRead); + } + + QString result = QString::fromStdString(hostStream.str()); + QStringList parts = result.split('\n'); + std::string name; + + for (int i = 0; i < parts.size(); ++i) { + if (parts[i].toLower().contains("radeon") || parts[i].toLower().contains("nvidia")) { + _name=parts[i]; + } + } _dedicatedMemoryMB = bestVRAM; CGLDestroyRendererInfo(rendererInfo); From 5cbb39a48ecf8655e7ad250d51fb62d968d31940 Mon Sep 17 00:00:00 2001 From: amerhifi Date: Thu, 16 May 2019 16:25:02 -0700 Subject: [PATCH 07/11] adding computer changes to the platofrm --- libraries/platform/src/AndroidPlatform.cpp | 5 ++++ libraries/platform/src/AndroidPlatform.h | 1 + libraries/platform/src/LinuxPlatform.cpp | 5 ++++ libraries/platform/src/LinuxPlatform.h | 1 + libraries/platform/src/MACOSPlatform.cpp | 31 ++++++++++++++------- libraries/platform/src/MACOSPlatform.h | 3 +- libraries/platform/src/WINPlatform.cpp | 5 ++++ libraries/platform/src/WINPlatform.h | 2 +- libraries/platform/src/platform.cpp | 8 ++++-- libraries/platform/src/platform.h | 3 +- libraries/platform/src/platformInstance.cpp | 17 +++++++++-- libraries/platform/src/platformInstance.h | 6 ++-- libraries/platform/src/platformJsonKeys.h | 4 ++- 13 files changed, 70 insertions(+), 21 deletions(-) diff --git a/libraries/platform/src/AndroidPlatform.cpp b/libraries/platform/src/AndroidPlatform.cpp index 4351b14688..57b0cf04bc 100644 --- a/libraries/platform/src/AndroidPlatform.cpp +++ b/libraries/platform/src/AndroidPlatform.cpp @@ -38,3 +38,8 @@ void AndroidInstance::enumerateMemory() { ram["totalMemory"]=""; _memory.push_back(ram); } + +void AndroidInstance::::enumerateComputer(){ + //no implememntation at this time +} + diff --git a/libraries/platform/src/AndroidPlatform.h b/libraries/platform/src/AndroidPlatform.h index 17efbb45e3..66d80ca1ef 100644 --- a/libraries/platform/src/AndroidPlatform.h +++ b/libraries/platform/src/AndroidPlatform.h @@ -18,6 +18,7 @@ namespace platform { void enumerateCpu() override; void enumerateMemory() override; void enumerateGpu() override; + void enumerateComputer () override; }; } // namespace platform diff --git a/libraries/platform/src/LinuxPlatform.cpp b/libraries/platform/src/LinuxPlatform.cpp index 01d89a4462..df425f417e 100644 --- a/libraries/platform/src/LinuxPlatform.cpp +++ b/libraries/platform/src/LinuxPlatform.cpp @@ -40,3 +40,8 @@ void LinuxInstance::enumerateMemory() { _memory.push_back(ram); } + +void LinuxInstance::::enumerateComputer(){ + //no implememntation at this time +} + diff --git a/libraries/platform/src/LinuxPlatform.h b/libraries/platform/src/LinuxPlatform.h index 1af4ce7444..63db8557f0 100644 --- a/libraries/platform/src/LinuxPlatform.h +++ b/libraries/platform/src/LinuxPlatform.h @@ -18,6 +18,7 @@ namespace platform { void enumerateCpu() override; void enumerateMemory() override; void enumerateGpu() override; + void enumerateComputer () override; }; } // namespace platform diff --git a/libraries/platform/src/MACOSPlatform.cpp b/libraries/platform/src/MACOSPlatform.cpp index 151df96719..019594aedd 100644 --- a/libraries/platform/src/MACOSPlatform.cpp +++ b/libraries/platform/src/MACOSPlatform.cpp @@ -64,16 +64,6 @@ void MACOSInstance::enumerateCpu() { cpu["cpuNumCores"] = std::thread::hardware_concurrency(); _cpu.push_back(cpu); - - - //get system name - size_t len=0; - sysctlbyname("hw.model",NULL, &len, NULL, 0); - char* model = (char *) malloc(sizeof(char)*len+1); - sysctlbyname("hw.model", model, &len, NULL,0); - - _computerModel=std::string(model); - free(model); } void MACOSInstance::enumerateGpu() { @@ -98,3 +88,24 @@ void MACOSInstance::enumerateMemory() { #endif _memory.push_back(ram); } + +void MACOSInstance::enumerateComputer(){ +#ifdef Q_OS_MAC + + //get system name + size_t len=0; + sysctlbyname("hw.model",NULL, &len, NULL, 0); + char* model = (char *) malloc(sizeof(char)*len+1); + sysctlbyname("hw.model", model, &len, NULL,0); + + + json computer; + computer["computerModel"]=std::string(model); + + _computer.push_back(computer); + + free(model); + +#endif +} + diff --git a/libraries/platform/src/MACOSPlatform.h b/libraries/platform/src/MACOSPlatform.h index 287e0c0ed7..04b8621698 100644 --- a/libraries/platform/src/MACOSPlatform.h +++ b/libraries/platform/src/MACOSPlatform.h @@ -18,8 +18,9 @@ namespace platform { void enumerateCpu() override; void enumerateMemory() override; void enumerateGpu() override; + void enumerateComputer () override; }; } // namespace platform -#endif //hifi_winplatform_h +#endif //hifi_macosplatform_h diff --git a/libraries/platform/src/WINPlatform.cpp b/libraries/platform/src/WINPlatform.cpp index b39c83889b..8b37aa4e77 100644 --- a/libraries/platform/src/WINPlatform.cpp +++ b/libraries/platform/src/WINPlatform.cpp @@ -81,3 +81,8 @@ void WINInstance::enumerateMemory() { #endif _memory.push_back(ram); } + +void WINInstance::enumerateComputer(){ + //no implememntation at this time +} + diff --git a/libraries/platform/src/WINPlatform.h b/libraries/platform/src/WINPlatform.h index 4d466a9b7e..828d27ffc3 100644 --- a/libraries/platform/src/WINPlatform.h +++ b/libraries/platform/src/WINPlatform.h @@ -18,7 +18,7 @@ namespace platform { void enumerateCpu() override; void enumerateMemory() override; void enumerateGpu() override; - + void enumerateComputer () override; }; } // namespace platform diff --git a/libraries/platform/src/platform.cpp b/libraries/platform/src/platform.cpp index 6f9dc78768..8c305ebed5 100644 --- a/libraries/platform/src/platform.cpp +++ b/libraries/platform/src/platform.cpp @@ -78,6 +78,10 @@ json platform::getMemory(int index) { return _instance->getMemory(index); } -std::string platform::getComputerModel(){ - return _instance->getComputerModel(); +int platform::getNumComputer(){ + return _instance->getNumComputer(); +} + +json platform::getComputer(int index){ + return _instance->getComputer(index); } diff --git a/libraries/platform/src/platform.h b/libraries/platform/src/platform.h index 250b9144ac..9dd3d4ab2f 100644 --- a/libraries/platform/src/platform.h +++ b/libraries/platform/src/platform.h @@ -32,7 +32,8 @@ json getDisplay(int index); int getNumMemory(); json getMemory(int index); -std::string getComputerModel(); +int getNumComputer(); +json getComputer(int index); } // namespace platform #endif // hifi_platform_h diff --git a/libraries/platform/src/platformInstance.cpp b/libraries/platform/src/platformInstance.cpp index f1cef32096..8b2543eaeb 100644 --- a/libraries/platform/src/platformInstance.cpp +++ b/libraries/platform/src/platformInstance.cpp @@ -8,13 +8,13 @@ #include "platform.h" - -#include #include "platformInstance.h" +#include using namespace platform; bool Instance::enumeratePlatform() { + enumerateComputer(); enumerateCpu(); enumerateGpu(); enumerateMemory(); @@ -47,6 +47,14 @@ json Instance::getGPU(int index) { return _gpu.at(index); } +json Instance::getComputer(<#int index#>){ + if(index >=(int) _computer.size()){ + return json(); + } + + return _computer.at(index); + +} json Instance::getDisplay(int index) { assert(index <(int) _display.size()); @@ -65,7 +73,6 @@ Instance::~Instance() { _memory.clear(); } - if (_gpu.size() > 0) { _gpu.clear(); } @@ -73,4 +80,8 @@ Instance::~Instance() { if (_display.size() > 0) { _display.clear(); } + + if(_computer.size()>0){ + _computer.clear(); + } } diff --git a/libraries/platform/src/platformInstance.h b/libraries/platform/src/platformInstance.h index 59aede1fb3..f5947e7392 100644 --- a/libraries/platform/src/platformInstance.h +++ b/libraries/platform/src/platformInstance.h @@ -31,11 +31,13 @@ public: int getNumDisplay() { return (int)_display.size(); } json getDisplay(int index); - std::string getComputerModel(){return _computerModel;} + int getNumComputer() {return (int)_computer.size();} + json getComputer(int index); void virtual enumerateCpu()=0; void virtual enumerateMemory()=0; void virtual enumerateGpu()=0; + void virtual enumerateComputer()=0; virtual ~Instance(); @@ -44,7 +46,7 @@ protected: std::vector _memory; std::vector _gpu; std::vector _display; - std::string _computerModel; + std::vector _computer; }; } // namespace platform diff --git a/libraries/platform/src/platformJsonKeys.h b/libraries/platform/src/platformJsonKeys.h index 629aa30e34..31d81a829c 100644 --- a/libraries/platform/src/platformJsonKeys.h +++ b/libraries/platform/src/platformJsonKeys.h @@ -26,10 +26,12 @@ namespace platform { static const char* displayCoordsRight { "coordinatesright"}; static const char* displayCoordsTop { "coordinatestop"}; static const char* displayCoordsBottom { "coordinatesbottom"}; + static const char* computerModel { "computerModel"}; + #endif } -} // namespace platform +} // namespace plaform::jsonKeys #endif From 93cf6c882c6161051377edb0403d54ef3435c77b Mon Sep 17 00:00:00 2001 From: amerhifi Date: Thu, 16 May 2019 16:26:23 -0700 Subject: [PATCH 08/11] spacing --- libraries/platform/src/platformInstance.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/platform/src/platformInstance.cpp b/libraries/platform/src/platformInstance.cpp index 8b2543eaeb..06c431621f 100644 --- a/libraries/platform/src/platformInstance.cpp +++ b/libraries/platform/src/platformInstance.cpp @@ -48,13 +48,13 @@ json Instance::getGPU(int index) { } json Instance::getComputer(<#int index#>){ - if(index >=(int) _computer.size()){ + if(index >= (int)_computer.size()){ return json(); } return _computer.at(index); - } + json Instance::getDisplay(int index) { assert(index <(int) _display.size()); From a62f91c7b39ea808082c0b25e47c1c1569c93470 Mon Sep 17 00:00:00 2001 From: amerhifi Date: Thu, 16 May 2019 16:30:30 -0700 Subject: [PATCH 09/11] removed xcode goofines --- libraries/platform/src/platformInstance.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/platform/src/platformInstance.cpp b/libraries/platform/src/platformInstance.cpp index 06c431621f..1996ba9567 100644 --- a/libraries/platform/src/platformInstance.cpp +++ b/libraries/platform/src/platformInstance.cpp @@ -47,7 +47,7 @@ json Instance::getGPU(int index) { return _gpu.at(index); } -json Instance::getComputer(<#int index#>){ +json Instance::getComputer(int index){ if(index >= (int)_computer.size()){ return json(); } From 3b448ce1fe118fae6333419a6424eeed945b1155 Mon Sep 17 00:00:00 2001 From: amerhifi Date: Thu, 16 May 2019 16:38:59 -0700 Subject: [PATCH 10/11] moving to only one computer. also a bit of cleanup: --- libraries/platform/src/AndroidPlatform.cpp | 5 ++--- libraries/platform/src/LinuxPlatform.cpp | 3 +-- libraries/platform/src/MACOSPlatform.cpp | 8 ++------ libraries/platform/src/platform.cpp | 8 ++------ libraries/platform/src/platform.h | 7 +++---- libraries/platform/src/platformInstance.cpp | 9 --------- libraries/platform/src/platformInstance.h | 6 +++--- 7 files changed, 13 insertions(+), 33 deletions(-) diff --git a/libraries/platform/src/AndroidPlatform.cpp b/libraries/platform/src/AndroidPlatform.cpp index 57b0cf04bc..f35674a984 100644 --- a/libraries/platform/src/AndroidPlatform.cpp +++ b/libraries/platform/src/AndroidPlatform.cpp @@ -8,9 +8,8 @@ #include "AndroidPlatform.h" #include "platformJsonKeys.h" - #include -#include + using namespace platform; void AndroidInstance::enumerateCpu() { @@ -39,7 +38,7 @@ void AndroidInstance::enumerateMemory() { _memory.push_back(ram); } -void AndroidInstance::::enumerateComputer(){ +void AndroidInstance::enumerateComputer(){ //no implememntation at this time } diff --git a/libraries/platform/src/LinuxPlatform.cpp b/libraries/platform/src/LinuxPlatform.cpp index df425f417e..aa63eb1e08 100644 --- a/libraries/platform/src/LinuxPlatform.cpp +++ b/libraries/platform/src/LinuxPlatform.cpp @@ -9,7 +9,6 @@ #include "LinuxPlatform.h" #include "platformJsonKeys.h" #include -#include using namespace platform; void LinuxInstance::enumerateCpu() { @@ -41,7 +40,7 @@ void LinuxInstance::enumerateMemory() { _memory.push_back(ram); } -void LinuxInstance::::enumerateComputer(){ +void LinuxInstance::enumerateComputer(){ //no implememntation at this time } diff --git a/libraries/platform/src/MACOSPlatform.cpp b/libraries/platform/src/MACOSPlatform.cpp index 019594aedd..7081044879 100644 --- a/libraries/platform/src/MACOSPlatform.cpp +++ b/libraries/platform/src/MACOSPlatform.cpp @@ -98,12 +98,8 @@ void MACOSInstance::enumerateComputer(){ char* model = (char *) malloc(sizeof(char)*len+1); sysctlbyname("hw.model", model, &len, NULL,0); - - json computer; - computer["computerModel"]=std::string(model); - - _computer.push_back(computer); - + _computer["computerModel"]=std::string(model); + free(model); #endif diff --git a/libraries/platform/src/platform.cpp b/libraries/platform/src/platform.cpp index 8c305ebed5..64bd536eee 100644 --- a/libraries/platform/src/platform.cpp +++ b/libraries/platform/src/platform.cpp @@ -78,10 +78,6 @@ json platform::getMemory(int index) { return _instance->getMemory(index); } -int platform::getNumComputer(){ - return _instance->getNumComputer(); -} - -json platform::getComputer(int index){ - return _instance->getComputer(index); +json platform::getComputer(){ + return _instance->getComputer(); } diff --git a/libraries/platform/src/platform.h b/libraries/platform/src/platform.h index 9dd3d4ab2f..14ec5fa8b2 100644 --- a/libraries/platform/src/platform.h +++ b/libraries/platform/src/platform.h @@ -9,8 +9,7 @@ #ifndef hifi_Platform_h #define hifi_Platform_h -#include "platformInstance.h" -#include + #include namespace platform { @@ -32,8 +31,8 @@ json getDisplay(int index); int getNumMemory(); json getMemory(int index); -int getNumComputer(); -json getComputer(int index); +json getComputer(); + } // namespace platform #endif // hifi_platform_h diff --git a/libraries/platform/src/platformInstance.cpp b/libraries/platform/src/platformInstance.cpp index 1996ba9567..9eccaa43c6 100644 --- a/libraries/platform/src/platformInstance.cpp +++ b/libraries/platform/src/platformInstance.cpp @@ -7,7 +7,6 @@ // -#include "platform.h" #include "platformInstance.h" #include @@ -47,14 +46,6 @@ json Instance::getGPU(int index) { return _gpu.at(index); } -json Instance::getComputer(int index){ - if(index >= (int)_computer.size()){ - return json(); - } - - return _computer.at(index); -} - json Instance::getDisplay(int index) { assert(index <(int) _display.size()); diff --git a/libraries/platform/src/platformInstance.h b/libraries/platform/src/platformInstance.h index f5947e7392..8d0a181e3d 100644 --- a/libraries/platform/src/platformInstance.h +++ b/libraries/platform/src/platformInstance.h @@ -31,8 +31,8 @@ public: int getNumDisplay() { return (int)_display.size(); } json getDisplay(int index); - int getNumComputer() {return (int)_computer.size();} - json getComputer(int index); + + json getComputer() {return _computer;} void virtual enumerateCpu()=0; void virtual enumerateMemory()=0; @@ -46,7 +46,7 @@ protected: std::vector _memory; std::vector _gpu; std::vector _display; - std::vector _computer; + json _computer; }; } // namespace platform From 027583cddc57f67d900f77f964f7c5c9878dcf90 Mon Sep 17 00:00:00 2001 From: amerhifi Date: Thu, 16 May 2019 16:40:16 -0700 Subject: [PATCH 11/11] removing stuff from destructor since its not a vector of computers --- libraries/platform/src/platformInstance.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/libraries/platform/src/platformInstance.cpp b/libraries/platform/src/platformInstance.cpp index 9eccaa43c6..5859577748 100644 --- a/libraries/platform/src/platformInstance.cpp +++ b/libraries/platform/src/platformInstance.cpp @@ -71,8 +71,4 @@ Instance::~Instance() { if (_display.size() > 0) { _display.clear(); } - - if(_computer.size()>0){ - _computer.clear(); - } }