summaryrefslogtreecommitdiffstats
path: root/doc/src/snippets/multimedia-snippets/camera.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/snippets/multimedia-snippets/camera.cpp')
-rw-r--r--doc/src/snippets/multimedia-snippets/camera.cpp93
1 files changed, 83 insertions, 10 deletions
diff --git a/doc/src/snippets/multimedia-snippets/camera.cpp b/doc/src/snippets/multimedia-snippets/camera.cpp
index ab91423a0..a42ae622d 100644
--- a/doc/src/snippets/multimedia-snippets/camera.cpp
+++ b/doc/src/snippets/multimedia-snippets/camera.cpp
@@ -46,14 +46,92 @@
#include "qmediarecorder.h"
#include "qcameraimagecapture.h"
#include "qcameraimageprocessing.h"
+#include "qabstractvideosurface.h"
-void camera()
+/* Globals so that everything is consistent. */
+QCamera *camera = 0;
+QCameraViewfinder *viewfinder = 0;
+QMediaRecorder *recorder = 0;
+QCameraImageCapture *imageCapture = 0;
+
+void overview_viewfinder()
+{
+ //! [Camera overview viewfinder]
+ camera = new QCamera;
+ viewfinder = new QCameraViewfinder;
+ camera->setViewfinder(viewfinder);
+ viewfinder->show();
+
+ camera->start(); // to start the viewfinder
+ //! [Camera overview viewfinder]
+}
+
+// -.-
+class MyVideoSurface : public QAbstractVideoSurface
{
- QCamera *camera = 0;
- QCameraViewfinder *viewfinder = 0;
- QMediaRecorder *recorder = 0;
- QCameraImageCapture *imageCapture = 0;
+ QList<QVideoFrame::PixelFormat> supportedPixelFormats(QAbstractVideoBuffer::HandleType handleType) const
+ {
+ Q_UNUSED(handleType);
+ return QList<QVideoFrame::PixelFormat>();
+ }
+ bool present(const QVideoFrame &frame)
+ {
+ Q_UNUSED(frame);
+ return true;
+ }
+};
+void overview_surface()
+{
+ MyVideoSurface *mySurface;
+ //! [Camera overview surface]
+ camera = new QCamera;
+ mySurface = new MyVideoSurface;
+ camera->setViewfinder(mySurface);
+
+ camera->start();
+ // MyVideoSurface::present(..) will be called with viewfinder frames
+ //! [Camera overview surface]
+}
+
+void overview_still()
+{
+ //! [Camera overview capture]
+ imageCapture = new QCameraImageCapture(camera);
+
+ camera->setCaptureMode(QCamera::CaptureStillImage);
+ camera->start(); // Viewfinder frames start flowing
+
+ //on half pressed shutter button
+ camera->searchAndLock();
+
+ //on shutter button pressed
+ imageCapture->capture();
+
+ //on shutter button released
+ camera->unlock();
+ //! [Camera overview surface]
+}
+
+void overview_movie()
+{
+ //! [Camera overview movie]
+ camera = new QCamera;
+ recorder = new QMediaRecorder(camera);
+
+ camera->setCaptureMode(QCamera::CaptureVideo);
+ camera->start();
+
+ //on shutter button pressed
+ recorder->record();
+
+ // sometime later, or on another press
+ recorder->stop();
+ //! [Camera overview movie]
+}
+
+void camera_blah()
+{
//! [Camera]
camera = new QCamera;
@@ -62,7 +140,6 @@ void camera()
camera->setViewfinder(viewfinder);
- recorder = new QMediaRecorder(camera);
imageCapture = new QCameraImageCapture(camera);
camera->setCaptureMode(QCamera::CaptureStillImage);
@@ -83,8 +160,6 @@ void camera()
void cameraimageprocessing()
{
- QCamera *camera = 0;
-
//! [Camera image whitebalance]
camera = new QCamera;
QCameraImageProcessing *imageProcessing = camera->imageProcessing();
@@ -103,8 +178,6 @@ void cameraimageprocessing()
void camerafocus()
{
- QCamera *camera = 0;
-
//! [Camera custom zoom]
QCameraFocus *focus = camera->focus();
focus->setFocusPointMode(QCameraFocus::FocusPointCustom);