nommage des événements.
[minwii.git] / src / pywiiuse / pygame_wiimote.py
index 09ba3aa..5540430 100755 (executable)
@@ -51,8 +51,7 @@ class wiimote_thread(Thread):
         '''This runs in a separate thread'''
         global wiiuse
         import PyWiiUse as wiiuse # import here to avoid thread problems on windows
-        self.wiimotes = wiiuse.init(self.nmotes, range(self.nmotes), self.event_cb, 
-                                    self.control_cb, self.disconnect_cb)
+        self.wiimotes = wiiuse.init(self.nmotes)
         found = wiiuse.find(self.wiimotes, self.nmotes, self.timeout)
         self.actual_nmotes = wiiuse.connect(self.wiimotes, self.nmotes)
 
@@ -64,10 +63,19 @@ class wiimote_thread(Thread):
         self.startup.put(self.go)
 
         while self.go:
-            try:
-                wiiuse.poll(self.wiimotes, self.nmotes)
-            except:
+            try :
+                if wiiuse.poll(self.wiimotes, self.nmotes) :
+                    for i in range(self.nmotes):
+                        m = self.wiimotes[i]
+                        if m[0].event == wiiuse.EVENT:
+                            self.event_cb(m)
+            except :
                 pass
+                
+            #try:
+            #    wiiuse.poll(self.wiimotes, self.nmotes)
+            #except:
+            #    pass
 
             # allow executing functions in this thread
             while True:
@@ -75,6 +83,7 @@ class wiimote_thread(Thread):
                     func, args = self.queue.get_nowait()
                 except Empty:
                     break
+                print 'do:', func.__name__, args
                 func(*args)
 
     def do(self, func, *args):
@@ -98,14 +107,14 @@ class wiimote_thread(Thread):
                                                          time=time.time(),
                                                          id=wm.unid))
 
-        if wiiuse.using_acc(wm):
+        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 wiiuse.using_ir(wm):
+        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,