File indexing completed on 2024-05-19 15:21:42

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