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"