]> git.sesse.net Git - vlc/blobdiff - modules/video_output/aa.c
Merge branch 'master' into lpcm_encoder
[vlc] / modules / video_output / aa.c
index f691ba53f4206127d6eae69c77a69dd62be5af9f..420767b587ead5383276bd47a4d67cb171294f02 100644 (file)
 #include <vlc_plugin.h>
 #include <vlc_vout_display.h>
 #include <vlc_picture_pool.h>
-#include "keythread.h"
 
 #include <assert.h>
 #include <aalib.h>
 
+#ifndef WIN32
+# ifdef X_DISPLAY_MISSING
+#  error Xlib required due to XInitThreads
+# endif
+# include <vlc_xlib.h>
+#endif
+
 /* TODO
  * - what about RGB palette ?
  */
@@ -61,7 +67,7 @@ vlc_module_end()
  *****************************************************************************/
 static picture_pool_t *Pool   (vout_display_t *, unsigned);
 static void            Prepare(vout_display_t *, picture_t *);
-static void            Display(vout_display_t *, picture_t *);
+static void            PictureDisplay(vout_display_t *, picture_t *);
 static int             Control(vout_display_t *, int, va_list);
 
 /* */
@@ -74,7 +80,6 @@ struct vout_display_sys_t {
 
     vout_display_cfg_t  state;
     picture_pool_t      *pool;
-    key_thread_t        *keys;
 };
 
 /**
@@ -85,6 +90,11 @@ static int Open(vlc_object_t *object)
     vout_display_t *vd = (vout_display_t *)object;
     vout_display_sys_t *sys;
 
+#ifndef WIN32
+    if (!vlc_xlib_init (object))
+        return VLC_EGENERIC;
+#endif
+
     /* Allocate structure */
     vd->sys = sys = calloc(1, sizeof(*sys));
     if (!sys)
@@ -120,7 +130,7 @@ static int Open(vlc_object_t *object)
 
     vd->pool    = Pool;
     vd->prepare = Prepare;
-    vd->display = Display;
+    vd->display = PictureDisplay;
     vd->control = Control;
     vd->manage  = Manage;
 
@@ -131,7 +141,6 @@ static int Open(vlc_object_t *object)
     vout_display_SendEventFullscreen(vd, false);
     vout_display_SendEventDisplaySize(vd, fmt.i_width, fmt.i_height, false);
 
-    sys->keys = vlc_CreateKeyThread(vd);
     return VLC_SUCCESS;
 
 error:
@@ -149,7 +158,6 @@ static void Close(vlc_object_t *object)
     vout_display_t *vd = (vout_display_t *)object;
     vout_display_sys_t *sys = vd->sys;
 
-    vlc_DestroyKeyTread(sys->keys);
     if (sys->pool)
         picture_pool_Delete(sys->pool);
     aa_close(sys->aa_context);
@@ -208,7 +216,7 @@ static void Prepare(vout_display_t *vd, picture_t *picture)
 /**
  * Display a picture
  */
-static void Display(vout_display_t *vd, picture_t *picture)
+static void PictureDisplay(vout_display_t *vd, picture_t *picture)
 {
     vout_display_sys_t *sys = vd->sys;
 
@@ -292,26 +300,26 @@ static void Manage(vout_display_t *vd)
 
         /* TODO keys support to complete */
         case AA_UP:
-            vlc_EmitKey(sys->keys, KEY_UP);
+            vout_display_SendEventKey(vd, KEY_UP);
             break;
         case AA_DOWN:
-            vlc_EmitKey(sys->keys, KEY_DOWN);
+            vout_display_SendEventKey(vd, KEY_DOWN);
             break;
         case AA_RIGHT:
-            vlc_EmitKey(sys->keys, KEY_RIGHT);
+            vout_display_SendEventKey(vd, KEY_RIGHT);
             break;
         case AA_LEFT:
-            vlc_EmitKey(sys->keys, KEY_LEFT);
+            vout_display_SendEventKey(vd, KEY_LEFT);
             break;
         case AA_BACKSPACE:
-            vlc_EmitKey(sys->keys, KEY_BACKSPACE);
+            vout_display_SendEventKey(vd, KEY_BACKSPACE);
             break;
         case AA_ESC:
-            vlc_EmitKey(sys->keys, KEY_ESC);
+            vout_display_SendEventKey(vd, KEY_ESC);
             break;
         default:
             if (event >= 0x20 && event <= 0x7f)
-                vlc_EmitKey(sys->keys, event);
+                vout_display_SendEventKey(vd, event);
             break;
         }
     }