summaryrefslogtreecommitdiffstats
path: root/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
diff options
context:
space:
mode:
authorDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2011-04-13 13:06:11 +1000
committerDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2011-04-13 13:06:11 +1000
commitd4487fac45f50228a268af526cb6ff7c5b932ea2 (patch)
tree1d583e6518592877fdbe68f587e6345cf85cabd3 /plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
parent916372481a047b23f912c11ec183d2bbf23bf849 (diff)
Camerabin: unload camera after errors
Camerabin doesn't work correctly after errors. Task-number: MOBILITY-2327 Reviewed-by: Jonas Rabbe
Diffstat (limited to 'plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp')
-rw-r--r--plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp b/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
index 56b9e84bc5..4a6bc3d381 100644
--- a/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
+++ b/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
@@ -87,6 +87,8 @@ CameraBinControl::CameraBinControl(CameraBinSession *session)
SLOT(reloadLater()));
connect(m_session, SIGNAL(readyChanged(bool)),
SLOT(reloadLater()));
+ connect(m_session, SIGNAL(error(int,QString)),
+ SLOT(handleCameraError(int,QString)));
m_resourcePolicy = new CamerabinResourcePolicy(this);
connect(m_resourcePolicy, SIGNAL(resourcesGranted()),
@@ -293,6 +295,12 @@ void CameraBinControl::handleBusyChanged(bool busy)
}
}
+void CameraBinControl::handleCameraError(int errorCode, const QString &errorString)
+{
+ emit error(errorCode, errorString);
+ setState(QCamera::UnloadedState);
+}
+
void CameraBinControl::delayedReload()
{
#ifdef CAMEABIN_DEBUG