diff options
Diffstat (limited to 'src/imports/multimedia/qdeclarativecameracapture.cpp')
-rw-r--r-- | src/imports/multimedia/qdeclarativecameracapture.cpp | 384 |
1 files changed, 0 insertions, 384 deletions
diff --git a/src/imports/multimedia/qdeclarativecameracapture.cpp b/src/imports/multimedia/qdeclarativecameracapture.cpp deleted file mode 100644 index 96611f0ea..000000000 --- a/src/imports/multimedia/qdeclarativecameracapture.cpp +++ /dev/null @@ -1,384 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qdeclarativecamera_p.h" -#include "qdeclarativecameracapture_p.h" -#include "qdeclarativecamerapreviewprovider_p.h" - -#include <qmetadatawritercontrol.h> - -#include <QtCore/qurl.h> - -QT_BEGIN_NAMESPACE - -/*! - \qmltype CameraCapture - \instantiates QDeclarativeCameraCapture - \brief An interface for capturing camera images. - \ingroup multimedia_qml - \inqmlmodule QtMultimedia - \ingroup camera_qml - - This type allows you to capture still images and be notified when they - are available or saved to disk. You can adjust the resolution of the captured - image and where the saved image should go. - - CameraCapture is a child of a \l Camera (as the \c imageCapture property) - and cannot be created directly. - - \qml - Item { - width: 640 - height: 360 - - Camera { - id: camera - - imageCapture { - onImageCaptured: { - // Show the preview in an Image - photoPreview.source = preview - } - } - } - - VideoOutput { - source: camera - focus : visible // to receive focus and capture key events when visible - anchors.fill: parent - - MouseArea { - anchors.fill: parent; - onClicked: camera.imageCapture.capture(); - } - } - - Image { - id: photoPreview - } - } - \endqml - -*/ - -QDeclarativeCameraCapture::QDeclarativeCameraCapture(QCamera *camera, QObject *parent) : - QObject(parent), - m_camera(camera) -{ - m_capture = new QCameraImageCapture(camera, this); - - connect(m_capture, SIGNAL(readyForCaptureChanged(bool)), this, SIGNAL(readyForCaptureChanged(bool))); - connect(m_capture, SIGNAL(imageExposed(int)), this, SIGNAL(imageExposed(int))); - connect(m_capture, SIGNAL(imageCaptured(int,QImage)), this, SLOT(_q_imageCaptured(int,QImage))); - connect(m_capture, SIGNAL(imageMetadataAvailable(int,QString,QVariant)), this, - SLOT(_q_imageMetadataAvailable(int,QString,QVariant))); - connect(m_capture, SIGNAL(imageSaved(int,QString)), this, SLOT(_q_imageSaved(int,QString))); - connect(m_capture, SIGNAL(error(int,QCameraImageCapture::Error,QString)), - this, SLOT(_q_captureFailed(int,QCameraImageCapture::Error,QString))); - - connect(m_camera, SIGNAL(statusChanged(QCamera::Status)), - this, SLOT(_q_cameraStatusChanged(QCamera::Status))); - - QMediaService *service = camera->service(); - m_metadataWriterControl = service ? service->requestControl<QMetaDataWriterControl*>() : 0; -} - -QDeclarativeCameraCapture::~QDeclarativeCameraCapture() -{ -} - -/*! - \property QDeclarativeCameraCapture::ready - - This property holds a bool value indicating whether the camera - is ready to capture photos or not. - - Calling capture() while \e ready is \c false is not permitted and - results in an error. -*/ - -/*! - \qmlproperty bool QtMultimedia::CameraCapture::ready - - This property holds a bool value indicating whether the camera - is ready to capture photos or not. - - Calling capture() while \e ready is \c false is not permitted and - results in an error. -*/ -bool QDeclarativeCameraCapture::isReadyForCapture() const -{ - return m_capture->isReadyForCapture(); -} - -/*! - \qmlmethod QtMultimedia::CameraCapture::capture() - - Start image capture. The \l imageCaptured and \l imageSaved signals will - be emitted when the capture is complete. - - The image will be captured to the default system location, typically - QStandardPaths::writableLocation(QStandardPaths::PicturesLocation) for - still imaged or QStandardPaths::writableLocation(QStandardPaths::MoviesLocation) - for video. - - Camera saves all the capture parameters like exposure settings or - image processing parameters, so changes to camera parameters after - capture() is called do not affect previous capture requests. - - capture() returns the capture requestId parameter, used with - imageExposed(), imageCaptured(), imageMetadataAvailable() and imageSaved() signals. - - \sa ready -*/ -int QDeclarativeCameraCapture::capture() -{ - return m_capture->capture(); -} - -/*! - \qmlmethod QtMultimedia::CameraCapture::captureToLocation(location) - - Start image capture to specified \a location. The \l imageCaptured and \l imageSaved signals will - be emitted when the capture is complete. - - CameraCapture::captureToLocation returns the capture requestId parameter, used with - imageExposed(), imageCaptured(), imageMetadataAvailable() and imageSaved() signals. - - If the application is unable to write to the location specified by \c location - the CameraCapture will emit an error. The most likely reasons for the application - to be unable to write to a location is that the path is wrong and the location does not exists, - or the application does not have write permission for that location. -*/ -int QDeclarativeCameraCapture::captureToLocation(const QString &location) -{ - return m_capture->capture(location); -} - -/*! - \qmlmethod QtMultimedia::CameraCapture::cancelCapture() - - Cancel pending image capture requests. -*/ - -void QDeclarativeCameraCapture::cancelCapture() -{ - m_capture->cancelCapture(); -} -/*! - \property QDeclarativeCameraCapture::capturedImagePath - - This property holds the location of the last captured image. -*/ -/*! - \qmlproperty string QtMultimedia::CameraCapture::capturedImagePath - - This property holds the location of the last captured image. -*/ -QString QDeclarativeCameraCapture::capturedImagePath() const -{ - return m_capturedImagePath; -} - -void QDeclarativeCameraCapture::_q_imageCaptured(int id, const QImage &preview) -{ - QString previewId = QString("preview_%1").arg(id); - QDeclarativeCameraPreviewProvider::registerPreview(previewId, preview); - - emit imageCaptured(id, QLatin1String("image://camera/")+previewId); -} - -void QDeclarativeCameraCapture::_q_imageSaved(int id, const QString &fileName) -{ - m_capturedImagePath = fileName; - emit imageSaved(id, fileName); -} - -void QDeclarativeCameraCapture::_q_imageMetadataAvailable(int id, const QString &key, const QVariant &value) -{ - emit imageMetadataAvailable(id, key, value); -} - - -void QDeclarativeCameraCapture::_q_captureFailed(int id, QCameraImageCapture::Error error, const QString &message) -{ - Q_UNUSED(error); - qWarning() << "QCameraImageCapture error:" << message; - emit captureFailed(id, message); -} - -void QDeclarativeCameraCapture::_q_cameraStatusChanged(QCamera::Status status) -{ - if (status != QCamera::UnloadedStatus && status != QCamera::LoadedStatus && - status != QCamera::ActiveStatus) - return; - - emit supportedResolutionsChanged(); -} -/*! - \property QDeclarativeCameraCapture::resolution - - This property holds the resolution/size of the image to be captured. - If empty, the system chooses the appropriate resolution. -*/ - -/*! - \qmlproperty size QtMultimedia::CameraCapture::resolution - - This property holds the resolution/size of the image to be captured. - If empty, the system chooses the appropriate resolution. - - \sa supportedResolutions -*/ - -QSize QDeclarativeCameraCapture::resolution() -{ - return m_imageSettings.resolution(); -} - -void QDeclarativeCameraCapture::setResolution(const QSize &captureResolution) -{ - m_imageSettings = m_capture->encodingSettings(); - if (captureResolution != resolution()) { - m_imageSettings.setResolution(captureResolution); - m_capture->setEncodingSettings(m_imageSettings); - emit resolutionChanged(captureResolution); - } -} - -QCameraImageCapture::Error QDeclarativeCameraCapture::error() const -{ - return m_capture->error(); -} -/*! - \property QDeclarativeCameraCapture::errorString - - This property holds the error message related to the last capture. -*/ - -/*! - \qmlproperty string QtMultimedia::CameraCapture::errorString - - This property holds the error message related to the last capture. -*/ -QString QDeclarativeCameraCapture::errorString() const -{ - return m_capture->errorString(); -} - -/*! - \qmlproperty list<size> QtMultimedia::CameraCapture::supportedResolutions - - This property holds a list of resolutions which are supported for capturing. - The information can be used to set a valid \e resolution. If the camera isn't - loaded, the list will be empty. - - \since 5.9 - \sa resolution - */ -QVariantList QDeclarativeCameraCapture::supportedResolutions() -{ - QVariantList supportedResolutions; - for (const QSize &res : m_capture->supportedResolutions()) - supportedResolutions.append(QVariant(res)); - return supportedResolutions; -} - -/*! - \qmlmethod QtMultimedia::CameraCapture::setMetadata(key, value) - - - Sets a particular metadata \a key to \a value for the subsequent image captures. - - \sa QMediaMetaData -*/ -void QDeclarativeCameraCapture::setMetadata(const QString &key, const QVariant &value) -{ - if (m_metadataWriterControl) - m_metadataWriterControl->setMetaData(key, value); -} - -/*! - \qmlsignal QtMultimedia::CameraCapture::captureFailed(requestId, message) - - This signal is emitted when an error occurs during capture with \a requestId. - A descriptive message is available in \a message. - - The corresponding handler is \c onCaptureFailed. -*/ - -/*! - \qmlsignal QtMultimedia::CameraCapture::imageCaptured(requestId, preview) - - This signal is emitted when an image with \a requestId has been captured - but not yet saved to the filesystem. The \a preview - parameter can be used as the URL supplied to an \l Image. - - The corresponding handler is \c onImageCaptured. - - \sa imageSaved -*/ - -/*! - \qmlsignal QtMultimedia::CameraCapture::imageSaved(requestId, path) - - This signal is emitted after the image with \a requestId has been written to the filesystem. - The \a path is a local file path, not a URL. - - The corresponding handler is \c onImageSaved. - - \sa imageCaptured -*/ - - -/*! - \qmlsignal QtMultimedia::CameraCapture::imageMetadataAvailable(requestId, key, value) - - This signal is emitted when the image with \a requestId has new metadata - available with the key \a key and value \a value. - - The corresponding handler is \c onImageMetadataAvailable. - - \sa imageCaptured -*/ - - -QT_END_NAMESPACE - -#include "moc_qdeclarativecameracapture_p.cpp" |