def run(self): sixaxis.initialize(self.csock, self.isock) self.xbmc.connect() try: while not self.stop(): if process_remote(self.isock, self.xbmc)=="2": if self.timed_out(): raise Exception("PS3 Blu-Ray Remote powering off, "\ "timed out") elif process_remote(self.isock, self.xbmc): break else: self.reset_timeout() except Exception, e: print str(e)
def run(self): sixaxis.initialize(self.csock, self.isock) self.xbmc.connect() bflags = 0 last_bflags = 0 psflags = 0 psdown = 0 toggle_mouse = 0 self.reset_timeout() try: while not self.stop(): if self.timed_out(): raise Exception("PS3 Sixaxis powering off, timed out") if self.idle_time() > 50: self.xbmc.connect() try: data = sixaxis.read_input(self.isock) except Exception, e: print str(e) break if not data: continue if psflags: self.reset_timeout() if psdown: if (time.time() - psdown) > 5: raise Exception( "PS3 Sixaxis powering off, user request") else: psdown = time.time() else: if psdown: toggle_mouse = 1 - toggle_mouse psdown = 0 (bflags, psflags) = sixaxis.process_input( data, toggle_mouse and self.xbmc or None) if bflags != last_bflags: if bflags: try: self.xbmc.send_keyboard_button( keymap_sixaxis[bflags]) except: pass else: self.xbmc.release_button() last_bflags = bflags except Exception, e: print str(e)
def run(self): sixaxis.initialize(self.csock, self.isock) self.xbmc.connect() bflags = 0 last_bflags = 0 psflags = 0 psdown = 0 toggle_mouse = 0 self.reset_timeout() try: while not self.stop(): if self.timed_out(): raise Exception("PS3 Sixaxis powering off, timed out") if self.idle_time() > 50: self.xbmc.connect() try: data = sixaxis.read_input(self.isock) except Exception, e: print str(e) break if not data: continue if psflags: self.reset_timeout() if psdown: if (time.time() - psdown) > 5: raise Exception("PS3 Sixaxis powering off, user request") else: psdown = time.time() else: if psdown: toggle_mouse = 1 - toggle_mouse psdown = 0 (bflags, psflags) = sixaxis.process_input(data, toggle_mouse and self.xbmc or None) if bflags != last_bflags: if bflags: try: self.xbmc.send_keyboard_button(keymap_sixaxis[bflags]) except: pass else: self.xbmc.release_button() last_bflags = bflags except Exception, e: print str(e)
def run(self): sixaxis.initialize(self.csock, self.isock) self.xbmc.connect() last_connect = time.time() bflags = 0 psflags = 0 try: while not self.stop(): if process_remote(self.isock, self.xbmc) == "2": if self.timed_out(): raise Exception("PS3 Blu-Ray Remote powering off, "\ "timed out") elif process_remote(self.isock, self.xbmc): break else: self.reset_timeout() except Exception, e: print str(e)
def run(self): sixaxis.initialize(self.csock, self.isock) self.xbmc.connect() bflags = 0 released = set() pressed = set() pending = set() held = set() psflags = 0 psdown = 0 toggle_mouse = 0 self.reset_timeout() try: while not self.stop(): if self.timed_out(): for key in (held | pressed): (mapname, action, amount, axis) = keymap_sixaxis[key] self.xbmc.send_button_state(map=mapname, button=action, amount=0, down=0, axis=axis) raise Exception("PS3 Sixaxis powering off, timed out") if self.idle_time() > 50: self.xbmc.connect() try: data = sixaxis.read_input(self.isock) except Exception, e: print str(e) break if not data: continue (bflags, psflags, pressure) = sixaxis.process_input(data, self.xbmc, toggle_mouse) if psflags: self.reset_timeout() if psdown: if (time.time() - psdown) > 5: for key in (held | pressed): (mapname, action, amount, axis) = keymap_sixaxis[key] self.xbmc.send_button_state(map=mapname, button=action, amount=0, down=0, axis=axis) raise Exception("PS3 Sixaxis powering off, user request") else: psdown = time.time() else: if psdown: toggle_mouse = 1 - toggle_mouse psdown = 0 keys = set(getkeys(bflags)) released = (pressed | held) - keys held = (pressed | held) - released pressed = (keys - held) & pending pending = (keys - held) for key in released: (mapname, action, amount, axis) = keymap_sixaxis[key] self.xbmc.send_button_state(map=mapname, button=action, amount=0, down=0, axis=axis) for key in held: (mapname, action, amount, axis) = keymap_sixaxis[key] if amount > 0: amount = pressure[amount-1] * 256 self.xbmc.send_button_state(map=mapname, button=action, amount=amount, down=1, axis=axis) for key in pressed: (mapname, action, amount, axis) = keymap_sixaxis[key] if amount > 0: amount = pressure[amount-1] * 256 self.xbmc.send_button_state(map=mapname, button=action, amount=amount, down=1, axis=axis) if keys: self.reset_timeout() except Exception, e: printerr()