import CameraPlus 1.0
// TODO: flash not ready (battery low or flash not ready message)
-// TODO: front camera
+// TODO: front camera night mode
CameraPage {
id: root
Component.onCompleted: {
platformSettings.init()
- // TODO: hardcoding device id
- root.resetCamera(0, settings.mode)
+ root.resetCamera(settings.device, settings.mode)
}
PlatformSettings {
Settings {
id: settings
+ onDeviceChanged: {
+ // Reset pipeline manager error
+ pipelineManager.error = false
+
+ if (root.resetCamera(settings.device, settings.mode)) {
+ pipelineManager.startCamera()
+ }
+ }
}
PipelineManager {
function resetCamera(deviceId, mode) {
if (!viewfinder.camera.reset(deviceId, mode)) {
showError(qsTr("Failed to set camera device and mode. Please restart the application."))
+ return false
}
+
+ return true
}
function showError(msg) {
camera: viewfinder.camera
function setImageResolution() {
- if (!imageSettings.setResolution(settings.imageAspectRatio, settings.imageResolution)) {
+ var aspectRatio = settings.device == 1 ? settings.secondaryImageAspectRatio : settings.primaryImageAspectRatio
+ var resolution = settings.device == 1 ? settings.secondaryImageResolution : settings.primaryImageResolution
+
+ if (!imageSettings.setResolution(aspectRatio, resolution)) {
showError(qsTr("Failed to set required resolution"))
}
}
camera: viewfinder.camera
function setVideoResolution() {
- if (!videoSettings.setResolution(settings.videoAspectRatio, settings.videoResolution)) {
+ var aspectRatio = settings.device == 1 ? settings.secondaryVideoAspectRatio : settings.primaryVideoAspectRatio
+ var resolution = settings.device == 1 ? settings.secondaryVideoResolution : settings.primaryVideoResolution
+
+ if (!videoSettings.setResolution(aspectRatio, resolution)) {
showError(qsTr("Failed to set required resolution"))
}
}
Connections {
target: settings
- onImageAspectRatioChanged: {
- imageSettings.setImageResolution()
- }
+ onPrimaryImageResolutionChanged: imageSettings.setImageResolution()
+ onPrimaryImageAspectRatioChanged: imageSettings.setImageResolution()
+ onSecondaryImageResolutionChanged: imageSettings.setImageResolution()
+ onSecondaryImageAspectRatioChanged: imageSettings.setImageResolution()
- onImageResolutionChanged: {
- imageSettings.setImageResolution()
- }
-
- onVideoResolutionChanged: {
- videoSettings.setVideoResolution()
- }
+ onPrimaryVideoResolutionChanged: videoSettings.setVideoResolution()
+ onPrimaryVideoAspectRatioChanged: videoSettings.setVideoResolution()
+ onSecondaryVideoResolutionChanged: videoSettings.setVideoResolution()
+ onSecondaryVideoAspectRatioChanged: videoSettings.setVideoResolution()
}
ModeController {