[vlc-commits] commit: SDL: use key thread (partially fix #3661) ( Rémi Denis-Courmont )

git at videolan.org git at videolan.org
Sun May 30 13:48:34 CEST 2010


vlc/vlc-1.1 | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sun May 30 14:48:04 2010 +0300| [e3866e72f38f59586516514c5cf666985735617f] | committer: Rémi Denis-Courmont 

SDL: use key thread (partially fix #3661)

(cherry picked from commit a0c1d2ccdd62ef333e30f2fc9717fd0bf44ec4a3)

Conflicts:

	modules/video_output/Modules.am

> http://git.videolan.org/gitweb.cgi/vlc/vlc-1.1.git/?a=commit;h=e3866e72f38f59586516514c5cf666985735617f
---

 modules/video_output/Modules.am |    2 +-
 modules/video_output/sdl.c      |    9 +++++++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/modules/video_output/Modules.am b/modules/video_output/Modules.am
index e2ccfdb..92e1039 100644
--- a/modules/video_output/Modules.am
+++ b/modules/video_output/Modules.am
@@ -9,7 +9,7 @@ SOURCES_caca = caca.c
 SOURCES_fb = fb.c
 SOURCES_omapfb = omapfb.c
 SOURCES_ggi = ggi.c
-SOURCES_vout_sdl = sdl.c
+SOURCES_vout_sdl = sdl.c keythread.h keythread.c
 SOURCES_svgalib = svgalib.c
 SOURCES_hd1000v = hd1000v.cpp
 SOURCES_snapshot = snapshot.c
diff --git a/modules/video_output/sdl.c b/modules/video_output/sdl.c
index ea78cfe..fc372bf 100644
--- a/modules/video_output/sdl.c
+++ b/modules/video_output/sdl.c
@@ -35,6 +35,7 @@
 #include <vlc_plugin.h>
 #include <vlc_vout_display.h>
 #include <vlc_picture_pool.h>
+#include "keythread.h"
 
 #include <assert.h>
 
@@ -99,6 +100,7 @@ struct vout_display_sys_t {
 
     /* */
     picture_pool_t       *pool;
+    key_thread_t         *keys;
 };
 
 /**
@@ -331,6 +333,8 @@ static int Open(vlc_object_t *object)
 
     /* */
     vout_display_SendEventDisplaySize(vd, display_width, display_height, vd->cfg->is_fullscreen);
+
+    sys->keys = vlc_CreateKeyThread (vd);
     return VLC_SUCCESS;
 
 error:
@@ -357,6 +361,8 @@ static void Close(vlc_object_t *object)
     vout_display_t *vd = (vout_display_t *)object;
     vout_display_sys_t *sys = vd->sys;
 
+    vlc_DestroyKeyThread(sys->keys);
+
     if (sys->pool)
         picture_pool_Delete(sys->pool);
 
@@ -595,7 +601,7 @@ static void Manage(vout_display_t *vd)
                 key |= KEY_MODIFIER_CTRL;
             if (event.key.keysym.mod & KMOD_ALT)
                 key |= KEY_MODIFIER_ALT;
-            vout_display_SendEventKey(vd, key);
+            vlc_EmitKey(sys->keys, key);
             break;
         }
 
@@ -701,4 +707,3 @@ static int ConvertKey(SDLKey sdl_key)
     }
     return 0;
 }
-



More information about the vlc-commits mailing list