Move QVideoWindowControl out of widgets.
There is no widget dependency in it, and this enables the QML Video element to support video overlays later. Change-Id: I7ebcde350f9595a9f7c319663ff745930535a8a7 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
This commit is contained in:
committed by
Qt by Nokia
parent
a775af111b
commit
7c84225cc8
@@ -30,6 +30,7 @@ PUBLIC_HEADERS += \
|
||||
controls/qvideodevicecontrol.h \
|
||||
controls/qvideoencodercontrol.h \
|
||||
controls/qvideorenderercontrol.h \
|
||||
controls/qvideowindowcontrol.h \
|
||||
controls/qmediaaudioprobecontrol.h \
|
||||
controls/qmediavideoprobecontrol.h \
|
||||
controls/qmediaavailabilitycontrol.h
|
||||
@@ -68,6 +69,7 @@ SOURCES += \
|
||||
controls/qvideodevicecontrol.cpp \
|
||||
controls/qvideoencodercontrol.cpp \
|
||||
controls/qvideorenderercontrol.cpp \
|
||||
controls/qvideowindowcontrol.cpp \
|
||||
controls/qmediaaudioprobecontrol.cpp \
|
||||
controls/qmediavideoprobecontrol.cpp \
|
||||
controls/qmediaavailabilitycontrol.cpp \
|
||||
|
||||
259
src/multimedia/controls/qvideowindowcontrol.cpp
Normal file
259
src/multimedia/controls/qvideowindowcontrol.cpp
Normal file
@@ -0,0 +1,259 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/
|
||||
**
|
||||
** This file is part of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** GNU Lesser General Public License Usage
|
||||
** 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, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia 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.
|
||||
**
|
||||
** Other Usage
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "qvideowindowcontrol.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
/*!
|
||||
\class QVideoWindowControl
|
||||
|
||||
\inmodule QtMultimediaWidgets
|
||||
\ingroup multimedia-serv
|
||||
\brief The QVideoWindowControl class provides a media control for rendering video to a window.
|
||||
|
||||
|
||||
The winId() property QVideoWindowControl allows a platform specific window
|
||||
ID to be set as the video render target of a QMediaService. The
|
||||
displayRect() property is used to set the region of the window the video
|
||||
should be rendered to, and the aspectRatioMode() property indicates how the
|
||||
video should be scaled to fit the displayRect().
|
||||
|
||||
\snippet doc/src/snippets/multimedia-snippets/video.cpp Video window control
|
||||
|
||||
QVideoWindowControl is one of a number of possible video output controls.
|
||||
|
||||
The interface name of QVideoWindowControl is \c org.qt-project.qt.videowindowcontrol/5.0 as
|
||||
defined in QVideoWindowControl_iid.
|
||||
|
||||
\sa QMediaService::requestControl(), QVideoWidget
|
||||
*/
|
||||
|
||||
/*!
|
||||
\macro QVideoWindowControl_iid
|
||||
|
||||
\c org.qt-project.qt.videowindowcontrol/5.0
|
||||
|
||||
Defines the interface name of the QVideoWindowControl class.
|
||||
|
||||
\relates QVideoWindowControl
|
||||
*/
|
||||
|
||||
/*!
|
||||
Constructs a new video window control with the given \a parent.
|
||||
*/
|
||||
QVideoWindowControl::QVideoWindowControl(QObject *parent)
|
||||
: QMediaControl(parent)
|
||||
{
|
||||
}
|
||||
|
||||
/*!
|
||||
Destroys a video window control.
|
||||
*/
|
||||
QVideoWindowControl::~QVideoWindowControl()
|
||||
{
|
||||
}
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::winId() const
|
||||
|
||||
Returns the ID of the window a video overlay end point renders to.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::setWinId(WId id)
|
||||
|
||||
Sets the \a id of the window a video overlay end point renders to.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::displayRect() const
|
||||
Returns the sub-rect of a window where video is displayed.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::setDisplayRect(const QRect &rect)
|
||||
Sets the sub-\a rect of a window where video is displayed.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::isFullScreen() const
|
||||
|
||||
Identifies if a video overlay is a fullScreen overlay.
|
||||
|
||||
Returns true if the video overlay is fullScreen, and false otherwise.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::setFullScreen(bool fullScreen)
|
||||
|
||||
Sets whether a video overlay is a \a fullScreen overlay.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::fullScreenChanged(bool fullScreen)
|
||||
|
||||
Signals that the \a fullScreen state of a video overlay has changed.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::repaint()
|
||||
|
||||
Repaints the last frame.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::nativeSize() const
|
||||
|
||||
Returns a suggested size for the video display based on the resolution and aspect ratio of the
|
||||
video.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::nativeSizeChanged()
|
||||
|
||||
Signals that the native dimensions of the video have changed.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::aspectRatioMode() const
|
||||
|
||||
Returns how video is scaled to fit the display region with respect to its aspect ratio.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::setAspectRatioMode(Qt::AspectRatioMode mode)
|
||||
|
||||
Sets the aspect ratio \a mode which determines how video is scaled to the fit the display region
|
||||
with respect to its aspect ratio.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::brightness() const
|
||||
|
||||
Returns the brightness adjustment applied to a video overlay.
|
||||
|
||||
Valid brightness values range between -100 and 100, the default is 0.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::setBrightness(int brightness)
|
||||
|
||||
Sets a \a brightness adjustment for a video overlay.
|
||||
|
||||
Valid brightness values range between -100 and 100, the default is 0.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::brightnessChanged(int brightness)
|
||||
|
||||
Signals that a video overlay's \a brightness adjustment has changed.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::contrast() const
|
||||
|
||||
Returns the contrast adjustment applied to a video overlay.
|
||||
|
||||
Valid contrast values range between -100 and 100, the default is 0.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::setContrast(int contrast)
|
||||
|
||||
Sets the \a contrast adjustment for a video overlay.
|
||||
|
||||
Valid contrast values range between -100 and 100, the default is 0.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::contrastChanged(int contrast)
|
||||
|
||||
Signals that a video overlay's \a contrast adjustment has changed.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::hue() const
|
||||
|
||||
Returns the hue adjustment applied to a video overlay.
|
||||
|
||||
Value hue values range between -100 and 100, the default is 0.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::setHue(int hue)
|
||||
|
||||
Sets a \a hue adjustment for a video overlay.
|
||||
|
||||
Valid hue values range between -100 and 100, the default is 0.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::hueChanged(int hue)
|
||||
|
||||
Signals that a video overlay's \a hue adjustment has changed.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::saturation() const
|
||||
|
||||
Returns the saturation adjustment applied to a video overlay.
|
||||
|
||||
Value saturation values range between -100 and 100, the default is 0.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::setSaturation(int saturation)
|
||||
Sets a \a saturation adjustment for a video overlay.
|
||||
|
||||
Valid saturation values range between -100 and 100, the default is 0.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QVideoWindowControl::saturationChanged(int saturation)
|
||||
|
||||
Signals that a video overlay's \a saturation adjustment has changed.
|
||||
*/
|
||||
|
||||
#include "moc_qvideowindowcontrol.cpp"
|
||||
QT_END_NAMESPACE
|
||||
|
||||
112
src/multimedia/controls/qvideowindowcontrol.h
Normal file
112
src/multimedia/controls/qvideowindowcontrol.h
Normal file
@@ -0,0 +1,112 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/
|
||||
**
|
||||
** This file is part of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** GNU Lesser General Public License Usage
|
||||
** 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, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia 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.
|
||||
**
|
||||
** Other Usage
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef QVIDEOWINDOWCONTROL_H
|
||||
#define QVIDEOWINDOWCONTROL_H
|
||||
|
||||
#include "qmediacontrol.h"
|
||||
#include <QtCore/qrect.h>
|
||||
#include <QtCore/qsize.h>
|
||||
#include <QtGui/qwindowdefs.h>
|
||||
|
||||
QT_BEGIN_HEADER
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
QT_MODULE(Multimedia)
|
||||
|
||||
|
||||
class Q_MULTIMEDIA_EXPORT QVideoWindowControl : public QMediaControl
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
~QVideoWindowControl();
|
||||
|
||||
virtual WId winId() const = 0;
|
||||
virtual void setWinId(WId id) = 0;
|
||||
|
||||
virtual QRect displayRect() const = 0;
|
||||
virtual void setDisplayRect(const QRect &rect) = 0;
|
||||
|
||||
virtual bool isFullScreen() const = 0;
|
||||
virtual void setFullScreen(bool fullScreen) = 0;
|
||||
|
||||
virtual void repaint() = 0;
|
||||
|
||||
virtual QSize nativeSize() const = 0;
|
||||
|
||||
virtual Qt::AspectRatioMode aspectRatioMode() const = 0;
|
||||
virtual void setAspectRatioMode(Qt::AspectRatioMode mode) = 0;
|
||||
|
||||
virtual int brightness() const = 0;
|
||||
virtual void setBrightness(int brightness) = 0;
|
||||
|
||||
virtual int contrast() const = 0;
|
||||
virtual void setContrast(int contrast) = 0;
|
||||
|
||||
virtual int hue() const = 0;
|
||||
virtual void setHue(int hue) = 0;
|
||||
|
||||
virtual int saturation() const = 0;
|
||||
virtual void setSaturation(int saturation) = 0;
|
||||
|
||||
Q_SIGNALS:
|
||||
void fullScreenChanged(bool fullScreen);
|
||||
void brightnessChanged(int brightness);
|
||||
void contrastChanged(int contrast);
|
||||
void hueChanged(int hue);
|
||||
void saturationChanged(int saturation);
|
||||
void nativeSizeChanged();
|
||||
|
||||
protected:
|
||||
QVideoWindowControl(QObject *parent = 0);
|
||||
};
|
||||
|
||||
#define QVideoWindowControl_iid "org.qt-project.qt.videowindowcontrol/5.0"
|
||||
Q_MEDIA_DECLARE_CONTROL(QVideoWindowControl, QVideoWindowControl_iid)
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
QT_END_HEADER
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user