1
2
3
4
5
6
7 import time
8 import tones
9 import ctypes
10 import winUser
11 import queueHandler
12 import api
13 import screenBitmap
14 import speech
15 import globalVars
16 import eventHandler
17 from logHandler import log
18 import config
19 import winInputHook
20
21 WM_MOUSEMOVE=0x0200
22 WM_LBUTTONDOWN=0x0201
23 WM_LBUTTONUP=0x0202
24 WM_LBUTTONDBLCLK=0x0203
25 WM_RBUTTONDOWN=0x0204
26 WM_RBUTTONUP=0x0205
27 WM_RBUTTONDBLCLK=0x0206
28
29 curMousePos=(0,0)
30 mouseMoved=False
31 curMouseShape=""
32 mouseShapeChanged=0
33 scrBmpObj=None
34
35
36 lastMouseEventTime=0
37
44
46 minPitch=config.conf['mouse']['audioCoordinates_minPitch']
47 maxPitch=config.conf['mouse']['audioCoordinates_maxPitch']
48 curPitch=minPitch+((maxPitch-minPitch)*((screenHeight-y)/float(screenHeight)))
49 if detectBrightness:
50 startX=min(max(x-blurFactor,0),screenWidth)
51 width=min((x+blurFactor+1)-startX,screenWidth)
52 startY=min(max(y-blurFactor,0),screenHeight)
53 height=min((y+blurFactor+1)-startY,screenHeight)
54 grey=screenBitmap.rgbPixelBrightness(scrBmpObj.captureImage(startX,startY,width,height)[0][0])
55 brightness=grey/255.0
56 minBrightness=config.conf['mouse']['audioCoordinates_minVolume']
57 maxBrightness=config.conf['mouse']['audioCoordinates_maxVolume']
58 brightness=(brightness*(maxBrightness-minBrightness))+minBrightness
59 else:
60 brightness=config.conf['mouse']['audioCoordinates_maxVolume']
61 leftVolume=int((85*((screenWidth-float(x))/screenWidth))*brightness)
62 rightVolume=int((85*(float(x)/screenWidth))*brightness)
63 tones.beep(curPitch,40,left=leftVolume,right=rightVolume)
64
65
66
83
85 global currentMouseWindow
86 desktopObject=api.getDesktopObject()
87 screenLeft,screenTop,screenWidth,screenHeight=desktopObject.location
88 x=min(max(screenLeft,x),(screenLeft+screenWidth)-1)
89 y=min(max(screenTop,y),(screenTop+screenHeight)-1)
90 if config.conf["mouse"]["audioCoordinatesOnMouseMove"]:
91 playAudioCoordinates(x,y,screenWidth,screenHeight,config.conf['mouse']['audioCoordinates_detectBrightness'],config.conf['mouse']['audioCoordinates_blurFactor'])
92 oldMouseObject=api.getMouseObject()
93 mouseObject=desktopObject.objectFromPoint(x,y)
94 while mouseObject and mouseObject.beTransparentToMouse:
95 mouseObject=mouseObject.parent
96 if not mouseObject:
97 return
98 if oldMouseObject==mouseObject:
99 mouseObject=oldMouseObject
100 else:
101 api.setMouseObject(mouseObject)
102 try:
103 eventHandler.executeEvent("mouseMove",mouseObject,x=x,y=y)
104 oldMouseObject=mouseObject
105 except:
106 log.error("api.notifyMouseMoved", exc_info=True)
107
108
109
126
139
144