summaryrefslogtreecommitdiffstats
path: root/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
diff options
context:
space:
mode:
authorDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2010-08-23 15:22:51 +1000
committerDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2010-08-23 15:22:51 +1000
commitbbca74ca26c8fe006b8ea7a8d98fed37568dc62d (patch)
treeedeb1b568a237b275bc1d5d5243035abb5b12dbd /plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
parent2a8e31d990ff301e93b14e092a3f3a08489d3d32 (diff)
CameraBin: camera status is changed to Loaded right after capture
settings are changed. The status is changed to Stating in the next event loop to allow sequential changes of viewfinder or capture settings.
Diffstat (limited to 'plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp')
-rw-r--r--plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp b/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
index 820f223d6a..c2fe4af539 100644
--- a/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
+++ b/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
@@ -60,7 +60,7 @@
#include <sys/mman.h>
#include <linux/videodev2.h>
-//#define CAMEABIN_DEBUG
+#define CAMEABIN_DEBUG
CameraBinControl::CameraBinControl(CameraBinSession *session)
:QCameraControl(session),
@@ -150,7 +150,6 @@ void CameraBinControl::updateStatus()
#endif
emit statusChanged(m_status);
}
-
}
void CameraBinControl::reloadLater()
@@ -160,19 +159,19 @@ void CameraBinControl::reloadLater()
#endif
if (!m_reloadPending && m_state == QCamera::ActiveState) {
m_reloadPending = true;
- QMetaObject::invokeMethod(this, "reloadPipeline", Qt::QueuedConnection);
+ m_session->setState(QCamera::LoadedState);
+ QMetaObject::invokeMethod(this, "delayedReload", Qt::QueuedConnection);
}
}
-void CameraBinControl::reloadPipeline()
+void CameraBinControl::delayedReload()
{
#ifdef CAMEABIN_DEBUG
qDebug() << "reload pipeline";
#endif
if (m_reloadPending) {
m_reloadPending = false;
- if (m_state == QCamera::ActiveState) {
- m_session->setState(QCamera::LoadedState);
+ if (m_state == QCamera::ActiveState) {
m_session->setState(QCamera::ActiveState);
}
}