def main(): n = manymouse.init() event = manymouse.Event() while True: if manymouse.poll_event(event) == 0: continue if event.type == manymouse.EVENT_RELMOTION: print event.device, 'EVENT_RELMOTION', event.item, event.value, event.minval, event.maxval elif event.type == manymouse.EVENT_ABSMOTION: print event.device, 'EVENT_ABSMOTION', event.item, event.value, event.minval, event.maxval elif event.type == manymouse.EVENT_BUTTON: print event.device, 'EVENT_BUTTON', event.item, event.value, event.minval, event.maxval elif event.type == manymouse.EVENT_SCROLL: print event.device, 'EVENT_SCROLL', event.item, event.value, event.minval, event.maxval elif event.type == manymouse.EVENT_DISCONNECT: print event.device, 'EVENT_DISCONNECT', event.item, event.value, event.minval, event.maxval
def update_mice(screen_w, screen_h): global available_mice, mice event = manymouse.Event() while manymouse.poll_event(event) != 0: if event.device >= available_mice: continue mouse = mice[event.device] if event.type == manymouse.EVENT_RELMOTION: if event.item == 0: mouse.x += event.value elif event.item == 1: mouse.y += event.value elif event.type == manymouse.EVENT_ABSMOTION: val = event.value - event.minval maxval = event.maxval - event.minval if event.item == 0: mouse.x = (val/maxval)*screen_w elif event.item == 1: mouse.y = (val/maxval)*screen_h elif event.type == manymouse.EVENT_BUTTON: if event.item < MAX_BUTTONS: if event.value: mouse.buttons[event.item] = True else: mouse.buttons[event.item] = False elif event.type == manymouse.EVENT_SCROLL: if event.item == 0: if event.value < 0: mouse.scrolldowntick = pygame.time.get_ticks() else: mouse.scrolluptick = pygame.time.get_ticks() elif event.item == 1: if event.value < 0: mouse.scrolllefttick = pygame.time.get_ticks() else: mouse.scrollrighttick = pygame.time.get_ticks() elif event.type == manymouse.EVENT_DISCONNECT: mice[event.device].connected = False
def update_mice(screen_w, screen_h): global available_mice, mice event = manymouse.Event() while manymouse.poll_event(event) != 0: if event.device >= available_mice: continue mouse = mice[event.device] if event.type == manymouse.EVENT_RELMOTION: if event.item == 0: mouse.x += event.value elif event.item == 1: mouse.y += event.value elif event.type == manymouse.EVENT_ABSMOTION: val = event.value - event.minval maxval = event.maxval - event.minval if event.item == 0: mouse.x = (val / maxval) * screen_w elif event.item == 1: mouse.y = (val / maxval) * screen_h elif event.type == manymouse.EVENT_BUTTON: if event.item < MAX_BUTTONS: if event.value: mouse.buttons[event.item] = True else: mouse.buttons[event.item] = False elif event.type == manymouse.EVENT_SCROLL: if event.item == 0: if event.value < 0: mouse.scrolldowntick = pygame.time.get_ticks() else: mouse.scrolluptick = pygame.time.get_ticks() elif event.item == 1: if event.value < 0: mouse.scrolllefttick = pygame.time.get_ticks() else: mouse.scrollrighttick = pygame.time.get_ticks() elif event.type == manymouse.EVENT_DISCONNECT: mice[event.device].connected = False
def process_events(self): event = manymouse.Event() while manymouse.poll_event(event) != 0: if event.device >= len(self.mice): continue mouse = self.mice[event.device] pgevent = None if event.type == manymouse.EVENT_RELMOTION: delta_x = delta_y = 0 if event.item == 0: mouse.x += event.value delta_x = event.value elif event.item == 1: mouse.y += event.value delta_y = event.value pgevent = pygame.event.Event(pygame.locals.USEREVENT, subtype=MOUSERELMOTION, delta=(delta_x, delta_y), mouse=mouse) elif event.type == manymouse.EVENT_ABSMOTION: val = event.value - event.minval maxval = event.maxval - event.minval if event.item == 0: mouse.x = (val/maxval)*mouse.xscale elif event.item == 1: mouse.y = (val/maxval)*mouse.yscale pgevent = pygame.event.Event(pygame.locals.USEREVENT, subtype=MOUSEABSMOTION, pos=(mouse.x, mouse.y), mouse=mouse) elif event.type == manymouse.EVENT_BUTTON: if event.item < MAX_BUTTONS: if event.value: if not mouse.buttons[event.item]: pgevent = pygame.event.Event(pygame.locals.USEREVENT, subtype=MOUSEBUTTONDOWN, button=event.item, mouse=mouse) mouse.buttons[event.item] = True else: if mouse.buttons[event.item]: pgevent = pygame.event.Event(pygame.locals.USEREVENT, subtype=MOUSEBUTTONUP, button=event.item, mouse=mouse) mouse.buttons[event.item] = False elif event.type == manymouse.EVENT_SCROLL: if event.item == 0: if event.value < 0: d = DOWN else: d = UP mouse.scrollticks[d] = pygame.time.get_ticks() elif event.item == 1: if event.value < 0: d = LEFT mouse.scrollticks[d] = pygame.time.get_ticks() else: d = RIGHT mouse.scrollticks[d] = pygame.time.get_ticks() pgevent = pygame.event.Event(pygame.locals.USEREVENT, subtype=MOUSESCROLL, dir=d, mouse=mouse) elif event.type == manymouse.EVENT_DISCONNECT: mice[event.device].connected = False pgevent = pygame.event.Event(pygame.locals.USEREVENT, subtype=MOUSEDISCONNECT, num=event.device, mouse=mouse) if pgevent == None: print 'No pygame event generated by manymouse event' else: pygame.event.post(pgevent)
def process_events(self): event = manymouse.Event() while manymouse.poll_event(event) != 0: if event.device >= len(self.mice): continue mouse = self.mice[event.device] pgevent = None if event.type == manymouse.EVENT_RELMOTION: delta_x = delta_y = 0 if event.item == 0: mouse.x += event.value delta_x = event.value elif event.item == 1: mouse.y += event.value delta_y = event.value pgevent = pygame.event.Event( pygame.locals.USEREVENT, subtype=MOUSERELMOTION, delta=(delta_x, delta_y), mouse=mouse ) elif event.type == manymouse.EVENT_ABSMOTION: val = event.value - event.minval maxval = event.maxval - event.minval if event.item == 0: mouse.x = (val / maxval) * mouse.xscale elif event.item == 1: mouse.y = (val / maxval) * mouse.yscale pgevent = pygame.event.Event( pygame.locals.USEREVENT, subtype=MOUSEABSMOTION, pos=(mouse.x, mouse.y), mouse=mouse ) elif event.type == manymouse.EVENT_BUTTON: if event.item < MAX_BUTTONS: if event.value: if not mouse.buttons[event.item]: pgevent = pygame.event.Event( pygame.locals.USEREVENT, subtype=MOUSEBUTTONDOWN, button=event.item, mouse=mouse ) mouse.buttons[event.item] = True else: if mouse.buttons[event.item]: pgevent = pygame.event.Event( pygame.locals.USEREVENT, subtype=MOUSEBUTTONUP, button=event.item, mouse=mouse ) mouse.buttons[event.item] = False elif event.type == manymouse.EVENT_SCROLL: if event.item == 0: if event.value < 0: d = DOWN else: d = UP mouse.scrollticks[d] = pygame.time.get_ticks() elif event.item == 1: if event.value < 0: d = LEFT mouse.scrollticks[d] = pygame.time.get_ticks() else: d = RIGHT mouse.scrollticks[d] = pygame.time.get_ticks() pgevent = pygame.event.Event(pygame.locals.USEREVENT, subtype=MOUSESCROLL, dir=d, mouse=mouse) elif event.type == manymouse.EVENT_DISCONNECT: mice[event.device].connected = False pgevent = pygame.event.Event( pygame.locals.USEREVENT, subtype=MOUSEDISCONNECT, num=event.device, mouse=mouse ) if pgevent == None: print "No pygame event generated by manymouse event" else: pygame.event.post(pgevent)