summaryrefslogtreecommitdiffstats
path: root/Gui
diff options
context:
space:
mode:
authorpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-05-25 09:46:37 +0000
committerpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-05-25 09:46:37 +0000
commit0a581e3bf3cb184be828b58a2c6bbd64a568a4d8 (patch)
treeee983c70a8bc17d12eb4d8d73453351ed3a0e983 /Gui
parentac46b4486bb52f043b078197a78a7df16cca969d (diff)
downloadmpv-0a581e3bf3cb184be828b58a2c6bbd64a568a4d8.tar.bz2
mpv-0a581e3bf3cb184be828b58a2c6bbd64a568a4d8.tar.xz
fix two small bug and add multimedia keyboard support ( i tested with Acer AirKey V only )
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6184 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'Gui')
-rw-r--r--Gui/mplayer/mw.h97
-rw-r--r--Gui/wm/ws.c21
-rw-r--r--Gui/wm/ws.h2
-rw-r--r--Gui/wm/wskeys.h8
4 files changed, 78 insertions, 50 deletions
diff --git a/Gui/mplayer/mw.h b/Gui/mplayer/mw.h
index 4c03eda50c..0b51c2a408 100644
--- a/Gui/mplayer/mw.h
+++ b/Gui/mplayer/mw.h
@@ -540,53 +540,70 @@ potihandled:
int keyPressed = 0;
-void mplMainKeyHandle( int State,int Type,int Key )
+void mplMainKeyHandle( int KeyCode,int Type,int Key )
{
int msg = evNone;
if ( Type != wsKeyPressed ) return;
- switch ( Key )
+
+ if ( !Key )
{
- case wsEnter: msg=evPlay; break;
+ switch ( KeyCode )
+ {
+ case wsXFMMPrev: msg=evPrev; break;
+ case wsXFMMStop: msg=evStop; break;
+ case wsXFMMPlay: msg=evPlaySwitchToPause; break;
+ case wsXFMMNext: msg=evNext; break;
+ case wsXFMMVolUp: msg=evIncVolume; break;
+ case wsXFMMVolDown: msg=evDecVolume; break;
+ case wsXFMMMute: msg=evMute; break;
+ }
+ }
+ else
+ {
+ switch ( Key )
+ {
+ case wsEnter: msg=evPlay; break;
#ifndef HAVE_NEW_INPUT
- case '.':
- case '>': msg=evNext; break;
- case ',':
- case '<': msg=evPrev; break;
-
- case wsEscape: msg=evExit; break;
-
- case wsSpace: msg=evPause; break;
- case wsa:
- case wsA: msg=evAbout; break;
- case wsb:
- case wsB: msg=evSkinBrowser; break;
- case wse:
- case wsE: msg=evEqualeaser; break;
- case wsf:
- case wsF: msg=evFullScreen; break;
- case wsl:
- case wsL: msg=evLoad; break;
- case wsu:
- case wsU: msg=evLoadSubtitle; break;
- case wsm:
- case wsM: msg=evMute; break;
- case wss:
- case wsS: msg=evStop; break;
- case wsp:
- case wsP: msg=evPlayList; break;
+ case '.':
+ case '>': msg=evNext; break;
+ case ',':
+ case '<': msg=evPrev; break;
+
+ case wsEscape: msg=evExit; break;
+
+ case wsSpace: msg=evPause; break;
+ case wsa:
+ case wsA: msg=evAbout; break;
+ case wsb:
+ case wsB: msg=evSkinBrowser; break;
+ case wse:
+ case wsE: msg=evEqualeaser; break;
+ case wsf:
+ case wsF: msg=evFullScreen; break;
+ case wsl:
+ case wsL: msg=evLoad; break;
+ case wsu:
+ case wsU: msg=evLoadSubtitle; break;
+ case wsm:
+ case wsM: msg=evMute; break;
+ case wss:
+ case wsS: msg=evStop; break;
+ case wsp:
+ case wsP: msg=evPlayList; break;
#endif
- case wsXF86LowerVolume: msg=evDecVolume; break;
- case wsXF86RaiseVolume: msg=evIncVolume; break;
- case wsXF86Mute: msg=evMute; break;
- case wsXF86Play: msg=evPlaySwitchToPause; break;
- case wsXF86Stop: msg=evStop; break;
- case wsXF86Prev: msg=evPrev; break;
- case wsXF86Next: msg=evNext; break;
- case wsXF86Media: msg=evLoad; break;
-
- default: vo_x11_putkey( Key ); return;
- }
+ case wsXF86LowerVolume: msg=evDecVolume; break;
+ case wsXF86RaiseVolume: msg=evIncVolume; break;
+ case wsXF86Mute: msg=evMute; break;
+ case wsXF86Play: msg=evPlaySwitchToPause; break;
+ case wsXF86Stop: msg=evStop; break;
+ case wsXF86Prev: msg=evPrev; break;
+ case wsXF86Next: msg=evNext; break;
+ case wsXF86Media: msg=evLoad; break;
+
+ default: vo_x11_putkey( Key ); return;
+ }
+ }
if ( msg != evNone ) mplEventHandling( msg,0 );
}
diff --git a/Gui/wm/ws.c b/Gui/wm/ws.c
index abda544939..6bcb468565 100644
--- a/Gui/wm/ws.c
+++ b/Gui/wm/ws.c
@@ -618,14 +618,17 @@ keypressed:
if ( Event->xkey.state & ShiftMask ) wsWindowList[l]->Shift=1;
if ( Event->xkey.state & LockMask ) wsWindowList[l]->CapsLock=1;
#if 0
- keySym=XKeycodeToKeysym( wsDisplay,Event->xkey.keycode,0 );
- if ( keySym != NoSymbol )
- {
- keySym=( (keySym&0xff00) != 0?( (keySym&0x00ff) + 256 ):( keySym ) );
- wsKeyTable[ keySym ]=i;
- if ( wsWindowList[l]->KeyHandler )
- wsWindowList[l]->KeyHandler( Event->xkey.state,i,keySym );
- }
+ {
+ KeySym keySym;
+ keySym=XKeycodeToKeysym( wsDisplay,Event->xkey.keycode,0 );
+ if ( keySym != NoSymbol )
+ {
+ keySym=( (keySym&0xff00) != 0?( (keySym&0x00ff) + 256 ):( keySym ) );
+ wsKeyTable[ keySym ]=i;
+ if ( wsWindowList[l]->KeyHandler )
+ wsWindowList[l]->KeyHandler( Event->xkey.state,i,keySym );
+ }
+ }
#else
{
int key;
@@ -636,7 +639,7 @@ keypressed:
XLookupString( &Event->xkey,buf,sizeof(buf),&keySym,&stat );
key=( (keySym&0xff00) != 0?( (keySym&0x00ff) + 256 ):( keySym ) );
wsKeyTable[ key ]=i;
- if ( wsWindowList[l]->KeyHandler ) wsWindowList[l]->KeyHandler( Event->xkey.state,i,key );
+ if ( wsWindowList[l]->KeyHandler ) wsWindowList[l]->KeyHandler( Event->xkey.keycode,i,key );
}
#endif
break;
diff --git a/Gui/wm/ws.h b/Gui/wm/ws.h
index 870320af3d..e4d7b485d5 100644
--- a/Gui/wm/ws.h
+++ b/Gui/wm/ws.h
@@ -98,7 +98,7 @@
typedef void (*wsTReDraw)( wsParamDisplay );
typedef void (*wsTReSize)( unsigned int X,unsigned int Y,unsigned int width,unsigned int height );
typedef void (*wsTIdle)( void );
-typedef void (*wsTKeyHandler)( int State,int Type,int Key );
+typedef void (*wsTKeyHandler)( int KeyCode,int Type,int Key );
typedef void (*wsTMouseHandler)( int Button,int X,int Y,int RX,int RY );
typedef void (*wsRemoteHandler)( char * str );
diff --git a/Gui/wm/wskeys.h b/Gui/wm/wskeys.h
index 40ef8de363..e0a3ff0fd8 100644
--- a/Gui/wm/wskeys.h
+++ b/Gui/wm/wskeys.h
@@ -141,6 +141,14 @@
#define wsXF86Next 0x17 + 256
#define wsXF86Media 0x32 + 256
+#define wsXFMMPrev 0x98
+#define wsXFMMStop 0xb1
+#define wsXFMMPlay 0x95
+#define wsXFMMNext 0x93
+#define wsXFMMVolUp 0xad
+#define wsXFMMVolDown 0xa6
+#define wsXFMMMute 0x99
+
#define wsKeyNumber 128
typedef struct