def handleEvent(self, event): if event.type == pygame.KEYDOWN and event.key == pygame.K_RETURN and (event.mod & (pygame.KMOD_LSHIFT | pygame.KMOD_RSHIFT | pygame.KMOD_LMETA | pygame.KMOD_RMETA)): # Shift/meta return: start/stop song. Useful for keybinding apps. self.Close() return pykPlayer.handleEvent(self, event)
def handleSongEvent(self, event): """ The user has already selected a song, and now has to select the specific version of it he/she meant to play. """ if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE or event.key == pygame.K_TAB: # Back out to the main index. self.selectedSong = None self.screenDirty = True # Don't continue. If we call up to pykPlayer, it will # shut us down with the escape key. return elif event.key == pygame.K_RETURN: self.selectSong() elif event.key == pygame.K_UP: self.selectedSongRow = max(self.selectedSongRow - 1, 0) self.screenDirty = True elif event.key == pygame.K_DOWN: self.selectedSongRow = min(self.selectedSongRow + 1, len(self.selectedSong.sameSongs) - 1) self.screenDirty = True elif event.key == pygame.K_F1: # F1: mark song for later inspection. self.markCurrentSongFile() elif event.type == pygame.QUIT: self.running = False elif env == ENV_GP2X and event.type == pygame.JOYBUTTONDOWN: button = event.button if button == GP2X_BUTTON_UPLEFT or button == GP2X_BUTTON_UPRIGHT: button = GP2X_BUTTON_UP elif button == GP2X_BUTTON_DOWNLEFT or button == GP2X_BUTTON_DOWNRIGHT: button = GP2X_BUTTON_DOWN if button == GP2X_BUTTON_Y or button == GP2X_BUTTON_A or button == GP2X_BUTTON_SELECT: self.selectedSong = None self.screenDirty = True return elif button == GP2X_BUTTON_START or \ button == GP2X_BUTTON_X or \ button == GP2X_BUTTON_B: self.selectSong() elif button == GP2X_BUTTON_UP: self.selectedSongRow = max(self.selectedSongRow - 1, 0) self.screenDirty = True elif button == GP2X_BUTTON_DOWN: self.selectedSongRow = min(self.selectedSongRow + 1, len(self.selectedSong.sameSongs) - 1) self.screenDirty = True elif button == GP2X_BUTTON_CLICK: # F1: mark song for later inspection. self.markCurrentSongFile() pykPlayer.handleEvent(self, event)
def handleMainEvent(self, event): """ Handles events on the main 'select a song' index. """ if event.type == pygame.KEYDOWN: if self.searchString and (event.key == pygame.K_BACKSPACE or event.key == pygame.K_DELETE): # Backing up on the search. self.searchString = self.searchString[:-1] self.goToSearch(self.searchString) return if event.unicode and event.unicode[0] >= ' ': # The user has typed a keystroke that counts toward a # search. if event.key in self.CommandKeys: # Except any one of these keys, which are reserved # for font zoom and other command navigation. pass elif event.key in self.FirstCommandKeys and not self.searchString: # These keys are used for navigation only if we # haven't already started typing. pass else: self.searchString += event.unicode self.goToSearch(self.searchString) return if event.key == pygame.K_LSHIFT or event.key == pygame.K_RSHIFT: # Don't count these keys as wiping out the search. return self.searchString = '' self.heldKey = (pygame.KEYDOWN, event.key, event.mod) self.heldStartTicks = pygame.time.get_ticks() self.heldRepeat = 0 if event.key == pygame.K_ESCAPE: self.running = False elif event.key == pygame.K_RETURN: self.selectSong() elif event.key == pygame.K_TAB: self.changeSort() elif event.key == pygame.K_F1: # F1: mark song for later inspection. self.markCurrentSongFile() else: self.handleRepeatable(pygame.KEYDOWN, event.key, event.mod, 1) elif event.type == pygame.KEYUP: self.heldKey = None self.heldStartTicks = pygame.time.get_ticks() elif event.type == pygame.QUIT: self.running = False elif env == ENV_GP2X and event.type == pygame.JOYBUTTONDOWN: button = event.button # Map these diagonal buttons to the nearest up/down # equivalent. This helps avoid the interruption of # scrolling because the GP2X joystick drifts too far left # or right. if button == GP2X_BUTTON_UPLEFT or button == GP2X_BUTTON_UPRIGHT: button = GP2X_BUTTON_UP elif button == GP2X_BUTTON_DOWNLEFT or button == GP2X_BUTTON_DOWNRIGHT: button = GP2X_BUTTON_DOWN self.heldKey = (pygame.JOYBUTTONDOWN, button, 0) self.heldStartTicks = pygame.time.get_ticks() self.heldRepeat = 0 if button == GP2X_BUTTON_Y: self.running = False elif button == GP2X_BUTTON_START or \ button == GP2X_BUTTON_X or \ button == GP2X_BUTTON_B: self.selectSong() elif button == GP2X_BUTTON_A: self.changeSort() elif button == GP2X_BUTTON_SELECT: # Break out so this one won't fall through to # pykPlayer, which would shut us down. return elif button == GP2X_BUTTON_CLICK: # F1: mark song for later inspection. self.markCurrentSongFile() else: self.handleRepeatable(pygame.JOYBUTTONDOWN, button, 0, 1) elif env == ENV_GP2X and event.type == pygame.JOYBUTTONUP: button = event.button if button == GP2X_BUTTON_UPLEFT or button == GP2X_BUTTON_UPRIGHT: button = GP2X_BUTTON_UP elif button == GP2X_BUTTON_DOWNLEFT or button == GP2X_BUTTON_DOWNRIGHT: button = GP2X_BUTTON_DOWN if self.heldKey == (pygame.JOYBUTTONDOWN, button, 0): self.heldKey = None self.heldStartTicks = pygame.time.get_ticks() pykPlayer.handleEvent(self, event)
def handleEvent(self, event): pykPlayer.handleEvent(self, event)