summaryrefslogtreecommitdiffstats
path: root/src/plugins/directshow/camera/dsvideowidgetcontrol.h
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@digia.com>2014-04-07 14:24:51 +0200
committerYoann Lopes <yoann.lopes@digia.com>2014-07-11 18:47:12 +0200
commit389d66b3ed5e2d798e9fb124064523239c393ad8 (patch)
treee297dd513433e1f2c117083af1d0b46cb625865d /src/plugins/directshow/camera/dsvideowidgetcontrol.h
parentf352e44df9907bbefe4c962a06c7a7c87516dd90 (diff)
DirectShow: Refactor camera backend.
Almost entire rewrite of the camera backend. It doesn't provide new features but is more stable and behave as it should. - Correctly report camera state and status - Correctly report if the camera is ready to capture - Emit imageExposed() signal - Save captured images in an appropriate directory - Images can be captured even without a viewport - Better error handling Removed the custom QVideoWidgetControl as it doesn't provide anything more than the QVideoWidget's renderer control fallback. Task-number: QTBUG-33782 Change-Id: I9baf6f83e7c69619f20a101921f7865a1c90d5e4 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Diffstat (limited to 'src/plugins/directshow/camera/dsvideowidgetcontrol.h')
-rw-r--r--src/plugins/directshow/camera/dsvideowidgetcontrol.h150
1 files changed, 0 insertions, 150 deletions
diff --git a/src/plugins/directshow/camera/dsvideowidgetcontrol.h b/src/plugins/directshow/camera/dsvideowidgetcontrol.h
deleted file mode 100644
index 2a8775aee..000000000
--- a/src/plugins/directshow/camera/dsvideowidgetcontrol.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part 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 Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef DSVIDEOWIDGETCONTROL_H
-#define DSVIDEOWIDGETCONTROL_H
-
-#include <QtCore/qobject.h>
-#include <QtWidgets>
-#include <QtMultimedia/qvideoframe.h>
-#include <QtMultimedia/qabstractvideosurface.h>
-#include <QtMultimedia/qvideosurfaceformat.h>
-
-#include <qvideowidgetcontrol.h>
-#include "dscameracontrol.h"
-
-QT_BEGIN_NAMESPACE
-
-class DSVideoWidgetSurface : public QAbstractVideoSurface
-{
- Q_OBJECT
- public:
- DSVideoWidgetSurface(QLabel *pWidget, QObject *parent = 0);
-
- QList<QVideoFrame::PixelFormat> supportedPixelFormats(
- QAbstractVideoBuffer::HandleType handleType = QAbstractVideoBuffer::NoHandle) const;
-
- bool present(const QVideoFrame &frame);
-
- QRect videoRect() const { return targetRect; }
- void updateVideoRect();
-
- void paint(QPainter *painter);
- void setImageFormat(QImage::Format fmt);
-
- private:
- QLabel *widget;
- QImage::Format imageFormat;
- QRect targetRect;
- QSize imageSize;
- QRect sourceRect;
- QPixmap* myPixmap;
- };
-
-class DSVideoWidgetControl : public QVideoWidgetControl
-{
- Q_OBJECT
-
- DSVideoWidgetSurface* surface;
-public: // Constructor & Destructor
-
- DSVideoWidgetControl(DSCameraSession* session, QObject *parent = 0);
- virtual ~DSVideoWidgetControl();
-
-public: // QVideoWidgetControl
-
- QWidget *videoWidget();
-
- // Aspect Ratio
- Qt::AspectRatioMode aspectRatioMode() const;
- void setAspectRatioMode(Qt::AspectRatioMode ratio);
-
- // Full Screen
- bool isFullScreen() const;
- void setFullScreen(bool fullScreen);
-
- // Brightness
- int brightness() const;
- void setBrightness(int brightness);
-
- // Contrast
- int contrast() const;
- void setContrast(int contrast);
-
- // Hue
- int hue() const;
- void setHue(int hue);
-
- // Saturation
- int saturation() const;
- void setSaturation(int saturation);
-
-public: // Internal
-
- bool eventFilter(QObject *object, QEvent *event);
-
-/*
-Q_SIGNALS: // QVideoWidgetControl
-
- void fullScreenChanged(bool fullScreen);
- void brightnessChanged(int brightness);
- void contrastChanged(int contrast);
- void hueChanged(int hue);
- void saturationChanged(int saturation);
-*/
-
-Q_SIGNALS: // Internal Signals
-
- void widgetResized(QSize size);
- void widgetUpdated();
-
-private: // Data
-
- DSCameraSession* m_session;
- QLabel *m_widget;
- WId m_windowId;
- Qt::AspectRatioMode m_aspectRatioMode;
- bool m_fullScreen;
-};
-
-QT_END_NAMESPACE
-
-#endif // DSVideoWidgetControl_H