summaryrefslogtreecommitdiffstats
path: root/libvo/x11_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'libvo/x11_common.c')
-rw-r--r--libvo/x11_common.c180
1 files changed, 92 insertions, 88 deletions
diff --git a/libvo/x11_common.c b/libvo/x11_common.c
index 617c6be0e9..76ccad6e35 100644
--- a/libvo/x11_common.c
+++ b/libvo/x11_common.c
@@ -537,27 +537,28 @@ void vo_uninit(struct vo_x11_state *x11)
#include "wskeys.h"
#ifdef XF86XK_AudioPause
-static void vo_x11_putkey_ext(int keysym)
+static void vo_x11_putkey_ext(struct vo *vo, int keysym)
{
+ struct mp_fifo *f = vo->key_fifo;
switch (keysym)
{
case XF86XK_AudioPause:
- mplayer_put_key(KEY_PAUSE);
+ mplayer_put_key(f, KEY_PAUSE);
break;
case XF86XK_AudioStop:
- mplayer_put_key(KEY_STOP);
+ mplayer_put_key(f, KEY_STOP);
break;
case XF86XK_AudioPrev:
- mplayer_put_key(KEY_PREV);
+ mplayer_put_key(f, KEY_PREV);
break;
case XF86XK_AudioNext:
- mplayer_put_key(KEY_NEXT);
+ mplayer_put_key(f, KEY_NEXT);
break;
case XF86XK_AudioLowerVolume:
- mplayer_put_key(KEY_VOLUME_DOWN);
+ mplayer_put_key(f, KEY_VOLUME_DOWN);
break;
case XF86XK_AudioRaiseVolume:
- mplayer_put_key(KEY_VOLUME_UP);
+ mplayer_put_key(f, KEY_VOLUME_UP);
break;
default:
break;
@@ -565,248 +566,249 @@ static void vo_x11_putkey_ext(int keysym)
}
#endif
-void vo_x11_putkey(int key)
+void vo_x11_putkey(struct vo *vo, int key)
{
+ struct mp_fifo *f = vo->key_fifo;
switch (key)
{
case wsLeft:
- mplayer_put_key(KEY_LEFT);
+ mplayer_put_key(f, KEY_LEFT);
break;
case wsRight:
- mplayer_put_key(KEY_RIGHT);
+ mplayer_put_key(f, KEY_RIGHT);
break;
case wsUp:
- mplayer_put_key(KEY_UP);
+ mplayer_put_key(f, KEY_UP);
break;
case wsDown:
- mplayer_put_key(KEY_DOWN);
+ mplayer_put_key(f, KEY_DOWN);
break;
case wsSpace:
- mplayer_put_key(' ');
+ mplayer_put_key(f, ' ');
break;
case wsEscape:
- mplayer_put_key(KEY_ESC);
+ mplayer_put_key(f, KEY_ESC);
break;
case wsTab:
- mplayer_put_key(KEY_TAB);
+ mplayer_put_key(f, KEY_TAB);
break;
case wsEnter:
- mplayer_put_key(KEY_ENTER);
+ mplayer_put_key(f, KEY_ENTER);
break;
case wsBackSpace:
- mplayer_put_key(KEY_BS);
+ mplayer_put_key(f, KEY_BS);
break;
case wsDelete:
- mplayer_put_key(KEY_DELETE);
+ mplayer_put_key(f, KEY_DELETE);
break;
case wsInsert:
- mplayer_put_key(KEY_INSERT);
+ mplayer_put_key(f, KEY_INSERT);
break;
case wsHome:
- mplayer_put_key(KEY_HOME);
+ mplayer_put_key(f, KEY_HOME);
break;
case wsEnd:
- mplayer_put_key(KEY_END);
+ mplayer_put_key(f, KEY_END);
break;
case wsPageUp:
- mplayer_put_key(KEY_PAGE_UP);
+ mplayer_put_key(f, KEY_PAGE_UP);
break;
case wsPageDown:
- mplayer_put_key(KEY_PAGE_DOWN);
+ mplayer_put_key(f, KEY_PAGE_DOWN);
break;
case wsF1:
- mplayer_put_key(KEY_F + 1);
+ mplayer_put_key(f, KEY_F + 1);
break;
case wsF2:
- mplayer_put_key(KEY_F + 2);
+ mplayer_put_key(f, KEY_F + 2);
break;
case wsF3:
- mplayer_put_key(KEY_F + 3);
+ mplayer_put_key(f, KEY_F + 3);
break;
case wsF4:
- mplayer_put_key(KEY_F + 4);
+ mplayer_put_key(f, KEY_F + 4);
break;
case wsF5:
- mplayer_put_key(KEY_F + 5);
+ mplayer_put_key(f, KEY_F + 5);
break;
case wsF6:
- mplayer_put_key(KEY_F + 6);
+ mplayer_put_key(f, KEY_F + 6);
break;
case wsF7:
- mplayer_put_key(KEY_F + 7);
+ mplayer_put_key(f, KEY_F + 7);
break;
case wsF8:
- mplayer_put_key(KEY_F + 8);
+ mplayer_put_key(f, KEY_F + 8);
break;
case wsF9:
- mplayer_put_key(KEY_F + 9);
+ mplayer_put_key(f, KEY_F + 9);
break;
case wsF10:
- mplayer_put_key(KEY_F + 10);
+ mplayer_put_key(f, KEY_F + 10);
break;
case wsF11:
- mplayer_put_key(KEY_F + 11);
+ mplayer_put_key(f, KEY_F + 11);
break;
case wsF12:
- mplayer_put_key(KEY_F + 12);
+ mplayer_put_key(f, KEY_F + 12);
break;
case wsMinus:
case wsGrayMinus:
- mplayer_put_key('-');
+ mplayer_put_key(f, '-');
break;
case wsPlus:
case wsGrayPlus:
- mplayer_put_key('+');
+ mplayer_put_key(f, '+');
break;
case wsGrayMul:
case wsMul:
- mplayer_put_key('*');
+ mplayer_put_key(f, '*');
break;
case wsGrayDiv:
case wsDiv:
- mplayer_put_key('/');
+ mplayer_put_key(f, '/');
break;
case wsLess:
- mplayer_put_key('<');
+ mplayer_put_key(f, '<');
break;
case wsMore:
- mplayer_put_key('>');
+ mplayer_put_key(f, '>');
break;
case wsGray0:
- mplayer_put_key(KEY_KP0);
+ mplayer_put_key(f, KEY_KP0);
break;
case wsGrayEnd:
case wsGray1:
- mplayer_put_key(KEY_KP1);
+ mplayer_put_key(f, KEY_KP1);
break;
case wsGrayDown:
case wsGray2:
- mplayer_put_key(KEY_KP2);
+ mplayer_put_key(f, KEY_KP2);
break;
case wsGrayPgDn:
case wsGray3:
- mplayer_put_key(KEY_KP3);
+ mplayer_put_key(f, KEY_KP3);
break;
case wsGrayLeft:
case wsGray4:
- mplayer_put_key(KEY_KP4);
+ mplayer_put_key(f, KEY_KP4);
break;
case wsGray5Dup:
case wsGray5:
- mplayer_put_key(KEY_KP5);
+ mplayer_put_key(f, KEY_KP5);
break;
case wsGrayRight:
case wsGray6:
- mplayer_put_key(KEY_KP6);
+ mplayer_put_key(f, KEY_KP6);
break;
case wsGrayHome:
case wsGray7:
- mplayer_put_key(KEY_KP7);
+ mplayer_put_key(f, KEY_KP7);
break;
case wsGrayUp:
case wsGray8:
- mplayer_put_key(KEY_KP8);
+ mplayer_put_key(f, KEY_KP8);
break;
case wsGrayPgUp:
case wsGray9:
- mplayer_put_key(KEY_KP9);
+ mplayer_put_key(f, KEY_KP9);
break;
case wsGrayDecimal:
- mplayer_put_key(KEY_KPDEC);
+ mplayer_put_key(f, KEY_KPDEC);
break;
case wsGrayInsert:
- mplayer_put_key(KEY_KPINS);
+ mplayer_put_key(f, KEY_KPINS);
break;
case wsGrayDelete:
- mplayer_put_key(KEY_KPDEL);
+ mplayer_put_key(f, KEY_KPDEL);
break;
case wsGrayEnter:
- mplayer_put_key(KEY_KPENTER);
+ mplayer_put_key(f, KEY_KPENTER);
break;
case wsGrave:
- mplayer_put_key('`');
+ mplayer_put_key(f, '`');
break;
case wsTilde:
- mplayer_put_key('~');
+ mplayer_put_key(f, '~');
break;
case wsExclSign:
- mplayer_put_key('!');
+ mplayer_put_key(f, '!');
break;
case wsAt:
- mplayer_put_key('@');
+ mplayer_put_key(f, '@');
break;
case wsHash:
- mplayer_put_key('#');
+ mplayer_put_key(f, '#');
break;
case wsDollar:
- mplayer_put_key('$');
+ mplayer_put_key(f, '$');
break;
case wsPercent:
- mplayer_put_key('%');
+ mplayer_put_key(f, '%');
break;
case wsCircumflex:
- mplayer_put_key('^');
+ mplayer_put_key(f, '^');
break;
case wsAmpersand:
- mplayer_put_key('&');
+ mplayer_put_key(f, '&');
break;
case wsobracket:
- mplayer_put_key('(');
+ mplayer_put_key(f, '(');
break;
case wscbracket:
- mplayer_put_key(')');
+ mplayer_put_key(f, ')');
break;
case wsUnder:
- mplayer_put_key('_');
+ mplayer_put_key(f, '_');
break;
case wsocbracket:
- mplayer_put_key('{');
+ mplayer_put_key(f, '{');
break;
case wsccbracket:
- mplayer_put_key('}');
+ mplayer_put_key(f, '}');
break;
case wsColon:
- mplayer_put_key(':');
+ mplayer_put_key(f, ':');
break;
case wsSemicolon:
- mplayer_put_key(';');
+ mplayer_put_key(f, ';');
break;
case wsDblQuote:
- mplayer_put_key('\"');
+ mplayer_put_key(f, '\"');
break;
case wsAcute:
- mplayer_put_key('\'');
+ mplayer_put_key(f, '\'');
break;
case wsComma:
- mplayer_put_key(',');
+ mplayer_put_key(f, ',');
break;
case wsPoint:
- mplayer_put_key('.');
+ mplayer_put_key(f, '.');
break;
case wsQuestSign:
- mplayer_put_key('?');
+ mplayer_put_key(f, '?');
break;
case wsBSlash:
- mplayer_put_key('\\');
+ mplayer_put_key(f, '\\');
break;
case wsPipe:
- mplayer_put_key('|');
+ mplayer_put_key(f, '|');
break;
case wsEqual:
- mplayer_put_key('=');
+ mplayer_put_key(f, '=');
break;
case wsosbrackets:
- mplayer_put_key('[');
+ mplayer_put_key(f, '[');
break;
case wscsbrackets:
- mplayer_put_key(']');
+ mplayer_put_key(f, ']');
break;
default:
if ((key >= 'a' && key <= 'z') || (key >= 'A' && key <= 'Z') ||
(key >= '0' && key <= '9'))
- mplayer_put_key(key);
+ mplayer_put_key(f, key);
}
}
@@ -1045,12 +1047,12 @@ int vo_x11_check_events(struct vo *vo)
XLookupString(&Event.xkey, buf, sizeof(buf), &keySym,
&x11->compose_status);
#ifdef XF86XK_AudioPause
- vo_x11_putkey_ext(keySym);
+ vo_x11_putkey_ext(vo, keySym);
#endif
key =
((keySym & 0xff00) !=
0 ? ((keySym & 0x00ff) + 256) : (keySym));
- vo_x11_putkey(key);
+ vo_x11_putkey(vo, key);
ret |= VO_EVENT_KEYPRESS;
}
break;
@@ -1082,8 +1084,9 @@ int vo_x11_check_events(struct vo *vo)
&& (Event.xbutton.button <= 3))
break;
#endif
- mplayer_put_key((MOUSE_BTN0 + Event.xbutton.button -
- 1) | MP_KEY_DOWN);
+ mplayer_put_key(vo->key_fifo,
+ (MOUSE_BTN0 + Event.xbutton.button - 1)
+ | MP_KEY_DOWN);
break;
case ButtonRelease:
if (x11->vo_mouse_autohide)
@@ -1098,7 +1101,8 @@ int vo_x11_check_events(struct vo *vo)
&& (Event.xbutton.button <= 3))
break;
#endif
- mplayer_put_key(MOUSE_BTN0 + Event.xbutton.button - 1);
+ mplayer_put_key(vo->key_fifo,
+ MOUSE_BTN0 + Event.xbutton.button - 1);
break;
case PropertyNotify:
{
@@ -1121,7 +1125,7 @@ int vo_x11_check_events(struct vo *vo)
case ClientMessage:
if (Event.xclient.message_type == x11->XAWM_PROTOCOLS &&
Event.xclient.data.l[0] == x11->XAWM_DELETE_WINDOW)
- mplayer_put_key(KEY_CLOSE_WIN);
+ mplayer_put_key(vo->key_fifo, KEY_CLOSE_WIN);
break;
}
}