summaryrefslogtreecommitdiffstats
path: root/examples/camera/camera.cpp
diff options
context:
space:
mode:
authorDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2010-08-04 13:30:46 +1000
committerDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2010-08-04 13:37:39 +1000
commite01996a8b4a5dfb9f8d3a6c39e475eb32c2f105c (patch)
tree98e98980d1eb8eed5a07b2f13715432d62267cd2 /examples/camera/camera.cpp
parent41161a4dade49d2816368252a4482b8cad158692 (diff)
Separated QCamera::state to QCamera::state and QCamera::status.
QCamera::state changes are synchronous and reflect user input/intention while QCamera::status is asynchronous and used to notify application about internal state of backend.
Diffstat (limited to 'examples/camera/camera.cpp')
-rw-r--r--examples/camera/camera.cpp36
1 files changed, 7 insertions, 29 deletions
diff --git a/examples/camera/camera.cpp b/examples/camera/camera.cpp
index 412ee6eb19..540d64e5e4 100644
--- a/examples/camera/camera.cpp
+++ b/examples/camera/camera.cpp
@@ -132,6 +132,7 @@ void Camera::setCamera(const QByteArray &cameraDevice)
this, SLOT(updateLockStatus(QCamera::LockStatus, QCamera::LockChangeReason)));
updateCaptureMode();
+ camera->start();
}
void Camera::updateRecordTime()
@@ -177,12 +178,7 @@ void Camera::configureVideoSettings()
videoSettings = settingsDialog.videoSettings();
videoContainerFormat = settingsDialog.format();
- //apply video settings immediately if camera is in the Idle state,
- //otherwise request state change to Idle with setCaptureMode
- if (camera->state() != QCamera::IdleState)
- camera->setCaptureMode(QCamera::CaptureVideo);
- else
- mediaRecorder->setEncodingSettings(
+ mediaRecorder->setEncodingSettings(
audioSettings,
videoSettings,
videoContainerFormat);
@@ -197,13 +193,7 @@ void Camera::configureImageSettings()
if (settingsDialog.exec()) {
imageSettings = settingsDialog.imageSettings();
-
- //apply image settings immediately if camera is in the Idle state,
- //otherwise request state change to Idle with setCaptureMode
- if (camera->state() != QCamera::IdleState)
- camera->setCaptureMode(QCamera::CaptureStillImage);
- else
- imageCapture->setEncodingSettings(imageSettings);
+ imageCapture->setEncodingSettings(imageSettings);
}
}
@@ -270,8 +260,7 @@ void Camera::takeImage()
void Camera::startCamera()
{
- //start still image or video capture
- updateCaptureMode();
+ camera->start();
}
void Camera::stopCamera()
@@ -288,26 +277,15 @@ void Camera::updateCaptureMode()
void Camera::updateCameraState(QCamera::State state)
{
- switch (state) {
- case QCamera::IdleState:
- if (camera->captureMode() == QCamera::CaptureVideo) {
- mediaRecorder->setEncodingSettings(
- audioSettings,
- videoSettings,
- videoContainerFormat);
- } else if (camera->captureMode() == QCamera::CaptureStillImage) {
- imageCapture->setEncodingSettings(imageSettings);
- }
-
- camera->start();
- //fall
+ switch (state) {
case QCamera::ActiveState:
ui->actionStartCamera->setEnabled(false);
ui->actionStopCamera->setEnabled(true);
ui->captureWidget->setEnabled(true);
ui->actionSettings->setEnabled(true);
break;
- case QCamera::StoppedState:
+ case QCamera::UnloadedState:
+ case QCamera::LoadedState:
ui->actionStartCamera->setEnabled(true);
ui->actionStopCamera->setEnabled(false);
ui->captureWidget->setEnabled(false);