File indexing completed on 2024-03-24 17:07:40

0001 /*
0002  *  SPDX-FileCopyrightText: 2018 Daniel Vrátil <dvratil@kde.org>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.1-or-later
0005  */
0006 
0007 #include "utils.h"
0008 
0009 #include <QVector>
0010 
0011 KScreen::Output::Type Utils::guessOutputType(const QString &type, const QString &name)
0012 {
0013     static const auto embedded = {QLatin1String("LVDS"), QLatin1String("IDP"), QLatin1String("EDP"), QLatin1String("LCD"), QLatin1String("DSI")};
0014 
0015     for (const QLatin1String &pre : embedded) {
0016         if (name.startsWith(pre, Qt::CaseInsensitive)) {
0017             return KScreen::Output::Panel;
0018         }
0019     }
0020 
0021     if (type.contains(QLatin1String("VGA"))) {
0022         return KScreen::Output::VGA;
0023     } else if (type.contains(QLatin1String("DVI"))) {
0024         return KScreen::Output::DVI;
0025     } else if (type.contains(QLatin1String("DVI-I"))) {
0026         return KScreen::Output::DVII;
0027     } else if (type.contains(QLatin1String("DVI-A"))) {
0028         return KScreen::Output::DVIA;
0029     } else if (type.contains(QLatin1String("DVI-D"))) {
0030         return KScreen::Output::DVID;
0031     } else if (type.contains(QLatin1String("HDMI"))) {
0032         return KScreen::Output::HDMI;
0033     } else if (type.contains(QLatin1String("Panel"))) {
0034         return KScreen::Output::Panel;
0035     } else if (type.contains(QLatin1String("TV-Composite"))) {
0036         return KScreen::Output::TVComposite;
0037     } else if (type.contains(QLatin1String("TV-SVideo"))) {
0038         return KScreen::Output::TVSVideo;
0039     } else if (type.contains(QLatin1String("TV-Component"))) {
0040         return KScreen::Output::TVComponent;
0041     } else if (type.contains(QLatin1String("TV-SCART"))) {
0042         return KScreen::Output::TVSCART;
0043     } else if (type.contains(QLatin1String("TV-C4"))) {
0044         return KScreen::Output::TVC4;
0045     } else if (type.contains(QLatin1String("TV"))) {
0046         return KScreen::Output::TV;
0047     } else if (type.contains(QLatin1String("DisplayPort")) || type.startsWith(QLatin1String("DP"))) {
0048         return KScreen::Output::DisplayPort;
0049     } else if (type.contains(QLatin1String("unknown"))) {
0050         return KScreen::Output::Unknown;
0051     } else {
0052         return KScreen::Output::Unknown;
0053     }
0054 }