diff options
author | Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com> | 2011-09-06 15:40:50 +1000 |
---|---|---|
committer | Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com> | 2011-10-03 11:22:26 +1000 |
commit | 76e3fb9c7c73d30306cdd3584b31b8f6dc52ba5a (patch) | |
tree | d923edbea229dafc40d7a877e46d3a5995af2519 /plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp | |
parent | 361ff64748b37191c61992508fce503eb4ebe75f (diff) |
Camerabin backend: don't request audio resources unless recording video
To allow alarms while camera is running.
Task-number: PMO 279633
Reviewed-by: Michael Goddard
Change-Id: I4760dc9bc05e903da5b9bbe5b449c02929b64426
Diffstat (limited to 'plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp')
-rw-r--r-- | plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp b/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp index d31ea5541f..8038d94c2e 100644 --- a/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp +++ b/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp @@ -46,6 +46,7 @@ #include "camerabinvideoencoder.h" #include "camerabinimageencoder.h" #include "camerabinresourcepolicy.h" +#include "camerabinrecorder.h" #include <QtCore/qdebug.h> #include <QtCore/qfile.h> @@ -92,6 +93,8 @@ CameraBinControl::CameraBinControl(CameraBinSession *session) SLOT(reloadLater())); connect(m_session, SIGNAL(error(int,QString)), SLOT(handleCameraError(int,QString))); + connect(m_session->recorderControl(), SIGNAL(stateChanged(QMediaRecorder::State)), + SLOT(updateRecorderResources(QMediaRecorder::State))); m_resourcePolicy = new CamerabinResourcePolicy(this); connect(m_resourcePolicy, SIGNAL(resourcesGranted()), @@ -357,3 +360,22 @@ void CameraBinControl::setViewfinderColorSpaceConversion(bool enabled) g_object_set(G_OBJECT(m_session->cameraBin()), "flags", flags, NULL); } + +void CameraBinControl::updateRecorderResources(QMediaRecorder::State recorderState) +{ + if (m_state == QCamera::ActiveState) { + CamerabinResourcePolicy::ResourceSet resourceSet; + + if (recorderState == QMediaRecorder::RecordingState) { + resourceSet = CamerabinResourcePolicy::VideoRecordingResources; + } else { + if (captureMode() == QCamera::CaptureStillImage) + resourceSet = CamerabinResourcePolicy::ImageCaptureResources; + else + resourceSet = CamerabinResourcePolicy::VideoCaptureResources; + } + + if (m_resourcePolicy->resourceSet() != resourceSet) + m_resourcePolicy->setResourceSet(resourceSet); + } +} |