File indexing completed on 2024-04-28 16:42:53

0001 // SPDX-FileCopyrightText: 2021 Alexey Andreyev <aa13q@ya.ru>
0002 //
0003 // SPDX-License-Identifier: LicenseRef-KDE-Accepted-GPL
0004 
0005 #pragma once
0006 
0007 #include <QObject>
0008 #include <QTimer>
0009 #include <kTelephonyMetaTypes/dialer-types.h>
0010 
0011 class CallObject : public QObject
0012 {
0013     Q_OBJECT
0014 public:
0015     explicit CallObject(QObject *parent = nullptr);
0016 
0017     QString id();
0018 
0019     QString protocol();
0020     QString provider();
0021     QString account();
0022 
0023     QString communicationWith();
0024     DialerTypes::CallDirection direction();
0025     DialerTypes::CallState state();
0026     DialerTypes::CallStateReason stateReason();
0027 
0028     int callAttemptDuration();
0029     QDateTime startedAt();
0030     int duration();
0031 
0032     DialerTypes::CallData callData();
0033 
0034 public Q_SLOTS:
0035     void onCallStateChanged(const QString &deviceUni,
0036                             const QString &callUni,
0037                             const DialerTypes::CallDirection &callDirection,
0038                             const DialerTypes::CallState &callState,
0039                             const DialerTypes::CallStateReason &callStateReason);
0040     void setId(const QString &id);
0041     void setProtocol(const QString &protocol);
0042     void setProvider(const QString &provider);
0043     void setAccount(const QString &account);
0044 
0045     void setCommunicationWith(const QString &communicationWith);
0046     void setDirection(const DialerTypes::CallDirection &direction);
0047     void setState(const DialerTypes::CallState &state);
0048     void setStateReason(const DialerTypes::CallStateReason &stateReason);
0049 
0050     void setCallAttemptDuration(const int &callAttemptDuration);
0051     void setStartedAt(const QDateTime &startedAt);
0052     void setDuration(const int &duration);
0053 
0054 private:
0055     DialerTypes::CallData _callData;
0056     QTimer _callAttemptTimer;
0057     QTimer _callTimer;
0058 };