QXmpp Version: 1.10.3
 
Loading...
Searching...
No Matches
QXmppCall.h
1// SPDX-FileCopyrightText: 2019 Jeremy Lainé <jeremy.laine@m4x.org>
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4
5#ifndef QXMPPCALL_H
6#define QXMPPCALL_H
7
8#include "QXmppCallStream.h"
9#include "QXmppClientExtension.h"
10#include "QXmppLogger.h"
11
12#include <QMetaType>
13#include <QObject>
14
15class QHostAddress;
16class QXmppCallPrivate;
18class QXmppCallManagerPrivate;
19
20class QXMPP_EXPORT QXmppCall : public QXmppLoggable
21{
22 Q_OBJECT
24 Q_PROPERTY(Direction direction READ direction CONSTANT)
26 Q_PROPERTY(QString jid READ jid CONSTANT)
28 Q_PROPERTY(State state READ state NOTIFY stateChanged)
29
30public:
36 Q_ENUM(Direction)
37
38
45 Q_ENUM(State)
46
47 ~QXmppCall();
48
49 QXmppCall::Direction direction() const;
50 QString jid() const;
51 QString sid() const;
52 QXmppCall::State state() const;
53
54 GstElement *pipeline() const;
55 QXmppCallStream *audioStream() const;
56 QXmppCallStream *videoStream() const;
57
63 Q_SIGNAL void connected();
64
69 Q_SIGNAL void finished();
70
72 Q_SIGNAL void ringing();
73
76
78 Q_SIGNAL void streamCreated(QXmppCallStream *stream);
79
80 Q_SLOT void accept();
81 Q_SLOT void hangup();
82 Q_SLOT void addVideo();
83
84private:
85 Q_SLOT void localCandidatesChanged();
86 Q_SLOT void terminated();
87
88 QXmppCall(const QString &jid, QXmppCall::Direction direction, QXmppCallManager *parent);
89
90 const std::unique_ptr<QXmppCallPrivate> d;
91 friend class QXmppCallManager;
92 friend class QXmppCallManagerPrivate;
93 friend class QXmppCallPrivate;
94};
95
96Q_DECLARE_METATYPE(QXmppCall::State)
97
98#endif
The QXmppCallManager class provides support for making and receiving voice calls.
Definition QXmppCallManager.h:46
Definition QXmppCallStream.h:23
Definition QXmppCall.h:21
Q_SIGNAL void ringing()
This signal is emitted when the remote party is ringing.
Q_SLOT void accept()
Definition QXmppCall.cpp:574
QString jid
The remote party's JID.
Definition QXmppCall.h:26
Q_SLOT void hangup()
Definition QXmppCall.cpp:650
Direction
This enum is used to describe the direction of a call.
Definition QXmppCall.h:32
@ OutgoingDirection
The call is outgoing.
Definition QXmppCall.h:34
@ IncomingDirection
The call is incoming.
Definition QXmppCall.h:33
Q_SIGNAL void streamCreated(QXmppCallStream *stream)
This signal is emitted when a stream is created.
Q_SIGNAL void finished()
This signal is emitted when a call is finished.
State
This enum is used to describe the state of a call.
Definition QXmppCall.h:39
@ ActiveState
The call is active.
Definition QXmppCall.h:41
@ DisconnectingState
The call is being disconnected.
Definition QXmppCall.h:42
@ FinishedState
The call is finished.
Definition QXmppCall.h:43
@ ConnectingState
The call is being connected.
Definition QXmppCall.h:40
Direction direction
The call's direction.
Definition QXmppCall.h:24
Q_SIGNAL void connected()
This signal is emitted when a call is connected.
Q_SIGNAL void stateChanged(QXmppCall::State state)
This signal is emitted when the call state changes.
Q_SLOT void addVideo()
Definition QXmppCall.cpp:711
State state
The call's state.
Definition QXmppCall.h:28
QXmppLoggable(QObject *parent=nullptr)
Definition QXmppLogger.cpp:57