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

Reply via email to