eglfs_kms: Use a QByteArray for connectorName

Using a byte array here simplifies the logic while being more efficient.
It also removes warnings about using deprecated QString methods.

Change-Id: Ia1384dfb92e953c56179647b92a41b59cd26d9ea
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
bb10
Andrew Knight 2015-03-09 15:34:01 +02:00 committed by Andrew Knight
parent e039555d0e
commit 718f87046a
1 changed files with 11 additions and 10 deletions

View File

@ -96,19 +96,19 @@ static const char * const connector_type_names[] = {
"eDP",
};
static QString nameForConnector(const drmModeConnectorPtr connector)
static QByteArray nameForConnector(const drmModeConnectorPtr connector)
{
QString connectorName = "UNKNOWN";
QByteArray connectorName("UNKNOWN");
if (connector->connector_type < ARRAY_LENGTH(connector_type_names))
connectorName = connector_type_names[connector->connector_type];
connectorName += QString::number(connector->connector_type_id);
connectorName += QByteArray::number(connector->connector_type_id);
return connectorName;
}
static bool parseModeline(const QString &s, drmModeModeInfoPtr mode)
static bool parseModeline(const QByteArray &text, drmModeModeInfoPtr mode)
{
char hsync[16];
char vsync[16];
@ -120,7 +120,7 @@ static bool parseModeline(const QString &s, drmModeModeInfoPtr mode)
mode->vrefresh = 0;
mode->flags = 0;
if (sscanf(qPrintable(s), "%f %hd %hd %hd %hd %hd %hd %hd %hd %15s %15s",
if (sscanf(text.constData(), "%f %hd %hd %hd %hd %hd %hd %hd %hd %15s %15s",
&fclock,
&mode->hdisplay,
&mode->hsync_start,
@ -153,7 +153,7 @@ static bool parseModeline(const QString &s, drmModeModeInfoPtr mode)
QEglFSKmsScreen *QEglFSKmsDevice::screenForConnector(drmModeResPtr resources, drmModeConnectorPtr connector, QPoint pos)
{
const QString connectorName = nameForConnector(connector);
const QByteArray connectorName = nameForConnector(connector);
const int crtc = crtcForConnector(resources, connector);
if (crtc < 0) {
@ -165,19 +165,20 @@ QEglFSKmsScreen *QEglFSKmsDevice::screenForConnector(drmModeResPtr resources, dr
QSize configurationSize;
drmModeModeInfo configurationModeline;
const QString mode = m_integration->outputSettings().value(connectorName).value("mode", "preferred").toString().toLower();
const QByteArray mode = m_integration->outputSettings().value(QString::fromUtf8(connectorName))
.value(QStringLiteral("mode"), QStringLiteral("preferred")).toByteArray().toLower();
if (mode == "off") {
configuration = OutputConfigOff;
} else if (mode == "preferred") {
configuration = OutputConfigPreferred;
} else if (mode == "current") {
configuration = OutputConfigCurrent;
} else if (sscanf(qPrintable(mode), "%dx%d", &configurationSize.rwidth(), &configurationSize.rheight()) == 2) {
} else if (sscanf(mode.constData(), "%dx%d", &configurationSize.rwidth(), &configurationSize.rheight()) == 2) {
configuration = OutputConfigMode;
} else if (parseModeline(mode, &configurationModeline)) {
configuration = OutputConfigModeline;
} else {
qWarning("Invalid mode \"%s\" for output %s", qPrintable(mode), qPrintable(connectorName));
qWarning("Invalid mode \"%s\" for output %s", mode.constData(), connectorName.constData());
configuration = OutputConfigPreferred;
}
@ -273,7 +274,7 @@ QEglFSKmsScreen *QEglFSKmsDevice::screenForConnector(drmModeResPtr resources, dr
}
QEglFSKmsOutput output = {
connectorName,
QString::fromUtf8(connectorName),
connector->connector_id,
crtc_id,
QSizeF(connector->mmWidth, connector->mmHeight),