X-Git-Url: https://svn.cri.ensmp.fr/git/minwii.git/blobdiff_plain/f7094076a9f447c33341612d1a530141d35d1a3a..2135d89d4f79d723151df0c6f2ed0206fa71cd64:/src/pywiiuse/pygame_wiimouse.py?ds=sidebyside diff --git a/src/pywiiuse/pygame_wiimouse.py b/src/pywiiuse/pygame_wiimouse.py index 3f31800..5e764ce 100755 --- a/src/pywiiuse/pygame_wiimouse.py +++ b/src/pywiiuse/pygame_wiimouse.py @@ -36,11 +36,9 @@ class wiimote_thread(Thread): found = wiiuse.find(self.wiimotes, self.nmotes, self.timeout) self.actual_nmotes = wiiuse.connect(self.wiimotes, self.nmotes) - self.previousPositions = {} for i in range(self.nmotes): wiiuse.set_leds(self.wiimotes[i], wiiuse.LED[i]) - self.previousPositions[self.wiimotes[i][0].unid] = (0, 0) self.go = self.actual_nmotes != 0 @@ -57,12 +55,6 @@ class wiimote_thread(Thread): except : pass - #try: - # wiiuse.poll(self.wiimotes, self.nmotes) - #except: - # pass - - # allow executing functions in this thread while True: try: func, args = self.queue.get_nowait() @@ -84,77 +76,26 @@ class wiimote_thread(Thread): def event_cb(self, wmp): '''Called when the library has some data for the user.''' wm = wmp[0] -# if wm.btns: -# for name,b in wiiuse.button.items(): -# if wiiuse.is_just_pressed(wm, b): -# pygame.event.post(pygame.event.Event(WIIMOTE_BUTTON_PRESS, button=name, -# time=time.time(), -# id=wm.unid)) -# -# if wm.btns_released: -# for name,b in wiiuse.button.items(): -# if wiiuse.is_released(wm, b): -# pygame.event.post(pygame.event.Event(WIIMOTE_BUTTON_RELEASE, button=name, -# time=time.time(), -# id=wm.unid)) -# -# if True: -# pygame.event.post(pygame.event.Event(WIIMOTE_ACCEL, -# orient=(wm.orient.roll, wm.orient.pitch, -# wm.orient.yaw), -# accel=(wm.gforce.x, wm.gforce.y, wm.gforce.z), -# time=time.time(), -# id=wm.unid)) - if True: - #dots = [ (wm.ir.dot[i].visible, wm.ir.dot[i].x, wm.ir.dot[i].y) for i in range(4) ] - #pygame.event.post(pygame.event.Event(WIIMOTE_IR, - # dots=dots, - # cursor=(wm.ir.x, wm.ir.y, wm.ir.z), - # time=time.time(), - # id=wm.unid)) - - dots = [ (wm.ir.dot[i].visible, wm.ir.dot[i].x, wm.ir.dot[i].y) for i in range(4) ] - cursor=(wm.ir.x, wm.ir.y, wm.ir.z) - pos = cursor[:2] - previousPos = self.previousPositions[wm.unid] - rel = (pos[0] - previousPos[0], pos[1] - previousPos[1]) - self.previousPositions[wm.unid] = pos - - evt = pygame.event.Event(pygame.MOUSEMOTION, - pos = pos, - rel = rel, - buttons = [], - dots=dots, - cursor=(wm.ir.x, wm.ir.y, wm.ir.z), - time=time.time(), - wiimoteid=wm.unid) - pygame.event.post(evt) - - -# if wm.exp.type == wiiuse.EXP_NUNCHUK: -# nc = wm.exp.u.nunchuk -# -# for name,b in wiiuse.nunchuk_button.items(): -# if wiiuse.is_just_pressed(nc, b): -# pygame.event.post(pygame.event.Event(NUNCHUK_BUTTON_PRESS, button=name, -# time=time.time(), -# id=wm.unid)) -# elif wiiuse.is_released(nc, b): -# pygame.event.post(pygame.event.Event(NUNCHUK_BUTTON_RELEASE, button=name, -# time=time.time(), -# id=wm.unid)) -# -# pygame.event.post(pygame.event.Event(NUNCHUK_ACCEL, -# orient=(nc.orient.roll, nc.orient.pitch, -# nc.orient.yaw), -# accel=(nc.gforce.x, nc.gforce.y, nc.gforce.z), -# time=time.time(), -# id=wm.unid)) -# pygame.event.post(pygame.event.Event(NUNCHUK_JOY, -# angle=nc.js.ang, -# mag=nc.js.mag, -# time=time.time(), -# id=wm.unid)) + pos = (wm.ir.x, wm.ir.y) + pygame.mouse.set_pos(pos) + + eventType = None + + if wm.btns and \ + wiiuse.is_just_pressed(wm, wiiuse.button['B']) : + event = pygame.event.Event(pygame.MOUSEBUTTONDOWN, + pos = pos, + button = 1) + pygame.event.post(event) + + if wm.btns_released and \ + wiiuse.is_released(wm, wiiuse.button['B']): + event = pygame.event.Event(pygame.MOUSEBUTTONUP, + pos = pos, + button = 1) + pygame.event.post(event) + + def control_cb(self, wmp, attachment, speaker, ir, led, battery): '''Could check the battery level and such here'''