Update of /cvsroot/freevo/freevo/src/input
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12264
Modified Files:
__init__.py linux_input.py
Added Files:
eventmap.py keymap.py
Log Message:
reworked input handling again
Index: linux_input.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/input/linux_input.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** linux_input.py 25 Sep 2004 04:37:41 -0000 1.1
--- linux_input.py 27 Sep 2004 18:40:34 -0000 1.2
***************
*** 15,18 ****
--- 15,21 ----
# -----------------------------------------------------------------------
# $Log$
+ # Revision 1.2 2004/09/27 18:40:34 dischi
+ # reworked input handling again
+ #
# Revision 1.1 2004/09/25 04:37:41 rshortt
# Support files for freevo input.
***************
*** 41,44 ****
--- 44,85 ----
# ----------------------------------------------------------------------- */
+ import struct
+
+ _IOC_NRBITS = 8
+ _IOC_TYPEBITS = 8
+ _IOC_SIZEBITS = 14
+ _IOC_DIRBITS = 2
+
+ _IOC_NRMASK = ((1 << _IOC_NRBITS)-1)
+ _IOC_TYPEMASK = ((1 << _IOC_TYPEBITS)-1)
+ _IOC_SIZEMASK = ((1 << _IOC_SIZEBITS)-1)
+ _IOC_DIRMASK = ((1 << _IOC_DIRBITS)-1)
+
+ _IOC_NRSHIFT = 0
+ _IOC_TYPESHIFT = (_IOC_NRSHIFT+_IOC_NRBITS)
+ _IOC_SIZESHIFT = (_IOC_TYPESHIFT+_IOC_TYPEBITS)
+ _IOC_DIRSHIFT = (_IOC_SIZESHIFT+_IOC_SIZEBITS)
+
+ # Direction bits.
+ _IOC_NONE = 0
+ _IOC_WRITE = 1
+ _IOC_READ = 2
+
+ def _IOC(dir,type,nr,size):
+ return (((dir) << _IOC_DIRSHIFT) | \
+ (ord(type) << _IOC_TYPESHIFT) | \
+ ((nr) << _IOC_NRSHIFT) | \
+ ((size) << _IOC_SIZESHIFT))
+
+ def IO(type,nr): return _IOC(_IOC_NONE,(type),(nr),0)
+ def IOR(type,nr,size): return _IOC(_IOC_READ,(type),(nr),struct.calcsize(size))
+ def IOW(type,nr,size): return _IOC(_IOC_WRITE,(type),(nr),struct.calcsize(size))
+ def IOWR(type,nr,size): return
_IOC(_IOC_READ|_IOC_WRITE,(type),(nr),struct.calcsize(size))
+
+ # used to decode ioctl numbers..
+ def IOC_DIR(nr): return (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK)
+ def IOC_TYPE(nr): return (((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK)
+ def IOC_NR(nr): return (((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK)
+ def IOC_SIZE(nr): return (((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK)
#struct input_event {
***************
*** 68,72 ****
#};
- from util.ioctl import *
EVIOCGVERSION_ST = 'i'
--- 109,112 ----
--- NEW FILE: keymap.py ---
KEYMAP = {
'F1' : 'SLEEP',
'HOME' : 'MENU',
'G' : 'GUIDE',
'ESCAPE' : 'EXIT',
'UP' : 'UP',
'DOWN' : 'DOWN',
'LEFT' : 'LEFT',
'RIGHT' : 'RIGHT',
'SPACE' : 'SELECT',
'RETURN' : 'SELECT',
'F2' : 'POWER',
'F3' : 'MUTE',
'KP_MINUS' : 'VOL-',
'N' : 'VOL-',
'KP_PLUS' : 'VOL+',
'M' : 'VOL+',
'C' : 'CH+',
'V' : 'CH-',
'1' : '1',
'2' : '2',
'3' : '3',
'4' : '4',
'5' : '5',
'6' : '6',
'7' : '7',
'8' : '8',
'9' : '9',
'0' : '0',
'D' : 'DISPLAY',
'E' : 'ENTER',
'UNDERSCORE' : 'PREV_CH',
'O' : 'PIP_ONOFF',
'W' : 'PIP_SWAP',
'I' : 'PIP_MOVE',
'F4' : 'TV_VCR',
'R' : 'REW',
'P' : 'PLAY',
'F' : 'FFWD',
'U' : 'PAUSE',
'S' : 'STOP',
'F6' : 'REC',
'PERIOD' : 'EJECT',
'L' : 'SUBTITLE',
'A' : 'LANG'
}
--- NEW FILE: eventmap.py ---
__all__ = [ 'EVENTMAP' ]
from event import *
#
# Default key-event map
#
MENU_EVENTS = {
'LEFT' : MENU_LEFT,
'RIGHT' : MENU_RIGHT,
'UP' : MENU_UP,
'DOWN' : MENU_DOWN,
'CH+' : MENU_PAGEUP,
'CH-' : MENU_PAGEDOWN,
'MENU' : MENU_GOTO_MAINMENU,
'EXIT' : MENU_BACK_ONE_MENU,
'SELECT' : MENU_SELECT,
'PLAY' : MENU_PLAY_ITEM,
'ENTER' : MENU_SUBMENU,
'DISPLAY' : MENU_CHANGE_STYLE,
'EJECT' : EJECT
}
TVMENU_EVENTS = {
'LEFT' : MENU_LEFT,
'RIGHT' : MENU_RIGHT,
'UP' : MENU_UP,
'DOWN' : MENU_DOWN,
'CH+' : MENU_PAGEUP,
'CH-' : MENU_PAGEDOWN,
'MENU' : MENU_GOTO_MAINMENU,
'EXIT' : MENU_BACK_ONE_MENU,
'SELECT' : MENU_SELECT,
'DISPLAY' : MENU_CHANGE_STYLE,
'ENTER' : TV_SHOW_CHANNEL,
'REC' : TV_START_RECORDING
}
INPUT_EVENTS = {
'EXIT' : INPUT_EXIT,
'ENTER' : INPUT_ENTER,
'SELECT' : INPUT_ENTER,
'LEFT' : INPUT_LEFT,
'RIGHT' : INPUT_RIGHT,
'UP' : INPUT_UP,
'DOWN' : INPUT_DOWN,
'1' : INPUT_1,
'2' : INPUT_2,
'3' : INPUT_3,
'4' : INPUT_4,
'5' : INPUT_5,
'6' : INPUT_6,
'7' : INPUT_7,
'8' : INPUT_8,
'9' : INPUT_9,
'0' : INPUT_0,
'CH+' : MENU_PAGEUP,
'CH-' : MENU_PAGEDOWN
}
TV_EVENTS = {
'STOP' : STOP,
'MENU' : STOP,
'EXIT' : STOP,
'SELECT' : STOP,
'PAUSE' : PAUSE,
'CH+' : TV_CHANNEL_UP,
'CH-' : TV_CHANNEL_DOWN,
'LEFT' : Event(SEEK, arg=-60),
'RIGHT' : Event(SEEK, arg=60),
'REW' : Event(SEEK, arg=-10),
'FFWD' : Event(SEEK, arg=10),
'DISPLAY' : TOGGLE_OSD,
'0' : INPUT_0,
'1' : INPUT_1,
'2' : INPUT_2,
'3' : INPUT_3,
'4' : INPUT_4,
'5' : INPUT_5,
'6' : INPUT_6,
'7' : INPUT_7,
'8' : INPUT_8,
'9' : INPUT_9,
}
VIDEO_EVENTS = {
'PLAY' : PLAY,
'PAUSE' : PAUSE,
'STOP' : STOP,
'EXIT' : STOP,
'UP' : PLAYLIST_PREV,
'DOWN' : PLAYLIST_NEXT,
'CH+' : PLAYLIST_PREV,
'CH-' : PLAYLIST_NEXT,
'LEFT' : Event(SEEK, arg=-60),
'RIGHT' : Event(SEEK, arg=60),
'REW' : Event(SEEK, arg=-10),
'FFWD' : Event(SEEK, arg=10),
'MENU' : MENU,
'DISPLAY' : TOGGLE_OSD,
'REC' : STORE_BOOKMARK,
'0' : VIDEO_MANUAL_SEEK
}
DVD_EVENTS = {
'PLAY' : PLAY,
'PAUSE' : PAUSE,
'STOP' : STOP,
'EXIT' : STOP,
'UP' : DVDNAV_UP,
'DOWN' : DVDNAV_DOWN,
'LEFT' : DVDNAV_LEFT,
'RIGHT' : DVDNAV_RIGHT,
'ENTER' : DVDNAV_SELECT,
'SELECT' : DVDNAV_SELECT,
'DISPLAY' : TOGGLE_OSD,
'SUBTITLE' : VIDEO_NEXT_SUBTITLE,
'REW' : Event(SEEK, arg=-10),
'FFWD' : Event(SEEK, arg=10),
'GUIDE' : DVDNAV_TITLEMENU,
'MENU' : DVDNAV_MENU,
'LANG' : VIDEO_NEXT_AUDIOLANG,
'ANGLE' : VIDEO_NEXT_ANGLE,
'CH+' : NEXT,
'CH-' : PREV
}
VCD_EVENTS = {
'PLAY' : PLAY,
'PAUSE' : PAUSE,
'STOP' : STOP,
'EXIT' : STOP,
'LEFT' : Event(SEEK, arg=-60),
'RIGHT' : Event(SEEK, arg=60),
'REW' : Event(SEEK, arg=-10),
'FFWD' : Event(SEEK, arg=10),
'MENU' : MENU,
'DISPLAY' : TOGGLE_OSD,
'LANG' : VIDEO_NEXT_AUDIOLANG,
'SUBTITLE' : VIDEO_NEXT_SUBTITLE,
'ANGLE' : VIDEO_NEXT_ANGLE,
'1' : INPUT_1,
'2' : INPUT_2,
'3' : INPUT_3,
'4' : INPUT_4,
'5' : INPUT_5,
'6' : INPUT_6,
'7' : INPUT_7,
'8' : INPUT_8,
'9' : INPUT_9
}
AUDIO_EVENTS = {
'STOP' : STOP,
'EXIT' : STOP,
'PLAY' : PLAY,
'PAUSE' : PAUSE,
'LEFT' : Event(SEEK, arg=-60),
'RIGHT' : Event(SEEK, arg=60),
'REW' : Event(SEEK, arg=-10),
'FFWD' : Event(SEEK, arg=10),
'UP' : PLAYLIST_PREV,
'DOWN' : PLAYLIST_NEXT,
'CH+' : PLAYLIST_PREV,
'CH-' : PLAYLIST_NEXT,
'1' : INPUT_1,
'2' : INPUT_2,
'3' : INPUT_3,
'4' : INPUT_4,
'5' : INPUT_5,
'6' : INPUT_6,
'7' : INPUT_7,
'8' : INPUT_8,
'9' : INPUT_9,
}
IMAGE_EVENTS = {
'STOP' : STOP,
'EXIT' : STOP,
'PLAY' : PLAY,
'PAUSE' : PAUSE,
'LEFT' : Event(IMAGE_ROTATE, arg='left'),
'RIGHT' : Event(IMAGE_ROTATE, arg='right'),
'1' : IMAGE_ZOOM_GRID1,
'2' : IMAGE_ZOOM_GRID2,
'3' : IMAGE_ZOOM_GRID3,
'4' : IMAGE_ZOOM_GRID4,
'5' : IMAGE_ZOOM_GRID5,
'6' : IMAGE_ZOOM_GRID6,
'7' : IMAGE_ZOOM_GRID7,
'8' : IMAGE_ZOOM_GRID8,
'9' : IMAGE_ZOOM_GRID9,
'0' : IMAGE_NO_ZOOM,
'DISPLAY' : TOGGLE_OSD,
'REC' : IMAGE_SAVE,
'UP' : PLAYLIST_PREV,
'DOWN' : PLAYLIST_NEXT,
'CH+' : PLAYLIST_PREV,
'CH-' : PLAYLIST_NEXT
}
IMAGE_ZOOM_EVENTS = {
'STOP' : STOP,
'EXIT' : STOP,
'PLAY' : PLAY,
'PAUSE' : PAUSE,
'LEFT' : Event(IMAGE_MOVE, arg=(-10, 0)),
'RIGHT' : Event(IMAGE_MOVE, arg=( 10, 0)),
'UP' : Event(IMAGE_MOVE, arg=( 0,-10)),
'DOWN' : Event(IMAGE_MOVE, arg=( 0, 10)),
'1' : IMAGE_ZOOM_GRID1,
'2' : IMAGE_ZOOM_GRID2,
'3' : IMAGE_ZOOM_GRID3,
'4' : IMAGE_ZOOM_GRID4,
'5' : IMAGE_ZOOM_GRID5,
'6' : IMAGE_ZOOM_GRID6,
'7' : IMAGE_ZOOM_GRID7,
'8' : IMAGE_ZOOM_GRID8,
'9' : IMAGE_ZOOM_GRID9,
'0' : IMAGE_NO_ZOOM,
'DISPLAY' : TOGGLE_OSD,
'REC' : IMAGE_SAVE,
'CH+' : PLAYLIST_PREV,
'CH-' : PLAYLIST_NEXT
}
GAMES_EVENTS = {
'STOP' : STOP,
'SELECT' : STOP,
'MENU' : MENU,
'DISPLAY' : GAMES_CONFIG,
'ENTER' : GAMES_RESET
}
GLOBAL_EVENTS = {
'VOL+' : MIXER_VOLUP,
'VOL-' : MIXER_VOLDOWN,
'MUTE' : MIXER_MUTE,
'TOGGLE_CONTROL' : TOGGLE_CONTROL
}
#
# GLOABL EVENTMAP
#
EVENTMAP = {
'menu' : MENU_EVENTS,
'tvmenu' : TVMENU_EVENTS,
'input' : INPUT_EVENTS,
'tv' : TV_EVENTS,
'video' : VIDEO_EVENTS,
'dvd' : DVD_EVENTS, # only used by xine
'vcd' : VCD_EVENTS, # only used by xine
'audio' : AUDIO_EVENTS,
'games' : GAMES_EVENTS,
'image' : IMAGE_EVENTS,
'image_zoom' : IMAGE_ZOOM_EVENTS,
'global' : GLOBAL_EVENTS
}
Index: __init__.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/input/__init__.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** __init__.py 25 Sep 2004 04:37:41 -0000 1.1
--- __init__.py 27 Sep 2004 18:40:34 -0000 1.2
***************
*** 0 ****
--- 1,2 ----
+ from keymap import KEYMAP
+ from eventmap import EVENTMAP
-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM.
Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog