File indexing completed on 2024-04-21 04:56:50
0001 /** 0002 * SPDX-FileCopyrightText: 2013 Albert Vaca <albertvaka@gmail.com> 0003 * SPDX-FileCopyrightText: 2018 Simon Redman <simon@ergotech.com> 0004 * SPDX-FileCopyrightText: 2019 Richard Liebscher <richard.liebscher@gmail.com> 0005 * SPDX-FileCopyrightText: 2022 Yoram Bar Haim <bhyoram@protonmail.com> 0006 * 0007 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0008 */ 0009 0010 #pragma once 0011 0012 #include <KPluginFactory> 0013 #include <ModemManagerQt/Call> 0014 #include <ModemManagerQt/Manager> 0015 #include <ModemManagerQt/Modem> 0016 #include <ModemManagerQt/ModemVoice> 0017 #include <QList> 0018 #include <QMap> 0019 #include <QObject> 0020 #include <QSet> 0021 #include <QVariant> 0022 0023 #include <core/kdeconnectplugin.h> 0024 0025 class QDBusPendingCallWatcher; 0026 class QDBusInterface; 0027 class QDBusError; 0028 class QDBusObjectPath; 0029 class QDBusVariant; 0030 0031 class MMTelephonyPlugin : public KdeConnectPlugin 0032 { 0033 Q_OBJECT 0034 Q_CLASSINFO("D-Bus Interface", "org.kde.kdeconnect.device.telephony") 0035 0036 public: 0037 explicit MMTelephonyPlugin(QObject *parent, const QVariantList &args); 0038 0039 void receivePacket(const NetworkPacket &np) override; 0040 0041 private: 0042 void onCallAdded(ModemManager::Call::Ptr call); 0043 void onCallRemoved(ModemManager::Call::Ptr call); 0044 void onModemAdded(const QString &path); 0045 void onCallStateChanged(ModemManager::Call *call, MMCallState newState, MMCallState oldState); 0046 void sendMMTelephonyPacket(ModemManager::Call *call, const QString &state); 0047 void sendCancelMMTelephonyPacket(ModemManager::Call *call, const QString &lastState); 0048 static QString stateName(MMCallState state); 0049 };