aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorJonah BrĂ¼chert <jbb.prv@gmx.de>2020-04-01 23:55:02 +0200
committerLNJ <lnj@kaidan.im>2020-04-02 14:32:10 +0200
commit318f2a88a31c675dd7c4e2ffccbd28582bc2a0c3 (patch)
tree7612fa9cea75267f65394e607fd3db940b78d936 /src/client
parent5a0647432b2510a864115b5cd3d3e6971fc49453 (diff)
downloadqxmpp-318f2a88a31c675dd7c4e2ffccbd28582bc2a0c3.tar.gz
QXmppCallStream: Wrap callback in std::function
Allows to use non-static functions (or lambdas with captures)
Diffstat (limited to 'src/client')
-rw-r--r--src/client/QXmppCallStream.cpp5
-rw-r--r--src/client/QXmppCallStream.h6
-rw-r--r--src/client/QXmppCallStream_p.h4
3 files changed, 9 insertions, 6 deletions
diff --git a/src/client/QXmppCallStream.cpp b/src/client/QXmppCallStream.cpp
index 4a8f55a2..386906b8 100644
--- a/src/client/QXmppCallStream.cpp
+++ b/src/client/QXmppCallStream.cpp
@@ -28,6 +28,7 @@
#include "QXmppStun.h"
#include <cstring>
+
#include <gst/gst.h>
QXmppCallStreamPrivate::QXmppCallStreamPrivate(QXmppCallStream *parent, GstElement *pipeline_,
@@ -344,7 +345,7 @@ int QXmppCallStream::id() const
return d->id;
}
-void QXmppCallStream::setReceivePadCallback(void (*cb)(GstPad *))
+void QXmppCallStream::setReceivePadCallback(std::function<void(GstPad *)> cb)
{
d->receivePadCB = cb;
if (d->receivePad) {
@@ -352,7 +353,7 @@ void QXmppCallStream::setReceivePadCallback(void (*cb)(GstPad *))
}
}
-void QXmppCallStream::setSendPadCallback(void (*cb)(GstPad *))
+void QXmppCallStream::setSendPadCallback(std::function<void(GstPad *)> cb)
{
d->sendPadCB = cb;
if (d->sendPad) {
diff --git a/src/client/QXmppCallStream.h b/src/client/QXmppCallStream.h
index a9103384..71b27b84 100644
--- a/src/client/QXmppCallStream.h
+++ b/src/client/QXmppCallStream.h
@@ -28,6 +28,8 @@
#include <gst/gst.h>
+#include <functional>
+
#include <QObject>
class QXmppCallStreamPrivate;
@@ -50,8 +52,8 @@ public:
QString media() const;
QString name() const;
int id() const;
- void setReceivePadCallback(void (*cb)(GstPad *));
- void setSendPadCallback(void (*cb)(GstPad *));
+ void setReceivePadCallback(std::function<void(GstPad *)> cb);
+ void setSendPadCallback(std::function<void(GstPad *)> cb);
private:
QXmppCallStream(GstElement *pipeline, GstElement *rtpbin,
diff --git a/src/client/QXmppCallStream_p.h b/src/client/QXmppCallStream_p.h
index 568460da..9b58970d 100644
--- a/src/client/QXmppCallStream_p.h
+++ b/src/client/QXmppCallStream_p.h
@@ -88,8 +88,8 @@ public:
GstElement *apprtpsink;
GstElement *apprtcpsink;
- void (*sendPadCB)(GstPad *);
- void (*receivePadCB)(GstPad *);
+ std::function<void(GstPad *)> sendPadCB;
+ std::function<void(GstPad *)> receivePadCB;
QXmppIceConnection *connection;
QString media;