aboutsummaryrefslogtreecommitdiff
path: root/src/QXmppCallManager.h
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-11-16 00:54:25 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-11-16 00:54:25 +0000
commit60d3621c99bd75b2a154785bf006709522dabf46 (patch)
treed6392b29d81794a7001676ec3659d8e3c01ea66e /src/QXmppCallManager.h
parent60cf7a1a4ffcbeae0ae7a8dcacfb1f840e316279 (diff)
downloadqxmpp-60d3621c99bd75b2a154785bf006709522dabf46.tar.gz
make QXmppCallManager use QXmppRtpChannel
Diffstat (limited to 'src/QXmppCallManager.h')
-rw-r--r--src/QXmppCallManager.h67
1 files changed, 10 insertions, 57 deletions
diff --git a/src/QXmppCallManager.h b/src/QXmppCallManager.h
index aacf9464..29da58dd 100644
--- a/src/QXmppCallManager.h
+++ b/src/QXmppCallManager.h
@@ -29,23 +29,23 @@
#include <QMetaType>
#include "QXmppClientExtension.h"
-#include "QXmppJingleIq.h"
#include "QXmppLogger.h"
-class QXmppCodec;
-class QXmppIceConnection;
+class QXmppCallPrivate;
+class QXmppIq;
class QXmppJingleCandidate;
class QXmppJingleIq;
class QXmppJinglePayloadType;
+class QXmppRtpChannel;
/// \brief The QXmppCall class represents a Voice-Over-IP call to a remote party.
///
-/// It acts as a QIODevice so that you can read / write audio samples, for
-/// instance using a QAudioOutput and a QAudioInput.
+/// To get the QIODevice from which you can read / write audio samples, call
+/// audioChannel().
///
/// \note THIS API IS NOT FINALIZED YET
-class QXmppCall : public QIODevice
+class QXmppCall : public QXmppLoggable
{
Q_OBJECT
@@ -67,17 +67,14 @@ public:
FinishedState = 4, ///< The call is finished.
};
+ ~QXmppCall();
+
QXmppCall::Direction direction() const;
QString jid() const;
QString sid() const;
QXmppCall::State state() const;
- QXmppJinglePayloadType payloadType() const;
-
- /// \cond
- qint64 bytesAvailable() const;
- bool isSequential() const;
- /// \endcond
+ QXmppRtpChannel *audioChannel() const;
signals:
/// This signal is emitted when a call is connected.
@@ -99,9 +96,6 @@ signals:
/// This signal is emitted when the remote party is ringing.
void ringing();
- /// This signal is emitted to send logging messages.
- void logMessage(QXmppLogger::MessageType type, const QString &msg);
-
/// This signal is emitted when the call state changes.
void stateChanged(QXmppCall::State state);
@@ -111,57 +105,17 @@ public slots:
private slots:
void datagramReceived(int component, const QByteArray &datagram);
- void emitSignals();
void updateOpenMode();
void terminate();
void terminated();
-protected:
- /// \cond
- qint64 readData(char * data, qint64 maxSize);
- qint64 writeData(const char * data, qint64 maxSize);
- /// \endcond
-
private:
QXmppCall(const QString &jid, QXmppCall::Direction direction, QObject *parent);
void setPayloadType(const QXmppJinglePayloadType &type);
void addRemoteCandidates(const QList<QXmppJingleCandidate> &candidates);
void setState(QXmppCall::State state);
- Direction m_direction;
- QString m_jid;
- QString m_sid;
- State m_state;
- QString m_contentCreator;
- QString m_contentName;
- QXmppJinglePayloadType m_payloadType;
-
- QList<QXmppJingleIq> m_requests;
- QList<QXmppJinglePayloadType> m_commonPayloadTypes;
-
- // ICE-UDP
- QXmppIceConnection *m_connection;
-
- // signals
- bool m_signalsEmitted;
- qint64 m_writtenSinceLastEmit;
-
- // RTP
- QXmppCodec *m_codec;
-
- QByteArray m_incomingBuffer;
- bool m_incomingBuffering;
- int m_incomingMinimum;
- int m_incomingMaximum;
- quint16 m_incomingSequence;
- quint32 m_incomingStamp;
-
- quint16 m_outgoingChunk;
- QByteArray m_outgoingBuffer;
- bool m_outgoingMarker;
- quint16 m_outgoingSequence;
- quint32 m_outgoingStamp;
-
+ QXmppCallPrivate * const d;
friend class QXmppCallManager;
};
@@ -209,7 +163,6 @@ private:
bool checkPayloadTypes(QXmppCall *call, const QList<QXmppJinglePayloadType> &remotePayloadTypes);
QXmppCall *findCall(const QString &sid) const;
QXmppCall *findCall(const QString &sid, QXmppCall::Direction direction) const;
- QList<QXmppJinglePayloadType> localPayloadTypes() const;
bool sendAck(const QXmppJingleIq &iq);
bool sendRequest(QXmppCall *call, const QXmppJingleIq &iq);