summaryrefslogtreecommitdiffstats
path: root/examples/multimedia/camera/doc/src/camera.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'examples/multimedia/camera/doc/src/camera.qdoc')
-rw-r--r--examples/multimedia/camera/doc/src/camera.qdoc92
1 files changed, 92 insertions, 0 deletions
diff --git a/examples/multimedia/camera/doc/src/camera.qdoc b/examples/multimedia/camera/doc/src/camera.qdoc
new file mode 100644
index 000000000..ae6877129
--- /dev/null
+++ b/examples/multimedia/camera/doc/src/camera.qdoc
@@ -0,0 +1,92 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
+/*!
+
+\example camera
+\title Camera Example
+\ingroup multimedia_examples
+\ingroup video_examples
+\ingroup camera_examples
+\examplecategory {Multimedia}
+\meta {tag} {widgets}
+\brief Shows how to capture a still image or record video.
+
+\image camera-example.png
+
+The Camera Example demonstrates how you can use \l{Qt Multimedia} to implement
+some basic Camera functionality to take still images and record video clips
+with audio.
+
+\include examples-run.qdocinc
+
+The example implements a \c Camera class that acts as our camera interface. It
+has a user interface, control functions, setting values and a means of defining
+the location where the image or video clip is to be saved. It will also store
+the image and video settings.
+
+The Camera class uses:
+\list
+ \li An instance of \l {QCamera}, the API class interface to the hardware.
+ \li An instance of \l {QImageCapture} to take still images.
+ \li An instance of \l {QMediaRecorder} to record video. It also contains
+ the user interface object.
+\endlist
+
+\section1 The Camera constructor
+
+The Camera constructor does some basic initialization of the user interface
+including disabling all buttons by default.
+
+\quotefromfile camera/camera.cpp
+\skipto Camera::Camera()
+\printuntil ui->metaDataButton->setEnabled(false);
+
+It seeks permissions for input device access:
+
+\skipto #if QT_CONFIG(permissions)
+\printuntil #endif
+
+Inputs are assigned:
+\printuntil updateCameras()
+
+ UI signals are connected to slots that react to the triggering event:
+\printuntil setCamera(QMediaDevices::defaultVideoInput());
+
+However, most of the work is done when the \e{setCamera()} function is called,
+passing in a \l QCameraDevice.
+
+\section1 setCamera()
+
+\c{setCamera()} sets up various connections between the user interface and the
+functionality of the Camera class using signals and slots. It also instantiates
+and initializes the \l {QCamera}, \l {QImageCapture}, and \l {QMediaRecorder}
+objects.
+
+\skipto void Camera::setCamera(const QCameraDevice &cameraDevice)
+\printto m_captureSession.setVideoOutput(ui->viewfinder);
+
+The still and video recording visual tabs are enabled:
+
+\printuntil updateCaptureMode();
+
+Finally the \l {QCamera::start}{start()} function of the \l{QCamera}
+object is called.
+
+\printuntil m_camera->start();
+
+\section1 Triggering capturing
+
+Now that the camera is ready for user commands it waits for a suitable event.
+Such an event can be a key press of either the \l {Qt::Key_CameraFocus} or
+\l {Qt::Key_Camera} buttons on the application window.
+
+Key_CameraFocus will simply display the preview and lock the camera settings.
+\printto case Qt::Key_Camera:
+
+\c Key_Camera will either call \e{takeImage()} if doing an image capture, or call
+\c record() or \c stop() (if already recording) on the QMediaRecorder instance
+when recording video.
+
+\printuntil break;
+
+*/