9#include "accesspoint_p.h"
11#include "wirelessdevice.h"
15NetworkManager::AccessPointPrivate::AccessPointPrivate(
const QString &path, AccessPoint *q)
26 , mode(AccessPoint::Unknown)
35NetworkManager::AccessPoint::Capabilities NetworkManager::AccessPointPrivate::convertCapabilities(
int caps)
37 NetworkManager::AccessPoint::Capabilities capFlags;
38 if (caps & NM_802_11_AP_FLAGS_PRIVACY) {
39 capFlags |= AccessPoint::Privacy;
45NetworkManager::AccessPoint::WpaFlags NetworkManager::AccessPointPrivate::convertWpaFlags(uint theirFlags)
47 return (AccessPoint::WpaFlags)theirFlags;
50NetworkManager::AccessPoint::AccessPoint(
const QString &path,
QObject *parent)
52 , d_ptr(new AccessPointPrivate(
path, this))
58 NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
64 QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
65 if (!initialProperties.isEmpty()) {
66 d->propertiesChanged(initialProperties);
70NetworkManager::AccessPoint::~AccessPoint()
78 Q_D(
const AccessPoint);
84 Q_D(
const AccessPoint);
85 return d->hardwareAddress;
90 Q_D(
const AccessPoint);
91 return d->capabilities;
96 Q_D(
const AccessPoint);
102 Q_D(
const AccessPoint);
108 Q_D(
const AccessPoint);
114 Q_D(
const AccessPoint);
120 Q_D(
const AccessPoint);
126 Q_D(
const AccessPoint);
127 return d->maxBitRate;
132 Q_D(
const AccessPoint);
138 Q_D(
const AccessPoint);
139 return d->signalStrength;
144 Q_D(
const AccessPoint);
150 Q_D(
const AccessPoint);
158 case NM_802_11_MODE_UNKNOWN:
161 case NM_802_11_MODE_ADHOC:
164 case NM_802_11_MODE_INFRA:
167 case NM_802_11_MODE_AP:
171 qCDebug(NMQT) << Q_FUNC_INFO <<
"Unhandled mode" <<
mode;
176void NetworkManager::AccessPointPrivate::dbusPropertiesChanged(
const QString &interfaceName,
177 const QVariantMap &properties,
180 Q_UNUSED(invalidatedProperties);
181 if (interfaceName ==
QLatin1String(
"org.freedesktop.NetworkManager.AccessPoint")) {
182 propertiesChanged(properties);
186void NetworkManager::AccessPointPrivate::propertiesChanged(
const QVariantMap &properties)
192 QVariantMap::const_iterator it =
properties.constBegin();
194 const QString
property = it.key();
195 if (property == QLatin1String(
"Flags")) {
197 Q_EMIT q->capabilitiesChanged(capabilities);
198 }
else if (property == QLatin1String(
"WpaFlags")) {
199 wpaFlags = convertWpaFlags(it->toUInt());
200 Q_EMIT q->wpaFlagsChanged(wpaFlags);
201 }
else if (property == QLatin1String(
"RsnFlags")) {
202 rsnFlags = convertWpaFlags(it->toUInt());
203 Q_EMIT q->rsnFlagsChanged(rsnFlags);
204 }
else if (property == QLatin1String(
"Ssid")) {
205 rawSsid = it->toByteArray();
207 Q_EMIT q->ssidChanged(ssid);
208 }
else if (property == QLatin1String(
"Frequency")) {
209 frequency = it->toUInt();
210 Q_EMIT q->frequencyChanged(frequency);
211 }
else if (property == QLatin1String(
"HwAddress")) {
212 hardwareAddress = it->toString();
213 }
else if (property == QLatin1String(
"Mode")) {
214 mode = q->convertOperationMode(it->toUInt());
215 }
else if (property == QLatin1String(
"MaxBitrate")) {
216 maxBitRate = it->toUInt();
217 Q_EMIT q->bitRateChanged(maxBitRate);
218 }
else if (property == QLatin1String(
"Strength")) {
219 signalStrength = it->toInt();
220 Q_EMIT q->signalStrengthChanged(signalStrength);
221 }
else if (property == QLatin1String(
"LastSeen")) {
222 lastSeen = it->toInt();
223 Q_EMIT q->lastSeenChanged(lastSeen);
224 }
else if (property == QLatin1String(
"Bandwidth")) {
225 bandwidth = it->toUInt();
226 Q_EMIT q->bandwidthChanged(bandwidth);
228 qCDebug(NMQT) << Q_FUNC_INFO <<
"Unhandled property" << property;
234#include "moc_accesspoint.cpp"
235#include "moc_accesspoint_p.cpp"
Represents an access point.
QString hardwareAddress() const
AccessPoint::WpaFlags wpaFlags() const
static OperationMode convertOperationMode(uint mode)
Helper method to convert wire representation of operation mode to enum.
OperationMode mode() const
int signalStrength() const
uint bandwidth() const
The bandwidth announced by the access point in MHz.
OperationMode
The access point's current operating mode.
@ Unknown
not associated with a network
@ ApMode
access point in an infrastructure network
@ Infra
a station in an infrastructure wireless network
@ Adhoc
part of an adhoc network
AccessPoint::WpaFlags rsnFlags() const
Capabilities capabilities() const
QByteArray rawSsid() const
Capabilities capabilities()
QString path(const QString &relativePath)
bool connect(const QString &service, const QString &path, const QString &interface, const QString &name, QObject *receiver, const char *slot)
QDBusConnection sessionBus()
QDBusConnection systemBus()
QString fromUtf8(QByteArrayView str)