diff options
author | Tim Blechmann <tim@klingt.org> | 2024-04-23 21:31:23 +0800 |
---|---|---|
committer | Tim Blechmann <tim@klingt.org> | 2024-04-25 18:06:09 +0800 |
commit | 5052960898bf2e0525720d70859f98a569258c45 (patch) | |
tree | 7a8db051f05da736f3ff1595bcce9c5b3e321f13 | |
parent | b3d89c64f7c77a1871e6381caae84ecfcae85565 (diff) |
GStreamer: QGstreamerImageCapture - simplify signals
Using a helper function to invoke a function via the event queue.
Pick-to: 6.5 6.7
Change-Id: I11c95e5932721cbc373e40b34596f34ef616d812
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
-rw-r--r-- | src/plugins/multimedia/gstreamer/mediacapture/qgstreamerimagecapture.cpp | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/plugins/multimedia/gstreamer/mediacapture/qgstreamerimagecapture.cpp b/src/plugins/multimedia/gstreamer/mediacapture/qgstreamerimagecapture.cpp index 3eee3c800..5244a1765 100644 --- a/src/plugins/multimedia/gstreamer/mediacapture/qgstreamerimagecapture.cpp +++ b/src/plugins/multimedia/gstreamer/mediacapture/qgstreamerimagecapture.cpp @@ -98,35 +98,35 @@ int QGstreamerImageCapture::captureToBuffer() int QGstreamerImageCapture::doCapture(const QString &fileName) { qCDebug(qLcImageCaptureGst) << "do capture"; + + // emit error in the next event loop, + // so application can associate it with returned request id. + auto invokeDeferred = [&](auto &&fn) { + QMetaObject::invokeMethod(this, std::forward<decltype(fn)>(fn), Qt::QueuedConnection); + }; + if (!m_session) { - //emit error in the next event loop, - //so application can associate it with returned request id. - QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection, - Q_ARG(int, -1), - Q_ARG(int, QImageCapture::ResourceError), - Q_ARG(QString, QPlatformImageCapture::msgImageCaptureNotSet())); + invokeDeferred([this] { + emit error(-1, QImageCapture::ResourceError, + QPlatformImageCapture::msgImageCaptureNotSet()); + }); qCDebug(qLcImageCaptureGst) << "error 1"; return -1; } if (!m_session->camera()) { - //emit error in the next event loop, - //so application can associate it with returned request id. - QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection, - Q_ARG(int, -1), - Q_ARG(int, QImageCapture::ResourceError), - Q_ARG(QString,tr("No camera available."))); + invokeDeferred([this] { + emit error(-1, QImageCapture::ResourceError, tr("No camera available.")); + }); qCDebug(qLcImageCaptureGst) << "error 2"; return -1; } if (passImage) { - //emit error in the next event loop, - //so application can associate it with returned request id. - QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection, - Q_ARG(int, -1), - Q_ARG(int, QImageCapture::NotReadyError), - Q_ARG(QString, QPlatformImageCapture::msgCameraNotReady())); + invokeDeferred([this] { + emit error(-1, QImageCapture::NotReadyError, + QPlatformImageCapture::msgCameraNotReady()); + }); qCDebug(qLcImageCaptureGst) << "error 3"; return -1; |