File indexing completed on 2024-04-28 16:42:53
0001 // SPDX-FileCopyrightText: 2012 George Kiagiadakis <kiagiadakis.george@gmail.com> 0002 // SPDX-FileCopyrightText: 2021 Alexey Andreyev <aa13q@ya.ru> 0003 // 0004 // SPDX-License-Identifier: LGPL-2.1-or-later 0005 0006 #pragma once 0007 0008 #include <optional> 0009 0010 #include <QDBusUnixFileDescriptor> 0011 #include <QObject> 0012 #include <kTelephonyMetaTypes/dialer-types.h> 0013 0014 class ModemController; 0015 class CallUtils; 0016 0017 class CallManager : public QObject 0018 { 0019 Q_OBJECT 0020 public: 0021 explicit CallManager(ModemController *modemController, CallUtils *callUtils, QObject *parent = nullptr); 0022 0023 private Q_SLOTS: 0024 void onCallAdded(const QString &deviceUni, 0025 const QString &callUni, 0026 const DialerTypes::CallDirection &callDirection, 0027 const DialerTypes::CallState &callState, 0028 const DialerTypes::CallStateReason &callStateReason, 0029 const QString communicationWith); 0030 void onCallDeleted(const QString &deviceUni, const QString &callUni); 0031 void onCallStateChanged(const DialerTypes::CallData &callData); 0032 void onUtilsCreatedCall(const QString &deviceUni, const QString &callUni); 0033 void onUtilsAccepted(const QString &deviceUni, const QString &callUni); 0034 void onUtilsHungUp(const QString &deviceUni, const QString &callUni); 0035 void onUtilsSentDtmf(const QString &deviceUni, const QString &callUni, const QString &tones); 0036 void onUtilsCallsRequested(); 0037 0038 private: 0039 ModemController *_modemController; 0040 CallUtils *_callUtils; 0041 0042 std::optional<QDBusUnixFileDescriptor> _inhibitSleepFd; 0043 };