From 0cd55d943e5e64eb3f10e9a1a410bd90a925c2f7 Mon Sep 17 00:00:00 2001 From: Joona Date: Tue, 22 Aug 2017 17:47:06 -0700 Subject: CPU and GPU model on Linux --- api/logic/minecraft/launch/PrintInstanceInfo.cpp | 39 +++++++++++++++++++++--- 1 file changed, 35 insertions(+), 4 deletions(-) (limited to 'api/logic/minecraft') diff --git a/api/logic/minecraft/launch/PrintInstanceInfo.cpp b/api/logic/minecraft/launch/PrintInstanceInfo.cpp index a9a87955..da204c1b 100644 --- a/api/logic/minecraft/launch/PrintInstanceInfo.cpp +++ b/api/logic/minecraft/launch/PrintInstanceInfo.cpp @@ -13,13 +13,44 @@ * limitations under the License. */ +#include +#include +#include + #include "PrintInstanceInfo.h" #include void PrintInstanceInfo::executeTask() { - auto instance = m_parent->instance(); - auto lines = instance->verboseDescription(m_session); - logLines(lines, MessageLevel::MultiMC); - emitSucceeded(); + auto instance = m_parent->instance(); + auto lines = instance->verboseDescription(m_session); + +#ifdef Q_OS_LINUX + std::ifstream cpuin("/proc/cpuinfo"); + for (std::string line; std::getline(cpuin, line);) + { + if (strncmp(line.c_str(), "model name", 10) == 0) + { + QStringList clines = (QStringList() << QString::fromStdString(line.substr(13, std::string::npos))); + logLines(clines, MessageLevel::MultiMC); + break; + } + } + + char buff[512]; + FILE *fp = popen("lspci", "r"); + while (fgets(buff, 512, fp) != NULL) + { + std::string str(buff); + if (str.substr(8, 3) == "VGA") + { + QStringList glines = (QStringList() << QString::fromStdString(str.substr(35, std::string::npos))); + logLines(glines, MessageLevel::MultiMC); + } + } + +#endif + + logLines(lines, MessageLevel::MultiMC); + emitSucceeded(); } -- cgit v1.2.3