summaryrefslogtreecommitdiffstats
path: root/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp')
-rw-r--r--plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp b/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
index 56b9e84bc5..8c5a31b627 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()),
@@ -121,6 +123,7 @@ void CameraBinControl::setCaptureMode(QCamera::CaptureMode mode)
CamerabinResourcePolicy::ImageCaptureResources :
CamerabinResourcePolicy::VideoCaptureResources);
}
+ emit captureModeChanged(mode);
}
}
@@ -293,6 +296,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