File indexing completed on 2024-05-05 17:32:29
0001 // SPDX-FileCopyrightText: 2021 Nicolas Fella <nicolas.fella@gmx.de> 0002 // 0003 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0004 #pragma once 0005 0006 #include <QDBusPendingReply> 0007 #include <QObject> 0008 0009 #include <optional> 0010 0011 #include <ModemManagerQt/Modem3Gpp> 0012 #include <ModemManagerQt/ModemDevice> 0013 #include <ModemManagerQt/ModemMessaging> 0014 #include <ModemManagerQt/Sms> 0015 0016 class ModemController : public QObject 0017 { 0018 Q_OBJECT 0019 public: 0020 static ModemController &instance(); 0021 0022 void init(std::optional<QString> modemPath); 0023 0024 std::optional<QDBusPendingReply<QDBusObjectPath>> createMessage(ModemManager::ModemMessaging::Message m); 0025 void deleteMessage(const QString &uni); 0026 0027 ModemManager::Sms::List messages(); 0028 0029 QString ownNumber(); 0030 0031 QString ifaceName; 0032 0033 QString dnsServers; 0034 0035 QString countryCode; 0036 0037 Q_SIGNALS: 0038 void messageAdded(ModemManager::Sms::Ptr message); 0039 void modemConnected(); 0040 void modemDataConnectedChanged(const bool isConnected); 0041 void countryCodeChanged(const QString &code); 0042 0043 private Q_SLOTS: 0044 void slotMessageAdded(const QString &uni, bool received); 0045 0046 private: 0047 void initMessaging(); 0048 ModemController(); 0049 0050 ModemManager::ModemDevice::Ptr m_modem; 0051 ModemManager::ModemMessaging::Ptr m_msgManager; 0052 ModemManager::Modem::Ptr m_interface; 0053 ModemManager::Bearer::Ptr m_bearer; 0054 ModemManager::Modem3gpp::Ptr m_modem3gpp; 0055 0056 QString getDNS(QSharedPointer<ModemManager::Bearer> bearer); 0057 };