File indexing completed on 2024-04-28 03:59:49

0001 /*
0002     SPDX-FileCopyrightText: 2015 Jan Grulich <jgrulich@redhat.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #include "modemlocation.h"
0008 
0009 #include <QDBusConnection>
0010 #include <QDBusMessage>
0011 
0012 ModemLocation::ModemLocation(QObject *parent)
0013     : QDBusAbstractAdaptor(parent)
0014     , m_enabledNotifications(false)
0015     , m_capabilities(0)
0016     , m_enabled(0)
0017     , m_signalsLocation(false)
0018 {
0019 }
0020 
0021 ModemLocation::~ModemLocation()
0022 {
0023 }
0024 
0025 uint ModemLocation::capabilities() const
0026 {
0027     return m_capabilities;
0028 }
0029 
0030 uint ModemLocation::enabled() const
0031 {
0032     return m_enabled;
0033 }
0034 
0035 ModemManager::LocationInformationMap ModemLocation::location() const
0036 {
0037     return m_location;
0038 }
0039 
0040 bool ModemLocation::signalsLocation() const
0041 {
0042     return m_signalsLocation;
0043 }
0044 
0045 ModemManager::LocationInformationMap ModemLocation::GetLocation()
0046 {
0047     return m_location;
0048 }
0049 
0050 void ModemLocation::Setup(uint sources, bool signal_location)
0051 {
0052     Q_UNUSED(sources);
0053     Q_UNUSED(signal_location)
0054 }
0055 
0056 void ModemLocation::setModemPath(const QString &path)
0057 {
0058     m_modemPath = path;
0059 }
0060 
0061 void ModemLocation::setEnableNotifications(bool enable)
0062 {
0063     m_enabledNotifications = enable;
0064 }
0065 
0066 void ModemLocation::setCapabilities(uint capabilities)
0067 {
0068     m_capabilities = capabilities;
0069 
0070     if (m_enabledNotifications) {
0071         QVariantMap map;
0072         map.insert(QLatin1String("Capabilities"), m_capabilities);
0073         QDBusMessage message = QDBusMessage::createSignal(m_modemPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0074         message << QLatin1String("org.kde.fakemodem.Modem.Location") << map << QStringList();
0075         QDBusConnection::sessionBus().send(message);
0076     }
0077 }
0078 
0079 void ModemLocation::setEnabled(uint enabled)
0080 {
0081     m_enabled = enabled;
0082 
0083     if (m_enabledNotifications) {
0084         QVariantMap map;
0085         map.insert(QLatin1String("Enabled"), m_enabled);
0086         QDBusMessage message = QDBusMessage::createSignal(m_modemPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0087         message << QLatin1String("org.kde.fakemodem.Modem.Location") << map << QStringList();
0088         QDBusConnection::sessionBus().send(message);
0089     }
0090 }
0091 
0092 void ModemLocation::setLocation(const ModemManager::LocationInformationMap &location)
0093 {
0094     m_location = location;
0095 
0096     if (m_enabledNotifications) {
0097         QVariantMap map;
0098         map.insert(QLatin1String("Location"), QVariant::fromValue<ModemManager::LocationInformationMap>(location));
0099         QDBusMessage message = QDBusMessage::createSignal(m_modemPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0100         message << QLatin1String("org.kde.fakemodem.Modem.Location") << map << QStringList();
0101         QDBusConnection::sessionBus().send(message);
0102     }
0103 }
0104 
0105 void ModemLocation::setSignalsLocation(bool signalsLocation)
0106 {
0107     m_signalsLocation = signalsLocation;
0108 
0109     if (m_enabledNotifications) {
0110         QVariantMap map;
0111         map.insert(QLatin1String("SignalsLocation"), m_signalsLocation);
0112         QDBusMessage message = QDBusMessage::createSignal(m_modemPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0113         message << QLatin1String("org.kde.fakemodem.Modem.Location") << map << QStringList();
0114         QDBusConnection::sessionBus().send(message);
0115     }
0116 }
0117 
0118 QVariantMap ModemLocation::toMap() const
0119 {
0120     QVariantMap map;
0121     map.insert(QLatin1String(MM_MODEM_LOCATION_PROPERTY_CAPABILITIES), m_capabilities);
0122     map.insert(QLatin1String(MM_MODEM_LOCATION_PROPERTY_ENABLED), m_enabled);
0123     map.insert(QLatin1String(MM_MODEM_LOCATION_PROPERTY_SIGNALSLOCATION), QVariant::fromValue<ModemManager::LocationInformationMap>(m_location));
0124     map.insert(QLatin1String(MM_MODEM_LOCATION_PROPERTY_LOCATION), m_signalsLocation);
0125     return map;
0126 }
0127 
0128 #include "moc_modemlocation.cpp"