File indexing completed on 2024-04-14 03:57:44

0001 /*
0002     SPDX-FileCopyrightText: 2008, 2011 Will Stephenson <wstephenson@kde.org>
0003     SPDX-FileCopyrightText: 2011-2013 Lamarque Souza <lamarque@kde.org>
0004     SPDX-FileCopyrightText: 2013 Daniel Nicoletti <dantti12@gmail.com>
0005     SPDX-FileCopyrightText: 2013 Jan Grulich <jgrulich@redhat.com>
0006 
0007     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0008 */
0009 
0010 #include "modemdevice.h"
0011 #include "modemdevice_p.h"
0012 
0013 #include "manager_p.h"
0014 
0015 NetworkManager::ModemDevice::Capabilities convertModemCapabilities(uint theirCaps)
0016 {
0017     NetworkManager::ModemDevice::Capabilities ourCaps = (NetworkManager::ModemDevice::Capabilities)theirCaps;
0018     return ourCaps;
0019 }
0020 
0021 NetworkManager::ModemDevicePrivate::ModemDevicePrivate(const QString &path, ModemDevice *q)
0022     : DevicePrivate(path, q)
0023 #ifdef NMQT_STATIC
0024     , modemIface(NetworkManagerPrivate::DBUS_SERVICE, path, QDBusConnection::sessionBus())
0025 #else
0026     , modemIface(NetworkManagerPrivate::DBUS_SERVICE, path, QDBusConnection::systemBus())
0027 #endif
0028 {
0029 }
0030 
0031 NetworkManager::ModemDevice::ModemDevice(const QString &path, QObject *parent)
0032     : Device(*new ModemDevicePrivate(path, this), parent)
0033 {
0034     Q_D(ModemDevice);
0035 
0036     QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->modemIface.staticInterfaceName(), path);
0037     if (!initialProperties.isEmpty()) {
0038         d->propertiesChanged(initialProperties);
0039     }
0040 }
0041 
0042 NetworkManager::ModemDevice::ModemDevice(NetworkManager::ModemDevicePrivate &dd, QObject *parent)
0043     : Device(dd, parent)
0044 {
0045     Q_D(ModemDevice);
0046 
0047     QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE,
0048                                          d->uni,
0049                                          NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
0050                                          QLatin1String("PropertiesChanged"),
0051                                          d,
0052                                          SLOT(dbusPropertiesChanged(QString, QVariantMap, QStringList)));
0053 }
0054 
0055 NetworkManager::ModemDevice::~ModemDevice()
0056 {
0057 }
0058 
0059 NetworkManager::Device::Type NetworkManager::ModemDevice::type() const
0060 {
0061     return NetworkManager::Device::Modem;
0062 }
0063 
0064 NetworkManager::ModemDevice::Capabilities NetworkManager::ModemDevice::currentCapabilities() const
0065 {
0066     Q_D(const ModemDevice);
0067     return d->currentCapabilities;
0068 }
0069 
0070 NetworkManager::ModemDevice::Capabilities NetworkManager::ModemDevice::modemCapabilities() const
0071 {
0072     Q_D(const ModemDevice);
0073     return d->modemCapabilities;
0074 }
0075 
0076 void NetworkManager::ModemDevicePrivate::propertyChanged(const QString &property, const QVariant &value)
0077 {
0078     Q_Q(ModemDevice);
0079 
0080     if (property == QLatin1String("CurrentCapabilities")) {
0081         currentCapabilities = convertModemCapabilities(value.toUInt());
0082         Q_EMIT q->currentCapabilitiesChanged(currentCapabilities);
0083     } else if (property == QLatin1String("ModemCapabilities")) {
0084         modemCapabilities = convertModemCapabilities(value.toUInt());
0085     } else {
0086         DevicePrivate::propertyChanged(property, value);
0087     }
0088 }
0089 
0090 #include "moc_modemdevice.cpp"
0091 #include "moc_modemdevice_p.cpp"