From 318f2a88a31c675dd7c4e2ffccbd28582bc2a0c3 Mon Sep 17 00:00:00 2001 From: Jonah BrĂ¼chert Date: Wed, 1 Apr 2020 23:55:02 +0200 Subject: QXmppCallStream: Wrap callback in std::function Allows to use non-static functions (or lambdas with captures) --- src/client/QXmppCallStream.cpp | 5 +++-- src/client/QXmppCallStream.h | 6 ++++-- src/client/QXmppCallStream_p.h | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) (limited to 'src/client') 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 + #include 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 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 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 +#include + #include 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 cb); + void setSendPadCallback(std::function 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 sendPadCB; + std::function receivePadCB; QXmppIceConnection *connection; QString media; -- cgit v1.2.3