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:
Thomas McGuire
2012-04-12 11:14:04 +02:00
committed by Qt by Nokia
parent a775af111b
commit 7c84225cc8
9 changed files with 11 additions and 40 deletions

View File

@@ -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 \

View 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

View 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