FlightDisplayViewUVC.qml 1.64 KB
Newer Older
1 2
/****************************************************************************
 *
Gus Grubba's avatar
Gus Grubba committed
3
 * (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
4 5 6 7 8 9
 *
 * QGroundControl is licensed according to the terms in the file
 * COPYING.md in the root of the source code directory.
 *
 ****************************************************************************/

10 11
import QtQuick                  2.3
import QtMultimedia             5.5
12 13 14 15

import QGroundControl           1.0

Rectangle {
Gus Grubba's avatar
Gus Grubba committed
16 17 18
    id:                 _root
    width:              parent.width
    height:             parent.height
19
    color:              Qt.rgba(0,0,0,0.75)
20 21
    clip:               true
    anchors.centerIn:   parent
Gus Grubba's avatar
Gus Grubba committed
22 23 24 25 26 27 28 29 30 31 32

    function adjustAspectRatio()
    {
        //-- Set aspect ratio
        var size = camera.viewfinder.resolution
        if(size.height > 0 && size.width > 0) {
            var ar = size.width / size.height
            _root.height = parent.height * ar
        }
    }

33 34 35 36
    Camera {
        id:             camera
        deviceId:       QGroundControl.videoManager.videoSourceID
        captureMode:    Camera.CaptureViewfinder
Gus Grubba's avatar
Gus Grubba committed
37 38 39 40 41 42 43 44
        onDeviceIdChanged: {
            adjustAspectRatio()
        }
        onCameraStateChanged: {
            if(camera.cameraStatus === Camera.ActiveStatus) {
                adjustAspectRatio()
            }
        }
45 46 47 48 49 50 51 52 53 54 55 56 57 58
    }
    VideoOutput {
        source:         camera
        anchors.fill:   parent
        fillMode:       VideoOutput.PreserveAspectCrop
        visible:        !QGroundControl.videoManager.isGStreamer
    }
    onVisibleChanged: {
        if(visible)
            camera.start()
        else
            camera.stop()
    }
}