X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fvideo_output%2Faa.c;h=420767b587ead5383276bd47a4d67cb171294f02;hb=c6b2d01d4df5e571ea90373f2cf224b7e49d36fd;hp=f691ba53f4206127d6eae69c77a69dd62be5af9f;hpb=4b4350938d98feb676cc0f0573780449ff9125cb;p=vlc diff --git a/modules/video_output/aa.c b/modules/video_output/aa.c index f691ba53f4..420767b587 100644 --- a/modules/video_output/aa.c +++ b/modules/video_output/aa.c @@ -32,11 +32,17 @@ #include #include #include -#include "keythread.h" #include #include +#ifndef WIN32 +# ifdef X_DISPLAY_MISSING +# error Xlib required due to XInitThreads +# endif +# include +#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; } }