55 static QString configFile = qEnvironmentVariable(
"QT_QPA_EGLFS_KMS_CONFIG");
56 if (configFile.isEmpty())
59 QFile file(configFile);
60 if (!file.open(QFile::ReadOnly)) {
61 qWarning(
"touch input support: Failed to open %ls", qUtf16Printable(configFile));
65 const QJsonDocument doc = QJsonDocument::fromJson(file.readAll());
66 if (!doc.isObject()) {
67 qWarning(
"touch input support: Failed to parse %ls", qUtf16Printable(configFile));
73 const QJsonArray outputs = doc.object().value(
"outputs"_L1).toArray();
74 for (
int i = 0; i < outputs.size(); ++i) {
75 const QVariantMap output = outputs.at(i).toObject().toVariantMap();
76 if (!output.contains(QStringLiteral(
"touchDevice")))
78 if (!output.contains(QStringLiteral(
"name"))) {
79 qWarning(
"evdevtouch: Output %d specifies touchDevice but not name, this is wrong", i);
82 QFileInfo deviceNode(output.value(QStringLiteral(
"touchDevice")).toString());
83 const QString &screenName = output.value(QStringLiteral(
"name")).toString();
84 m_screenTable.insert(deviceNode.canonicalFilePath(), screenName);