2 * Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
14 * You should have received a copy of the GNU Library General Public License
15 * along with this library; see the file COPYING.LIB. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
20 #ifndef FullScreenVideoQt_h
21 #define FullScreenVideoQt_h
23 #include "qwebkitplatformplugin.h"
25 #include <wtf/Platform.h>
28 class QGraphicsVideoItem;
35 class FullScreenVideoWidget;
36 class HTMLVideoElement;
38 #if ENABLE(QT_MULTIMEDIA)
39 class MediaPlayerPrivateQt;
42 // We do not use ENABLE or USE because moc does not expand these macros.
43 #if defined(WTF_USE_GSTREAMER) && WTF_USE_GSTREAMER
44 class FullScreenVideoWindow;
46 class GStreamerFullScreenVideoHandler : public QObject {
49 GStreamerFullScreenVideoHandler();
50 ~GStreamerFullScreenVideoHandler() { }
51 void setVideoElement(HTMLVideoElement*);
53 void enterFullScreen();
54 void exitFullScreen();
60 HTMLVideoElement* m_videoElement;
61 FullScreenVideoWindow* m_fullScreenWidget;
65 // We do not use ENABLE or USE because moc does not expand these macros.
66 #if defined(ENABLE_QT_MULTIMEDIA) && ENABLE_QT_MULTIMEDIA
67 class DefaultFullScreenVideoHandler : public QWebFullScreenVideoHandler {
70 DefaultFullScreenVideoHandler();
71 virtual ~DefaultFullScreenVideoHandler();
72 bool requiresFullScreenForVideoPlayback() const;
75 void enterFullScreen(QMediaPlayer*);
76 void exitFullScreen();
79 static bool s_shouldForceFullScreenVideoPlayback;
80 FullScreenVideoWidget *m_fullScreenWidget;
84 class FullScreenVideoQt : public QObject {
87 FullScreenVideoQt(ChromeClientQt*);
90 virtual void enterFullScreenForNode(Node*);
91 virtual void exitFullScreenForNode(Node*);
92 bool requiresFullScreenForVideoPlayback();
96 #if ENABLE(QT_MULTIMEDIA)
97 MediaPlayerPrivateQt* mediaPlayer();
104 ChromeClientQt* m_chromeClient;
105 HTMLVideoElement* m_videoElement;
106 #if ENABLE(QT_MULTIMEDIA)
107 QWebFullScreenVideoHandler* m_FullScreenVideoHandler;
110 GStreamerFullScreenVideoHandler* m_FullScreenVideoHandlerGStreamer;
116 #endif // FullScreenVideoQt_h