From 7d44de7082158723dde6e6d62e0ca548e69156f6 Mon Sep 17 00:00:00 2001 From: gongheng Date: Thu, 24 Jul 2025 16:15:23 +0800 Subject: [PATCH] feat: [GPU] Add logic to show GPU info. -- In some special computer, the GPU info not show. -- Add logic to show GPU info. -- Remove duplicate code and improve code readability. Log: add feature for GPU. Task: https://pms.uniontech.com/task-view-378987.html --- .../src/GenerateDevice/HWGenerator.cpp | 47 +------------------ 1 file changed, 2 insertions(+), 45 deletions(-) diff --git a/deepin-devicemanager/src/GenerateDevice/HWGenerator.cpp b/deepin-devicemanager/src/GenerateDevice/HWGenerator.cpp index 088f72f7..32c2d4ba 100644 --- a/deepin-devicemanager/src/GenerateDevice/HWGenerator.cpp +++ b/deepin-devicemanager/src/GenerateDevice/HWGenerator.cpp @@ -7,6 +7,7 @@ #include "EDIDParser.h" #include "commonfunction.h" #include "DDLog.h" +#include "commontools.h" // Qt库文件 #include @@ -412,50 +413,6 @@ void HWGenerator::getMemoryInfoFromLshw() } } -static void parseEDID(QStringList allEDIDS,QString input) -{ - for (auto edid:allEDIDS) { - QProcess process; - process.start(QString("hexdump %1").arg(edid)); - process.waitForFinished(-1); - - QString deviceInfo = process.readAllStandardOutput(); - if (deviceInfo.isEmpty()) - continue; - - QString edidStr; - QStringList lines = deviceInfo.split("\n"); - for (auto line:lines) { - QStringList words = line.trimmed().split(" "); - if (words.size() != 9) - continue; - - words.removeAt(0); - QString l = words.join(""); - l.append("\n"); - edidStr.append(l); - } - - lines = edidStr.split("\n"); - if (lines.size() > 3){ - EDIDParser edidParser; - QString errorMsg; - edidParser.setEdid(edidStr,errorMsg,"\n", false); - - QMap mapInfo; - mapInfo.insert("Vendor",edidParser.vendor()); - mapInfo.insert("Model",edidParser.model()); - //mapInfo.insert("Date",edidParser.releaseDate()); - mapInfo.insert("Size",edidParser.screenSize()); - mapInfo.insert("Display Input",input); - - DeviceMonitor *device = new DeviceMonitor(); - device->setInfoFromEdid(mapInfo); - DeviceManager::instance()->addMonitor(device); - } - } -} - void HWGenerator::generatorMonitorDevice() { QString toDir = "/sys/class/drm"; @@ -473,7 +430,7 @@ void HWGenerator::generatorMonitorDevice() QStringList allEDIDS_all; allEDIDS_all.append(fileInfo.filePath() + "/" + "edid"); QString interface = fileInfo.fileName().remove("card0-").remove("card1-").remove("card2-"); - parseEDID(allEDIDS_all,interface); + CommonTools::parseEDID(allEDIDS_all,interface); } } }