scripts/modules.d/211-Powermate-MPlayer.py

00001     #***
00002   #*********************************************************************
00003 #*************************************************************************
00004 #*** 
00005 #*** GizmoDaemon Config Script
00006 #***    Powermate MPlayer config
00007 #***
00008 #*****************************************
00009   #*****************************************
00010     #***
00011 
00012 """
00013 
00014   Copyright (c) 2007, Gizmo Daemon Team
00015   Licensed under the Apache License, Version 2.0 (the "License");
00016   you may not use this file except in compliance with the License.
00017   You may obtain a copy of the License at 
00018 
00019         http://www.apache.org/licenses/LICENSE-2.0
00020 
00021   Unless required by applicable law or agreed to in writing, software
00022   distributed under the License is distributed on an "AS IS" BASIS,
00023   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00024   See the License for the specific language governing permissions and 
00025   limitations under the License. 
00026   
00027 """
00028 
00029 ############################
00030 # Imports
00031 ##########################
00032 
00033 from GizmoDaemon import *
00034 from GizmoScriptActiveApplication import *
00035 
00036 ENABLED = True
00037 VERSION_NEEDED = 3.2
00038 INTERESTED_CLASSES = [GizmoEventClass.Powermate]
00039 INTERESTED_WINDOWS = ["mplayer"]
00040 
00041 ############################
00042 # PowermateMPlayer Class definition
00043 ##########################
00044 
00045 class PowermateMPlayer(GizmoScriptActiveApplication):
00046         """
00047         MPlayer Powermate Event Mapping
00048         """
00049         
00050         ############################
00051         # Public Functions
00052         ##########################
00053                         
00054         def onDeviceEvent(self, Event, Gizmo = None):
00055                 """
00056                 See GizmodDispatcher.onEvent documention for an explanation of this function
00057                 """
00058                 
00059                 # Only interact with MPlayer if it's the first Powermate
00060                 if Gizmo.DeviceClassID == 0:
00061                         # Check for rotations
00062                         if Event.Type == GizmoEventType.EV_REL:
00063                                 # scroll the window slowly if the button isn't pressed
00064                                 # and fast if the button is down
00065                                 if not Gizmo.getKeyState(GizmoKey.BTN_0):
00066                                         # scroll slowly (create a mouse wheel event)
00067                                         Gizmod.Mice[0].createEventRaw(GizmoEventType.EV_REL, GizmoMouseAxis.WHEEL, Event.Value)
00068                                 else:
00069                                         # scroll quickly (by pages using the page up / page down keys)
00070                                         if Event.Value < 0:
00071                                                 for repeat in range(abs(Event.Value)):
00072                                                         Gizmod.Keyboards[0].createEvent(GizmoEventType.EV_KEY, GizmoKey.KEY_PAGEDOWN)
00073                                         else:
00074                                                 for repeat in range(abs(Event.Value)):
00075                                                         Gizmod.Keyboards[0].createEvent(GizmoEventType.EV_KEY, GizmoKey.KEY_PAGEUP)
00076                                 return True
00077                         elif Event.Type == GizmoEventType.EV_KEY:
00078                                 if Event.Value == 0 and not Gizmo.Rotated:
00079                                         Gizmod.Keyboards[0].createEvent(GizmoEventType.EV_KEY, GizmoKey.KEY_SPACE)
00080                                         return True
00081                 return False
00082         
00083         ############################
00084         # Private Functions
00085         ##########################
00086 
00087         def __init__(self):
00088                 """ 
00089                 Default Constructor
00090                 """
00091                 
00092                 GizmoScriptActiveApplication.__init__(self, ENABLED, VERSION_NEEDED, INTERESTED_CLASSES, INTERESTED_WINDOWS)
00093 
00094 ############################
00095 # PowermateMPlayer class end
00096 ##########################
00097 
00098 # register the user script
00099 PowermateMPlayer()

Generated on Wed Nov 7 10:04:16 2007 for gizmod by  doxygen 1.5.3