self.queue = Queue()
self.startup = Queue()
self.nmotes = nmotes
+ self.selectedWiimoteIndex = 0
self.timeout = timeout
self.setDaemon(1)
self._paused = False
if self._paused : continue
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)
+ m = self.wiimotes[self.selectedWiimoteIndex]
+ if m[0].event == wiiuse.EVENT:
+ self.event_cb(m)
except :
pass
func, args = self.queue.get_nowait()
except Empty:
break
- print 'do:', func.__name__, args
func(*args)
def pause(self) :
def resume(self) :
self._paused = False
+
+ def selectWiimote(self, wiimoteIndex) :
+ self.selectedWiimoteIndex = wiimoteIndex
def do(self, func, *args):
'''Run the function in the thread handling the wiimote'''
wiiuse.disconnect(self.wiimotes[i])
self.go = False
+ def get_count(self):
+ return self.actual_nmotes
+
+
WT = None
-def init(nmotes, timeout):
+def init(nmotes, timeout, screenResolution=(660, 370)):
'''Initialize the module.'''
global WT
if WT:
return
WT = wiimote_thread(nmotes, timeout)
+
+ nmotes = get_count()
+ for i in range(nmotes) :
+ wm = Wiimote(i) # access the wiimote object
+ wm.enable_accels(0) # turn off acceleration reporting
+ wm.enable_ir(1, vres = screenResolution, position=wiiuse.IR_BELOW)
+
def get_count():
'''How many Wiimotes were found?'''
- return WT.actual_nmotes
+ return WT.get_count()
def quit():
'''Gracefully shutdown the connection and turn off the wiimote leds'''
enable |= wiiuse.ORIENT_THRESH
else:
disable |= wiiuse.ORIENT_THRESH
- print enable, disable
WT.do(wiiuse.set_flags, self.wm, enable, disable)
def set_orient_thresh(self, thresh):