Commit e5a310b4 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

AA: use key thread (partially fix #3661) - untested

(cherry picked from commit 4b435093)
parent c80dac65
...@@ -4,7 +4,7 @@ SUBDIRS = msw ...@@ -4,7 +4,7 @@ SUBDIRS = msw
# obviously does not. Here is a fix for that. # obviously does not. Here is a fix for that.
LIBTOOL=@LIBTOOL@ --tag=CC LIBTOOL=@LIBTOOL@ --tag=CC
SOURCES_aa = aa.c SOURCES_aa = aa.c keythread.h keythread.c
SOURCES_caca = caca.c keythread.h keythread.c SOURCES_caca = caca.c keythread.h keythread.c
SOURCES_fb = fb.c SOURCES_fb = fb.c
SOURCES_omapfb = omapfb.c SOURCES_omapfb = omapfb.c
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include <vlc_plugin.h> #include <vlc_plugin.h>
#include <vlc_vout_display.h> #include <vlc_vout_display.h>
#include <vlc_picture_pool.h> #include <vlc_picture_pool.h>
#include "keythread.h"
#include <assert.h> #include <assert.h>
#include <aalib.h> #include <aalib.h>
...@@ -73,6 +74,7 @@ struct vout_display_sys_t { ...@@ -73,6 +74,7 @@ struct vout_display_sys_t {
vout_display_cfg_t state; vout_display_cfg_t state;
picture_pool_t *pool; picture_pool_t *pool;
key_thread_t *keys;
}; };
/** /**
...@@ -128,6 +130,7 @@ static int Open(vlc_object_t *object) ...@@ -128,6 +130,7 @@ static int Open(vlc_object_t *object)
vout_display_SendEventFullscreen(vd, false); vout_display_SendEventFullscreen(vd, false);
vout_display_SendEventDisplaySize(vd, fmt.i_width, fmt.i_height, false); vout_display_SendEventDisplaySize(vd, fmt.i_width, fmt.i_height, false);
sys->keys = vlc_CreateKeyThread(vd);
return VLC_SUCCESS; return VLC_SUCCESS;
error: error:
...@@ -145,6 +148,7 @@ static void Close(vlc_object_t *object) ...@@ -145,6 +148,7 @@ static void Close(vlc_object_t *object)
vout_display_t *vd = (vout_display_t *)object; vout_display_t *vd = (vout_display_t *)object;
vout_display_sys_t *sys = vd->sys; vout_display_sys_t *sys = vd->sys;
vlc_DestroyKeyTread(sys->keys);
if (sys->pool) if (sys->pool)
picture_pool_Delete(sys->pool); picture_pool_Delete(sys->pool);
aa_close(sys->aa_context); aa_close(sys->aa_context);
...@@ -287,26 +291,26 @@ static void Manage(vout_display_t *vd) ...@@ -287,26 +291,26 @@ static void Manage(vout_display_t *vd)
/* TODO keys support to complete */ /* TODO keys support to complete */
case AA_UP: case AA_UP:
vout_display_SendEventKey(vd, KEY_UP); vlc_EmitKey(sys->keys, KEY_UP);
break; break;
case AA_DOWN: case AA_DOWN:
vout_display_SendEventKey(vd, KEY_DOWN); vlc_EmitKey(sys->keys, KEY_DOWN);
break; break;
case AA_RIGHT: case AA_RIGHT:
vout_display_SendEventKey(vd, KEY_RIGHT); vlc_EmitKey(sys->keys, KEY_RIGHT);
break; break;
case AA_LEFT: case AA_LEFT:
vout_display_SendEventKey(vd, KEY_LEFT); vlc_EmitKey(sys->keys, KEY_LEFT);
break; break;
case AA_BACKSPACE: case AA_BACKSPACE:
vout_display_SendEventKey(vd, KEY_BACKSPACE); vlc_EmitKey(sys->keys, KEY_BACKSPACE);
break; break;
case AA_ESC: case AA_ESC:
vout_display_SendEventKey(vd, KEY_ESC); vlc_EmitKey(sys->keys, KEY_ESC);
break; break;
default: default:
if (event >= 0x20 && event <= 0x7f) if (event >= 0x20 && event <= 0x7f)
vout_display_SendEventKey(vd, event); vlc_EmitKey(sys->keys, event);
break; break;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment