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 "modemoma.h"
0008 
0009 #include <QDBusConnection>
0010 #include <QDBusMessage>
0011 
0012 ModemOma::ModemOma(QObject *parent)
0013     : QDBusAbstractAdaptor(parent)
0014     , m_enabledNotifications(false)
0015     , m_features(0)
0016     , m_sessionState(0)
0017     , m_sessionType(0)
0018 {
0019 }
0020 
0021 ModemOma::~ModemOma()
0022 {
0023 }
0024 
0025 uint ModemOma::features() const
0026 {
0027     return m_features;
0028 }
0029 
0030 ModemManager::OmaSessionTypes ModemOma::pendingNetworkInitiatedSessions() const
0031 {
0032     return m_sessions;
0033 }
0034 
0035 int ModemOma::sessionState() const
0036 {
0037     return m_sessionState;
0038 }
0039 
0040 uint ModemOma::sessionType() const
0041 {
0042     return m_sessionType;
0043 }
0044 
0045 void ModemOma::AcceptNetworkInitiatedSession(uint session_id, bool accept)
0046 {
0047     Q_UNUSED(session_id);
0048     Q_UNUSED(accept);
0049 }
0050 
0051 void ModemOma::CancelSession()
0052 {
0053 }
0054 
0055 void ModemOma::Setup(uint features)
0056 {
0057     Q_UNUSED(features);
0058 }
0059 
0060 void ModemOma::StartClientInitiatedSession(uint session_type)
0061 {
0062     Q_UNUSED(session_type);
0063 }
0064 
0065 void ModemOma::setModemPath(const QString &path)
0066 {
0067     m_modemPath = path;
0068 }
0069 
0070 void ModemOma::setEnableNotifications(bool enable)
0071 {
0072     m_enabledNotifications = enable;
0073 }
0074 
0075 void ModemOma::setFeatures(uint features)
0076 {
0077     m_features = features;
0078 
0079     if (m_enabledNotifications) {
0080         QVariantMap map;
0081         map.insert(QLatin1String("Features"), m_features);
0082         QDBusMessage message = QDBusMessage::createSignal(m_modemPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0083         message << QLatin1String("org.kde.fakemodem.Modem.Oma") << map << QStringList();
0084         QDBusConnection::sessionBus().send(message);
0085     }
0086 }
0087 
0088 void ModemOma::setPendingNetworkInitiatedSessions(const ModemManager::OmaSessionTypes &sessions)
0089 {
0090     m_sessions = sessions;
0091 
0092     if (m_enabledNotifications) {
0093         QVariantMap map;
0094         map.insert(QLatin1String("PendingNetworkInitiatedSessions"), QVariant::fromValue<ModemManager::OmaSessionTypes>(m_sessions));
0095         QDBusMessage message = QDBusMessage::createSignal(m_modemPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0096         message << QLatin1String("org.kde.fakemodem.Modem.Oma") << map << QStringList();
0097         QDBusConnection::sessionBus().send(message);
0098     }
0099 }
0100 
0101 void ModemOma::setSessionState(int state)
0102 {
0103     int previousState = m_sessionState;
0104     m_sessionState = state;
0105 
0106     if (m_enabledNotifications) {
0107         Q_EMIT SessionStateChanged(previousState, m_sessionState, MM_OMA_SESSION_STATE_UNKNOWN);
0108     }
0109 }
0110 
0111 void ModemOma::setSessionType(uint type)
0112 {
0113     m_sessionType = type;
0114 
0115     if (m_enabledNotifications) {
0116         QVariantMap map;
0117         map.insert(QLatin1String("SessionType"), m_sessionType);
0118         QDBusMessage message = QDBusMessage::createSignal(m_modemPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged"));
0119         message << QLatin1String("org.kde.fakemodem.Modem.Oma") << map << QStringList();
0120         QDBusConnection::sessionBus().send(message);
0121     }
0122 }
0123 
0124 QVariantMap ModemOma::toMap() const
0125 {
0126     QVariantMap map;
0127     map.insert(QLatin1String(MM_MODEM_OMA_PROPERTY_FEATURES), m_features);
0128     map.insert(QLatin1String(MM_MODEM_OMA_PROPERTY_PENDINGNETWORKINITIATEDSESSIONS), QVariant::fromValue<ModemManager::OmaSessionTypes>(m_sessions));
0129     map.insert(QLatin1String(MM_MODEM_OMA_PROPERTY_SESSIONTYPE), m_sessionType);
0130     map.insert(QLatin1String(MM_MODEM_OMA_PROPERTY_SESSIONSTATE), m_sessionState);
0131     return map;
0132 }
0133 
0134 #include "moc_modemoma.cpp"