You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
192 lines
5.3 KiB
192 lines
5.3 KiB
From 82e73a6fa15cb7cf62decdd8ba44df4d1685301d Mon Sep 17 00:00:00 2001
|
|
From: Nicolas Chauvet <kwizart@gmail.com>
|
|
Date: Mon, 16 Jan 2017 12:03:14 +0100
|
|
Subject: [PATCH] Revert "qt: add Wayland run-time detection"
|
|
|
|
This reverts commit 785b0f18d70815288c8a673bcd0f3849af7ef6f7.
|
|
---
|
|
modules/gui/qt/Makefile.am | 4 --
|
|
modules/gui/qt/qt.cpp | 104 +++++++++++++--------------------------------
|
|
2 files changed, 29 insertions(+), 79 deletions(-)
|
|
|
|
diff --git a/modules/gui/qt/Makefile.am b/modules/gui/qt/Makefile.am
|
|
index 7e5f5ae..16e3596 100644
|
|
--- a/modules/gui/qt/Makefile.am
|
|
+++ b/modules/gui/qt/Makefile.am
|
|
@@ -24,10 +24,6 @@ if HAVE_QT5_X11
|
|
libqt_plugin_la_CXXFLAGS += $(QT5_X11_CFLAGS) -DQT5_HAS_X11
|
|
libqt_plugin_la_LIBADD += $(QT5_X11_LIBS) $(X_LIBS) $(X_PRE_LIB) -lX11
|
|
endif
|
|
-if HAVE_WAYLAND
|
|
-libqt_plugin_la_CXXFLAGS += $(WAYLAND_CLIENT_CFLAGS) -DQT5_HAS_WAYLAND
|
|
-libqt_plugin_la_LIBADD += $(WAYLAND_CLIENT_LIBS)
|
|
-endif
|
|
if HAVE_WIN32
|
|
libqt_plugin_la_LIBADD += $(LIBCOM) -lcomctl32 -luuid
|
|
endif
|
|
diff --git a/modules/gui/qt/qt.cpp b/modules/gui/qt/qt.cpp
|
|
index 6015b2a..0229f6e 100644
|
|
--- a/modules/gui/qt/qt.cpp
|
|
+++ b/modules/gui/qt/qt.cpp
|
|
@@ -48,6 +48,10 @@
|
|
#include "util/qvlcapp.hpp" /* QVLCApplication definition */
|
|
#include "components/playlist/playlist_model.hpp" /* for ~PLModel() */
|
|
|
|
+#if defined (QT5_HAS_X11) || defined (Q_WS_X11)
|
|
+ #include <vlc_xlib.h>
|
|
+#endif
|
|
+
|
|
#include <vlc_plugin.h>
|
|
#include <vlc_vout_window.h>
|
|
|
|
@@ -75,6 +79,7 @@ static int Open ( vlc_object_t *, bool );
|
|
static void Close ( vlc_object_t * );
|
|
static int WindowOpen ( vout_window_t *, const vout_window_cfg_t * );
|
|
static void WindowClose ( vout_window_t * );
|
|
+static void *Thread ( void * );
|
|
static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * );
|
|
|
|
/*****************************************************************************
|
|
@@ -332,13 +337,6 @@ static bool active = false;
|
|
* Module callbacks
|
|
*****************************************************************************/
|
|
|
|
-static void *ThreadPlatform( void *, char * );
|
|
-
|
|
-static void *Thread( void *data )
|
|
-{
|
|
- return ThreadPlatform( data, NULL );
|
|
-}
|
|
-
|
|
#ifdef Q_OS_MAC
|
|
/* Used to abort the app.exec() on OSX after libvlc_Quit is called */
|
|
#include "../../../lib/libvlc_internal.h" /* libvlc_SetExitHandler */
|
|
@@ -348,67 +346,22 @@ static void Abort( void *obj )
|
|
}
|
|
#endif
|
|
|
|
-#if defined (QT5_HAS_X11)
|
|
-# include <vlc_xlib.h>
|
|
-
|
|
-static void *ThreadXCB( void *data )
|
|
-{
|
|
- char platform_name[] = "xcb";
|
|
- return ThreadPlatform( data, platform_name );
|
|
-}
|
|
-
|
|
-static bool HasX11( vlc_object_t *obj )
|
|
-{
|
|
- if( !vlc_xlib_init( obj ) )
|
|
- return false;
|
|
-
|
|
- Display *dpy = XOpenDisplay( NULL );
|
|
- if( dpy == NULL )
|
|
- return false;
|
|
-
|
|
- XCloseDisplay( dpy );
|
|
- return true;
|
|
-}
|
|
-#endif
|
|
-
|
|
-#ifdef QT5_HAS_WAYLAND
|
|
-# include <wayland-client.h>
|
|
-
|
|
-static void *ThreadWayland( void *data )
|
|
-{
|
|
- char platform_name[] = "wayland";
|
|
- return ThreadPlatform( data, platform_name );
|
|
-}
|
|
-
|
|
-static bool HasWayland( void )
|
|
-{
|
|
- struct wl_display *dpy = wl_display_connect( NULL );
|
|
- if( dpy == NULL )
|
|
- return false;
|
|
-
|
|
- wl_display_disconnect( dpy );
|
|
- return true;
|
|
-}
|
|
-#endif
|
|
-
|
|
/* Open Interface */
|
|
static int Open( vlc_object_t *p_this, bool isDialogProvider )
|
|
{
|
|
intf_thread_t *p_intf = (intf_thread_t *)p_this;
|
|
- void *(*thread)(void *) = Thread;
|
|
|
|
-#ifdef QT5_HAS_WAYLAND
|
|
- if( HasWayland() )
|
|
- thread = ThreadWayland;
|
|
- else
|
|
-#endif
|
|
-#ifdef QT5_HAS_X11
|
|
- if( HasX11( p_this ) )
|
|
- thread = ThreadXCB;
|
|
- else
|
|
-#endif
|
|
-#if defined (QT5_HAS_X11) || defined (QT5_HAS_WAYLAND)
|
|
+#if defined (QT5_HAS_X11) || defined (Q_WS_X11)
|
|
+ if( !vlc_xlib_init( p_this ) )
|
|
+ return VLC_EGENERIC;
|
|
+
|
|
+ Display *p_display = XOpenDisplay( NULL );
|
|
+ if( !p_display )
|
|
+ {
|
|
+ msg_Err( p_intf, "Could not connect to X server" );
|
|
return VLC_EGENERIC;
|
|
+ }
|
|
+ XCloseDisplay( p_display );
|
|
#endif
|
|
|
|
QMutexLocker locker (&lock);
|
|
@@ -435,9 +388,9 @@ static int Open( vlc_object_t *p_this, bool isDialogProvider )
|
|
#ifdef Q_OS_MAC
|
|
/* Run mainloop on the main thread as Cocoa requires */
|
|
libvlc_SetExitHandler( p_intf->obj.libvlc, Abort, p_intf );
|
|
- thread( (void *)p_intf );
|
|
+ Thread( (void *)p_intf );
|
|
#else
|
|
- if( vlc_clone( &p_sys->thread, thread, p_intf, VLC_THREAD_PRIORITY_LOW ) )
|
|
+ if( vlc_clone( &p_sys->thread, Thread, p_intf, VLC_THREAD_PRIORITY_LOW ) )
|
|
{
|
|
delete p_sys;
|
|
return VLC_ENOMEM;
|
|
@@ -493,22 +446,23 @@ static void Close( vlc_object_t *p_this )
|
|
busy = false;
|
|
}
|
|
|
|
-static void *ThreadPlatform( void *obj, char *platform_name )
|
|
+static void *Thread( void *obj )
|
|
{
|
|
intf_thread_t *p_intf = (intf_thread_t *)obj;
|
|
intf_sys_t *p_sys = p_intf->p_sys;
|
|
char vlc_name[] = "vlc"; /* for WM_CLASS */
|
|
+#ifdef QT5_HAS_X11
|
|
char platform_parm[] = "-platform";
|
|
- char *argv[4];
|
|
- int argc = 0;
|
|
-
|
|
- argv[argc++] = vlc_name;
|
|
- if( platform_name != NULL )
|
|
- {
|
|
- argv[argc++] = platform_parm;
|
|
- argv[argc++] = platform_name;
|
|
- }
|
|
- argv[argc] = NULL;
|
|
+ char platform_value[] = "xcb";
|
|
+#endif
|
|
+ char *argv[] = {
|
|
+ vlc_name,
|
|
+#ifdef QT5_HAS_X11
|
|
+ platform_parm, platform_value,
|
|
+#endif
|
|
+ NULL,
|
|
+ };
|
|
+ int argc = sizeof(argv) / sizeof(argv[0]) - 1;
|
|
|
|
Q_INIT_RESOURCE( vlc );
|
|
|
|
--
|
|
2.7.4
|
|
|