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"