diff options
author | Joona <joonatoona@digitalfishfun.com> | 2017-08-22 17:47:06 -0700 |
---|---|---|
committer | Joona <joonatoona@digitalfishfun.com> | 2017-08-22 17:47:06 -0700 |
commit | 0cd55d943e5e64eb3f10e9a1a410bd90a925c2f7 (patch) | |
tree | d236ad6ac2c30d3dd9b4ada83d3362e0b2071e4e /api/logic | |
parent | 48274e889f2219545d2c3bea6cc3a0281e9a0c47 (diff) | |
download | MultiMC-0cd55d943e5e64eb3f10e9a1a410bd90a925c2f7.tar MultiMC-0cd55d943e5e64eb3f10e9a1a410bd90a925c2f7.tar.gz MultiMC-0cd55d943e5e64eb3f10e9a1a410bd90a925c2f7.tar.lz MultiMC-0cd55d943e5e64eb3f10e9a1a410bd90a925c2f7.tar.xz MultiMC-0cd55d943e5e64eb3f10e9a1a410bd90a925c2f7.zip |
CPU and GPU model on Linux
Diffstat (limited to 'api/logic')
-rw-r--r-- | api/logic/minecraft/launch/PrintInstanceInfo.cpp | 39 |
1 files changed, 35 insertions, 4 deletions
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 <fstream> +#include <string> +#include <QDebug> + #include "PrintInstanceInfo.h" #include <launch/LaunchTask.h> 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(); } |