aboutsummaryrefslogtreecommitdiff
path: root/src/QXmppCallManager.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2011-06-05 12:36:55 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2011-06-05 12:36:55 +0000
commitae2decb4e461d01759f0709552ba37c61f75822f (patch)
treed5331babdc9d4d4eacd59733fc5a29317174705d /src/QXmppCallManager.cpp
parentb6f639c39e33743b71561113fa006dae1738a674 (diff)
downloadqxmpp-ae2decb4e461d01759f0709552ba37c61f75822f.tar.gz
improve QXmppCallManager scripting support
Diffstat (limited to 'src/QXmppCallManager.cpp')
-rw-r--r--src/QXmppCallManager.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/QXmppCallManager.cpp b/src/QXmppCallManager.cpp
index 87d77fd6..30a7d209 100644
--- a/src/QXmppCallManager.cpp
+++ b/src/QXmppCallManager.cpp
@@ -504,6 +504,9 @@ void QXmppCall::accept()
d->sendRequest(iq);
+ // notify user
+ d->manager->callStarted(this);
+
// check for call establishment
d->setState(QXmppCall::ActiveState);
}
@@ -524,6 +527,13 @@ QXmppRtpAudioChannel *QXmppCall::audioChannel() const
return 0;
}
+/// Returns the audio mode.
+
+QIODevice::OpenMode QXmppCall::audioMode() const
+{
+ return d->audioMode;
+}
+
/// Returns the RTP channel for the video data.
///
@@ -536,6 +546,13 @@ QXmppRtpVideoChannel *QXmppCall::videoChannel() const
return 0;
}
+/// Returns the video mode.
+
+QIODevice::OpenMode QXmppCall::videoMode() const
+{
+ return d->videoMode;
+}
+
void QXmppCall::terminated()
{
// close streams
@@ -653,6 +670,8 @@ QXmppCall::State QXmppCall::state() const
return d->state;
}
+/// Starts sending video to the remote party.
+
void QXmppCall::startVideo()
{
if (d->state != QXmppCall::ActiveState) {
@@ -697,6 +716,19 @@ void QXmppCall::startVideo()
d->sendRequest(iq);
}
+/// Stops sending video to the remote party.
+
+void QXmppCall::stopVideo()
+{
+ if (!d->sendVideo)
+ return;
+
+ d->sendVideo = false;
+ QXmppCallPrivate::Stream *stream = d->findStreamByMedia(VIDEO_MEDIA);
+ if (stream)
+ updateOpenMode();
+}
+
QXmppCallManagerPrivate::QXmppCallManagerPrivate(QXmppCallManager *qq)
: stunPort(0),
turnPort(0),
@@ -791,8 +823,10 @@ QXmppCall *QXmppCallManager::call(const QString &jid)
d->calls << call;
connect(call, SIGNAL(destroyed(QObject*)),
this, SLOT(callDestroyed(QObject*)));
+ emit callStarted(call);
call->d->sendInvite();
+
return call;
}