summaryrefslogtreecommitdiffstats
path: root/src/networksettings/wpasupplicant/qwifidevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/networksettings/wpasupplicant/qwifidevice.cpp')
-rw-r--r--src/networksettings/wpasupplicant/qwifidevice.cpp94
1 files changed, 94 insertions, 0 deletions
diff --git a/src/networksettings/wpasupplicant/qwifidevice.cpp b/src/networksettings/wpasupplicant/qwifidevice.cpp
new file mode 100644
index 0000000..a6812e7
--- /dev/null
+++ b/src/networksettings/wpasupplicant/qwifidevice.cpp
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use the contact form at
+** http://www.qt.io
+**
+** This file is part of Qt Enterprise Embedded.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** the contact form at http://www.qt.io
+**
+****************************************************************************/
+#include "qwifidevice.h"
+
+#include <QtCore/QString>
+#include <QtCore/QByteArray>
+#include <QtCore/QDir>
+
+QT_BEGIN_NAMESPACE
+
+/*!
+ \class QWifiDevice
+ \inmodule B2Qt.Wifi.Cpp
+ \ingroup wifi-cppclasses
+ \brief Represents a physical device.
+
+ Use this class to query if a device is Wifi capable, before attempting
+ to use the functionality of QWifiManager.
+
+ \code
+ QWifiManager *m_wifiManager = 0;
+ if (QWifiDevice::wifiSupported())
+ m_wifiManager = QWifiManager::instance();
+
+ if (m_wifiManager) {
+ m_wifiManager->start();
+ // and other wifi related code
+ }
+ \endcode
+ */
+
+QWifiDevice::QWifiDevice()
+{
+}
+
+QWifiDevice::~QWifiDevice()
+{
+}
+
+/*!
+ Returns \c true if a device is Wifi capable - Wifi driver and firmware has been
+ successfully loaded by the system, otherwise returns \c false.
+*/
+bool QWifiDevice::wifiSupported()
+{
+ QByteArray ifc = wifiInterfaceName();
+ bool hasInterface = QDir().exists(QString::fromLatin1("/sys/class/net/" + ifc));
+ if (!hasInterface)
+ qCWarning(B2QT_WIFI) << "could not find wifi interface in \"/sys/class/net/\", "
+ "looking for interface named: " << ifc;
+ return hasInterface;
+}
+
+/*!
+ Returns Wifi interface name.
+
+ Interface name is read from the \c B2QT_WIFI_INTERFACE
+ environment variable if it is set, otherwise, the default interface
+ name ("\e{wlan0}") is used.
+
+ \sa setWifiInterfaceName()
+ */
+QByteArray QWifiDevice::wifiInterfaceName()
+{
+ return qEnvironmentVariableIsSet("B2QT_WIFI_INTERFACE") ? qgetenv("B2QT_WIFI_INTERFACE") : "wlan0";
+}
+
+/*!
+ A conveniece method to set the Wifi interface \a name.
+
+ \sa wifiInterfaceName()
+ */
+void QWifiDevice::setWifiInterfaceName(const QByteArray &name)
+{
+ qputenv("B2QT_WIFI_INTERFACE", name);
+}
+
+QT_END_NAMESPACE