If a page doesn't need the pipeline then it should set the policyMode to CameraResources.None
Page {
id: page
- property bool needsPipeline: true
property int policyMode: CameraResources.None
property Camera cam: null
import QtCamera 1.0
import CameraPlus 1.0
-// TODO: if a page doesn't need the pipeline then we will release its resources :(
-
Item {
id: handler
states: [
State {
name: "on"
- when: Qt.application.active && currentPage && currentPage.needsPipeline && !policy.hijacked
+ when: Qt.application.active && currentPage && currentPage.policyMode != CameraResources.None && !policy.hijacked
},
State {
name: "off"
- when: (!Qt.application.active && camera.idle) || (currentPage && !currentPage.needsPipeline && camera.idle)
+ when: (!Qt.application.active && camera.idle) || (currentPage && currentPage.policyMode == CameraResources.None && camera.idle)
},
State {
name: "policyLost"
import QtCamera 1.0
import CameraPlus 1.0
-// TODO: losing resources while playback won't show an error
-
CameraPage {
id: page
controlsVisible: false
- policyMode: CameraResources.PostCapture
- needsPipeline: false
+ policyMode: CameraResources.None
standbyVisible: !Qt.application.active
property Item currentItem: null
property bool popTwice: false
controlsVisible: false
- policyMode: CameraResources.PostCapture
- needsPipeline: false
+ policyMode: CameraResources.None
standbyVisible: false
property alias source: video.source
<< ResourcePolicy::AudioPlaybackType);
break;
- case CameraResources::PostCapture:
- *ok = release();
- break;
-
default:
qWarning() << "Unknown mode" << mode;
Image,
Video,
Recording,
- PostCapture,
} Mode;
CameraResources(QObject *parent = 0);