File indexing completed on 2024-04-28 16:42:54
0001 // SPDX-FileCopyrightText: 2021 Alexey Andreyev <aa13q@ya.ru> 0002 // 0003 // SPDX-License-Identifier: LicenseRef-KDE-Accepted-GPL 0004 #pragma once 0005 0006 #include <kTelephonyMetaTypes/dialer-types.h> 0007 0008 class ModemController : public QObject 0009 { 0010 Q_OBJECT 0011 0012 public: 0013 explicit ModemController(QObject *parent = nullptr); 0014 0015 QString protocol(); 0016 QString subsystem(); 0017 0018 Q_SIGNALS: 0019 // Modem/3GPP 0020 void deviceUniListChanged(const QStringList &deviceUniList); 0021 void countryCodeChanged(const QString &countryCode); 0022 // SMS/MMS 0023 void messageAdded(const QString &deviceUni, const QVariantMap &message, bool received); 0024 // USSD 0025 void ussdErrorReceived(const QString &deviceUni, const QString &error); 0026 void ussdNotificationReceived(const QString &deviceUni, const QString &message); 0027 void ussdRequestReceived(const QString &deviceUni, const QString &message); 0028 void ussdInitiateComplete(const QString &deviceUni, const QString &command); 0029 void ussdStateChanged(const QString &deviceUni, const QString &state); 0030 // Calls 0031 void callAdded(const QString &deviceUni, 0032 const QString &callUni, 0033 const DialerTypes::CallDirection &callDirection, 0034 const DialerTypes::CallState &callState, 0035 const DialerTypes::CallStateReason &callStateReason, 0036 const QString communicationWith); 0037 void callDeleted(const QString &deviceUni, const QString &callUni); 0038 void callStateChanged(const DialerTypes::CallData &callData); 0039 0040 public Q_SLOTS: 0041 // Device 0042 QStringList deviceUniList(); 0043 void appendDeviceUni(const QString &deviceUni); 0044 void setDeviceUniList(const QStringList &newDeviceUniList); 0045 virtual QString equipmentIdentifier(const QString &deviceUni); 0046 QString deviceUni(const QString &equipmentIdentifier); 0047 // USSD 0048 virtual void ussdInitiate(const QString &deviceUni, const QString &command); 0049 virtual void ussdRespond(const QString &deviceUni, const QString &reply); 0050 virtual void ussdCancel(const QString &deviceUni); 0051 // Calls 0052 virtual QString callNumber(const QString &deviceUni, const QString &callUni); 0053 virtual void createCall(const QString &deviceUni, const QString &callUni); 0054 virtual void acceptCall(const QString &deviceUni, const QString &callUni); 0055 virtual void hangUp(const QString &deviceUni, const QString &callUni); 0056 virtual void sendDtmf(const QString &deviceUni, const QString &callUni, const QString &tones); 0057 virtual DialerTypes::CallDataVector fetchCalls(); 0058 virtual DialerTypes::CallData getCall(const QString &deviceUni, const QString &callUni); 0059 virtual void deleteCall(const QString &deviceUni, const QString &callUni); 0060 0061 private: 0062 QStringList _deviceUniList; 0063 };