File indexing completed on 2025-03-23 12:49:54
0001 /* 0002 SPDX-FileCopyrightText: 2011 Ilia Kats <ilia-kats@gmx.net> 0003 SPDX-FileCopyrightText: 2013 Daniel Nicoletti <dantti12@gmail.com> 0004 0005 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0006 */ 0007 0008 #include "manager_p.h" 0009 #include "nmdebug.h" 0010 #include "wimaxdevice.h" 0011 #include "wimaxnsp_p.h" 0012 0013 namespace NetworkManager 0014 { 0015 NetworkManager::WimaxNsp::NetworkType convertNetworkType(uint type) 0016 { 0017 switch (type) { 0018 case 0: 0019 return NetworkManager::WimaxNsp::Unknown; 0020 case 1: 0021 return NetworkManager::WimaxNsp::Home; 0022 case 2: 0023 return NetworkManager::WimaxNsp::Partner; 0024 case 3: 0025 return NetworkManager::WimaxNsp::RoamingPartner; 0026 } 0027 return NetworkManager::WimaxNsp::Unknown; 0028 } 0029 0030 } 0031 0032 NetworkManager::WimaxNspPrivate::WimaxNspPrivate(const QString &path, WimaxNsp *q) 0033 #ifdef NMQT_STATIC 0034 : iface(NetworkManagerPrivate::DBUS_SERVICE, path, QDBusConnection::sessionBus()) 0035 #else 0036 : iface(NetworkManagerPrivate::DBUS_SERVICE, path, QDBusConnection::systemBus()) 0037 #endif 0038 , networkType(WimaxNsp::Unknown) 0039 , signalQuality(0) 0040 , q_ptr(q) 0041 { 0042 } 0043 0044 NetworkManager::WimaxNsp::WimaxNsp(const QString &path, QObject *parent) 0045 : QObject(parent) 0046 , d_ptr(new WimaxNspPrivate(path, this)) 0047 { 0048 Q_D(WimaxNsp); 0049 d->uni = path; 0050 if (d->iface.isValid()) { 0051 connect(&d->iface, &OrgFreedesktopNetworkManagerWiMaxNspInterface::PropertiesChanged, d, &WimaxNspPrivate::propertiesChanged); 0052 d->networkType = convertNetworkType(d->iface.networkType()); 0053 d->name = d->iface.name(); 0054 d->signalQuality = d->iface.signalQuality(); 0055 } 0056 } 0057 0058 NetworkManager::WimaxNsp::~WimaxNsp() 0059 { 0060 Q_D(WimaxNsp); 0061 delete d; 0062 } 0063 0064 QString NetworkManager::WimaxNsp::uni() const 0065 { 0066 Q_D(const WimaxNsp); 0067 return d->uni; 0068 } 0069 0070 NetworkManager::WimaxNsp::NetworkType NetworkManager::WimaxNsp::networkType() const 0071 { 0072 Q_D(const WimaxNsp); 0073 return d->networkType; 0074 } 0075 0076 QString NetworkManager::WimaxNsp::name() const 0077 { 0078 Q_D(const WimaxNsp); 0079 return d->name; 0080 } 0081 0082 uint NetworkManager::WimaxNsp::signalQuality() const 0083 { 0084 Q_D(const WimaxNsp); 0085 return d->signalQuality; 0086 } 0087 0088 void NetworkManager::WimaxNspPrivate::propertiesChanged(const QVariantMap &properties) 0089 { 0090 Q_Q(WimaxNsp); 0091 0092 QVariantMap::const_iterator it = properties.constBegin(); 0093 while (it != properties.constEnd()) { 0094 const QString property = it.key(); 0095 if (property == QLatin1String("Name")) { 0096 name = it->toString(); 0097 Q_EMIT q->nameChanged(name); 0098 } else if (property == QLatin1String("NetworkType")) { 0099 networkType = convertNetworkType(it->toUInt()); 0100 Q_EMIT q->networkTypeChanged(networkType); 0101 } else if (property == QLatin1String("SignalQuality")) { 0102 signalQuality = it->toUInt(); 0103 Q_EMIT q->signalQualityChanged(signalQuality); 0104 } else { 0105 qCWarning(NMQT) << Q_FUNC_INFO << "Unhandled property" << property; 0106 } 0107 ++it; 0108 } 0109 } 0110 0111 #include "moc_wimaxnsp.cpp" 0112 #include "moc_wimaxnsp_p.cpp"